summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-12-12 01:17:41 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-12-12 01:17:41 +0000
commit15f46d6c280cc91be70c60ed181931fbe0088652 (patch)
tree07819b1afebb41775b1df6a9e8bc7536249d68c4
parentf64945d83c61e540a448de0d0d23cda67c92ebe5 (diff)
downloadexternal_llvm-15f46d6c280cc91be70c60ed181931fbe0088652.zip
external_llvm-15f46d6c280cc91be70c60ed181931fbe0088652.tar.gz
external_llvm-15f46d6c280cc91be70c60ed181931fbe0088652.tar.bz2
Change inferred cast creation calls to more specific cast creations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32460 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/AsmPrinter.cpp6
-rw-r--r--lib/CodeGen/IntrinsicLowering.cpp2
-rw-r--r--lib/CodeGen/MachineDebugInfo.cpp10
-rw-r--r--lib/CodeGen/SelectionDAG/LegalizeDAG.cpp2
-rw-r--r--lib/ExecutionEngine/JIT/JIT.cpp2
5 files changed, 13 insertions, 9 deletions
diff --git a/lib/CodeGen/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter.cpp
index 4caa2c1..498339c 100644
--- a/lib/CodeGen/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter.cpp
@@ -446,7 +446,11 @@ void AsmPrinter::EmitConstantValueOnly(const Constant *CV) {
// integer type. This promotes constant folding and simplifies this code.
if (isa<PointerType>(Ty)) {
const Type *IntPtrTy = TD->getIntPtrType();
- Op = ConstantExpr::getCast(Op, IntPtrTy);
+ Instruction::CastOps opcode = Instruction::CastOps(CE->getOpcode());
+ if (opcode == Instruction::IntToPtr)
+ Op = ConstantExpr::getIntegerCast(Op, IntPtrTy, false /*ZExt*/);
+ else
+ Op = ConstantExpr::getCast(Instruction::PtrToInt, Op, IntPtrTy);
return EmitConstantValueOnly(Op);
}
diff --git a/lib/CodeGen/IntrinsicLowering.cpp b/lib/CodeGen/IntrinsicLowering.cpp
index 753f459..55f1c3c 100644
--- a/lib/CodeGen/IntrinsicLowering.cpp
+++ b/lib/CodeGen/IntrinsicLowering.cpp
@@ -239,7 +239,7 @@ static Value *LowerCTPOP(Value *V, Instruction *IP) {
for (unsigned i = 1, ct = 0; i != BitSize; i <<= 1, ++ct) {
Value *MaskCst =
- ConstantExpr::getCast(ConstantInt::get(Type::ULongTy, MaskValues[ct]),
+ ConstantExpr::getTruncOrBitCast(ConstantInt::get(Type::ULongTy, MaskValues[ct]),
V->getType());
Value *LHS = BinaryOperator::createAnd(V, MaskCst, "cppop.and1", IP);
Value *VShift = new ShiftInst(Instruction::LShr, V,
diff --git a/lib/CodeGen/MachineDebugInfo.cpp b/lib/CodeGen/MachineDebugInfo.cpp
index bc75ccb..d3b6ecb 100644
--- a/lib/CodeGen/MachineDebugInfo.cpp
+++ b/lib/CodeGen/MachineDebugInfo.cpp
@@ -292,7 +292,7 @@ public:
if (GV) {
// Set to pointer to global.
- Elements.push_back(ConstantExpr::getCast(GV, EmptyTy));
+ Elements.push_back(ConstantExpr::getBitCast(GV, EmptyTy));
} else {
// Use NULL.
Elements.push_back(ConstantPointerNull::get(EmptyTy));
@@ -301,7 +301,7 @@ public:
virtual void Apply(GlobalVariable *&Field) {
const PointerType *EmptyTy = SR.getEmptyStructPtrType();
if (Field) {
- Elements.push_back(ConstantExpr::getCast(Field, EmptyTy));
+ Elements.push_back(ConstantExpr::getBitCast(Field, EmptyTy));
} else {
Elements.push_back(ConstantPointerNull::get(EmptyTy));
}
@@ -315,7 +315,7 @@ public:
for (unsigned i = 0, N = Field.size(); i < N; ++i) {
if (DebugInfoDesc *Element = Field[i]) {
GlobalVariable *GVE = SR.Serialize(Element);
- Constant *CE = ConstantExpr::getCast(GVE, EmptyTy);
+ Constant *CE = ConstantExpr::getBitCast(GVE, EmptyTy);
ArrayElements.push_back(cast<Constant>(CE));
} else {
ArrayElements.push_back(ConstantPointerNull::get(EmptyTy));
@@ -328,7 +328,7 @@ public:
CA, "llvm.dbg.array",
SR.getModule());
CAGV->setSection("llvm.metadata");
- Constant *CAE = ConstantExpr::getCast(CAGV, EmptyTy);
+ Constant *CAE = ConstantExpr::getBitCast(CAGV, EmptyTy);
Elements.push_back(CAE);
}
};
@@ -1323,7 +1323,7 @@ Constant *DISerializer::getString(const std::string &String) {
ConstStr, "str", M);
StrGV->setSection("llvm.metadata");
// Convert to generic string pointer.
- Slot = ConstantExpr::getCast(StrGV, getStrPtrType());
+ Slot = ConstantExpr::getBitCast(StrGV, getStrPtrType());
}
return Slot;
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index 4d5d3da..4cbc9fe 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -790,7 +790,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
// Only do this if the target has a native EXTLOAD instruction from
// f32.
TLI.isLoadXLegal(ISD::EXTLOAD, MVT::f32)) {
- LLVMC = cast<ConstantFP>(ConstantExpr::getCast(LLVMC, Type::FloatTy));
+ LLVMC = cast<ConstantFP>(ConstantExpr::getFPCast(LLVMC, Type::FloatTy));
VT = MVT::f32;
Extend = true;
}
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index 28c452d..4cfd907 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -212,7 +212,7 @@ GenericValue JIT::runFunction(Function *F,
} else {
C = ConstantInt::get(Type::LongTy, (intptr_t)ArgPtr);
}
- C = ConstantExpr::getCast(C, ArgTy); // Cast the integer to pointer
+ C = ConstantExpr::getIntToPtr(C, ArgTy); // Cast the integer to pointer
break;
}
Args.push_back(C);