Re-commit my previous SSAUpdater changes. The previous version naively tried
[oota-llvm.git] / lib / Transforms / Utils / InstructionNamer.cpp
index f0e77c99cee5510941c6898516a4f0c558a5217f..090af95c4b87b7734e0153dfe17d789004246dc4 100644 (file)
@@ -25,11 +25,24 @@ namespace {
     static char ID; // Pass identification, replacement for typeid
     InstNamer() : FunctionPass(&ID) {}
     
+    void getAnalysisUsage(AnalysisUsage &Info) const {
+      Info.setPreservesAll();
+    }
+
     bool runOnFunction(Function &F) {
-      for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB)
+      for (Function::arg_iterator AI = F.arg_begin(), AE = F.arg_end();
+           AI != AE; ++AI)
+        if (!AI->hasName() && !AI->getType()->isVoidTy())
+          AI->setName("arg");
+
+      for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) {
+        if (!BB->hasName())
+          BB->setName("bb");
+        
         for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I)
-          if (!I->hasName() && I->getType() != Type::VoidTy)
+          if (!I->hasName() && !I->getType()->isVoidTy())
             I->setName("tmp");
+      }
       return true;
     }
   };
@@ -40,6 +53,7 @@ namespace {
 }
 
 
+const PassInfo *const llvm::InstructionNamerID = &X;
 //===----------------------------------------------------------------------===//
 //
 // InstructionNamer - Give any unnamed non-void instructions "tmp" names.