[llvm-commits] [llvm] r45848 - in /llvm/trunk/lib/Target: PowerPC/PPCAsmPrinter.cpp PowerPC/PPCTargetAsmInfo.cpp X86/X86AsmPrinter.cpp X86/X86TargetAsmInfo.cpp

Evan Cheng evan.cheng at apple.com
Thu Jan 10 23:47:33 PST 2008


Thanks!

Evan
On Jan 10, 2008, at 5:10 PM, Dale Johannesen wrote:

>
> On Jan 10, 2008, at 4:59 PM, Evan Cheng wrote:
>
>> How about ARM?
>>
>> Evan
>
> Hadn't thought of that, but yeah, I should make the substantiative
> changes there too.
>
>> On Jan 10, 2008, at 4:54 PM, Dale Johannesen wrote:
>>
>>> Author: johannes
>>> Date: Thu Jan 10 18:54:37 2008
>>> New Revision: 45848
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=45848&view=rev
>>> Log:
>>> Weak things initialized to 0 don't go in bss on Darwin.
>>> Cosmetic changes to spacing to match gcc (some dejagnu
>>> tests actually care).
>>>
>>>
>>> Modified:
>>>   llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
>>>   llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
>>>   llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
>>>   llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
>>>
>>> Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ 
>>> PowerPC/PPCAsmPrinter.cpp?rev=45848&r1=45847&r2=45848&view=diff
>>>
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ==================================================================== 
>>> =
>>> --- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original)
>>> +++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Thu Jan 10
>>> 18:54:37 2008
>>> @@ -767,7 +767,7 @@
>>>  case Function::InternalLinkage: return TAI->getTextSection();
>>>  case Function::WeakLinkage:
>>>  case Function::LinkOnceLinkage:
>>> -    return ".section
>>> __TEXT,__textcoal_nt,coalesced,pure_instructions";
>>> +    return "\t.section
>>> __TEXT,__textcoal_nt,coalesced,pure_instructions";
>>>  }
>>> }
>>>
>>> @@ -869,13 +869,13 @@
>>>
>>>  // Prime text sections so they are adjacent.  This reduces the
>>> likelihood a
>>>  // large data or debug section causes a branch to exceed 16M limit.
>>> -  SwitchToTextSection(".section __TEXT,__textcoal_nt,coalesced,"
>>> +  SwitchToTextSection("\t.section __TEXT,__textcoal_nt,coalesced,"
>>>                      "pure_instructions");
>>>  if (TM.getRelocationModel() == Reloc::PIC_) {
>>> -    SwitchToTextSection(".section
>>> __TEXT,__picsymbolstub1,symbol_stubs,"
>>> +    SwitchToTextSection("\t.section
>>> __TEXT,__picsymbolstub1,symbol_stubs,"
>>>                          "pure_instructions,32");
>>>  } else if (TM.getRelocationModel() == Reloc::DynamicNoPIC) {
>>> -    SwitchToTextSection(".section
>>> __TEXT,__symbol_stub1,symbol_stubs,"
>>> +    SwitchToTextSection("\t.section
>>> __TEXT,__symbol_stub1,symbol_stubs,"
>>>                        "pure_instructions,16");
>>>  }
>>>  SwitchToTextSection(TAI->getTextSection());
>>> @@ -917,8 +917,7 @@
>>>
>>>    if (C->isNullValue() && /* FIXME: Verify correct */
>>>        !I->hasSection() &&
>>> -        (I->hasInternalLinkage() || I->hasWeakLinkage() ||
>>> -         I->hasLinkOnceLinkage() || I->hasExternalLinkage())) {
>>> +        (I->hasInternalLinkage() || I->hasExternalLinkage())) {
>>>      if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid
>>> it.
>>>      if (I->hasExternalLinkage()) {
>>>        O << "\t.globl " << name << '\n';
>>> @@ -941,7 +940,7 @@
>>>      case GlobalValue::WeakLinkage:
>>>        O << "\t.globl " << name << '\n'
>>>          << "\t.weak_definition " << name << '\n';
>>> -        SwitchToDataSection(".section
>>> __DATA,__datacoal_nt,coalesced", I);
>>> +        SwitchToDataSection("\t.section
>>> __DATA,__datacoal_nt,coalesced", I);
>>>        break;
>>>      case GlobalValue::AppendingLinkage:
>>>        // FIXME: appending linkage variables should go into a
>>> section of
>>> @@ -1008,7 +1007,7 @@
>>>  if (TM.getRelocationModel() == Reloc::PIC_) {
>>>    for (std::set<std::string>::iterator i = FnStubs.begin(), e =
>>> FnStubs.end();
>>>         i != e; ++i) {
>>> -      SwitchToTextSection(".section
>>> __TEXT,__picsymbolstub1,symbol_stubs,"
>>> +      SwitchToTextSection("\t.section
>>> __TEXT,__picsymbolstub1,symbol_stubs,"
>>>                          "pure_instructions,32");
>>>      EmitAlignment(4);
>>>      O << "L" << *i << "$stub:\n";
>>> @@ -1036,7 +1035,7 @@
>>>  } else {
>>>    for (std::set<std::string>::iterator i = FnStubs.begin(), e =
>>> FnStubs.end();
>>>         i != e; ++i) {
>>> -      SwitchToTextSection(".section
>>> __TEXT,__symbol_stub1,symbol_stubs,"
>>> +      SwitchToTextSection("\t.section
>>> __TEXT,__symbol_stub1,symbol_stubs,"
>>>                          "pure_instructions,16");
>>>      EmitAlignment(4);
>>>      O << "L" << *i << "$stub:\n";
>>>
>>> Modified: llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ 
>>> PowerPC/PPCTargetAsmInfo.cpp?rev=45848&r1=45847&r2=45848&view=diff
>>>
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ==================================================================== 
>>> =
>>> --- llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp (original)
>>> +++ llvm/trunk/lib/Target/PowerPC/PPCTargetAsmInfo.cpp Thu Jan 10
>>> 18:54:37 2008
>>> @@ -53,7 +53,7 @@
>>>  UsedDirective = "\t.no_dead_strip\t";
>>>  WeakDefDirective = "\t.weak_definition ";
>>>  WeakRefDirective = "\t.weak_reference ";
>>> -  HiddenDirective = "\t.private_extern\t";
>>> +  HiddenDirective = "\t.private_extern ";
>>>  SupportsExceptionHandling = true;
>>>  NeedsIndirectEncoding = true;
>>>  NeedsSet = true;
>>>
>>> Modified: llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ 
>>> X86/X86AsmPrinter.cpp?rev=45848&r1=45847&r2=45848&view=diff
>>>
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ==================================================================== 
>>> =
>>> --- llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (original)
>>> +++ llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp Thu Jan 10 18:54:37
>>> 2008
>>> @@ -173,7 +173,7 @@
>>>    if (C->isNullValue() && !I->hasSection()) {
>>>      if (I->hasExternalLinkage()) {
>>>        if (const char *Directive = TAI->getZeroFillDirective()) {
>>> -          O << "\t.globl\t" << name << "\n";
>>> +          O << "\t.globl " << name << "\n";
>>>          O << Directive << "__DATA__, __common, " << name << ", "
>>>            << Size << ", " << Align << "\n";
>>>          continue;
>>> @@ -181,8 +181,9 @@
>>>      }
>>>
>>>      if (!I->isThreadLocal() &&
>>> -          (I->hasInternalLinkage() || I->hasWeakLinkage() ||
>>> -           I->hasLinkOnceLinkage())) {
>>> +          (I->hasInternalLinkage() ||
>>> +           (!Subtarget->isTargetDarwin() &&
>>> +            (I->hasWeakLinkage() || I->hasLinkOnceLinkage())))) {
>>>        if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined,
>>> avoid it.
>>>        if (!NoZerosInBSS && TAI->getBSSSection())
>>>          SwitchToDataSection(TAI->getBSSSection(), I);
>>> @@ -218,9 +219,9 @@
>>>    case GlobalValue::LinkOnceLinkage:
>>>    case GlobalValue::WeakLinkage:
>>>      if (Subtarget->isTargetDarwin()) {
>>> -        O << "\t.globl\t" << name << "\n"
>>> +        O << "\t.globl " << name << "\n"
>>>          << TAI->getWeakDefDirective() << name << "\n";
>>> -        SwitchToDataSection(".section
>>> __DATA,__const_coal,coalesced", I);
>>> +        SwitchToDataSection("\t.section
>>> __DATA,__datacoal_nt,coalesced", I);
>>>      } else if (Subtarget->isTargetCygMing()) {
>>>        std::string SectionName(".section\t.data$linkonce." +
>>>                                name +
>>> @@ -244,7 +245,7 @@
>>>      // their name or something.  For now, just emit them as
>>> external.
>>>    case GlobalValue::ExternalLinkage:
>>>      // If external or appending, declare as a global symbol
>>> -      O << "\t.globl\t" << name << "\n";
>>> +      O << "\t.globl " << name << "\n";
>>>      // FALL THROUGH
>>>    case GlobalValue::InternalLinkage: {
>>>      if (I->isConstant()) {
>>> @@ -348,7 +349,7 @@
>>>    unsigned j = 1;
>>>    for (std::set<std::string>::iterator i = FnStubs.begin(), e =
>>> FnStubs.end();
>>>         i != e; ++i, ++j) {
>>> -      SwitchToDataSection(".section
>>> __IMPORT,__jump_table,symbol_stubs,"
>>> +      SwitchToDataSection("\t.section
>>> __IMPORT,__jump_table,symbol_stubs,"
>>>                          "self_modifying_code+pure_instructions,5",
>>> 0);
>>>      O << "L" << *i << "$stub:\n";
>>>      O << "\t.indirect_symbol " << *i << "\n";
>>> @@ -369,7 +370,7 @@
>>>    // Output stubs for external and common global variables.
>>>    if (!GVStubs.empty())
>>>      SwitchToDataSection(
>>> -                    ".section
>>> __IMPORT,__pointers,non_lazy_symbol_pointers");
>>> +                    "\t.section
>>> __IMPORT,__pointers,non_lazy_symbol_pointers");
>>>    for (std::set<std::string>::iterator i = GVStubs.begin(), e =
>>> GVStubs.end();
>>>         i != e; ++i) {
>>>      O << "L" << *i << "$non_lazy_ptr:\n";
>>>
>>> Modified: llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ 
>>> X86/X86TargetAsmInfo.cpp?rev=45848&r1=45847&r2=45848&view=diff
>>>
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ==================================================================== 
>>> =
>>> --- llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp (original)
>>> +++ llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp Thu Jan 10
>>> 18:54:37 2008
>>> @@ -78,7 +78,7 @@
>>>    UsedDirective = "\t.no_dead_strip\t";
>>>    WeakDefDirective = "\t.weak_definition ";
>>>    WeakRefDirective = "\t.weak_reference ";
>>> -    HiddenDirective = "\t.private_extern\t";
>>> +    HiddenDirective = "\t.private_extern ";
>>>
>>>    // In non-PIC modes, emit a special label before jump tables so
>>> that the
>>>    // linker can perform more accurate dead code stripping.
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> 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