[llvm-commits] CVS: llvm/lib/AsmParser/Lexer.l llvmAsmParser.y

Andrew Lenharth alenhar2 at cs.uiuc.edu
Mon May 2 12:07:44 PDT 2005



Changes in directory llvm/lib/AsmParser:

Lexer.l updated: 1.58 -> 1.59
llvmAsmParser.y updated: 1.218 -> 1.219
---
Log message:

Remove support for 1.0 style varargs

amusing of course, because we will have to go back to those semantics soon



---
Diffs of the changes:  (+0 -87)

 Lexer.l         |    1 
 llvmAsmParser.y |   86 --------------------------------------------------------
 2 files changed, 87 deletions(-)


Index: llvm/lib/AsmParser/Lexer.l
diff -u llvm/lib/AsmParser/Lexer.l:1.58 llvm/lib/AsmParser/Lexer.l:1.59
--- llvm/lib/AsmParser/Lexer.l:1.58	Sat Jan  8 14:03:59 2005
+++ llvm/lib/AsmParser/Lexer.l	Mon May  2 14:07:27 2005
@@ -240,7 +240,6 @@
 select          { RET_TOK(OtherOpVal, Select, SELECT); }
 shl             { RET_TOK(OtherOpVal, Shl, SHL); }
 shr             { RET_TOK(OtherOpVal, Shr, SHR); }
-va_arg          { return VA_ARG; /* FIXME: OBSOLETE */}
 vanext          { RET_TOK(OtherOpVal, VANext, VANEXT); }
 vaarg           { RET_TOK(OtherOpVal, VAArg , VAARG); }
 


Index: llvm/lib/AsmParser/llvmAsmParser.y
diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.218 llvm/lib/AsmParser/llvmAsmParser.y:1.219
--- llvm/lib/AsmParser/llvmAsmParser.y:1.218	Tue Mar 22 19:29:26 2005
+++ llvm/lib/AsmParser/llvmAsmParser.y	Mon May  2 14:07:27 2005
@@ -732,7 +732,6 @@
   llvmAsmin = F;
   CurFilename = Filename;
   llvmAsmlineno = 1;      // Reset the current line number...
-  ObsoleteVarArgs = false;
 
   // Allocate a new module to read
   CurModule.CurrentModule = new Module(Filename);
@@ -741,67 +740,6 @@
 
   Module *Result = ParserResult;
 
-  // Check to see if they called va_start but not va_arg..
-  if (!ObsoleteVarArgs)
-    if (Function *F = Result->getNamedFunction("llvm.va_start"))
-      if (F->arg_size() == 1) {
-        std::cerr << "WARNING: this file uses obsolete features.  "
-                  << "Assemble and disassemble to update it.\n";
-        ObsoleteVarArgs = true;
-      }
-
-  if (ObsoleteVarArgs) {
-    // If the user is making use of obsolete varargs intrinsics, adjust them for
-    // the user.
-    if (Function *F = Result->getNamedFunction("llvm.va_start")) {
-      assert(F->arg_size() == 1 && "Obsolete va_start takes 1 argument!");
-
-      const Type *RetTy = F->getFunctionType()->getParamType(0);
-      RetTy = cast<PointerType>(RetTy)->getElementType();
-      Function *NF = Result->getOrInsertFunction("llvm.va_start", RetTy, 0);
-      
-      while (!F->use_empty()) {
-        CallInst *CI = cast<CallInst>(F->use_back());
-        Value *V = new CallInst(NF, "", CI);
-        new StoreInst(V, CI->getOperand(1), CI);
-        CI->getParent()->getInstList().erase(CI);
-      }
-      Result->getFunctionList().erase(F);
-    }
-    
-    if (Function *F = Result->getNamedFunction("llvm.va_end")) {
-      assert(F->arg_size() == 1 && "Obsolete va_end takes 1 argument!");
-      const Type *ArgTy = F->getFunctionType()->getParamType(0);
-      ArgTy = cast<PointerType>(ArgTy)->getElementType();
-      Function *NF = Result->getOrInsertFunction("llvm.va_end", Type::VoidTy,
-                                                 ArgTy, 0);
-
-      while (!F->use_empty()) {
-        CallInst *CI = cast<CallInst>(F->use_back());
-        Value *V = new LoadInst(CI->getOperand(1), "", CI);
-        new CallInst(NF, V, "", CI);
-        CI->getParent()->getInstList().erase(CI);
-      }
-      Result->getFunctionList().erase(F);
-    }
-
-    if (Function *F = Result->getNamedFunction("llvm.va_copy")) {
-      assert(F->arg_size() == 2 && "Obsolete va_copy takes 2 argument!");
-      const Type *ArgTy = F->getFunctionType()->getParamType(0);
-      ArgTy = cast<PointerType>(ArgTy)->getElementType();
-      Function *NF = Result->getOrInsertFunction("llvm.va_copy", ArgTy,
-                                                 ArgTy, 0);
-
-      while (!F->use_empty()) {
-        CallInst *CI = cast<CallInst>(F->use_back());
-        Value *V = new CallInst(NF, CI->getOperand(2), "", CI);
-        new StoreInst(V, CI->getOperand(1), CI);
-        CI->getParent()->getInstList().erase(CI);
-      }
-      Result->getFunctionList().erase(F);
-    }
-  }
-
   llvmAsmin = stdin;    // F is about to go away, don't use it anymore...
   ParserResult = 0;
 
@@ -915,7 +853,6 @@
 // Other Operators
 %type  <OtherOpVal> ShiftOps
 %token <OtherOpVal> PHI_TOK CALL CAST SELECT SHL SHR VAARG VANEXT
-%token VA_ARG // FIXME: OBSOLETE
 
 %start Module
 %%
@@ -1986,29 +1923,6 @@
       ThrowException("select value types should match!");
     $$ = new SelectInst($2, $4, $6);
   }
-  | VA_ARG ResolvedVal ',' Types {
-    // FIXME: This is emulation code for an obsolete syntax.  This should be
-    // removed at some point.
-    if (!ObsoleteVarArgs) {
-      std::cerr << "WARNING: this file uses obsolete features.  "
-                << "Assemble and disassemble to update it.\n";
-      ObsoleteVarArgs = true;
-    }
-
-    // First, load the valist...
-    Instruction *CurVAList = new LoadInst($2, "");
-    CurBB->getInstList().push_back(CurVAList);
-
-    // Emit the vaarg instruction.
-    $$ = new VAArgInst(CurVAList, *$4);
-    
-    // Now we must advance the pointer and update it in memory.
-    Instruction *TheVANext = new VANextInst(CurVAList, *$4);
-    CurBB->getInstList().push_back(TheVANext);
-
-    CurBB->getInstList().push_back(new StoreInst(TheVANext, $2));
-    delete $4;
-  }
   | VAARG ResolvedVal ',' Types {
     $$ = new VAArgInst($2, *$4);
     delete $4;






More information about the llvm-commits mailing list