about summary refs log tree commit diff homepage
path: root/lib/Module/IntrinsicCleaner.cpp
diff options
context:
space:
mode:
authorJulian Büning <julian.buening@rwth-aachen.de>2018-05-12 19:49:07 +0200
committerCristian Cadar <c.cadar@imperial.ac.uk>2018-05-22 16:24:46 +0100
commit45dbf0624f6fe37d25ba401c2bf99b8315f8847b (patch)
tree94ebd15744b8ee84e1735f657774e5e1d1d862c0 /lib/Module/IntrinsicCleaner.cpp
parent1b8bad9dda673f1340b50c39334eb92ee8a8c306 (diff)
downloadklee-45dbf0624f6fe37d25ba401c2bf99b8315f8847b.tar.gz
some housekeeping in Passes.h and IntrinsicCleaner.cpp
This commit addresses the following:

  * remove unused variables block_split (::runOnBasicBlock)
    and LI (::IntrinsicCleanerPass) in IntrinsicCleanerPass

  * add `dirty = true` to `Intrinsic::vacopy` case

  * use `eraseFromParent()` methods instead of `removeFromParent()` and `delete`

  * add `override` keyword to `runOn{Module,Function}` methods
Diffstat (limited to 'lib/Module/IntrinsicCleaner.cpp')
-rw-r--r--lib/Module/IntrinsicCleaner.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/Module/IntrinsicCleaner.cpp b/lib/Module/IntrinsicCleaner.cpp
index 10b5df08..4e3c3796 100644
--- a/lib/Module/IntrinsicCleaner.cpp
+++ b/lib/Module/IntrinsicCleaner.cpp
@@ -45,15 +45,13 @@ bool IntrinsicCleanerPass::runOnModule(Module &M) {
 
 bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) {
   bool dirty = false;
-  bool block_split=false;
   LLVMContext &ctx = M.getContext();
   
   unsigned WordSize = DataLayout.getPointerSizeInBits() / 8;
-  for (BasicBlock::iterator i = b.begin(), ie = b.end();
-       (i != ie) && (block_split == false);) {
+  for (BasicBlock::iterator i = b.begin(), ie = b.end(); i != ie;) {
     IntrinsicInst *ii = dyn_cast<IntrinsicInst>(&*i);
-    // increment now since LowerIntrinsic deletion makes iterator invalid.
-    ++i;  
+    // increment now since deletion of instructions makes iterator invalid.
+    ++i;
     if(ii) {
       switch (ii->getIntrinsicID()) {
       case Intrinsic::vastart:
@@ -89,8 +87,8 @@ bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) {
           pSrc = GetElementPtrInst::Create(pSrc, off, std::string(), ii);
           val = new LoadInst(pSrc, std::string(), ii); new StoreInst(val, pDst, ii);
         }
-        ii->removeFromParent();
-        delete ii;
+        ii->eraseFromParent();
+        dirty = true;
         break;
       }
 
@@ -176,20 +174,20 @@ bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b, Module &M) {
         resultStruct = builder.CreateInsertValue(resultStruct, overflow, 1);
         
         ii->replaceAllUsesWith(resultStruct);
-        ii->removeFromParent();
-        delete ii;
+        ii->eraseFromParent();
         dirty = true;
         break;
       }
 
       case Intrinsic::dbg_value:
-      case Intrinsic::dbg_declare:
+      case Intrinsic::dbg_declare: {
         // Remove these regardless of lower intrinsics flag. This can
         // be removed once IntrinsicLowering is fixed to not have bad
         // caches.
         ii->eraseFromParent();
         dirty = true;
         break;
+      }
 
       case Intrinsic::trap: {
         // Intrisic instruction "llvm.trap" found. Directly lower it to