[llvm] r226173 - Revert Don't create new comdats in CodeGen

Timur Iskhodzhanov timurrrr at google.com
Thu Jan 15 08:42:45 PST 2015


This reverts r226038.  Sorry for not including it in the commit message!
On Thu Jan 15 2015 at 7:18:33 PM Timur Iskhodzhanov <timurrrr at google.com>
wrote:

> Author: timurrrr
> Date: Thu Jan 15 10:14:34 2015
> New Revision: 226173
>
> URL: http://llvm.org/viewvc/llvm-project?rev=226173&view=rev
> Log:
> Revert Don't create new comdats in CodeGen
>
> It breaks AddressSanitizer on Windows.
>
> Added:
>     llvm/trunk/test/CodeGen/ARM/odr_comdat.ll
>       - copied unchanged from r226037, llvm/trunk/test/CodeGen/ARM/
> odr_comdat.ll
>     llvm/trunk/test/CodeGen/X86/odr_comdat.ll
>       - copied unchanged from r226037, llvm/trunk/test/CodeGen/X86/
> odr_comdat.ll
>     llvm/trunk/test/MC/COFF/weak-symbol.ll
>       - copied unchanged from r226037, llvm/trunk/test/MC/COFF/weak-
> symbol.ll
> Modified:
>     llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
>     llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
>     llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
>     llvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp
>     llvm/trunk/test/Bitcode/linkage-types-3.2.ll
>     llvm/trunk/test/CodeGen/ARM/section-name.ll
>     llvm/trunk/test/CodeGen/X86/dllexport-x86_64.ll
>     llvm/trunk/test/CodeGen/X86/dllexport.ll
>     llvm/trunk/test/CodeGen/X86/global-sections.ll
>     llvm/trunk/test/CodeGen/X86/pic_jumptable.ll
>     llvm/trunk/test/MC/COFF/bss_section.ll
>     llvm/trunk/test/MC/COFF/const-gv-with-rel-init.ll
>
> Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> Bitcode/Reader/BitcodeReader.cpp?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
> +++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Thu Jan 15 10:14:34
> 2015
> @@ -156,27 +156,19 @@ static bool ConvertToString(ArrayRef<uin
>    return false;
>  }
>
> -static bool hasImplicitComdat(size_t Val) {
> -  switch (Val) {
> -  default:
> -    return false;
> -  case 1:  // Old WeakAnyLinkage
> -  case 4:  // Old LinkOnceAnyLinkage
> -  case 10: // Old WeakODRLinkage
> -  case 11: // Old LinkOnceODRLinkage
> -    return true;
> -  }
> -}
> -
>  static GlobalValue::LinkageTypes getDecodedLinkage(unsigned Val) {
>    switch (Val) {
>    default: // Map unknown/new linkages to external
>    case 0:
>      return GlobalValue::ExternalLinkage;
> +  case 1:
> +    return GlobalValue::WeakAnyLinkage;
>    case 2:
>      return GlobalValue::AppendingLinkage;
>    case 3:
>      return GlobalValue::InternalLinkage;
> +  case 4:
> +    return GlobalValue::LinkOnceAnyLinkage;
>    case 5:
>      return GlobalValue::ExternalLinkage; // Obsolete DLLImportLinkage
>    case 6:
> @@ -187,6 +179,10 @@ static GlobalValue::LinkageTypes getDeco
>      return GlobalValue::CommonLinkage;
>    case 9:
>      return GlobalValue::PrivateLinkage;
> +  case 10:
> +    return GlobalValue::WeakODRLinkage;
> +  case 11:
> +    return GlobalValue::LinkOnceODRLinkage;
>    case 12:
>      return GlobalValue::AvailableExternallyLinkage;
>    case 13:
> @@ -195,18 +191,6 @@ static GlobalValue::LinkageTypes getDeco
>      return GlobalValue::PrivateLinkage; // Obsolete
> LinkerPrivateWeakLinkage
>    case 15:
>      return GlobalValue::ExternalLinkage; // Obsolete
> LinkOnceODRAutoHideLinkage
> -  case 1: // Old value with implicit comdat.
> -  case 16:
> -    return GlobalValue::WeakAnyLinkage;
> -  case 10: // Old value with implicit comdat.
> -  case 17:
> -    return GlobalValue::WeakODRLinkage;
> -  case 4: // Old value with implicit comdat.
> -  case 18:
> -    return GlobalValue::LinkOnceAnyLinkage;
> -  case 11: // Old value with implicit comdat.
> -  case 19:
> -    return GlobalValue::LinkOnceODRLinkage;
>    }
>  }
>
> @@ -1134,10 +1118,6 @@ std::error_code BitcodeReader::ParseValu
>        Value *V = ValueList[ValueID];
>
>        V->setName(StringRef(ValueName.data(), ValueName.size()));
> -      if (auto *GO = dyn_cast<GlobalObject>(V)) {
> -        if (GO->getComdat() == reinterpret_cast<Comdat *>(1))
> -          GO->setComdat(TheModule->getOrInsertComdat(V->getName()));
> -      }
>        ValueName.clear();
>        break;
>      }
> @@ -2160,8 +2140,7 @@ std::error_code BitcodeReader::ParseModu
>        Ty = cast<PointerType>(Ty)->getElementType();
>
>        bool isConstant = Record[1];
> -      uint64_t RawLinkage = Record[3];
> -      GlobalValue::LinkageTypes Linkage = getDecodedLinkage(RawLinkage);
> +      GlobalValue::LinkageTypes Linkage = getDecodedLinkage(Record[3]);
>        unsigned Alignment = (1 << Record[4]) >> 1;
>        std::string Section;
>        if (Record[5]) {
> @@ -2199,7 +2178,7 @@ std::error_code BitcodeReader::ParseModu
>        if (Record.size() > 10)
>          NewGV->setDLLStorageClass(GetDecodedDLLStorageClass(Record[10]));
>        else
> -        UpgradeDLLImportExportLinkage(NewGV, RawLinkage);
> +        UpgradeDLLImportExportLinkage(NewGV, Record[3]);
>
>        ValueList.push_back(NewGV);
>
> @@ -2207,14 +2186,11 @@ std::error_code BitcodeReader::ParseModu
>        if (unsigned InitID = Record[2])
>          GlobalInits.push_back(std::make_pair(NewGV, InitID-1));
>
> -      if (Record.size() > 11) {
> +      if (Record.size() > 11)
>          if (unsigned ComdatID = Record[11]) {
>            assert(ComdatID <= ComdatList.size());
>            NewGV->setComdat(ComdatList[ComdatID - 1]);
>          }
> -      } else if (hasImplicitComdat(RawLinkage)) {
> -        NewGV->setComdat(reinterpret_cast<Comdat *>(1));
> -      }
>        break;
>      }
>      // FUNCTION:  [type, callingconv, isproto, linkage, paramattr,
> @@ -2238,8 +2214,7 @@ std::error_code BitcodeReader::ParseModu
>
>        Func->setCallingConv(static_cast<CallingConv::ID>(Record[1]));
>        bool isProto = Record[2];
> -      uint64_t RawLinkage = Record[3];
> -      Func->setLinkage(getDecodedLinkage(RawLinkage));
> +      Func->setLinkage(getDecodedLinkage(Record[3]));
>        Func->setAttributes(getAttributes(Record[4]));
>
>        Func->setAlignment((1 << Record[5]) >> 1);
> @@ -2267,16 +2242,13 @@ std::error_code BitcodeReader::ParseModu
>        if (Record.size() > 11)
>          Func->setDLLStorageClass(GetDecodedDLLStorageClass(Record[11]));
>        else
> -        UpgradeDLLImportExportLinkage(Func, RawLinkage);
> +        UpgradeDLLImportExportLinkage(Func, Record[3]);
>
> -      if (Record.size() > 12) {
> +      if (Record.size() > 12)
>          if (unsigned ComdatID = Record[12]) {
>            assert(ComdatID <= ComdatList.size());
>            Func->setComdat(ComdatList[ComdatID - 1]);
>          }
> -      } else if (hasImplicitComdat(RawLinkage)) {
> -        Func->setComdat(reinterpret_cast<Comdat *>(1));
> -      }
>
>        if (Record.size() > 13 && Record[13] != 0)
>          FunctionPrefixes.push_back(std::make_pair(Func, Record[13]-1));
>
> Modified: llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> Bitcode/Writer/BitcodeWriter.cpp?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp (original)
> +++ llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp Thu Jan 15 10:14:34
> 2015
> @@ -480,13 +480,13 @@ static unsigned getEncodedLinkage(const
>    case GlobalValue::ExternalLinkage:
>      return 0;
>    case GlobalValue::WeakAnyLinkage:
> -    return 16;
> +    return 1;
>    case GlobalValue::AppendingLinkage:
>      return 2;
>    case GlobalValue::InternalLinkage:
>      return 3;
>    case GlobalValue::LinkOnceAnyLinkage:
> -    return 18;
> +    return 4;
>    case GlobalValue::ExternalWeakLinkage:
>      return 7;
>    case GlobalValue::CommonLinkage:
> @@ -494,9 +494,9 @@ static unsigned getEncodedLinkage(const
>    case GlobalValue::PrivateLinkage:
>      return 9;
>    case GlobalValue::WeakODRLinkage:
> -    return 17;
> +    return 10;
>    case GlobalValue::LinkOnceODRLinkage:
> -    return 19;
> +    return 11;
>    case GlobalValue::AvailableExternallyLinkage:
>      return 12;
>    }
> @@ -629,7 +629,7 @@ static void WriteModuleInfo(const Module
>                                Log2_32_Ceil(MaxGlobalType+1)));
>      Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1));      //
> Constant.
>      Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));        //
> Initializer.
> -    Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 5));      //
> Linkage.
> +    Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4));      //
> Linkage.
>      if (MaxAlignment == 0)                                      //
> Alignment.
>        Abbv->Add(BitCodeAbbrevOp(0));
>      else {
>
> Modified: llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/
> TargetLoweringObjectFileImpl.cpp?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (original)
> +++ llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Thu Jan 15
> 10:14:34 2015
> @@ -257,7 +257,8 @@ SelectSectionForGlobal(const GlobalValue
>
>    // If this global is linkonce/weak and the target handles this by
> emitting it
>    // into a 'uniqued' section name, create and return the section now.
> -  if ((EmitUniquedSection && !Kind.isCommon()) || GV->hasComdat()) {
> +  if ((GV->isWeakForLinker() || EmitUniquedSection || GV->hasComdat()) &&
> +      !Kind.isCommon()) {
>      StringRef Prefix = getSectionPrefixForGlobal(Kind);
>
>      SmallString<128> Name(Prefix);
> @@ -265,9 +266,12 @@ SelectSectionForGlobal(const GlobalValue
>
>      StringRef Group = "";
>      unsigned Flags = getELFSectionFlags(Kind);
> -    if (const Comdat *C = getELFComdat(GV)) {
> +    if (GV->isWeakForLinker() || GV->hasComdat()) {
> +      if (const Comdat *C = getELFComdat(GV))
> +        Group = C->getName();
> +      else
> +        Group = Name.substr(Prefix.size());
>        Flags |= ELF::SHF_GROUP;
> -      Group = C->getName();
>      }
>
>      return getContext().getELFSection(Name.str(),
> @@ -797,7 +801,7 @@ const MCSection *TargetLoweringObjectFil
>    unsigned Characteristics = getCOFFSectionFlags(Kind);
>    StringRef Name = GV->getSection();
>    StringRef COMDATSymName = "";
> -  if (GV->hasComdat()) {
> +  if ((GV->isWeakForLinker() || GV->hasComdat()) && !Kind.isCommon()) {
>      Selection = getSelectionForCOFF(GV);
>      const GlobalValue *ComdatGV;
>      if (Selection == COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE)
> @@ -844,7 +848,12 @@ SelectSectionForGlobal(const GlobalValue
>    else
>      EmitUniquedSection = TM.getDataSections();
>
> -  if ((EmitUniquedSection && !Kind.isCommon()) || GV->hasComdat()) {
> +  // If this global is linkonce/weak and the target handles this by
> emitting it
> +  // into a 'uniqued' section name, create and return the section now.
> +  // Section names depend on the name of the symbol which is not feasible
> if the
> +  // symbol has private linkage.
> +  if ((GV->isWeakForLinker() || EmitUniquedSection || GV->hasComdat()) &&
> +      !Kind.isCommon()) {
>      const char *Name = getCOFFSectionNameForUniqueGlobal(Kind);
>      unsigned Characteristics = getCOFFSectionFlags(Kind);
>
>
> Modified: llvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/
> XCore/XCoreAsmPrinter.cpp?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp Thu Jan 15 10:14:34
> 2015
> @@ -105,6 +105,7 @@ void XCoreAsmPrinter::emitArrayBound(MCS
>                                                        OutContext));
>      if (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage() ||
>          GV->hasCommonLinkage()) {
> +      // TODO Use COMDAT groups for LinkOnceLinkage
>        OutStreamer.EmitSymbolAttribute(SymGlob, MCSA_Weak);
>      }
>    }
> @@ -139,6 +140,7 @@ void XCoreAsmPrinter::EmitGlobalVariable
>      emitArrayBound(GVSym, GV);
>      OutStreamer.EmitSymbolAttribute(GVSym, MCSA_Global);
>
> +    // TODO Use COMDAT groups for LinkOnceLinkage
>      if (GV->hasWeakLinkage() || GV->hasLinkOnceLinkage() ||
>          GV->hasCommonLinkage())
>        OutStreamer.EmitSymbolAttribute(GVSym, MCSA_Weak);
>
> Modified: llvm/trunk/test/Bitcode/linkage-types-3.2.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> Bitcode/linkage-types-3.2.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/Bitcode/linkage-types-3.2.ll (original)
> +++ llvm/trunk/test/Bitcode/linkage-types-3.2.ll Thu Jan 15 10:14:34 2015
> @@ -33,13 +33,13 @@
>  ; CHECK: @available_externally.var = available_externally constant i32
> 0{{$}}
>
>  @linkonce.var = linkonce constant i32 0
> -; CHECK: @linkonce.var = linkonce constant i32 0, comdat{{$}}
> +; CHECK: @linkonce.var = linkonce constant i32 0{{$}}
>
>  @weak.var = weak constant i32 0
> -; CHECK: @weak.var = weak constant i32 0, comdat{{$}}
> +; CHECK: @weak.var = weak constant i32 0{{$}}
>
>  @linkonce_odr.var = linkonce_odr constant i32 0
> -; CHECK: @linkonce_odr.var = linkonce_odr constant i32 0, comdat{{$}}
> +; CHECK: @linkonce_odr.var = linkonce_odr constant i32 0{{$}}
>
>  @linkonce_odr_auto_hide.var = linkonce_odr_auto_hide constant i32 0
>  ; CHECK: @linkonce_odr_auto_hide.var = constant i32 0{{$}}
> @@ -90,19 +90,19 @@ define available_externally void @availa
>  }
>
>  define linkonce void @linkonce()
> -; CHECK: define linkonce void @linkonce() comdat {
> +; CHECK: define linkonce void @linkonce() {
>  {
>    ret void
>  }
>
>  define weak void @weak()
> -; CHECK: define weak void @weak() comdat {
> +; CHECK: define weak void @weak() {
>  {
>    ret void
>  }
>
>  define linkonce_odr void @linkonce_odr()
> -; CHECK: define linkonce_odr void @linkonce_odr() comdat {
> +; CHECK: define linkonce_odr void @linkonce_odr() {
>  {
>    ret void
>  }
>
> Modified: llvm/trunk/test/CodeGen/ARM/section-name.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> CodeGen/ARM/section-name.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/CodeGen/ARM/section-name.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/section-name.ll Thu Jan 15 10:14:34 2015
> @@ -16,7 +16,7 @@ entry:
>    ret void
>  }
>
> -; CHECK: .text
> +; CHECK: .section .text.test3,"axG",%progbits,test3,comdat
>  ; CHECK: .weak test3
>  ; CHECK: .type test3,%function
>  define linkonce_odr void @test3() {
>
> Modified: llvm/trunk/test/CodeGen/X86/dllexport-x86_64.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> CodeGen/X86/dllexport-x86_64.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/CodeGen/X86/dllexport-x86_64.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/dllexport-x86_64.ll Thu Jan 15 10:14:34
> 2015
> @@ -17,16 +17,19 @@ define dllexport void @f2() unnamed_addr
>         ret void
>  }
>
> +; CHECK: .section .text,"xr",discard,lnk1
>  ; CHECK: .globl lnk1
>  define linkonce_odr dllexport void @lnk1() {
>         ret void
>  }
>
> +; CHECK: .section .text,"xr",discard,lnk2
>  ; CHECK: .globl lnk2
>  define linkonce_odr dllexport void @lnk2() alwaysinline {
>         ret void
>  }
>
> +; CHECK: .section .text,"xr",discard,weak1
>  ; CHECK: .globl weak1
>  define weak_odr dllexport void @weak1() {
>         ret void
> @@ -44,9 +47,11 @@ define weak_odr dllexport void @weak1()
>  ; CHECK: .comm Var3
>  @Var3 = common dllexport global i32 0, align 4
>
> +; CHECK: .section .data,"wd",discard,WeakVar1
>  ; CHECK: .globl WeakVar1
>  @WeakVar1 = weak_odr dllexport global i32 1, align 4
>
> +; CHECK: .section .rdata,"rd",discard,WeakVar2
>  ; CHECK: .globl WeakVar2
>  @WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1
>
>
> Modified: llvm/trunk/test/CodeGen/X86/dllexport.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> CodeGen/X86/dllexport.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/CodeGen/X86/dllexport.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/dllexport.ll Thu Jan 15 10:14:34 2015
> @@ -36,16 +36,19 @@ define dllexport x86_thiscallcc void @th
>         ret void
>  }
>
> +; CHECK: .section .text,"xr",discard,_lnk1
>  ; CHECK: .globl _lnk1
>  define linkonce_odr dllexport void @lnk1() {
>         ret void
>  }
>
> +; CHECK: .section .text,"xr",discard,_lnk2
>  ; CHECK: .globl _lnk2
>  define linkonce_odr dllexport void @lnk2() alwaysinline {
>         ret void
>  }
>
> +; CHECK: .section .text,"xr",discard,_weak1
>  ; CHECK: .globl _weak1
>  define weak_odr dllexport void @weak1() {
>         ret void
> @@ -63,9 +66,11 @@ define weak_odr dllexport void @weak1()
>  ; CHECK: .comm _Var3
>  @Var3 = common dllexport global i32 0, align 4
>
> +; CHECK: .section .data,"wd",discard,_WeakVar1
>  ; CHECK: .globl _WeakVar1
>  @WeakVar1 = weak_odr dllexport global i32 1, align 4
>
> +; CHECK: .section .rdata,"rd",discard,_WeakVar2
>  ; CHECK: .globl _WeakVar2
>  @WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1
>
>
> Modified: llvm/trunk/test/CodeGen/X86/global-sections.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> CodeGen/X86/global-sections.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/CodeGen/X86/global-sections.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/global-sections.ll Thu Jan 15 10:14:34
> 2015
> @@ -85,6 +85,7 @@ define void @F1() {
>  @"foo bar" = linkonce global i32 42
>
>  ; LINUX: .type  "foo bar", at object
> +; LINUX: .section ".data.foo bar","aGw", at progbits,"foo bar",comdat
>  ; LINUX: .weak  "foo bar"
>  ; LINUX: "foo bar":
>
> @@ -97,6 +98,7 @@ define void @F1() {
>  @G6 = weak_odr unnamed_addr constant [1 x i8] c"\01"
>
>  ; LINUX:   .type        G6, at object
> +; LINUX:   .section     .rodata.G6,"aG", at progbits,G6,comdat
>  ; LINUX:   .weak        G6
>  ; LINUX: G6:
>  ; LINUX:   .byte        1
>
> Modified: llvm/trunk/test/CodeGen/X86/pic_jumptable.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> CodeGen/X86/pic_jumptable.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/CodeGen/X86/pic_jumptable.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/pic_jumptable.ll Thu Jan 15 10:14:34 2015
> @@ -10,7 +10,7 @@
>
>  declare void @_Z3bari(i32)
>
> -; CHECK-LINUX: _Z3fooILi1EEvi:
> +; CHECK-LINUX: .text._Z3fooILi1EEvi,"axG", at progbits,_Z3fooILi1EEvi,comdat
>  define linkonce void @_Z3fooILi1EEvi(i32 %Y) nounwind {
>  entry:
>  ; CHECK:       L0$pb
>
> Modified: llvm/trunk/test/MC/COFF/bss_section.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/
> COFF/bss_section.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/MC/COFF/bss_section.ll (original)
> +++ llvm/trunk/test/MC/COFF/bss_section.ll Thu Jan 15 10:14:34 2015
> @@ -5,6 +5,5 @@
>  @"\01?thingy@@3Ufoo@@B" = global %struct.foo zeroinitializer, align 4
>  ; CHECK: .bss
>
> -$thingy_linkonce = comdat any
> - at thingy_linkonce = linkonce_odr global %struct.foo zeroinitializer,
> comdat, align 4
> + at thingy_linkonce = linkonce_odr global %struct.foo zeroinitializer, align
> 4
>  ; CHECK: .section .bss,"wb",discard,_thingy_linkonce
>
> Modified: llvm/trunk/test/MC/COFF/const-gv-with-rel-init.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/
> COFF/const-gv-with-rel-init.ll?rev=226173&r1=226172&r2=226173&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/MC/COFF/const-gv-with-rel-init.ll (original)
> +++ llvm/trunk/test/MC/COFF/const-gv-with-rel-init.ll Thu Jan 15 10:14:34
> 2015
> @@ -8,4 +8,4 @@ define void @f() {
>  ; CHECK:  .section  .CRT$XLB,"rd"
>
>  @weak_array = weak_odr unnamed_addr constant [1 x i8*] [i8* bitcast (void
> ()* @f to i8*)]
> -; CHECK:  .section  .rdata,"rd"
> +; CHECK:  .section  .rdata,"rd",discard,weak_array
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150115/0a586cf2/attachment.html>


More information about the llvm-commits mailing list