Changes in directory llvm/lib/Analysis/IPA:
Andersens.cpp updated: 1.36 -> 1.37 GlobalsModRef.cpp updated: 1.23 -> 1.24 --- Log message: For PR950: http://llvm.org/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. --- Diffs of the changes: (+12 -14) Andersens.cpp | 18 ++++++++---------- GlobalsModRef.cpp | 8 ++++---- 2 files changed, 12 insertions(+), 14 deletions(-) Index: llvm/lib/Analysis/IPA/Andersens.cpp diff -u llvm/lib/Analysis/IPA/Andersens.cpp:1.36 llvm/lib/Analysis/IPA/Andersens.cpp:1.37 --- llvm/lib/Analysis/IPA/Andersens.cpp:1.36 Fri Nov 17 01:36:54 2006 +++ llvm/lib/Analysis/IPA/Andersens.cpp Sun Nov 26 19:05:09 2006 @@ -529,11 +529,10 @@ switch (CE->getOpcode()) { case Instruction::GetElementPtr: return getNodeForConstantPointer(CE->getOperand(0)); - case Instruction::Cast: - if (isa<PointerType>(CE->getOperand(0)->getType())) - return getNodeForConstantPointer(CE->getOperand(0)); - else - return &GraphNodes[UniversalSet]; + case Instruction::IntToPtr: + return &GraphNodes[UniversalSet]; + case Instruction::BitCast: + return getNodeForConstantPointer(CE->getOperand(0)); default: std::cerr << "Constant Expr not yet handled: " << *CE << "\n"; assert(0); @@ -557,11 +556,10 @@ switch (CE->getOpcode()) { case Instruction::GetElementPtr: return getNodeForConstantPointerTarget(CE->getOperand(0)); - case Instruction::Cast: - if (isa<PointerType>(CE->getOperand(0)->getType())) - return getNodeForConstantPointerTarget(CE->getOperand(0)); - else - return &GraphNodes[UniversalSet]; + case Instruction::IntToPtr: + return &GraphNodes[UniversalSet]; + case Instruction::BitCast: + return getNodeForConstantPointerTarget(CE->getOperand(0)); default: std::cerr << "Constant Expr not yet handled: " << *CE << "\n"; assert(0); Index: llvm/lib/Analysis/IPA/GlobalsModRef.cpp diff -u llvm/lib/Analysis/IPA/GlobalsModRef.cpp:1.23 llvm/lib/Analysis/IPA/GlobalsModRef.cpp:1.24 --- llvm/lib/Analysis/IPA/GlobalsModRef.cpp:1.23 Sun Oct 1 17:46:33 2006 +++ llvm/lib/Analysis/IPA/GlobalsModRef.cpp Sun Nov 26 19:05:09 2006 @@ -167,10 +167,10 @@ // Traverse through different addressing mechanisms. if (Instruction *I = dyn_cast<Instruction>(V)) { - if (isa<CastInst>(I) || isa<GetElementPtrInst>(I)) + if (isa<BitCastInst>(I) || isa<GetElementPtrInst>(I)) return getUnderlyingObject(I->getOperand(0)); } else if (ConstantExpr *CE = dyn_cast<ConstantExpr>(V)) { - if (CE->getOpcode() == Instruction::Cast || + if (CE->getOpcode() == Instruction::BitCast || CE->getOpcode() == Instruction::GetElementPtr) return getUnderlyingObject(CE->getOperand(0)); } @@ -252,8 +252,8 @@ for (unsigned i = 3, e = II->getNumOperands(); i != e; ++i) if (II->getOperand(i) == V) return true; } else if (ConstantExpr *CE = dyn_cast<ConstantExpr>(*UI)) { - if (CE->getOpcode() == Instruction::GetElementPtr || - CE->getOpcode() == Instruction::Cast) { + if (CE->getOpcode() == Instruction::GetElementPtr || + CE->getOpcode() == Instruction::BitCast) { if (AnalyzeUsesOfPointer(CE, Readers, Writers)) return true; } else { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits