[Bug target/82674] ICE with -fstack-clash-protection

2017-11-22 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

Segher Boessenkool  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Segher Boessenkool  ---
Fixed.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-31 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #8 from Segher Boessenkool  ---
Author: segher
Date: Tue Oct 31 09:49:40 2017
New Revision: 254252

URL: https://gcc.gnu.org/viewcvs?rev=254252&root=gcc&view=rev
Log:
Subject: [PATCH] rs6000: Fix crash with big stack clash interval (PR82674)

If the user asks for a stack clash probe interval of 64kB, we currently
generate a "stdu rX,-65536(r1)" instruction.  That instruction does not
exist (the offset is a 16-bit signed number).  If the offset is too big
we should force it into a register and generate a "stdux rX,rY,r1"
instruction, instead.


PR target/82674
* config/rs6000/rs6000.md (allocate_stack): Force update interval
into a register if it does not fit into an immediate offset field.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-30 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #7 from Jeffrey A. Law  ---
Cool.  I've got systems here that are primed for testing, so if you could pass
the patch along I can do spins fairly easily.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-30 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

Segher Boessenkool  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|law at redhat dot com  |segher at gcc dot 
gnu.org

--- Comment #6 from Segher Boessenkool  ---
I have a patch; regchecking now.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-27 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #5 from Jeffrey A. Law  ---
True that 64k may be interesting because of pagesize considerations.  But I'm
not sure how to make it work reliably on ppc because I'm not aware of another
scratch register we can use if we have that large of a probing interval.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-27 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #4 from Segher Boessenkool  ---
Yeah.  The only problem is 64kB is actually an interesting case to
support, since that is the page size on modern systems :-(

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-27 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #3 from Jeffrey A. Law  ---
So while fixing the expander that allocates dynamic space is easy.  Fixing the
other cases is harder, particularly since we need another scratch.

Given it's always been expected that the probing internval might be limited by
such things, I think it's best to just error out for too-large a probing
interval.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-24 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #2 from Jeffrey A. Law  ---
Right, but it's the expander to allocate dynamic space that's creating the
bogus RTL.  It's a trivial fix that I just need to run through some testing.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-24 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

--- Comment #1 from Peter Bergner  ---
That offset is too large to fit in the stdu immed field, so it really shouldn't
have been accepted by the rs6000_legitim*_ functions.

[Bug target/82674] ICE with -fstack-clash-protection

2017-10-23 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82674

Jeffrey A. Law  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-10-23
 CC||law at redhat dot com
   Assignee|unassigned at gcc dot gnu.org  |law at redhat dot com
 Ever confirmed|0   |1