diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-11-27 01:05:10 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-11-27 01:05:10 +0000 |
commit | 6c38f0bb071b864a6f2ae7b0cacad1b15f6e3d03 (patch) | |
tree | 49fc8d5bca4b3574ae62d6927eef8e54ec07afb2 /llvm/lib/Transforms/Instrumentation/TraceValues.cpp | |
parent | afbc00bc381d60d041d716e0f9b8a04aadb42d23 (diff) | |
download | bcm5719-llvm-6c38f0bb071b864a6f2ae7b0cacad1b15f6e3d03.tar.gz bcm5719-llvm-6c38f0bb071b864a6f2ae7b0cacad1b15f6e3d03.zip |
For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
Diffstat (limited to 'llvm/lib/Transforms/Instrumentation/TraceValues.cpp')
-rw-r--r-- | llvm/lib/Transforms/Instrumentation/TraceValues.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/TraceValues.cpp b/llvm/lib/Transforms/Instrumentation/TraceValues.cpp index d335f16cad8..7451b51c31a 100644 --- a/llvm/lib/Transforms/Instrumentation/TraceValues.cpp +++ b/llvm/lib/Transforms/Instrumentation/TraceValues.cpp @@ -190,8 +190,7 @@ static inline bool TraceThisOpCode(unsigned opCode) { // return (opCode < Instruction::OtherOpsBegin && opCode != Instruction::Alloca && - opCode != Instruction::PHI && - opCode != Instruction::Cast); + opCode != Instruction::PHI && ! Instruction::isCast(opCode)); } @@ -251,7 +250,7 @@ static void InsertPrintInst(Value *V, BasicBlock *BB, Instruction *InsertBefore, if (V && isa<PointerType>(V->getType()) && !DisablePtrHashing) { const Type *SBP = PointerType::get(Type::SByteTy); if (V->getType() != SBP) // Cast pointer to be sbyte* - V = new CastInst(V, SBP, "Hash_cast", InsertBefore); + V = new BitCastInst(V, SBP, "Hash_cast", InsertBefore); std::vector<Value*> HashArgs(1, V); V = new CallInst(HashPtrToSeqNum, HashArgs, "ptrSeqNum", InsertBefore); @@ -282,7 +281,7 @@ InsertReleaseInst(Value *V, BasicBlock *BB, const Type *SBP = PointerType::get(Type::SByteTy); if (V->getType() != SBP) // Cast pointer to be sbyte* - V = new CastInst(V, SBP, "RPSN_cast", InsertBefore); + V = CastInst::createInferredCast(V, SBP, "RPSN_cast", InsertBefore); std::vector<Value*> releaseArgs(1, V); new CallInst(ReleasePtrFunc, releaseArgs, "", InsertBefore); @@ -294,7 +293,7 @@ InsertRecordInst(Value *V, BasicBlock *BB, Function* RecordPtrFunc) { const Type *SBP = PointerType::get(Type::SByteTy); if (V->getType() != SBP) // Cast pointer to be sbyte* - V = new CastInst(V, SBP, "RP_cast", InsertBefore); + V = CastInst::createInferredCast(V, SBP, "RP_cast", InsertBefore); std::vector<Value*> releaseArgs(1, V); new CallInst(RecordPtrFunc, releaseArgs, "", InsertBefore); |