This is the mail archive of the gcc@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: 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


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