[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Instruction.cpp Verifier.cpp
Chris Lattner
lattner at cs.uiuc.edu
Sat Oct 18 00:58:35 PDT 2003
Changes in directory llvm/lib/VMCore:
AsmWriter.cpp updated: 1.101 -> 1.102
Instruction.cpp updated: 1.27 -> 1.28
Verifier.cpp updated: 1.63 -> 1.64
---
Log message:
Add support for the new varargs intrinsics and instructions
---
Diffs of the changes: (+15 -6)
Index: llvm/lib/VMCore/AsmWriter.cpp
diff -u llvm/lib/VMCore/AsmWriter.cpp:1.101 llvm/lib/VMCore/AsmWriter.cpp:1.102
--- llvm/lib/VMCore/AsmWriter.cpp:1.101 Thu Oct 16 21:02:39 2003
+++ llvm/lib/VMCore/AsmWriter.cpp Sat Oct 18 00:57:20 2003
@@ -661,7 +661,10 @@
}
printType(F->getReturnType()) << " ";
- if (!F->getName().empty()) Out << getLLVMName(F->getName());
+ if (!F->getName().empty())
+ Out << getLLVMName(F->getName());
+ else
+ Out << "\"\"";
Out << "(";
Table.incorporateFunction(F);
@@ -882,10 +885,14 @@
writeOperand(Operand, true);
Out << " to ";
printType(I.getType());
- } else if (isa<VarArgInst>(I)) {
+ } else if (isa<VAArgInst>(I)) {
writeOperand(Operand, true);
Out << ", ";
printType(I.getType());
+ } else if (const VANextInst *VAN = dyn_cast<VANextInst>(&I)) {
+ writeOperand(Operand, true);
+ Out << ", ";
+ printType(VAN->getArgType());
} else if (Operand) { // Print the normal way...
// PrintAllTypes - Instructions who have operands of all the same type
Index: llvm/lib/VMCore/Instruction.cpp
diff -u llvm/lib/VMCore/Instruction.cpp:1.27 llvm/lib/VMCore/Instruction.cpp:1.28
--- llvm/lib/VMCore/Instruction.cpp:1.27 Sun Oct 12 22:32:08 2003
+++ llvm/lib/VMCore/Instruction.cpp Sat Oct 18 00:57:20 2003
@@ -92,7 +92,8 @@
case Call: return "call";
case Shl: return "shl";
case Shr: return "shr";
- case VarArg: return "va_arg";
+ case VANext: return "vanext";
+ case VAArg: return "vaarg";
default: return "<Invalid operator> ";
}
Index: llvm/lib/VMCore/Verifier.cpp
diff -u llvm/lib/VMCore/Verifier.cpp:1.63 llvm/lib/VMCore/Verifier.cpp:1.64
--- llvm/lib/VMCore/Verifier.cpp:1.63 Fri Oct 10 12:54:14 2003
+++ llvm/lib/VMCore/Verifier.cpp Sat Oct 18 00:57:20 2003
@@ -131,7 +131,8 @@
void visitPHINode(PHINode &PN);
void visitBinaryOperator(BinaryOperator &B);
void visitShiftInst(ShiftInst &SI);
- void visitVarArgInst(VarArgInst &VAI) { visitInstruction(VAI); }
+ void visitVANextInst(VANextInst &VAN) { visitInstruction(VAN); }
+ void visitVAArgInst(VAArgInst &VAA) { visitInstruction(VAA); }
void visitCallInst(CallInst &CI);
void visitGetElementPtrInst(GetElementPtrInst &GEP);
void visitLoadInst(LoadInst &LI);
@@ -505,10 +506,10 @@
Assert1(CI.getParent()->getParent()->getFunctionType()->isVarArg(),
"llvm.va_start intrinsic may only occur in function with variable"
" args!", &CI);
- NumArgs = 1;
+ NumArgs = 0;
break;
case LLVMIntrinsic::va_end: NumArgs = 1; break;
- case LLVMIntrinsic::va_copy: NumArgs = 2; break;
+ case LLVMIntrinsic::va_copy: NumArgs = 1; break;
case LLVMIntrinsic::setjmp: NumArgs = 1; break;
case LLVMIntrinsic::longjmp: NumArgs = 2; break;
More information about the llvm-commits
mailing list