[LLVMdev] Print Global Prefix Issue

Jan Tlatlik jtlatlik at techfak.uni-bielefeld.de
Sat Mar 30 08:39:46 PDT 2013


On 03/30/2013 12:42 AM, Jan Tlatlik wrote:
>> Hey,
>>
>> I have an odd problem with printing prefixed global symbols in my
>> AsmPrinter.
>>
>> In my MCAsmInfo subclass implementation, I set
>>
>>     GlobalPrefix = "%";
>>
>>
>> because my assembler needs this to avoid name collisions.
>> Now, whenever a global symbol (be it a label, mbb operand ,etc.) gets
>> printed, it is encapsulated in quotes.
>> With other chars than '%' everything is okay...
>>
>> I also explicitly set AllowQuotesInName = false (which should be the
>> default).
>>
Okay, I managed to find out that in MCSymbol all symbol names with chars
containting not one of the following get quoted (independently of the
AllowQuotesInName setting):

static bool isAcceptableChar(char C) {
  if ((C < 'a' || C > 'z') &&
      (C < 'A' || C > 'Z') &&
      (C < '0' || C > '9') &&
      C != '_' && C != '$' && C != '.' && C != '@')
    return false;
  return true;
}

If I add C!='%' there, it works fine for me. But, isn't there any way to
do this in a target-only manner, like overriding that existing
implementation in a subclass?

Jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130330/55673cb9/attachment.html>


More information about the llvm-dev mailing list