#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Function.h"
-#include "llvm/LLVMContext.h"
#include "llvm/Operator.h"
#include "llvm/Value.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Transforms/Utils/SSAUpdater.h"
-#include <cstdio>
using namespace llvm;
STATISTIC(NumSCCVNInstr, "Number of instructions deleted by SCCVN");
static bool isEqual(const Expression &LHS, const Expression &RHS) {
return LHS == RHS;
}
- static bool isPod() { return true; }
};
+template <>
+struct isPodLike<Expression> { static const bool value = true; };
+
}
//===----------------------------------------------------------------------===//
}
}
- // FIXME: This code is commented out for now, because it can lead to the
- // insertion of a lot of redundant PHIs being inserted by SSAUpdater.
-#if 0
// Perform a forward data-flow to compute availability at all points on
// the CFG.
do {
CurInst->eraseFromParent();
}
}
-#endif
VT.clear();
for (DenseMap<BasicBlock*, ValueNumberScope*>::iterator