On Tue, Aug 14, 2012 at 2:02 PM, Uros Bizjak <ubiz...@gmail.com> wrote: > 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.
Yes, that sounds reasonable. Richard. > Uros.