On Tue, Aug 14, 2012 at 1:51 PM, Yuri Rumyantsev <ysrum...@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.