On 09/12/2016 10:54 AM, David Edelsohn wrote:
On Sep 12, 2016 17:33, "Jeff Law" <l...@redhat.com
<mailto:l...@redhat.com>> wrote:
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,
The current regrename pass is horrible. Badly designed, badly written
and ineffective. You are the only person who likes it.
?!? I don't like or dislike it. I think it solves a well known problem
for processors with particular pipeline characteristics. No more, no less.
There are plenty of gcc passes that don't work well together. If segher
can work around it easily, okay. This series of patches should not be
held up because of a bug in a badly written pass that is not enabled by
default and only found by segher being extra diligent.
It's not a question of not working well together. It's a case where
the two in combination generate incorrect code and we don't know if it's
a regrename issue or an issue with Segher's code. I have some
suspicions here, but until Segher does the analysis, I can't ack the patch.
jeff