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@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits >> >> _______________________________________________ >> llvm-commits mailing list >> llvm-commits@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits