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