[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