19 #define DEBUG_TYPE "dce"
29 STATISTIC(DIEEliminated,
"Number of insts removed by DIE pass");
30 STATISTIC(DCEEliminated,
"Number of insts removed");
63 "Dead Instruction Elimination",
false,
false)
66 return new DeadInstElimination();
95 std::vector<Instruction*> WorkList;
97 WorkList.push_back(&*i);
103 bool MadeChange =
false;
104 while (!WorkList.empty()) {
114 if (
Instruction *Used = dyn_cast<Instruction>(*OI))
115 WorkList.push_back(Used);
121 WorkList.erase(
std::remove(WorkList.begin(), WorkList.end(),
I),
static PassRegistry * getPassRegistry()
int remove(const char *path);
Pass * createDeadInstEliminationPass()
inst_iterator inst_begin(Function *F)
STATISTIC(DIEEliminated,"Number of insts removed by DIE pass")
ID
LLVM Calling Convention Representation.
FunctionPass * createDeadCodeEliminationPass()
LLVM Basic Block Representation.
bool isInstructionTriviallyDead(Instruction *I, const TargetLibraryInfo *TLI=0)
INITIALIZE_PASS(DeadInstElimination,"die","Dead Instruction Elimination", false, false) Pass *llvm
void initializeDCEPass(PassRegistry &)
inst_iterator inst_end(Function *F)
void initializeDeadInstEliminationPass(PassRegistry &)