[LLVMdev] Create target with alternate syntax for globals?
geek4civic at gmail.com
Sat Sep 8 17:50:01 PDT 2012
2012/9/9 ryan baird <ryanrbaird at gmail.com>:
> I'm working on building a target for llvm that's the intermediate language
> of another compiler, so that the other compiler can benifit from llvm's
> optimization passes.
> I essentially made a copy of the mips backend, and then started changing the
> output to match the intermediate language of the compiler. Most of the
> output can be overriden, but I haven't figured out how to change the way
> globals are emitted.
> The AsmPrinter::EmitGlobalVariable function in the
> llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp file is not virtual; if I try to
> override it, I get a "multiple definitions" error. To emit the global, it
> just calls the OutputStreamer.EmitCommonSymbol method. Again, this has
> become a problem because I don't want the default output for global symbols.
> If I can't override this method, how can I change the way that my target
> outputs globals variables?
On which version are you working? I can see, since r93858;
Author: Chris Lattner <sabre at nondot.org>
Date: Tue Jan 19 14:38:33 2010
+ virtual void EmitGlobalVariable(const GlobalVariable *GV);
It seems XCoreAsmPrinter overrides some methods.
More information about the llvm-dev