This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFA: Fix PR middle-end/20714
- From: Richard Henderson <rth at redhat dot com>
- To: Joern RENNECKE <joern dot rennecke at st dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 12 May 2005 20:34:04 -0700
- Subject: Re: RFA: Fix PR middle-end/20714
- References: <4256D3DE.2080905@st.com>
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~