Don't clean out the type plane of the constant pool... this is a hack. FIXME
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Scalar/DCE.cpp b/lib/Transforms/Scalar/DCE.cpp
index fa2c9c7..f1582d3 100644
--- a/lib/Transforms/Scalar/DCE.cpp
+++ b/lib/Transforms/Scalar/DCE.cpp
@@ -37,7 +37,12 @@
struct ConstPoolDCE {
enum { EndOffs = 0 };
- static bool isDCEable(const Value *) { return true; }
+ static bool isDCEable(const ConstPoolVal *CPV) {
+ // TODO: The bytecode writer requires that all used types are in the
+ // constant pool for the current method. This is messy and is really
+ // irritating. FIXME
+ return CPV->getType() != Type::TypeTy; // Don't DCE Type plane constants!
+ }
};
struct BasicBlockDCE {