Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-09 Thread H.J. Lu
On Fri, Oct 9, 2015 at 3:42 PM, Steve Ellcey wrote: > On Fri, 2015-10-09 at 15:36 -0700, H.J. Lu wrote: > >> >> I am not sure what you were asking. I tried: >> >> make check-g++ RUNTESTFLAGS="--target_board='unix{-m32\ >> -mstackrealign}' old-deja.exp=spec*.C" >> ... >> >>

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-09 Thread Steve Ellcey
On Tue, 2015-10-06 at 11:10 -0700, H.J. Lu wrote: > Does it pass all tests under g++.dg/torture/stackalign? You need > to implement -mstackrealign and -mpreferred-stack-boundary= > as well as update check_effective_target_automatic_stack_alignment > to run all stack alignment tests. FYI: I was

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-09 Thread H.J. Lu
On Fri, Oct 9, 2015 at 3:22 PM, Steve Ellcey wrote: > On Tue, 2015-10-06 at 11:10 -0700, H.J. Lu wrote: > >> Does it pass all tests under g++.dg/torture/stackalign? You need >> to implement -mstackrealign and -mpreferred-stack-boundary= >> as well as update

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-09 Thread Steve Ellcey
On Fri, 2015-10-09 at 15:36 -0700, H.J. Lu wrote: > > I am not sure what you were asking. I tried: > > make check-g++ RUNTESTFLAGS="--target_board='unix{-m32\ > -mstackrealign}' old-deja.exp=spec*.C" > ... > > === g++ Summary === > > # of expected passes 495 > # of expected failures 3 > >

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread Steve Ellcey
On Mon, 2015-10-05 at 09:57 -0700, H.J. Lu wrote: > You need to update dwarf2cfi.c to generate proper unwind info for > whatever frame instructions MIPS generates, like what we did for > x86 dynamic stack realignment. The problem is understanding what the 'proper' unwind info is and figuring out

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread H.J. Lu
On Tue, Oct 6, 2015 at 8:30 AM, Steve Ellcey wrote: > On Mon, 2015-10-05 at 09:57 -0700, H.J. Lu wrote: > >> You need to update dwarf2cfi.c to generate proper unwind info for >> whatever frame instructions MIPS generates, like what we did for >> x86 dynamic stack realignment.

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread Steve Ellcey
On Tue, 2015-10-06 at 11:10 -0700, H.J. Lu wrote: > Does it pass all tests under g++.dg/torture/stackalign? You need > to implement -mstackrealign and -mpreferred-stack-boundary= > as well as update check_effective_target_automatic_stack_alignment > to run all stack alignment tests. No, those

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread Steve Ellcey
On Tue, 2015-10-06 at 17:39 +0200, Bernd Schmidt wrote: > > Did your tag that copy as RTX_FRAME_RELATED? I'd expect dwarf2cfi would > ignore instructions with that bit unset. There's even a comment > indicating arm does something like this: Yes, I had marked it as RTX_FRAME_RELATED. When I

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread H.J. Lu
On Tue, Oct 6, 2015 at 11:32 AM, Steve Ellcey wrote: > On Tue, 2015-10-06 at 11:10 -0700, H.J. Lu wrote: > >> Does it pass all tests under g++.dg/torture/stackalign? You need >> to implement -mstackrealign and -mpreferred-stack-boundary= >> as well as update

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread H.J. Lu
On Tue, Oct 6, 2015 at 11:02 AM, Steve Ellcey wrote: > On Tue, 2015-10-06 at 17:39 +0200, Bernd Schmidt wrote: > >> >> Did your tag that copy as RTX_FRAME_RELATED? I'd expect dwarf2cfi would >> ignore instructions with that bit unset. There's even a comment >> indicating arm

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread Bernd Schmidt
On 10/06/2015 08:02 PM, Steve Ellcey wrote: If I remove that and I change Rule #16 to handle an AND with a register I get odd looking .cfi stuff. The AND instruction (which is marked with RTX_FRAME_RELATED) seems to generate these cfi_escape macros: .cfi_escape 0x10,0x1f,0x2,0x8e,0x7c

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-06 Thread Bernd Schmidt
On 10/06/2015 05:30 PM, Steve Ellcey wrote: On Mon, 2015-10-05 at 09:57 -0700, H.J. Lu wrote: The problem is understanding what the 'proper' unwind info is and figuring out what is wrong about it when it doesn't work. I used Bernd's comment about Rule #6 to handle the sp = sp AND reg issue, but

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread Mike Stump
On Oct 5, 2015, at 9:46 AM, Steve Ellcey wrote: > One example of an issue I have run into is with the DWARF unwind > generation and 'Rule 16' in dwarf2cfi.c. It assumes the AND instruction > has an integer constant argument but MIPS can't do an AND with a > constant like -16

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread Bernd Schmidt
On 10/02/2015 10:57 PM, Steve Ellcey wrote: I have spent some time trying to do dynamic stack alignment on MIPS and had considerable trouble. The problems are mainly due to the dwarf based stack unwinding and setjmp/longjmp usages where the code does not go through the normal function prologue

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread Bernd Schmidt
On 10/05/2015 06:46 PM, Steve Ellcey wrote: One example of an issue I have run into is with the DWARF unwind generation and 'Rule 16' in dwarf2cfi.c. It assumes the AND instruction has an integer constant argument but MIPS can't do an AND with a constant like -16 so it has to put it in a

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread Steve Ellcey
On Mon, 2015-10-05 at 09:21 -0700, H.J. Lu wrote: > On Mon, Oct 5, 2015 at 9:10 AM, Steve Ellcey wrote: > > There probably is some way to get dynamic stack alignment to work on > > MIPS, but I am not sure I can do it. The only platform that I see that > > uses dynamic stack

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread Steve Ellcey
On Mon, 2015-10-05 at 10:41 +0200, Bernd Schmidt wrote: > On 10/02/2015 10:57 PM, Steve Ellcey wrote: > > I have spent some time trying to do dynamic stack alignment on MIPS and had > > considerable trouble. The problems are mainly due to the dwarf based stack > > unwinding and setjmp/longjmp

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread H.J. Lu
On Mon, Oct 5, 2015 at 9:10 AM, Steve Ellcey wrote: > On Mon, 2015-10-05 at 10:41 +0200, Bernd Schmidt wrote: >> On 10/02/2015 10:57 PM, Steve Ellcey wrote: >> > I have spent some time trying to do dynamic stack alignment on MIPS and had >> > considerable trouble. The

Re: RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-05 Thread H.J. Lu
On Mon, Oct 5, 2015 at 9:46 AM, Steve Ellcey wrote: > On Mon, 2015-10-05 at 09:21 -0700, H.J. Lu wrote: >> On Mon, Oct 5, 2015 at 9:10 AM, Steve Ellcey wrote: > >> > There probably is some way to get dynamic stack alignment to work on >> > MIPS, but I am

RFC: Patch to allow spill slot alignment greater than the stack alignment

2015-10-02 Thread Steve Ellcey
I have spent some time trying to do dynamic stack alignment on MIPS and had considerable trouble. The problems are mainly due to the dwarf based stack unwinding and setjmp/longjmp usages where the code does not go through the normal function prologue and epilogue code. Since the only need I have