Revert r107205 and r107207.
authorBill Wendling <isanbard@gmail.com>
Tue, 29 Jun 2010 22:34:52 +0000 (22:34 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 29 Jun 2010 22:34:52 +0000 (22:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107215 91177308-0d34-0410-b5e6-96231b3b80d8

26 files changed:
bindings/ada/llvm/llvm.ads
docs/LangRef.html
include/llvm-c/Core.h
include/llvm/CodeGen/AsmPrinter.h
include/llvm/CodeGen/MachineFunction.h
include/llvm/GlobalValue.h
include/llvm/MC/MCAsmInfo.h
include/llvm/Target/Mangler.h
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/MachineFunction.cpp
lib/CodeGen/TargetLoweringObjectFileImpl.cpp
lib/Linker/LinkModules.cpp
lib/MC/MCAsmInfo.cpp
lib/MC/MCAsmInfoDarwin.cpp
lib/Target/CppBackend/CPPBackend.cpp
lib/Target/Mangler.cpp
lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp
lib/Transforms/IPO/MergeFunctions.cpp
lib/VMCore/AsmWriter.cpp
lib/VMCore/Core.cpp
tools/llvm-nm/llvm-nm.cpp

index a41451b94b71d896733a83370f401544785f5967..d9820f11491040f6e26f7e6f0e47301c854d3b28 100644 (file)
@@ -316,8 +316,7 @@ package llvm is
       LLVMExternalWeakLinkage,
       LLVMGhostLinkage,
       LLVMCommonLinkage,
-      LLVMLinkerPrivateLinkage,
-      LLVMLinkerWeakLinkage);
+      LLVMLinkerPrivateLinkage);
 
    for LLVMLinkage use
      (LLVMExternalLinkage            => 0,
@@ -334,8 +333,7 @@ package llvm is
       LLVMExternalWeakLinkage        => 11,
       LLVMGhostLinkage               => 12,
       LLVMCommonLinkage              => 13,
-      LLVMLinkerPrivateLinkage       => 14,
-      LLVMLinkerWeakLinkage          => 15);
+      LLVMLinkerPrivateLinkage       => 14);
 
    pragma Convention (C, LLVMLinkage);
 
index 1158a5760d884c72d6702ce185bbc801638fc7ea..32f143a93ae236ddca7c1e74b5eda46175af0b4f 100644 (file)
@@ -24,7 +24,6 @@
         <ol>
           <li><a href="#linkage_private">'<tt>private</tt>' Linkage</a></li>
           <li><a href="#linkage_linker_private">'<tt>linker_private</tt>' Linkage</a></li>
-          <li><a href="#linkage_linker_weak">'<tt>linker_weak</tt>' Linkage</a></li>
           <li><a href="#linkage_internal">'<tt>internal</tt>' Linkage</a></li>
           <li><a href="#linkage_available_externally">'<tt>available_externally</tt>' Linkage</a></li>
           <li><a href="#linkage_linkonce">'<tt>linkonce</tt>' Linkage</a></li>
@@ -547,31 +546,23 @@ define i32 @main() {                                        <i>; i32()* </i>
 
 <dl>
   <dt><tt><b><a name="linkage_private">private</a></b></tt></dt>
-  <dd>Global values with "<tt>private</tt>" linkage are only directly accessible
-      by objects in the current module.  In particular, linking code into a
-      module with an private global value may cause the private to be renamed as
-      necessary to avoid collisions.  Because the symbol is private to the
-      module, all references can be updated. This doesn't show up in any symbol
-      table in the object file.</dd>
+  <dd>Global values with private linkage are only directly accessible by objects
+      in the current module.  In particular, linking code into a module with an
+      private global value may cause the private to be renamed as necessary to
+      avoid collisions.  Because the symbol is private to the module, all
+      references can be updated. This doesn't show up in any symbol table in the
+      object file.</dd>
 
   <dt><tt><b><a name="linkage_linker_private">linker_private</a></b></tt></dt>
-  <dd>Similar to <tt>private</tt>, but the symbol is passed through the
-      assembler and removed by the linker after evaluation.  Note that (unlike
-      <tt>private</tt> symbols) <tt>linker_private</tt> symbols are subject to
-      coalescing by the linker: weak symbols get merged and redefinitions are
-      rejected.  However, unlike normal strong symbols, they are removed by the
-      linker from the final linked image (executable or dynamic library).
-      This is currently only used for Objective-C metadata.</dd>
-
-  <dt><tt><b><a name="linkage_linker_weak">linker_weak</a></b></tt></dt>
-  <dd>Global values with "<tt>linker_weak</tt>" linkage are given weak linkage,
-      but are removed by the linker after evaluation. Unlike normal weak
-      symbols, linker weak symbols are removed by the linker from the linal
-      linked image (executable or dynamic library). This is currently only used
-      for Objective-C metadata.</dd>
+  <dd>Similar to private, but the symbol is passed through the assembler and
+      removed by the linker after evaluation.  Note that (unlike private
+      symbols) linker_private symbols are subject to coalescing by the linker:
+      weak symbols get merged and redefinitions are rejected.  However, unlike
+      normal strong symbols, they are removed by the linker from the final
+      linked image (executable or dynamic library).</dd>
 
   <dt><tt><b><a name="linkage_internal">internal</a></b></tt></dt>
-  <dd>Similar to <tt>private</tt>, but the value shows as a local symbol
+  <dd>Similar to private, but the value shows as a local symbol
       (<tt>STB_LOCAL</tt> in the case of ELF) in the object file. This
       corresponds to the notion of the '<tt>static</tt>' keyword in C.</dd>
 
index 23b4f83528e2bee28a3ccc4c928ff99f8bf246f3..d665c89377f43b8466ff1beeb6e4bdd8a4707099 100644 (file)
@@ -226,8 +226,7 @@ typedef enum {
   LLVMExternalWeakLinkage,/**< ExternalWeak linkage description */
   LLVMGhostLinkage,       /**< Obsolete */
   LLVMCommonLinkage,      /**< Tentative definitions */
-  LLVMLinkerPrivateLinkage, /**< Like private, but linker removes. */
-  LLVMLinkerWeakLinkage   /**< Like linker private, but weak. */
+  LLVMLinkerPrivateLinkage /**< Like Private, but linker removes. */
 } LLVMLinkage;
 
 typedef enum {
index 32679b5374aeeb7ded5395d94febec056584b10d..243ddbb5da342d98d339dc378127b8d7e82f670f 100644 (file)
@@ -285,7 +285,7 @@ namespace llvm {
     MCSymbol *GetCPISymbol(unsigned CPID) const;
 
     /// GetJTISymbol - Return the symbol for the specified jump table entry.
-    MCSymbol *GetJTISymbol(unsigned JTID, bool PassToLinker = false) const;
+    MCSymbol *GetJTISymbol(unsigned JTID, bool isLinkerPrivate = false) const;
 
     /// GetJTSetSymbol - Return the symbol for the specified jump table .set
     /// FIXME: privatize to AsmPrinter.
index ce8785857e97d76a0cab9f07ade73c5c09c25ca7..409d13ee3fc5c19edf225c54bab7b2774d84d2e0 100644 (file)
@@ -402,10 +402,10 @@ public:
   //
   
   /// getJTISymbol - Return the MCSymbol for the specified non-empty jump table.
-  /// If PassToLinker is specified, an 'l' label is returned, otherwise a normal
-  /// 'L' label is returned.
-  MCSymbol *getJTISymbol(unsigned JTI, MCContext &Ctx,
-                         bool PassToLinker = false) const;
+  /// If isLinkerPrivate is specified, an 'l' label is returned, otherwise a
+  /// normal 'L' label is returned.
+  MCSymbol *getJTISymbol(unsigned JTI, MCContext &Ctx, 
+                         bool isLinkerPrivate = false) const;
 };
 
 //===--------------------------------------------------------------------===//
index 5132d395ef10f8f399f3b2a0ac983b05b81d8bd0..658967d81a344c2a5c0079a76723e1c900cc9e04 100644 (file)
@@ -39,8 +39,7 @@ public:
     AppendingLinkage,   ///< Special purpose, only applies to global arrays
     InternalLinkage,    ///< Rename collisions when linking (static functions).
     PrivateLinkage,     ///< Like Internal, but omit from symbol table.
-    LinkerPrivateLinkage, ///< Like private, but linker removes.
-    LinkerWeakLinkage,  ///< Like linker private, but weak.
+    LinkerPrivateLinkage, ///< Like Private, but linker removes.
     DLLImportLinkage,   ///< Function to be imported from DLL
     DLLExportLinkage,   ///< Function to be accessible from DLL.
     ExternalWeakLinkage,///< ExternalWeak linkage description.
@@ -133,10 +132,7 @@ public:
     return Linkage == PrivateLinkage;
   }
   static bool isLinkerPrivateLinkage(LinkageTypes Linkage) {
-    return Linkage == LinkerPrivateLinkage;
-  }
-  static bool isLinkerWeakLinkage(LinkageTypes Linkage) {
-    return Linkage == LinkerWeakLinkage;
+    return Linkage==LinkerPrivateLinkage;
   }
   static bool isLocalLinkage(LinkageTypes Linkage) {
     return isInternalLinkage(Linkage) || isPrivateLinkage(Linkage) ||
@@ -191,7 +187,6 @@ public:
   bool hasInternalLinkage() const { return isInternalLinkage(Linkage); }
   bool hasPrivateLinkage() const { return isPrivateLinkage(Linkage); }
   bool hasLinkerPrivateLinkage() const { return isLinkerPrivateLinkage(Linkage); }
-  bool hasLinkerWeakLinkage() const { return isLinkerWeakLinkage(Linkage); }
   bool hasLocalLinkage() const { return isLocalLinkage(Linkage); }
   bool hasDLLImportLinkage() const { return isDLLImportLinkage(Linkage); }
   bool hasDLLExportLinkage() const { return isDLLExportLinkage(Linkage); }
index b76be03fc6c3685fc96e5b023cdcdd39515080f1..8516de0188d65b76c3fcb52bf8cf4fad8afaef17 100644 (file)
@@ -85,11 +85,6 @@ namespace llvm {
     /// be passed through the assembler but be removed by the linker.  This
     /// is "l" on Darwin, currently used for some ObjC metadata.
     const char *LinkerPrivateGlobalPrefix;   // Defaults to ""
-
-    /// LinkerWeakGlobalPrefix - This prefix is used for symbols that are marked
-    /// "weak" and should be passed through the assembler, but be removed by the
-    /// linker.  This is "l" on Darwin, currently used for some ObjC metadata.
-    const char *LinkerWeakGlobalPrefix;      // Defaults to ""
     
     /// InlineAsmStart/End - If these are nonempty, they contain a directive to
     /// emit before and after an inline assembly statement.
@@ -340,9 +335,6 @@ namespace llvm {
     const char *getLinkerPrivateGlobalPrefix() const {
       return LinkerPrivateGlobalPrefix;
     }
-    const char *getLinkerWeakGlobalPrefix() const {
-      return LinkerWeakGlobalPrefix;
-    }
     const char *getInlineAsmStart() const {
       return InlineAsmStart;
     }
index 167253e2714c3a921fc3fb4c6bc8008932fb8b41..a9f3576559d49b570753c42960a7316eab6d04a4 100644 (file)
@@ -32,8 +32,7 @@ public:
   enum ManglerPrefixTy {
     Default,               ///< Emit default string before each symbol.
     Private,               ///< Emit "private" prefix before each symbol.
-    LinkerPrivate,         ///< Emit "linker private" prefix before each symbol.
-    LinkerWeak             ///< Emit "linker weak" prefix before each symbol.
+    LinkerPrivate          ///< Emit "linker private" prefix before each symbol.
   };
 
 private:
index 3e8414af452f66ab230865a8958fe6715f1429d4..9b4370fbb4ed391b7f4623b065785acdc404d1d7 100644 (file)
@@ -492,7 +492,6 @@ lltok::Kind LLLexer::LexIdentifier() {
 
   KEYWORD(private);
   KEYWORD(linker_private);
-  KEYWORD(linker_weak);
   KEYWORD(internal);
   KEYWORD(available_externally);
   KEYWORD(linkonce);
index 9a9bd122692b5f7390f56b92d1e29998957aecf1..1cd66e536ea788c990114aec04698b0a54b182ed 100644 (file)
@@ -198,7 +198,6 @@ bool LLParser::ParseTopLevelEntities() {
     //               OptionalAddrSpace ('constant'|'global') ...
     case lltok::kw_private :       // OptionalLinkage
     case lltok::kw_linker_private: // OptionalLinkage
-    case lltok::kw_linker_weak:    // OptionalLinkage
     case lltok::kw_internal:       // OptionalLinkage
     case lltok::kw_weak:           // OptionalLinkage
     case lltok::kw_weak_odr:       // OptionalLinkage
@@ -630,8 +629,7 @@ bool LLParser::ParseAlias(const std::string &Name, LocTy NameLoc,
       Linkage != GlobalValue::WeakODRLinkage &&
       Linkage != GlobalValue::InternalLinkage &&
       Linkage != GlobalValue::PrivateLinkage &&
-      Linkage != GlobalValue::LinkerPrivateLinkage &&
-      Linkage != GlobalValue::LinkerWeakLinkage)
+      Linkage != GlobalValue::LinkerPrivateLinkage)
     return Error(LinkageLoc, "invalid linkage type for alias");
 
   Constant *Aliasee;
@@ -1015,7 +1013,6 @@ bool LLParser::ParseOptionalAttrs(unsigned &Attrs, unsigned AttrKind) {
 ///   ::= /*empty*/
 ///   ::= 'private'
 ///   ::= 'linker_private'
-///   ::= 'linker_weak'
 ///   ::= 'internal'
 ///   ::= 'weak'
 ///   ::= 'weak_odr'
@@ -1033,7 +1030,6 @@ bool LLParser::ParseOptionalLinkage(unsigned &Res, bool &HasLinkage) {
   default:                       Res=GlobalValue::ExternalLinkage; return false;
   case lltok::kw_private:        Res = GlobalValue::PrivateLinkage;       break;
   case lltok::kw_linker_private: Res = GlobalValue::LinkerPrivateLinkage; break;
-  case lltok::kw_linker_weak:    Res = GlobalValue::LinkerWeakLinkage;    break;
   case lltok::kw_internal:       Res = GlobalValue::InternalLinkage;      break;
   case lltok::kw_weak:           Res = GlobalValue::WeakAnyLinkage;       break;
   case lltok::kw_weak_odr:       Res = GlobalValue::WeakODRLinkage;       break;
@@ -2708,7 +2704,6 @@ bool LLParser::ParseFunctionHeader(Function *&Fn, bool isDefine) {
     break;
   case GlobalValue::PrivateLinkage:
   case GlobalValue::LinkerPrivateLinkage:
-  case GlobalValue::LinkerWeakLinkage:
   case GlobalValue::InternalLinkage:
   case GlobalValue::AvailableExternallyLinkage:
   case GlobalValue::LinkOnceAnyLinkage:
index 9430f5d43cfa1e21691b24b26035444ed65a11be..5eed170908836296e76f0b488af89f087016e051 100644 (file)
@@ -37,9 +37,8 @@ namespace lltok {
     kw_declare, kw_define,
     kw_global,  kw_constant,
 
-    kw_private, kw_linker_private, kw_linker_weak, kw_internal, kw_linkonce,
-    kw_linkonce_odr, kw_weak, kw_weak_odr, kw_appending, kw_dllimport,
-    kw_dllexport, kw_common,
+    kw_private, kw_linker_private, kw_internal, kw_linkonce, kw_linkonce_odr,
+    kw_weak, kw_weak_odr, kw_appending, kw_dllimport, kw_dllexport, kw_common,
     kw_available_externally,
     kw_default, kw_hidden, kw_protected,
     kw_extern_weak,
index 71efeff4d3b6c5aedb2c1b8a5177573e3a94c9b7..a252da26f1d07e0b616c21c3e35d7367821c44b4 100644 (file)
@@ -75,7 +75,6 @@ static GlobalValue::LinkageTypes GetDecodedLinkage(unsigned Val) {
   case 11: return GlobalValue::LinkOnceODRLinkage;
   case 12: return GlobalValue::AvailableExternallyLinkage;
   case 13: return GlobalValue::LinkerPrivateLinkage;
-  case 14: return GlobalValue::LinkerWeakLinkage;
   }
 }
 
index 4655a65e195ff339ba9929cb1fe91ab644136df2..cdeb854d7d1f77f0d07e78bf5bd163c596cd4703 100644 (file)
@@ -313,7 +313,6 @@ static unsigned getEncodedLinkage(const GlobalValue *GV) {
   case GlobalValue::LinkOnceODRLinkage:         return 11;
   case GlobalValue::AvailableExternallyLinkage: return 12;
   case GlobalValue::LinkerPrivateLinkage:       return 13;
-  case GlobalValue::LinkerWeakLinkage:          return 14;
   }
 }
 
index 99187a105714022324dd67510bcc53d9999c5784..9d060f8f05124f3fc93cdbea6ae44950d3eec05d 100644 (file)
@@ -199,7 +199,6 @@ void AsmPrinter::EmitLinkage(unsigned Linkage, MCSymbol *GVSym) const {
   case GlobalValue::LinkOnceODRLinkage:
   case GlobalValue::WeakAnyLinkage:
   case GlobalValue::WeakODRLinkage:
-  case GlobalValue::LinkerWeakLinkage:
   case GlobalValue::LinkerPrivateLinkage:
     if (MAI->getWeakDefDirective() != 0) {
       // .globl _foo
@@ -1625,8 +1624,8 @@ MCSymbol *AsmPrinter::GetCPISymbol(unsigned CPID) const {
 }
 
 /// GetJTISymbol - Return the symbol for the specified jump table entry.
-MCSymbol *AsmPrinter::GetJTISymbol(unsigned JTID, bool PassToLinker) const {
-  return MF->getJTISymbol(JTID, OutContext, PassToLinker);
+MCSymbol *AsmPrinter::GetJTISymbol(unsigned JTID, bool isLinkerPrivate) const {
+  return MF->getJTISymbol(JTID, OutContext, isLinkerPrivate);
 }
 
 /// GetJTSetSymbol - Return the symbol for the specified jump table .set
index c84c31ec10ae94232cb12b20c2416f268505fbb8..a38c881982e77f5a07114a1155091bd07b061130 100644 (file)
@@ -410,18 +410,17 @@ unsigned MachineFunction::addLiveIn(unsigned PReg,
 }
 
 /// getJTISymbol - Return the MCSymbol for the specified non-empty jump table.
-/// If isLinkerPrivate or isLinkerWeak is specified, an 'l' label is returned,
-/// otherwise a normal 'L' label is returned.
-MCSymbol *MachineFunction::getJTISymbol(unsigned JTI, MCContext &Ctx,
-                                        bool PassToLinker) const {
+/// If isLinkerPrivate is specified, an 'l' label is returned, otherwise a
+/// normal 'L' label is returned.
+MCSymbol *MachineFunction::getJTISymbol(unsigned JTI, MCContext &Ctx, 
+                                        bool isLinkerPrivate) const {
   assert(JumpTableInfo && "No jump tables");
   
   assert(JTI < JumpTableInfo->getJumpTables().size() && "Invalid JTI!");
   const MCAsmInfo &MAI = *getTarget().getMCAsmInfo();
   
-  const char *Prefix = PassToLinker ?
-    MAI.getLinkerPrivateGlobalPrefix() :
-    MAI.getPrivateGlobalPrefix();
+  const char *Prefix = isLinkerPrivate ? MAI.getLinkerPrivateGlobalPrefix() :
+                                         MAI.getPrivateGlobalPrefix();
   SmallString<60> Name;
   raw_svector_ostream(Name)
     << Prefix << "JTI" << getFunctionNumber() << '_' << JTI;
index 56420539b711a3911c702889540d1c655785089f..71ad3fb6f99f788d7eff3d6be51e8a81fc739298 100644 (file)
@@ -755,12 +755,11 @@ shouldEmitUsedDirectiveFor(const GlobalValue *GV, Mangler *Mang) const {
   /// the directive emitted (this occurs in ObjC metadata).
   if (!GV) return false;
 
-  // Check whether the mangled name has the "Private", "LinkerPrivate", or
-  // "LinkerWeak" prefix.
+  // Check whether the mangled name has the "Private" or "LinkerPrivate" prefix.
   if (GV->hasLocalLinkage() && !isa<Function>(GV)) {
     // FIXME: ObjC metadata is currently emitted as internal symbols that have
-    // \1L and \1l prefixes on them.  Fix them to be Private / LinkerPrivate /
-    // LinkerWeak and this horrible hack can go away.
+    // \1L and \0l prefixes on them.  Fix them to be Private/LinkerPrivate and
+    // this horrible hack can go away.
     MCSymbol *Sym = Mang->getSymbol(GV);
     if (Sym->getName()[0] == 'L' || Sym->getName()[0] == 'l')
       return false;
index d741245d775d80e6033252621a56c1ebd99f0acb..8487c83ce36ab910fddc391d34580794d6636250 100644 (file)
@@ -735,9 +735,6 @@ CalculateAliasLinkage(const GlobalValue *SGV, const GlobalValue *DGV) {
   else if (SL == GlobalValue::LinkerPrivateLinkage &&
            DL == GlobalValue::LinkerPrivateLinkage)
     return GlobalValue::LinkerPrivateLinkage;
-  else if (SL == GlobalValue::LinkerWeakLinkage &&
-           DL == GlobalValue::LinkerWeakLinkage)
-    return GlobalValue::LinkerWeakLinkage;
   else {
     assert (SL == GlobalValue::PrivateLinkage &&
             DL == GlobalValue::PrivateLinkage && "Unexpected linkage type");
index 79c09a94b9fb9de4ba38931ab203580e549c9738..a275be2c53c5fa8026b5b3b0edb09d8ee83591ba 100644 (file)
@@ -31,7 +31,6 @@ MCAsmInfo::MCAsmInfo() {
   GlobalPrefix = "";
   PrivateGlobalPrefix = ".";
   LinkerPrivateGlobalPrefix = "";
-  LinkerWeakGlobalPrefix = "";
   InlineAsmStart = "APP";
   InlineAsmEnd = "NO_APP";
   AssemblerDialect = 0;
index aef4b220671e7e48dc8f8e1f68bd77c96588e53b..0bd3b2d001e8c5cddbafdc8621605b3f3119d67f 100644 (file)
@@ -21,7 +21,6 @@ MCAsmInfoDarwin::MCAsmInfoDarwin() {
   GlobalPrefix = "_";
   PrivateGlobalPrefix = "L";
   LinkerPrivateGlobalPrefix = "l";
-  LinkerWeakGlobalPrefix = "l";
   AllowQuotesInName = true;
   HasSingleParameterDotFile = false;
   HasSubsectionsViaSymbols = true;
index e72763bbf170bce6cbf35bf870e9bfdea70bde8a..eda08e7a88952ae9cbfeded9af8a988532d19dc3 100644 (file)
@@ -286,8 +286,6 @@ void CppWriter::printLinkageType(GlobalValue::LinkageTypes LT) {
     Out << "GlobalValue::PrivateLinkage"; break;
   case GlobalValue::LinkerPrivateLinkage:
     Out << "GlobalValue::LinkerPrivateLinkage"; break;
-  case GlobalValue::LinkerWeakLinkage:
-    Out << "GlobalValue::LinkerWeakLinkage"; break;
   case GlobalValue::AvailableExternallyLinkage:
     Out << "GlobalValue::AvailableExternallyLinkage "; break;
   case GlobalValue::LinkOnceAnyLinkage:
index fc2f78d5b620137a6aac5ae089795c8f2c46cc44..4ef017ab9295ddb18b767d042c81ae89bf357428 100644 (file)
@@ -118,9 +118,6 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,
     } else if (PrefixTy == Mangler::LinkerPrivate) {
       const char *Prefix = MAI.getLinkerPrivateGlobalPrefix();
       OutName.append(Prefix, Prefix+strlen(Prefix));
-    } else if (PrefixTy == Mangler::LinkerWeak) {
-      const char *Prefix = MAI.getLinkerWeakGlobalPrefix();
-      OutName.append(Prefix, Prefix+strlen(Prefix));
     }
 
     const char *Prefix = MAI.getGlobalPrefix();
@@ -185,8 +182,6 @@ void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,
     PrefixTy = Mangler::Private;
   else if (GV->hasLinkerPrivateLinkage())
     PrefixTy = Mangler::LinkerPrivate;
-  else if (GV->hasLinkerWeakLinkage())
-    PrefixTy = Mangler::LinkerWeak;
   
   // If this global has a name, handle it simply.
   if (GV->hasName()) {
index 33a11d09f2e83a77a17e982f58df15573f7272b9..c100c590135eb06b70ae2e4fb27be6f66accbb90 100644 (file)
@@ -129,7 +129,6 @@ void XCoreAsmPrinter::EmitGlobalVariable(const GlobalVariable *GV) {
   case GlobalValue::WeakAnyLinkage:
   case GlobalValue::WeakODRLinkage:
   case GlobalValue::ExternalLinkage:
-  case GlobalValue::LinkerWeakLinkage:
     emitArrayBound(GVSym, GV);
     OutStreamer.EmitSymbolAttribute(GVSym, MCSA_Global);
 
index 7bb4d9d74f4e401e70678542f0b81ddc8534bc0b..622a9b529cf3114232782465b533d377b2f152b1 100644 (file)
@@ -535,7 +535,6 @@ static LinkageCategory categorize(const Function *F) {
   case GlobalValue::WeakAnyLinkage:
   case GlobalValue::WeakODRLinkage:
   case GlobalValue::ExternalWeakLinkage:
-  case GlobalValue::LinkerWeakLinkage:
     return ExternalWeak;
 
   case GlobalValue::ExternalLinkage:
index 8b6aabb53af43287bfcc3226eb6c30a0a075443d..057ad916c7f51e245e24256574714a660504ec8e 100644 (file)
@@ -1419,7 +1419,6 @@ static void PrintLinkage(GlobalValue::LinkageTypes LT,
   case GlobalValue::ExternalLinkage: break;
   case GlobalValue::PrivateLinkage:       Out << "private ";        break;
   case GlobalValue::LinkerPrivateLinkage: Out << "linker_private "; break;
-  case GlobalValue::LinkerWeakLinkage:    Out << "linker_weak ";    break;
   case GlobalValue::InternalLinkage:      Out << "internal ";       break;
   case GlobalValue::LinkOnceAnyLinkage:   Out << "linkonce ";       break;
   case GlobalValue::LinkOnceODRLinkage:   Out << "linkonce_odr ";   break;
index faf62ad6cc7a486ba3b3f57e42614f8af226bcfa..295d14868f77b3f8aebdff42b535f6a0c2a76482 100644 (file)
@@ -1058,8 +1058,6 @@ LLVMLinkage LLVMGetLinkage(LLVMValueRef Global) {
     return LLVMPrivateLinkage;
   case GlobalValue::LinkerPrivateLinkage:
     return LLVMLinkerPrivateLinkage;
-  case GlobalValue::LinkerWeakLinkage:
-    return LLVMLinkerWeakLinkage;
   case GlobalValue::DLLImportLinkage:
     return LLVMDLLImportLinkage;
   case GlobalValue::DLLExportLinkage:
@@ -1110,9 +1108,6 @@ void LLVMSetLinkage(LLVMValueRef Global, LLVMLinkage Linkage) {
   case LLVMLinkerPrivateLinkage:
     GV->setLinkage(GlobalValue::LinkerPrivateLinkage);
     break;
-  case LLVMLinkerWeakLinkage:
-    GV->setLinkage(GlobalValue::LinkerWeakLinkage);
-    break;
   case LLVMDLLImportLinkage:
     GV->setLinkage(GlobalValue::DLLImportLinkage);
     break;
index 987ada949f2dc5f2c92f6c53236d48be4a42d9a4..2baf5323f4cb03815f582be05485d8a299828528 100644 (file)
@@ -89,8 +89,7 @@ static char TypeCharForSymbol(GlobalValue &GV) {
 static void DumpSymbolNameForGlobalValue(GlobalValue &GV) {
   // Private linkage and available_externally linkage don't exist in symtab.
   if (GV.hasPrivateLinkage() || GV.hasLinkerPrivateLinkage() ||
-      GV.hasLinkerWeakLinkage() || GV.hasAvailableExternallyLinkage())
-    return;
+      GV.hasAvailableExternallyLinkage()) return;
   
   const std::string SymbolAddrStr = "        "; // Not used yet...
   char TypeChar = TypeCharForSymbol(GV);