[PATCH][RFC] Fixing instability of -fschedule-insns for x86

Uros Bizjak ubizjak@gmail.com
Tue Aug 14 12:02:00 GMT 2012


On Tue, Aug 14, 2012 at 1:51 PM, Yuri Rumyantsev <ysrumyan@gmail.com> wrote:

> 2. Passing function arguments in HW registers.
> The main problem here is that backward copy propagation phase (aka
> combine instructions) can propagate HW argument registers to
> instructions evaluating argument values (e.g.  issue#46829). To
> resolve this problem I decided to preserve an order of instructions
> writing to HW function argument registers through additional output
> dependencies between two adjacent instructions
> (ix86_dependencies_evaluation_hook).

Looking a bit deeper into PR46829 problem, it is actually the output
of the divide instruction that gets combined with _called_ function
argument (r8), before the call to "bar" function. So, this is similar,
but separate issue from the propagation of function arguments into
insn inputs.

In any case, short of disabling propagation of hard registers,
recog_for_combine should somehow check if the insn that combines hard
regs is still valid.

Uros.



More information about the Gcc-patches mailing list