[cfe-dev] [LLVMdev] Extend llvm to fix global addresses
David A. Greene
greened at obbligato.org
Mon Dec 12 09:20:13 PST 2011
Dan Gohman <gohman at apple.com> writes:
>> But anything which avoids the horrible int* cast has to be a good
>> thing. For one thing it would cause alias analysis a lot of pain.
>
> Actually, it wouldn't cause very much pain, if any, in alias analysis.
>
> LLVM IR already assumes that programmers can't "guess" what the
> address of the stack, global variables, or heap will be. An integer
> constant casted to a pointer is assumed to be non-aliasing with
> "regular" objects in memory.
> I don't mean to shoot you down, but there don't seem to be any
> compelling motivations for this feature.
I agree. We make use of this property to turn some pretty ugly frontend
pointer arithmetic using integers into somewhat less ugly GEP operations
which LLVM can understand.
So ptrtoint/inttoptr isn't really a problem as long as you know it's
well-behaved.
-Dave
More information about the cfe-dev
mailing list