[LLVMdev] Adding legal integer sizes to TargetData

Chris Lattner clattner at apple.com
Mon Feb 2 13:29:05 PST 2009


On Feb 2, 2009, at 1:26 PM, Dale Johannesen wrote:

>
> On Feb 1, 2009, at 11:06 PMPST, Chris Lattner wrote:
>
>> Now that 2.5 is about to branch, I'd like to bring up one of Scott's
>> favorite topics: certain optimizers widen or narrow arithmetic,
>> without regard for whether the type is legal for the target.  In his
>> specific case, instcombine is turning an i32 multiply into an i64
>> multiply in order to eliminate a cast.  This does simplify/reduce the
>> number of IR operations, but an i64 multiply is dramatically more
>> expensive than an i32 multiply on CellSPU.
>
> I basically agree with Scott on this:  we shouldn't reintroduce  
> types that
> are illegal for the target after Legalize.

I'm sorry, to be clear, this is mostly talking about an instcombine  
change.  Obviously anything in codegen should respect current  
restrictions.  The question is whether the mid-level optimizer should  
try to avoid introducing illegal types.

-Chris




More information about the llvm-dev mailing list