Add support for a simple constantexpr: cast of one ptr type to another
authorChris Lattner <sabre@nondot.org>
Mon, 21 Apr 2003 21:33:44 +0000 (21:33 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 21 Apr 2003 21:33:44 +0000 (21:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5829 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/InstSelectSimple.cpp
lib/Target/X86/X86ISelSimple.cpp

index 91d3013ecd0f2718a8367b219f918369931d398b..6adccb15e8a95c9ddcb158b0b90623b2121dd280 100644 (file)
@@ -307,6 +307,11 @@ void ISel::copyConstantToRegister(MachineBasicBlock *MBB,
       emitGEPOperation(MBB, IP, CE->getOperand(0),
                        CE->op_begin()+1, CE->op_end(), R);
       return;
+    } else if (CE->getOpcode() == Instruction::Cast &&
+               isa<PointerType>(CE->getType()) &&
+               isa<PointerType>(CE->getOperand(0)->getType())) {
+      copyConstantToRegister(MBB, IP, cast<Constant>(CE->getOperand(0)), R);
+      return;
     }
 
     std::cerr << "Offending expr: " << C << "\n";
index 91d3013ecd0f2718a8367b219f918369931d398b..6adccb15e8a95c9ddcb158b0b90623b2121dd280 100644 (file)
@@ -307,6 +307,11 @@ void ISel::copyConstantToRegister(MachineBasicBlock *MBB,
       emitGEPOperation(MBB, IP, CE->getOperand(0),
                        CE->op_begin()+1, CE->op_end(), R);
       return;
+    } else if (CE->getOpcode() == Instruction::Cast &&
+               isa<PointerType>(CE->getType()) &&
+               isa<PointerType>(CE->getOperand(0)->getType())) {
+      copyConstantToRegister(MBB, IP, cast<Constant>(CE->getOperand(0)), R);
+      return;
     }
 
     std::cerr << "Offending expr: " << C << "\n";