This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix simd-2.c failure on powerpc
- From: Roger Sayle <roger at www dot eyesopen dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 17 Apr 2003 19:01:48 -0600 (MDT)
- Subject: Re: [PATCH] Fix simd-2.c failure on powerpc
On Thu, 17 Apr 2003, Richard Henderson wrote:
> But confusing. At some point in the future someone will have
> to do some heavy head scratching to figure out why that clause
> was needed.
Confusing?
>>+ /* DEST must be either a REG or CC0. */
>>+ || ! (REG_P (dest) || CC0_P (dest))
>> /* Make sure that DEST is not used after SUCC but before I3. */
>> || (succ && ! all_adjacent
>> && reg_used_between_p (dest, succ, i3))
Personally, I find it far more confusing to call reg_used_between_p
with anything *other* than a register. Certainly the comment above
reg_used_between_p gives no clue that its OK to pass either SUBREGs
or ZERO_EXTRACTS.
>> /* Nonzero if register REG is used in an insn between
>> FROM_INSN and TO_INSN (exclusive of those two). */
>>
>> int
>> reg_used_between_p (reg, from_insn, to_insn)
>> rtx reg, from_insn, to_insn;
But perhaps it could be written clearer...
>> && REG_P (dest) && reg_used_between (dest, succ, i3))
> > p.s. Was that an approval for just the rtlanal.c hunk?
> Yes.
Many thanks.
Roger
--