This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: IRA: matches insn even though !reload_in_progress
On 07/11/11 18:42, Bernd Schmidt wrote:
> On 07/11/11 18:12, Georg-Johann Lay wrote:
>> The reason is that IRA (or reload, don't see it from the dumps)
>> combines the insns again to:
>>
>> (insn 29 31 24 2 (parallel [
>> (set (reg:HI 24 r24 [49])
>> (mult:HI (reg:HI 18 r18)
>> (const_int 15 [0xf])))
>> (clobber (reg:QI 20 r20))
>> ]) wmul.c:71 46 {*mulhi3.uconst}
>> (nil))
>
> Find out where it does that (breakpoint on make_insn_raw if the insn is
> newly created; watchpoint on its PATTERN (insn->u.fld[4].rt_rtx I think)
> otherwise.
Ok, so I'm guessing it's the validate_replace_rtx call in
update_equiv_regs. If I understand correctly, you're doing this to get
the constant CSEd - is that right? If so, have you tried using an
expander rather than a split (no CSE passes after combine)?
Bernd