[LLVMdev] Adding legal integer sizes to TargetData
clattner at apple.com
Mon Feb 2 15:29:05 CST 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.
More information about the LLVMdev