Adjust to changes in APIs
authorChris Lattner <sabre@nondot.org>
Tue, 1 Feb 2005 01:23:31 +0000 (01:23 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 1 Feb 2005 01:23:31 +0000 (01:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19958 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/FunctionResolution.cpp
lib/Transforms/IPO/GlobalOpt.cpp

index b63d98c20dc69bc46d52e5b3234a0d4886950e2a..090755b25cc0b0c77170f83e4c2c0040d4228878 100644 (file)
@@ -98,11 +98,11 @@ static bool ResolveFunctions(Module &M, std::vector<GlobalValue*> &Globals,
       // functions and that the Old function has no varargs fns specified.  In
       // otherwords it's just <retty> (...)
       //
-      if (!Old->use_empty()) {  // Avoid making the CPR unless we really need it
+      if (!Old->use_empty()) {
         Value *Replacement = Concrete;
         if (Concrete->getType() != Old->getType())
-          Replacement = ConstantExpr::getCast(Concrete,Old->getType());
-        NumResolved += Old->use_size();
+          Replacement = ConstantExpr::getCast(Concrete, Old->getType());
+        NumResolved += Old->getNumUses();
         Old->replaceAllUsesWith(Replacement);
       }
 
index 1068052f1cb5033ab959c667f2809d8dad81e9ed..f2c9647e1306b548750784c39a8275430a5d592b 100644 (file)
@@ -361,7 +361,8 @@ static GlobalVariable *SRAGlobal(GlobalVariable *GV) {
     else
       assert(0 && "Unknown aggregate sequential type!");
 
-    if (NumElements > 16 && GV->use_size() > 16) return 0; // It's not worth it.
+    if (NumElements > 16 && GV->getNumUses() > 16)
+      return 0; // It's not worth it.
     NewGlobals.reserve(NumElements);
     for (unsigned i = 0, e = NumElements; i != e; ++i) {
       Constant *In = getAggregateConstantElement(Init,
@@ -614,17 +615,11 @@ static void ConstantPropUsersOf(Value *V) {
       if (Constant *NewC = ConstantFoldInstruction(I)) {
         I->replaceAllUsesWith(NewC);
 
-        // Back up UI to avoid invalidating it!
-        bool AtBegin = false;
-        if (UI == V->use_begin())
-          AtBegin = true;
-        else
-          --UI;
-        I->eraseFromParent();
-        if (AtBegin)
-          UI = V->use_begin();
-        else
+        // Advance UI to the next non-I use to avoid invalidating it!
+        // Instructions could multiply use V.
+        while (UI != E && *UI == I)
           ++UI;
+        I->eraseFromParent();
       }
 }
 
@@ -683,8 +678,7 @@ static GlobalVariable *OptimizeGlobalAddressOfMalloc(GlobalVariable *GV,
   while (!GV->use_empty())
     if (LoadInst *LI = dyn_cast<LoadInst>(GV->use_back())) {
       while (!LI->use_empty()) {
-        // FIXME: the iterator should expose a getUse() method.
-        Use &LoadUse = *(const iplist<Use>::iterator&)LI->use_begin();
+        Use &LoadUse = LI->use_begin().getUse();
         if (!isa<SetCondInst>(LoadUse.getUser()))
           LoadUse = RepValue;
         else {