This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 5/9] regrename: Don't run if function was separately shrink-wrapped


On 09/10/2016 12:40 AM, Segher Boessenkool wrote:
On Fri, Sep 09, 2016 at 05:01:19PM -0600, Jeff Law wrote:
On 09/09/2016 02:41 PM, Segher Boessenkool wrote:
On Fri, Sep 09, 2016 at 12:31:31PM -0600, Jeff Law wrote:
On 06/08/2016 03:18 AM, Bernd Schmidt wrote:
On 06/08/2016 03:47 AM, Segher Boessenkool wrote:
+      /* regrename creates wrong code for exception handling, if used
together
+         with separate shrink-wrapping.  Disable for now, until we have
+     figured out what exactly is going on.  */

That needs to be figured out now or it'll be there forever.
I suspect it's related to liveness computations getting out-of-wack with
separate shrink wrapping.  If that's the case, then the question in my
mind is how painful is this going to be to fix in the df scanning code.

I haven't been able to pin-point the failure.  It happens for just a few
huge testcases.  So I am hoping someone who understands regrename will
figure it out.
I think that's likely going to fall onto you :-)  We don't generally
allow passes to just get disabled because some other pass causes them to
generate the wrong code.

We can instead declare that anyone enabling regrename is on his own?
I like that plan better.
No.  I won't ack that.  It seems totally backwards.


I can also make the compiler error out if you try to have both separate
shrink-wrapping and regrename on at the same time.

There are no happy answers :-(
The answer is to debug the problem, and yes it may be painful. I'd probably start by fixing the dataflow issues and see if that fixes the regrename thing as a side effect.


Though I'm curious how you triggered this -- regrename isn't enabled by
default (except for that brief window earlier this year...).

Yes, these patches are that old now already.  I also enabled regrename
by default for quite a while, for testing purposes, since at the time
it looked like regrename would be on by default for most architectures.
Separate shrink-wrapping is supposed to be useful for all ports, not
just for Power.
I think enabling regrename by default is the right thing to do long term.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]