[llvm-commits] [llvm] r80427 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Bill Wendling isanbard at gmail.com
Sat Aug 29 17:29:05 PDT 2009


Sounds good to me. Doned. :-)

-bw

On Aug 29, 2009, at 5:21 PM, Chris Lattner wrote:

> On Aug 29, 2009, at 5:17 AM, Bill Wendling wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=80427&view=rev
>> Log:
>> Add a form of EOL which emits the text version of a DWARF format  
>> encoding. This
>> doesn't handle all values of the formatting. Those can be added as  
>> needed.
>
> Ok, please don't add the std::string version though.  Callers can  
> just call .cstr() if they need to.  I'd like to eventually stomp out  
> the std::strings in the asmprinter, and this makes it easier to find  
> them.
>
> Thanks Bill!
>
> -Chris
>
>>
>> Modified:
>>   llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
>>   llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>>
>> Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h?rev=80427&r1=80426&r2=80427&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
>> +++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Sat Aug 29  
>> 07:17:53 2009
>> @@ -268,7 +268,9 @@
>>    void EOL() const;
>>    void EOL(const std::string &Comment) const;
>>    void EOL(const char* Comment) const;
>> -
>> +    void EOL(const std::string &Comment, unsigned Encoding) const;
>> +    void EOL(const char *Comment, unsigned Encoding) const;
>> +
>>    /// EmitULEB128Bytes - Emit an assembler byte data directive to  
>> compose an
>>    /// unsigned leb128 value.
>>    void EmitULEB128Bytes(unsigned Value) const;
>>
>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=80427&r1=80426&r2=80427&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Sat Aug 29  
>> 07:17:53 2009
>> @@ -604,6 +604,56 @@
>>  O << '\n';
>> }
>>
>> +static const char *DecodeDWARFEncoding(unsigned Encoding) {
>> +  switch (Encoding) {
>> +  case dwarf::DW_EH_PE_absptr:
>> +    return "absptr";
>> +  case dwarf::DW_EH_PE_omit:
>> +    return "omit";
>> +  case dwarf::DW_EH_PE_pcrel:
>> +    return "pcrel";
>> +  case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata4:
>> +    return "pcrel udata4";
>> +  case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4:
>> +    return "pcrel sdata4";
>> +  case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata8:
>> +    return "pcrel udata8";
>> +  case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata8:
>> +    return "pcrel sdata8";
>> +  case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | 
>> dwarf::DW_EH_PE_udata4:
>> +    return "indirect pcrel udata4";
>> +  case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | 
>> dwarf::DW_EH_PE_sdata4:
>> +    return "indirect pcrel sdata4";
>> +  case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | 
>> dwarf::DW_EH_PE_udata8:
>> +    return "indirect pcrel udata8";
>> +  case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel | 
>> dwarf::DW_EH_PE_sdata8:
>> +    return "indirect pcrel sdata8";
>> +  }
>> +
>> +  return 0;
>> +}
>> +
>> +void AsmPrinter::EOL(const std::string &Comment, unsigned  
>> Encoding) const {
>> +  if (VerboseAsm && !Comment.empty()) {
>> +    EOL(Comment.c_str(), Encoding);
>> +    return;
>> +  }
>> +  O << '\n';
>> +}
>> +
>> +void AsmPrinter::EOL(const char *Comment, unsigned Encoding) const {
>> +  if (VerboseAsm && *Comment) {
>> +    O.PadToColumn(MAI->getCommentColumn());
>> +    O << MAI->getCommentString()
>> +      << ' '
>> +      << Comment;
>> +
>> +    if (const char *EncStr = DecodeDWARFEncoding(Encoding))
>> +      O << " (" << EncStr << ')';
>> +  }
>> +  O << '\n';
>> +}
>> +
>> /// EmitULEB128Bytes - Emit an assembler byte data directive to  
>> compose an
>> /// unsigned leb128 value.
>> void AsmPrinter::EmitULEB128Bytes(unsigned Value) const {
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list