Re: Improving GCC's line table information to help GDB

2019-10-17 Thread Richard Biener
On Wed, Oct 16, 2019 at 4:55 PM Luis Machado  wrote:
>
> On 10/16/19 5:59 AM, Richard Biener wrote:
> > I think that adding an extra jump is unwanted.  Instead - if you disregard
> > the single-source-line case - there's always the jump and the label we jump
> > to which might/should get different source locations.  Like in one of the 
> > above
> > cases:
> >
> > main ()
> > {
> >int D.1803;
> >
> >[t.c:2:1] {
> >  int var;
> >
> >  [t.c:3:5] var = 0;
> >  :
> >  [t.c:7:8] var = var + 1;
> >  [t.c:7:8] goto ;
> >  [t.c:10:8] D.1803 = 0;
> >  [t.c:10:8] return D.1803;
> >
> > seen at GIMPLE.  Of course we lose the label once we build the CFG,
> > but we retain a goto-locus which we could then put back on the
> > jump statement.  For this case we at the moment get
> >
> > .L2:
> >  .loc 1 7 0 discriminator 1
> >  addl$1, -4(%rbp)
> >  jmp .L2
> >
> > and we could do
> >
> > .L2:
> >  .loc 1 7 0 discriminator 1
> >  addl$1, -4(%rbp)
> >  .loc 1 5 0
> >  jmp .L2
> >
> > thus assign the "destination" location to the jump instruction?
>
> On a first look, i considered reusing the jump instruction that did not
> get a location assigned to it, but that didn't work right for all cases,
> such as the one you showed below with the incorrect line ordering.
>
> >
> > The first question is of course what happens with the edges
> > goto_locus at the moment and why we get the code we get.
> >
> > The above solution might also be a bit odd since for the loop
> > entry we'd first see line 7 and only after that line 5.  But fixing
> > that would mean we have to output an extra instruction
> > (where I'd chose a nop instead of some random extra jump).
>
> Right. I wanted to preserve the correct order of execution, at least
> from a O0 perspective. A nop would work just as well. I'll give this a try.
>
> I don't think it makes sense to output additional instructions in O1+
> cases just because we want to have more debug info, but we do need a new
> instruction address in some cases, in order to use it in the line table
> for the line transition.
>
> Would it make sense to have it restricted to O0?

Generation of an extra NOP?  Sure.  For O1+ we may want to give
the jump a different location though?

Richard.


Parallel GCC Testing

2019-10-17 Thread Nicholas Krause

Greetings,

I've one of the students who is working on the project. I'm just posting to

continue the discussion on C++11 migration for async and memory model

support alongside other features people want. In addition the secondary

part of this email is that the other student mentioned at Cauldron testing

lots of packages would be a issue, and seems not due tothe Yocto Project:

https://www.yoctoproject.org/

The projects build software packages at a singular level as bitbake 
recipe_name


and therefore I'm suggesting comments on if linking a custom toolchain

to it for testing would be a good idea. We are no where near this but

it would be nice to get some comments on using it for building other

software/testing it.

I've also in the process of trying to figure out what queueing strategy 
for RTL


and GIMPLE scales best as we may be able to get pass ideal scaling at 
four threads


with better threading queueing of the passes.

Any comments or questions are welcome,

Nick



gcc-7-20191017 is now available

2019-10-17 Thread gccadmin
Snapshot gcc-7-20191017 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/7-20191017/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 7 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-7-branch 
revision 277134

You'll find:

 gcc-7-20191017.tar.xzComplete GCC

  SHA256=afa13665f6f4371bdb7d000d9a5066adbd4020c413241d231caf506b7936ab08
  SHA1=79d78f16215ecf0548e38bb4be5ab9a6b3896735

Diffs from 7-20191010 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-7
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.