OSDN Git Service

Revert r7561{9,8,7,6}, which depend on r75610.
authorDaniel Dunbar <daniel@zuster.org>
Tue, 14 Jul 2009 16:25:11 +0000 (16:25 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 14 Jul 2009 16:25:11 +0000 (16:25 +0000)
--- Reverse-merging r75619 into '.':
U    lib/Target/DarwinTargetAsmInfo.cpp
U    lib/CodeGen/AsmPrinter/AsmPrinter.cpp
--- Reverse-merging r75618 into '.':
U    lib/CodeGen/ELFWriter.cpp
U    lib/CodeGen/MachOCodeEmitter.cpp
U    lib/CodeGen/MachOWriter.cpp
--- Reverse-merging r75617 into '.':
U    lib/Target/CBackend/CBackend.cpp
--- Reverse-merging r75616 into '.':
U    tools/bugpoint/Miscompilation.cpp
U    tools/lto/LTOCodeGenerator.cpp
U    tools/lto/LTOModule.cpp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75638 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/ELFWriter.cpp
lib/CodeGen/MachOCodeEmitter.cpp
lib/CodeGen/MachOWriter.cpp
lib/Target/CBackend/CBackend.cpp
lib/Target/DarwinTargetAsmInfo.cpp
tools/bugpoint/Miscompilation.cpp
tools/lto/LTOCodeGenerator.cpp
tools/lto/LTOModule.cpp

index 00edcac..867b003 100644 (file)
@@ -210,13 +210,13 @@ bool AsmPrinter::doFinalization(Module &M) {
     for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
          I != E; ++I) {
       if (I->hasExternalWeakLinkage())
-        O << TAI->getWeakRefDirective() << Mang->getMangledName(I) << '\n';
+        O << TAI->getWeakRefDirective() << Mang->getValueName(I) << '\n';
     }
     
     for (Module::const_iterator I = M.begin(), E = M.end();
          I != E; ++I) {
       if (I->hasExternalWeakLinkage())
-        O << TAI->getWeakRefDirective() << Mang->getMangledName(I) << '\n';
+        O << TAI->getWeakRefDirective() << Mang->getValueName(I) << '\n';
     }
   }
 
@@ -227,10 +227,11 @@ bool AsmPrinter::doFinalization(Module &M) {
     O << '\n';
     for (Module::const_alias_iterator I = M.alias_begin(), E = M.alias_end();
          I != E; ++I) {
-      std::string Name = Mang->getMangledName(I);
+      std::string Name = Mang->getValueName(I);
+      std::string Target;
 
       const GlobalValue *GV = cast<GlobalValue>(I->getAliasedGlobal());
-      std::string Target = Mang->getMangledName(GV);
+      Target = Mang->getValueName(GV);
 
       if (I->hasExternalLinkage() || !TAI->getWeakRefDirective())
         O << "\t.globl\t" << Name << '\n';
@@ -269,16 +270,15 @@ AsmPrinter::getCurrentFunctionEHName(const MachineFunction *MF,
   assert(MF && "No machine function?");
   Name = MF->getFunction()->getName();
   if (Name.empty())
-    Name = Mang->getMangledName(MF->getFunction());
+    Name = Mang->getValueName(MF->getFunction());
   
-  // FIXME: THIS SEEMS REALLY WRONG, it will get two prefixes.
   Name = Mang->makeNameProper(TAI->getEHGlobalPrefix() + Name + ".eh");
   return Name;
 }
 
 void AsmPrinter::SetupMachineFunction(MachineFunction &MF) {
   // What's my mangled name?
-  CurrentFnName = Mang->getMangledName(MF.getFunction());
+  CurrentFnName = Mang->getValueName(MF.getFunction());
   IncrementFunctionNumber();
 }
 
@@ -576,11 +576,11 @@ const std::string &AsmPrinter::getGlobalLinkName(const GlobalVariable *GV,
                                                  std::string &LinkName) const {
   if (isa<Function>(GV)) {
     LinkName += TAI->getFunctionAddrPrefix();
-    LinkName += Mang->getMangledName(GV);
+    LinkName += Mang->getValueName(GV);
     LinkName += TAI->getFunctionAddrSuffix();
   } else {
     LinkName += TAI->getGlobalVarAddrPrefix();
-    LinkName += Mang->getMangledName(GV);
+    LinkName += Mang->getValueName(GV);
     LinkName += TAI->getGlobalVarAddrSuffix();
   }  
   
@@ -858,11 +858,11 @@ void AsmPrinter::EmitConstantValueOnly(const Constant *CV) {
     // FunctionAddrPrefix/Suffix (these all default to "" )
     if (isa<Function>(GV)) {
       O << TAI->getFunctionAddrPrefix()
-        << Mang->getMangledName(GV)
+        << Mang->getValueName(GV)
         << TAI->getFunctionAddrSuffix();
     } else {
       O << TAI->getGlobalVarAddrPrefix()
-        << Mang->getMangledName(GV)
+        << Mang->getValueName(GV)
         << TAI->getGlobalVarAddrSuffix();
     }
   } else if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(CV)) {
index b79560e..a26f93b 100644 (file)
@@ -601,7 +601,7 @@ void ELFWriter::EmitStringTable() {
 
     // Use the name mangler to uniquify the LLVM symbol.
     std::string Name;
-    if (I->GV) Name.append(Mang->getMangledName(I->GV));
+    if (I->GV) Name.append(Mang->getValueName(I->GV));
 
     if (Name.empty()) {
       I->NameIdx = 0;
index ccc801c..a076a3c 100644 (file)
@@ -60,7 +60,7 @@ void MachOCodeEmitter::startFunction(MachineFunction &MF) {
 
   // Create symbol for function entry
   const GlobalValue *FuncV = MF.getFunction();
-  MachOSym FnSym(FuncV, MOW.Mang->getMangledName(FuncV), MOS->Index, TAI);
+  MachOSym FnSym(FuncV, MOW.Mang->getValueName(FuncV), MOS->Index, TAI);
   FnSym.n_value = getCurrentPCOffset();
 
   // add it to the symtab.
index e2b2bea..7542d9e 100644 (file)
@@ -221,7 +221,7 @@ void MachOWriter::AddSymbolToSection(MachOSection *Sec, GlobalVariable *GV) {
   }
   // Globals without external linkage apparently do not go in the symbol table.
   if (!GV->hasLocalLinkage()) {
-    MachOSym Sym(GV, Mang->getMangledName(GV), Sec->Index, TAI);
+    MachOSym Sym(GV, Mang->getValueName(GV), Sec->Index, TAI);
     Sym.n_value = Sec->size();
     SymbolTable.push_back(Sym);
   }
@@ -255,7 +255,7 @@ void MachOWriter::EmitGlobal(GlobalVariable *GV) {
     // merged with other symbols.
     if (NoInit || GV->hasLinkOnceLinkage() || GV->hasWeakLinkage() ||
         GV->hasCommonLinkage()) {
-      MachOSym ExtOrCommonSym(GV, Mang->getMangledName(GV),
+      MachOSym ExtOrCommonSym(GV, Mang->getValueName(GV),
                               MachOSym::NO_SECT, TAI);
       // For undefined (N_UNDF) external (N_EXT) types, n_value is the size in
       // bytes of the symbol.
@@ -454,7 +454,7 @@ void MachOWriter::BufferSymbolAndStringTable() {
   for (std::vector<GlobalValue*>::iterator I = PendingGlobals.begin(),
          E = PendingGlobals.end(); I != E; ++I) {
     if (GVOffset[*I] == 0 && GVSection[*I] == 0) {
-      MachOSym UndfSym(*I, Mang->getMangledName(*I), MachOSym::NO_SECT, TAI);
+      MachOSym UndfSym(*I, Mang->getValueName(*I), MachOSym::NO_SECT, TAI);
       SymbolTable.push_back(UndfSym);
       GVOffset[*I] = -1;
     }
index 38ce218..c3c2b0e 100644 (file)
@@ -1432,7 +1432,7 @@ void CWriter::printConstantWithCast(Constant* CPV, unsigned Opcode) {
 std::string CWriter::GetValueName(const Value *Operand) {
   // Mangle globals with the standard mangler interface for LLC compatibility.
   if (const GlobalValue *GV = dyn_cast<GlobalValue>(Operand))
-    return Mang->getMangledName(GV);
+    return Mang->getValueName(GV);
     
   std::string Name = Operand->getName();
     
index d331467..6094976 100644 (file)
@@ -103,21 +103,18 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM)
 /// emitUsedDirectiveFor - On Darwin, internally linked data beginning with
 /// the PrivateGlobalPrefix or the LessPrivateGlobalPrefix does not have the
 /// directive emitted (this occurs in ObjC metadata).
+
 bool
 DarwinTargetAsmInfo::emitUsedDirectiveFor(const GlobalValue* GV,
                                           Mangler *Mang) const {
   if (GV==0)
     return false;
-  
-  /// FIXME: WHAT IS THIS?
-  
   if (GV->hasLocalLinkage() && !isa<Function>(GV) &&
       ((strlen(getPrivateGlobalPrefix()) != 0 &&
-        Mang->getMangledName(GV).substr(0,strlen(getPrivateGlobalPrefix())) ==
+        Mang->getValueName(GV).substr(0,strlen(getPrivateGlobalPrefix())) ==
           getPrivateGlobalPrefix()) ||
        (strlen(getLessPrivateGlobalPrefix()) != 0 &&
-        Mang->getMangledName(GV).substr(0,
-                                        strlen(getLessPrivateGlobalPrefix())) ==
+        Mang->getValueName(GV).substr(0,strlen(getLessPrivateGlobalPrefix())) ==
           getLessPrivateGlobalPrefix())))
     return false;
   return true;
index a3a1e29..5fffcc1 100644 (file)
@@ -244,9 +244,9 @@ static void DisambiguateGlobalSymbols(Module *M) {
   Mang.setPreserveAsmNames(true);
   for (Module::global_iterator I = M->global_begin(), E = M->global_end();
        I != E; ++I)
-    I->setName(Mang.getMangledName(I));
+    I->setName(Mang.getValueName(I));
   for (Module::iterator  I = M->begin(),  E = M->end();  I != E; ++I)
-    I->setName(Mang.getMangledName(I));
+    I->setName(Mang.getValueName(I));
 }
 
 /// ExtractLoops - Given a reduced list of functions that still exposed the bug,
index 26effa5..801707f 100644 (file)
@@ -371,13 +371,13 @@ void LTOCodeGenerator::applyScopeRestrictions()
             for (Module::iterator f = mergedModule->begin(), 
                                         e = mergedModule->end(); f != e; ++f) {
                 if ( !f->isDeclaration() 
-                  && _mustPreserveSymbols.count(mangler.getMangledName(f)) )
+                  && _mustPreserveSymbols.count(mangler.getValueName(f)) )
                     mustPreserveList.push_back(::strdup(f->getName().c_str()));
             }
             for (Module::global_iterator v = mergedModule->global_begin(), 
                                  e = mergedModule->global_end(); v !=  e; ++v) {
                 if ( !v->isDeclaration()
-                  && _mustPreserveSymbols.count(mangler.getMangledName(v)) )
+                  && _mustPreserveSymbols.count(mangler.getValueName(v)) )
                     mustPreserveList.push_back(::strdup(v->getName().c_str()));
             }
             passes.add(createInternalizePass(mustPreserveList));
index 38ee1cc..c4980d6 100644 (file)
@@ -332,7 +332,7 @@ void LTOModule::addDefinedSymbol(GlobalValue* def, Mangler &mangler,
         return;
 
     // string is owned by _defines
-    const char* symbolName = ::strdup(mangler.getMangledName(def).c_str());
+    const char* symbolName = ::strdup(mangler.getValueName(def).c_str());
 
     // set alignment part log2() can have rounding errors
     uint32_t align = def->getAlignment();
@@ -405,7 +405,7 @@ void LTOModule::addPotentialUndefinedSymbol(GlobalValue* decl, Mangler &mangler)
     if (isa<GlobalAlias>(decl))
         return;
 
-    const char* name = mangler.getMangledName(decl).c_str();
+    const char* name = mangler.getValueName(decl).c_str();
 
     // we already have the symbol
     if (_undefines.find(name) != _undefines.end())