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] 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
--


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