On 10/13/21 10:39, Richard Biener wrote:
On Tue, Oct 12, 2021 at 5:11 PM Martin Liška <mli...@suse.cz> wrote:

On 10/12/21 15:37, Richard Biener wrote:
by adding EnabledBy(funroll-loops) to the respective options instead
(and funroll-loops EnabledBy(funroll-all-loops))

All right, so the suggested approach works correctly.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?

  funroll-all-loops
-Common Var(flag_unroll_all_loops) Optimization
+Common Var(flag_unroll_all_loops) Optimization EnabledBy(funroll-all-loops)

that should be on funroll-loops?

Yeah, what a stupid error.


Can you verify that the two-step -funroll-all-loops -> -funroll-loops
-> -frename-registers

Yes, verified that in debugger, it's not dependent on an ordering.

works and that it is not somehow dependent on ordering?  Otherwise we have to
use EnabledBy(funroll-loops,funroll-all-loops) on frename-registers.
I guess the
EnabledBy doesn't work if the target decides to set flag_unroll_loop in one of
its hooks rather than via its option table override?  (as said, this
is all a mess...)

It's a complete mess. The only override happens in
rs6000_override_options_after_change. I think it can also utilize EnabledBy, but
I would like to do it in a different patch.


But grep should be your friend telling whether any target overrides
any of the flags...

I do hope we can eventually reduce the number of pre-/post-/lang/target/common
processing phases for options :/  Meh.

Huh.

May I install this fixed patch once it's tested?

Martin


Richard.

Thanks,
Martin

Reply via email to