[llvm] r209073 - Reduce abuse of default values in the GlobalAlias constructor.

Rafael Espindola rafael.espindola at gmail.com
Sat May 17 12:57:47 PDT 2014


Author: rafael
Date: Sat May 17 14:57:46 2014
New Revision: 209073

URL: http://llvm.org/viewvc/llvm-project?rev=209073&view=rev
Log:
Reduce abuse of default values in the GlobalAlias constructor.

This is in preparation for adding an optional offset.

Modified:
    llvm/trunk/include/llvm/IR/GlobalAlias.h
    llvm/trunk/lib/AsmParser/LLParser.cpp
    llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
    llvm/trunk/lib/IR/Core.cpp
    llvm/trunk/lib/IR/Globals.cpp
    llvm/trunk/lib/Linker/LinkModules.cpp
    llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp
    llvm/trunk/lib/Transforms/Utils/CloneModule.cpp
    llvm/trunk/unittests/IR/ConstantsTest.cpp
    llvm/trunk/unittests/IR/VerifierTest.cpp
    llvm/trunk/unittests/Transforms/Utils/SpecialCaseList.cpp

Modified: llvm/trunk/include/llvm/IR/GlobalAlias.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/GlobalAlias.h?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/GlobalAlias.h (original)
+++ llvm/trunk/include/llvm/IR/GlobalAlias.h Sat May 17 14:57:46 2014
@@ -40,9 +40,22 @@ public:
   }
   /// If a parent module is specified, the alias is automatically inserted into
   /// the end of the specified module's alias list.
-  GlobalAlias(Type *Ty, LinkageTypes Linkage, const Twine &Name = "",
-              GlobalObject *Aliasee = nullptr, Module *Parent = nullptr,
-              unsigned AddressSpace = 0);
+  GlobalAlias(Type *Ty, unsigned AddressSpace, LinkageTypes Linkage,
+              const Twine &Name, GlobalObject *Aliasee, Module *Parent);
+
+  // Without the Aliasee.
+  GlobalAlias(Type *Ty, unsigned AddressSpace, LinkageTypes Linkage,
+              const Twine &Name, Module *Parent);
+
+  // The module is taken from the Aliasee.
+  GlobalAlias(Type *Ty, unsigned AddressSpace, LinkageTypes Linkage,
+              const Twine &Name, GlobalObject *Aliasee);
+
+  // Type, Parent and AddressSpace taken from the Aliasee.
+  GlobalAlias(LinkageTypes Linkage, const Twine &Name, GlobalObject *Aliasee);
+
+  // Linkage, Type, Parent and AddressSpace taken from the Aliasee.
+  GlobalAlias(const Twine &Name, GlobalObject *Aliasee);
 
   /// Provide fast operand accessors
   DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant);

Modified: llvm/trunk/lib/AsmParser/LLParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/LLParser.cpp (original)
+++ llvm/trunk/lib/AsmParser/LLParser.cpp Sat May 17 14:57:46 2014
@@ -697,8 +697,8 @@ bool LLParser::ParseAlias(const std::str
 
   // Okay, create the alias but do not insert it into the module yet.
   std::unique_ptr<GlobalAlias> GA(
-      new GlobalAlias(Ty, (GlobalValue::LinkageTypes)Linkage, Name, Aliasee,
-                      /*Parent*/ nullptr, AddrSpace));
+      new GlobalAlias(Ty, AddrSpace, (GlobalValue::LinkageTypes)Linkage, Name,
+                      Aliasee, /*Parent*/ nullptr));
   GA->setVisibility((GlobalValue::VisibilityTypes)Visibility);
   GA->setDLLStorageClass((GlobalValue::DLLStorageClassTypes)DLLStorageClass);
 

Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Sat May 17 14:57:46 2014
@@ -2004,8 +2004,8 @@ error_code BitcodeReader::ParseModule(bo
         return Error(InvalidTypeForValue);
 
       auto *NewGA =
-          new GlobalAlias(PTy->getElementType(), GetDecodedLinkage(Record[2]),
-                          "", nullptr, TheModule, PTy->getAddressSpace());
+          new GlobalAlias(PTy->getElementType(), PTy->getAddressSpace(),
+                          GetDecodedLinkage(Record[2]), "", TheModule);
       // Old bitcode files didn't have visibility field.
       // Local linkage must have default visibility.
       if (Record.size() > 3 && !NewGA->hasLocalLinkage())

Modified: llvm/trunk/lib/IR/Core.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Core.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Core.cpp (original)
+++ llvm/trunk/lib/IR/Core.cpp Sat May 17 14:57:46 2014
@@ -1489,9 +1489,9 @@ void LLVMSetExternallyInitialized(LLVMVa
 LLVMValueRef LLVMAddAlias(LLVMModuleRef M, LLVMTypeRef Ty, LLVMValueRef Aliasee,
                           const char *Name) {
   auto *PTy = cast<PointerType>(unwrap(Ty));
-  return wrap(new GlobalAlias(
-      PTy->getElementType(), GlobalValue::ExternalLinkage, Name,
-      unwrap<GlobalObject>(Aliasee), unwrap(M), PTy->getAddressSpace()));
+  return wrap(new GlobalAlias(PTy->getElementType(), PTy->getAddressSpace(),
+                              GlobalValue::ExternalLinkage, Name,
+                              unwrap<GlobalObject>(Aliasee), unwrap(M)));
 }
 
 /*--.. Operations on functions .............................................--*/

Modified: llvm/trunk/lib/IR/Globals.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Globals.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Globals.cpp (original)
+++ llvm/trunk/lib/IR/Globals.cpp Sat May 17 14:57:46 2014
@@ -213,9 +213,9 @@ void GlobalVariable::copyAttributesFrom(
 // GlobalAlias Implementation
 //===----------------------------------------------------------------------===//
 
-GlobalAlias::GlobalAlias(Type *Ty, LinkageTypes Link, const Twine &Name,
-                         GlobalObject *Aliasee, Module *ParentModule,
-                         unsigned AddressSpace)
+GlobalAlias::GlobalAlias(Type *Ty, unsigned AddressSpace, LinkageTypes Link,
+                         const Twine &Name, GlobalObject *Aliasee,
+                         Module *ParentModule)
     : GlobalValue(PointerType::get(Ty, AddressSpace), Value::GlobalAliasVal,
                   &Op<0>(), 1, Link, Name) {
   LeakDetector::addGarbageObject(this);
@@ -225,6 +225,23 @@ GlobalAlias::GlobalAlias(Type *Ty, Linka
     ParentModule->getAliasList().push_back(this);
 }
 
+GlobalAlias::GlobalAlias(Type *Ty, unsigned AddressSpace, LinkageTypes Linkage,
+                         const Twine &Name, Module *Parent)
+    : GlobalAlias(Ty, AddressSpace, Linkage, Name, nullptr, Parent) {}
+
+GlobalAlias::GlobalAlias(Type *Ty, unsigned AddressSpace, LinkageTypes Linkage,
+                         const Twine &Name, GlobalObject *Aliasee)
+    : GlobalAlias(Ty, AddressSpace, Linkage, Name, Aliasee,
+                  Aliasee->getParent()) {}
+
+GlobalAlias::GlobalAlias(LinkageTypes Link, const Twine &Name,
+                         GlobalObject *Aliasee)
+    : GlobalAlias(Aliasee->getType()->getElementType(),
+                  Aliasee->getType()->getAddressSpace(), Link, Name, Aliasee) {}
+
+GlobalAlias::GlobalAlias(const Twine &Name, GlobalObject *Aliasee)
+    : GlobalAlias(Aliasee->getLinkage(), Name, Aliasee) {}
+
 void GlobalAlias::setParent(Module *parent) {
   if (getParent())
     LeakDetector::addGarbageObject(this);

Modified: llvm/trunk/lib/Linker/LinkModules.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Linker/LinkModules.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/Linker/LinkModules.cpp (original)
+++ llvm/trunk/lib/Linker/LinkModules.cpp Sat May 17 14:57:46 2014
@@ -922,9 +922,8 @@ bool ModuleLinker::linkAliasProto(Global
   // If there is no linkage to be performed or we're linking from the source,
   // bring over SGA.
   auto *PTy = cast<PointerType>(TypeMap.get(SGA->getType()));
-  auto *NewDA =
-      new GlobalAlias(PTy->getElementType(), SGA->getLinkage(), SGA->getName(),
-                      /*aliasee*/ nullptr, DstM, PTy->getAddressSpace());
+  auto *NewDA = new GlobalAlias(PTy->getElementType(), PTy->getAddressSpace(),
+                                SGA->getLinkage(), SGA->getName(), DstM);
   copyGVAttributes(NewDA, SGA);
   if (NewVisibility)
     NewDA->setVisibility(*NewVisibility);

Modified: llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp Sat May 17 14:57:46 2014
@@ -1328,8 +1328,8 @@ void MergeFunctions::writeThunk(Function
 // Replace G with an alias to F and delete G.
 void MergeFunctions::writeAlias(Function *F, Function *G) {
   PointerType *PTy = G->getType();
-  auto *GA = new GlobalAlias(PTy->getElementType(), G->getLinkage(), "", F,
-                             G->getParent(), PTy->getAddressSpace());
+  auto *GA = new GlobalAlias(PTy->getElementType(), PTy->getAddressSpace(),
+                             G->getLinkage(), "", F);
   F->setAlignment(std::max(F->getAlignment(), G->getAlignment()));
   GA->takeName(G);
   GA->setVisibility(G->getVisibility());

Modified: llvm/trunk/lib/Transforms/Utils/CloneModule.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/CloneModule.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/CloneModule.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/CloneModule.cpp Sat May 17 14:57:46 2014
@@ -68,9 +68,8 @@ Module *llvm::CloneModule(const Module *
   for (Module::const_alias_iterator I = M->alias_begin(), E = M->alias_end();
        I != E; ++I) {
     auto *PTy = cast<PointerType>(I->getType());
-    auto *GA =
-        new GlobalAlias(PTy->getElementType(), I->getLinkage(), I->getName(),
-                        nullptr, New, PTy->getAddressSpace());
+    auto *GA = new GlobalAlias(PTy->getElementType(), PTy->getAddressSpace(),
+                               I->getLinkage(), I->getName(), New);
     GA->copyAttributesFrom(I);
     VMap[I] = GA;
   }

Modified: llvm/trunk/unittests/IR/ConstantsTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/ConstantsTest.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/unittests/IR/ConstantsTest.cpp (original)
+++ llvm/trunk/unittests/IR/ConstantsTest.cpp Sat May 17 14:57:46 2014
@@ -274,8 +274,7 @@ TEST(ConstantsTest, ReplaceInAliasTest)
 
   Type *Int32Ty = Type::getInt32Ty(getGlobalContext());
   auto *Global = cast<GlobalObject>(M->getOrInsertGlobal("dummy", Int32Ty));
-  auto *GA = new GlobalAlias(Int32Ty, GlobalValue::ExternalLinkage, "alias",
-                             Global, M.get());
+  auto *GA = new GlobalAlias(GlobalValue::ExternalLinkage, "alias", Global);
   EXPECT_DEATH(Global->replaceAllUsesWith(GA),
                "replaceAliasUseWith cannot form an alias cycle");
 }

Modified: llvm/trunk/unittests/IR/VerifierTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/VerifierTest.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/unittests/IR/VerifierTest.cpp (original)
+++ llvm/trunk/unittests/IR/VerifierTest.cpp Sat May 17 14:57:46 2014
@@ -52,8 +52,7 @@ TEST(VerifierTest, AliasUnnamedAddr) {
   GlobalVariable *Aliasee = new GlobalVariable(M, Ty, true,
                                                GlobalValue::ExternalLinkage,
                                                Init, "foo");
-  auto *GA =
-      new GlobalAlias(Ty, GlobalValue::ExternalLinkage, "bar", Aliasee, &M);
+  auto *GA = new GlobalAlias(GlobalValue::ExternalLinkage, "bar", Aliasee);
   GA->setUnnamedAddr(true);
   std::string Error;
   raw_string_ostream ErrorOS(Error);

Modified: llvm/trunk/unittests/Transforms/Utils/SpecialCaseList.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Transforms/Utils/SpecialCaseList.cpp?rev=209073&r1=209072&r2=209073&view=diff
==============================================================================
--- llvm/trunk/unittests/Transforms/Utils/SpecialCaseList.cpp (original)
+++ llvm/trunk/unittests/Transforms/Utils/SpecialCaseList.cpp Sat May 17 14:57:46 2014
@@ -35,9 +35,7 @@ protected:
   }
 
   GlobalAlias *makeAlias(StringRef Name, GlobalObject *Aliasee) {
-    return new GlobalAlias(Aliasee->getType()->getElementType(),
-                           GlobalValue::ExternalLinkage, Name, Aliasee,
-                           Aliasee->getParent());
+    return new GlobalAlias(GlobalValue::ExternalLinkage, Name, Aliasee);
   }
 
   SpecialCaseList *makeSpecialCaseList(StringRef List, std::string &Error) {





More information about the llvm-commits mailing list