[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