#include "llvm/Instruction.h"
#include "llvm/Pass.h"
#include "llvm/Support/InstIterator.h"
+#include "Support/StatisticReporter.h"
#include <set>
+static Statistic<> NumInstKilled("constprop - Number of instructions killed");
+
namespace {
struct ConstantPropogation : public FunctionPass {
const char *getPassName() const { return "Simple Constant Propogation"; }
- inline bool runOnFunction(Function *F);
+ bool runOnFunction(Function *F);
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.preservesCFG();
// Replace all of the uses of a variable with uses of the constant.
I->replaceAllUsesWith(C);
-
+
// We made a change to the function...
Changed = true;
+ ++NumInstKilled;
}
}
return Changed;