gcc-9-20181125 is now available

2018-11-25 Thread gccadmin
Snapshot gcc-9-20181125 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/9-20181125/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 9 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 266441

You'll find:

 gcc-9-20181125.tar.xzComplete GCC

  SHA256=87afbab2198c846d553e58aeab4f4813791e67c2f1e39723cd000b7c8a102f0e
  SHA1=211733607bc97d9646886edb0ac6368303935184

Diffs from 9-20181118 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-9
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.


Re: ICEs in print_operand() of the rs6000 backend with invalid input assembly

2018-11-25 Thread Arseny Solokha
> Hi Arseny,
> 
> On Fri, Nov 23, 2018 at 06:15:47PM +0700, Arseny Solokha wrote:
>> I've found recently that rs6000 and powerpcspe backends can easily trip over
>> various gcc_unreachable()'s and gcc_assert()'s in their respective copies of
>> print_operand() when provided with some invalid assembly (i.e. assembly 
>> written
>> for other architectures).
> 
> Yup.  They should use output_operand_lossage instead.

Isn't it something that should be mentioned in the Internals manual?


>> I have a hunch that this kind of invalid input should have been rejected way
>> earlier, before getting to the printing out the resulting assembly, and that
>> i386 backend actually does exactly that. Still, I'm not convinced that the
>> current behavior is really unintended. Is it worthwhile at all to report 
>> ICEs of
>> this kind?
> 
> Please report them, yes! 

So I've filed PR88188 with three issues I've found so far. Though they might be
of different nature.


> Bonus points if you can find some way to test
> this in the testsuite (preferably for all targets), testing many kinds
> of input args (reg, imm, memory) and all output modifiers.

For now I use a trivial script that simply tries to compile everything it finds,
each file with a new set of -mcpu value, optimization options and --param
options. Maybe enhancing the testsuite to facilitate some kind of fuzzing out of
the box could be a proper task for the GSoC?


Re: Bug 84762 - GCC for PowerPC32 violates the SysV ABI spec for small struct returns

2018-11-25 Thread Lokesh Janghel
Hi Sirl,

As you mentioned in Bugzilla (comment 13),
aix_return ( return in memory)
svr4_return (return in register)
what is the semantics of svr4gnu w.r.t. return.

Thanks
Lokesh


Re: Bug 84762 - GCC for PowerPC32 violates the SysV ABI spec for small struct returns

2018-11-25 Thread Lokesh Janghel
Hi Sirl,

As you mentioned in Bugzilla (comment 13),
aix_return ( return in memory)
svr4_return (return in register)
what is the semantics of svr4gnu w.r.t. return.

On Mon, Nov 19, 2018 at 11:33 PM Franz Sirl
 wrote:
>
> Am 2018-11-19 um 15:36 schrieb Lokesh Janghel:
> > Hi Segher,
> >
> > I am building the GCC with the following configuration ( using gcc trunk ).
> >   ../gcc/configure --target=powerpc-linux
> > --prefix=/opt/buckeye/powerpc-linux --disable-shared --disable-threads
> > --enable-languages=c --with-newlib
> >
> > And my assembly code (without optimization) is:
> > $ cc1   -msvr4-struct-return test.c
> > .LFB0:
> >  stwu 1,-32(1)
> > .LCFI0:
> >  stw 31,28(1)
> > .LCFI1:
> >  mr 31,1
> > .LCFI2:
> >  lis 9,.LC0@ha
> >  la 9,.LC0@l(9)
> >  lhz 10,0(9)
> >  lbz 9,2(9)
> >  sth 10,11(31)
> >  stb 9,13(31)
> >  lhz 10,11(31)
> >  lbz 9,13(31)
> >  sth 10,8(31)
> >  stb 9,10(31)
> >  li 9,0
> >  lbz 10,8(31)
> >  rlwinm 10,10,0,24,31
> >  slwi 10,10,16
> >  rlwinm 9,9,0,16,7
> >  or 9,9,10
> >  lbz 10,9(31)
> >  rlwinm 10,10,0,24,31
> >  slwi 10,10,8
> >  rlwinm 9,9,0,24,15
> >  or 9,9,10
> >   lbz 10,10(31)
> >  rlwinm 10,10,0,24,31
> >  rlwinm 9,9,0,0,23
> >  or 9,9,10
> >  mr 3,9
> >  addi 11,31,32
> >  lwz 31,-4(11)
> > .LCFI3:
> >  mr 1,11
> > .LCFI4:
> >  blr
> >
> >
> > Assembly code (with optimization -O2) is:
> > $ cc1   -msvr4-struct-return -O2 test.c
> > .LFB0:
> >  stwu 1,-32(1)
> > .LCFI0:
> >  lis 3,0x11
> >  ori 3,3,0x2233
> >  addi 1,1,32
> > .LCFI1:
> >  blr
> >
> > As you mentioned assembly code in the GCC Bugzilla, I am not able to
> > reproduce the issue.
> > Please let me know your options used to reproduce this issue.
>
> Hi,
>
> you already reproduced the issue, according to the ABI, the code should
> look like:
>
> .LFB0:
>  stwu 1,-32(1)
> .LCFI0:
>  lis 3,0x1122
>  ori 3,3,0x3300
>  addi 1,1,32
> .LCFI1:
>  blr
>
> So the value being passed around should be left-aligned in the register.
>
> > Sirl,
> > If you got the patch for this issue or will look into the issue.
>
> I have an unfinished patch, it misses commandline handling, testcases
> and some code comments. I've attached it.
>
> It's unlikely I can continue to work on it anytime soon :-(.
>
> Franz



-- 
Thanks & Regards
Lokesh Janghel
+91-9752984749