Fix bugs
authorChris Lattner <sabre@nondot.org>
Tue, 6 Nov 2001 08:34:29 +0000 (08:34 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 6 Nov 2001 08:34:29 +0000 (08:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1152 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/LevelRaise.cpp
lib/Transforms/TransformInternals.h

index a40d865fa632c77c380e9c948aecc4df77d4b86f..13140b4ea8b487d7d3557bc18c27f31da626dbe5 100644 (file)
@@ -375,11 +375,13 @@ static bool PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) {
       if (RetValConvertableToType(CI, Src->getType(), ConvertedTypes)) {
         PRINT_PEEPHOLE2("CAST-DEST-EXPR-CONV:in ", CI, Src);
 
+        //cerr << "\nCONVERTING EXPR TYPE:\n";
         ValueMapCache ValueMap;
         ConvertUsersType(CI, Src, ValueMap);  // This will delete CI!
 
         BI = BB->begin();  // Rescan basic block.  BI might be invalidated.
-        PRINT_PEEPHOLE1("CAST-DEST-EXPR-CONV:out", I);
+        PRINT_PEEPHOLE1("CAST-DEST-EXPR-CONV:out", Src);
+        //cerr << "DONE CONVERTING EXPR TYPE: ";// << BB->getParent();
         return true;
       }
     }
index 5c753c506c09adcd169a610c0f401c1557d67f4e..94af20099eacbbc3fceca26743a5816ce36364f8 100644 (file)
@@ -29,6 +29,14 @@ extern const TargetData TD;
 bool losslessCastableTypes(const Type *T1, const Type *T2);
 
 
+// isFirstClassType - Return true if a value of the specified type can be held
+// in a register.
+//
+static inline bool isFirstClassType(const Type *Ty) {
+  return Ty->isPrimitiveType() || Ty->isPointerType();
+}
+
+
 // ReplaceInstWithValue - Replace all uses of an instruction (specified by BI)
 // with a value, then remove and delete the original instruction.
 //
@@ -51,7 +59,7 @@ struct ValueMapCache {
   // Operands mapped - Contains an entry if the first value (the user) has had
   // the second value (the operand) mapped already.
   //
-  set<pair<const User*, const Value*> > OperandsMapped;
+  set<const User*> OperandsMapped;
 
   // Expression Map - Contains an entry from the old value to the new value of
   // an expression that has been converted over.
@@ -75,10 +83,7 @@ void ConvertUsersType(Value *V, Value *NewVal, ValueMapCache &VMC);
 class ValueHandle : public Instruction {
   ValueHandle(const ValueHandle &); // DO NOT IMPLEMENT
 public:
-  ValueHandle(Value *V) : Instruction(Type::VoidTy, UserOp1, "") {
-    Operands.push_back(Use(V, this));
-  }
-
+  ValueHandle(Value *V);
   ~ValueHandle();
 
   virtual Instruction *clone() const { abort(); return 0; }