[LLVMdev] [LLVM, llvm-mc, AsmParser] Symbol locations.

Stepan Dyatkovskiy STPWORLD at yandex.ru
Thu Sep 8 14:41:50 PDT 2011


I mean "not so trivial" sorry )

Stepan.

09.09.2011, 00:35, "Stepan Dyatkovskiy" <STPWORLD at narod.ru>:
> Now I see, that its to so trivial as I thought before. There are a lots of parser extensions that creates the symbols. And in each place we need insert add its location info. I also found that MCContext has several create symbols methods, but all these methods uses CreateSymbol private method.
> So I see two possible ways here:
> 1. To aggregate all GetOrCreate-like symbol methods inside the AsmParser. So all asm parser extension like a COFFAsmParser should use aggregated methods instead of MCContext ones. And inside the aggregated methods we can add symbol location info.
> 2. Add create-symbol event to the MCContext. So each time when symbol will created by the MCContext::CreateSymbol this event will be fired. We can process this event by adding symbol location info to some AsmParser internal table for example.
>
> --
> Stepan
>
> 08.09.2011, 15:23, "Stepan Dyatkovskiy" <STPWORLD at yandex.ru>:
>> Hi everybody. I found that there are some problems with symbol location in AsmParser.
>> 1. We need to know where symbol was declared.
>> 2. We need to know where symbol was defined first time.
>>
>> There are two ways:
>> 1. Add helper table to the parser with additional symbol info. But it takes additional memory consumption.
>> 2. Add user tag (void*) for MCSymbol object. As I understood MCSymbol can live without asm sources, so we can't add info field directly. But the user tags is pretty common practice for this cases.
>>
>> So, what are you think about it?
>>
>> Stepan
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



More information about the llvm-dev mailing list