[LLVMdev] The mysterious case of the missing GlobalVariables.

Richard Pennington rich at pennware.com
Sat Jul 18 08:20:06 PDT 2009


I've recently been updating my stuff with LLVM TOT with the context 
changes, etc. I'm up to date as of yesterday.

In my environment I do most of the translation in memory:
1. Parse the source file(s).
2. lower to LLVM module(s)
3. bc optimize module(s)
4. bc link module(s)
5. generate a .s file and assemble it
6. link .o's and libraries.

This was working very well until a couple of days ago.
Now, if I do this the assembly file doesn't have the global variable 
definitions, even though the references are there.

Strangely enough, if I stop after bc linking and look at the bc, the 
definitions are there and I can use llc to generate a correct .s file.

Also strangely, If I feed the linked bc file back into the driver and go 
through the optimize/bclink/generate steps, the globals disappear again.

I'm sure I'm missing something stupid. Any ideas?


More information about the llvm-dev mailing list