[LLVMdev] Create target with alternate syntax for globals?

ryan baird ryanrbaird at gmail.com
Sat Sep 8 08:58:30 PDT 2012


Update for anyone else that comes across this: You have to register an ASM
streamer, and overide the EditCommonSymbol method.

On Sat, Sep 8, 2012 at 9:07 AM, ryan baird <ryanrbaird at gmail.com> wrote:

> 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?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120908/36935579/attachment.html>


More information about the llvm-dev mailing list