[LLVMdev] Load from abs address generated bad code on LLVM 2.4
Óscar Fuentes
ofv at wanadoo.es
Mon Jan 19 08:40:16 PST 2009
Andrew Haley <aph at redhat.com> writes:
> This is x86_64. I have a problem where an absolute memory load
>
> define i32 @foo() {
> entry:
> %0 = load i32* inttoptr (i64 12704196 to i32*) ; <i32> [#uses=1]
> ret i32 %0
> }
>
> generates incorrect code on LLVM 2.4:
>
> 0x7ffff6d54010: mov 0xc1d9c4(%rip),%eax # 0x7ffff79719da
> 0x7ffff6d54016: retq
IIRC, one workaround is to use a GlobalValue instead of a IntToPtr on a
Constant.
--
Oscar
More information about the llvm-dev
mailing list