[llvm-commits] [llvm] r85764 - in /llvm/trunk/lib/Target/ARM: ARM.td ARMBaseInstrInfo.cpp ARMBaseInstrInfo.h ARMInstrFormats.td ARMInstrInfo.cpp ARMInstrInfo.h Thumb1InstrInfo.cpp Thumb2InstrInfo.cpp

Evan Cheng evan.cheng at apple.com
Sun Nov 1 23:08:49 PST 2009

On Nov 1, 2009, at 11:04 PM, Anton Korobeynikov wrote:

> Hello, Evan
>> 1. When the register is virtual, it could have used
>> machineregisterinfo to find the def. It would have been much faster.
> Yes, however, I never saw such case in (rather huge) real codes. I  
> will add it.
>> 2. When the register is physical it can scan all the way to the top  
>> of
>> the MBB, that's extremely expensive.
> Do we have any better way? It seems - no. We need to find the def of  
> the
> register which is closest to the insertion point. Even if some  
> instruction
> numbering would be saved after RA, then iterating of instructions  
> seems to
> be cheaper than iterating over defs of the phys reg.

This has to be done in a late pass which can walk basic blocks from  
top down and tracking the domain of every register. When it sees a  
fcpyd, it knows the domain of source register and can change it. The  
current implementation really is a non-starter, especially for JIT.  
Can you disable it for now?


> -- 
> With best regards, Anton Korobeynikov
> Faculty of Mathematics and Mechanics, Saint Petersburg State  
> University

More information about the llvm-commits mailing list