[LLVMdev] Localizing Globals ?
sanjiv.gupta at microchip.com
Tue Jun 16 08:38:54 PDT 2009
Eli Friedman wrote:
> On Tue, Jun 16, 2009 at 2:35 AM, Sanjiv Gupta<sanjiv.gupta at microchip.com> wrote:
>> What if my global variable was into a different address space than stack?
> It doesn't matter in terms of semantics: because AnalyzeGlobal
> returned false, we're guaranteed the address of the global is never
> taken. I wouldn't be surprised if we end up generating invalid IR in
> some cases, though, because of the semantics of replaceAllUsesWith.
> Do you have a testcase that breaks?
I do not really have a test case. I came across this when llvm-ld
crashed while working with the debug information after such optimization.
>> How do I deny this optimization in that case? Can I find address space
>> for stack from AllocaInst and then compare the address spaces for two?
> An alloca is guaranteed to be in address space zero, so you can just
> check something like "GV->getType()->getAddressSpace() == 0".
As you should, this check shouldn't be required semantically as the
address is never taken, I would like to investigate more as to why
llvm-ld crashed on the debug info.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev