[llvm-commits] [llvm] r60190 - /llvm/trunk/lib/Transforms/Scalar/TailDuplication.cpp
Chris Lattner
sabre at nondot.org
Thu Nov 27 14:56:14 PST 2008
Author: lattner
Date: Thu Nov 27 16:56:14 2008
New Revision: 60190
URL: http://llvm.org/viewvc/llvm-project?rev=60190&view=rev
Log:
simplify code.
Modified:
llvm/trunk/lib/Transforms/Scalar/TailDuplication.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/TailDuplication.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/TailDuplication.cpp?rev=60190&r1=60189&r2=60190&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/TailDuplication.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/TailDuplication.cpp Thu Nov 27 16:56:14 2008
@@ -27,6 +27,7 @@
#include "llvm/Pass.h"
#include "llvm/Type.h"
#include "llvm/Support/CFG.h"
+#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
@@ -348,10 +349,17 @@
// instructions one last time, constant propagating and DCE'ing them, because
// they may not be needed anymore.
//
- if (HadPHINodes)
- while (BI != SourceBlock->end())
- if (!dceInstruction(BI) && !doConstantPropagation(BI))
- ++BI;
+ if (HadPHINodes) {
+ while (BI != SourceBlock->end()) {
+ Instruction *Inst = BI++;
+ if (isInstructionTriviallyDead(Inst))
+ Inst->eraseFromParent();
+ else if (Constant *C = ConstantFoldInstruction(Inst)) {
+ Inst->replaceAllUsesWith(C);
+ Inst->eraseFromParent();
+ }
+ }
+ }
++NumEliminated; // We just killed a branch!
}
More information about the llvm-commits
mailing list