Changes in directory llvm/tools/llvm2cpp:
CppWriter.cpp updated: 1.21 -> 1.22 --- 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: (+30 -4) CppWriter.cpp | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) Index: llvm/tools/llvm2cpp/CppWriter.cpp diff -u llvm/tools/llvm2cpp/CppWriter.cpp:1.21 llvm/tools/llvm2cpp/CppWriter.cpp:1.22 --- llvm/tools/llvm2cpp/CppWriter.cpp:1.21 Wed Nov 8 00:47:33 2006 +++ llvm/tools/llvm2cpp/CppWriter.cpp Sun Nov 26 19:05:10 2006 @@ -757,7 +757,7 @@ << " = ConstantExpr::getGetElementPtr(" << getCppName(CE->getOperand(0)) << ", " << constName << "_indices);"; - } else if (CE->getOpcode() == Instruction::Cast) { + } else if (CE->isCast()) { printConstant(CE->getOperand(0)); Out << "Constant* " << constName << " = ConstantExpr::getCast("; Out << getCppName(CE->getOperand(0)) << ", " << getCppName(CE->getType()) @@ -1174,10 +1174,36 @@ } break; } - case Instruction::Cast: { + case Instruction::Trunc: + case Instruction::ZExt: + case Instruction::SExt: + case Instruction::FPTrunc: + case Instruction::FPExt: + case Instruction::FPToUI: + case Instruction::FPToSI: + case Instruction::UIToFP: + case Instruction::SIToFP: + case Instruction::PtrToInt: + case Instruction::IntToPtr: + case Instruction::BitCast: { const CastInst* cst = cast<CastInst>(I); - Out << "CastInst* " << iName << " = new CastInst(" - << opNames[0] << ", " + Out << "CastInst* " << iName << " = new "; + switch (I->getOpcode()) { + case Instruction::Trunc: Out << "TruncInst"; + case Instruction::ZExt: Out << "ZExtInst"; + case Instruction::SExt: Out << "SExtInst"; + case Instruction::FPTrunc: Out << "FPTruncInst"; + case Instruction::FPExt: Out << "FPExtInst"; + case Instruction::FPToUI: Out << "FPToUIInst"; + case Instruction::FPToSI: Out << "FPToSIInst"; + case Instruction::UIToFP: Out << "UIToFPInst"; + case Instruction::SIToFP: Out << "SIToFPInst"; + case Instruction::PtrToInt: Out << "PtrToInst"; + case Instruction::IntToPtr: Out << "IntToPtrInst"; + case Instruction::BitCast: Out << "BitCastInst"; + default: assert(!"Unreachable"); break; + } + Out << "(" << opNames[0] << ", " << getCppName(cst->getType()) << ", \""; printEscapedString(cst->getName()); Out << "\", " << bbname << ");"; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits