Changes in directory llvm/lib/AsmParser:
llvmAsmParser.y updated: 1.239 -> 1.240 ParserInternals.h updated: 1.41 -> 1.42 --- Log message: Implement Regression/Assembler/2005-12-21-ZeroInitVector.ll --- Diffs of the changes: (+13 -1) ParserInternals.h | 8 +++++++- llvmAsmParser.y | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) Index: llvm/lib/AsmParser/llvmAsmParser.y diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.239 llvm/lib/AsmParser/llvmAsmParser.y:1.240 --- llvm/lib/AsmParser/llvmAsmParser.y:1.239 Sat Nov 12 12:21:21 2005 +++ llvm/lib/AsmParser/llvmAsmParser.y Wed Dec 21 11:53:02 2005 @@ -303,6 +303,9 @@ case ValID::ConstUndefVal: // Is it an undef value? return UndefValue::get(Ty); + case ValID::ConstZeroVal: // Is it a zero value? + return Constant::getNullValue(Ty); + case ValID::ConstantVal: // Fully resolved constant? if (D.ConstantValue->getType() != Ty) ThrowException("Constant expression type different from required type!"); @@ -1816,6 +1819,9 @@ | UNDEF { $$ = ValID::createUndef(); } + | ZEROINITIALIZER { // A vector zero constant. + $$ = ValID::createZeroInit(); + } | '<' ConstVector '>' { // Nonempty unsized packed vector const Type *ETy = (*$2)[0]->getType(); int NumElements = $2->size(); Index: llvm/lib/AsmParser/ParserInternals.h diff -u llvm/lib/AsmParser/ParserInternals.h:1.41 llvm/lib/AsmParser/ParserInternals.h:1.42 --- llvm/lib/AsmParser/ParserInternals.h:1.41 Thu May 19 22:25:47 2005 +++ llvm/lib/AsmParser/ParserInternals.h Wed Dec 21 11:53:02 2005 @@ -82,7 +82,7 @@ struct ValID { enum { NumberVal, NameVal, ConstSIntVal, ConstUIntVal, ConstFPVal, ConstNullVal, - ConstUndefVal, ConstantVal, + ConstUndefVal, ConstZeroVal, ConstantVal, } Type; union { @@ -122,6 +122,10 @@ ValID D; D.Type = ConstUndefVal; return D; } + static ValID createZeroInit() { + ValID D; D.Type = ConstZeroVal; return D; + } + static ValID create(Constant *Val) { ValID D; D.Type = ConstantVal; D.ConstantValue = Val; return D; } @@ -145,6 +149,7 @@ case ConstFPVal : return ftostr(ConstPoolFP); case ConstNullVal : return "null"; case ConstUndefVal : return "undef"; + case ConstZeroVal : return "zeroinitializer"; case ConstUIntVal : case ConstSIntVal : return std::string("%") + itostr(ConstPool64); case ConstantVal: @@ -168,6 +173,7 @@ case ConstFPVal: return ConstPoolFP < V.ConstPoolFP; case ConstNullVal: return false; case ConstUndefVal: return false; + case ConstZeroVal: return false; case ConstantVal: return ConstantValue < V.ConstantValue; default: assert(0 && "Unknown value type!"); return false; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits