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: RFA: Fix PR middle-end/20714


On Fri, Apr 08, 2005 at 07:56:30PM +0100, Joern RENNECKE wrote:
> +   if (reg_overlap_mentioned_p (p->target, dest)
> +       || (p->insn != p->insns
> + 	  && (reg_mentioned_p (dest, PATTERN (p->insns))
> + 	      || reg_used_between_p (dest, p->insns, p->insn)
> + 	      || (GET_CODE (set) == SET
> + 		  && (modified_in_p (SET_SRC (set), p->insns)
> + 		      || modified_between_p (SET_SRC (set), p->insns,
> + 					     p->insn))))))
> +     p->must_stay = true;

I suppose you could argue that no-conflict blocks are all small,
and so the N**2 nature of this test isn't worth worrying about.
What's really too bad is that none of the rest of the data dependency
code that we have is in a form you can reuse.

At minimum I'd like "insns" renamed to "first" or something.  My
eyes don't seem to distinguish insn/insns well.  Also, break this
condition up.

Otherwise it looks like an ok approach.


r~


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