[LLVMdev] disabling combining load/stores in optimizer.

Dan Gohman gohman at apple.com
Mon Aug 3 12:12:25 PDT 2009


On Aug 2, 2009, at 11:08 PM, Sanjiv.Gupta at microchip.com wrote:


> Consider writes to a struct {i32 a; i32 b};
>
> The optimizer can currently combine stores (i32, i32) to a single  
> i64 store operation. Is there a way to disable that?

Not currently. There are some ideas floating around about
including in TargetData a list of integer types that the
target natively supports, which would allow instcombine
and other passes to make more informed decisions, but
at this point it's just ideas.

> I feel that such optimizations may not result in any gain for PIC16  
> as PIC16 does everything on i8.

The legalize pass should turn an i64 store into 8 i8 stores
then, which is essentially the same as what an {i32,i32} store
would turn into. Is there a problem with this?

Dan




More information about the llvm-dev mailing list