On 08/29/2011 12:41 AM, Pekka Enberg wrote:
Right. Will the "link time constant" 'struct symbol' be part of the symbol_list? If it is, then we already do LLVMAddGlobal in output_data() on it and could probably just stash that into a ->priv member in 'struct symbol' and use that in pseudo_to_value().
The link time constant is a LLVMValueRef, it is just the address of the symbol. Yes, it will belong to the function scope's symbol_list but not necessary the global one. Here is some tips that help me a lot on my own llvm branch, which lost due to a hard
drive crash. It was able to do hello world back then. LLVM can output c++ source code that construct the llvm byte code. # this will emit hello.s as the llvm asm code $ clang -S -emit-llvm hello.c # this will generate hello.s.cpp which is the c++ source code to construct # the llvm byte code above $ llc -march=cpp hello.s The hello.s.cpp is a very good reference to build the llvm byte code in C. It is in C++, but convert to llvm C binding should be easy. BTW, "-march=c" does not generate C bindings, it generate the equivalent IR in C code instead. Hope that helps. Chris -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html