This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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

What kind of checks do you have in mind though?  Combiner already tries to
recog the insn, which involves testing all the predicates on the insn.  What
else it could do?  You mean that for hard registers it should check
constraints too?

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]