From f460048771217932f9098dc8023653eba0c70a7f Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 28 Jun 2003 20:01:34 +0000 Subject: [PATCH] Add support for a new zeroinitializer token which can be used to get rid of huge arrays of zero initialized values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6937 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/AsmParser/Lexer.l | 1 + lib/AsmParser/llvmAsmParser.y | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l index 7a56fcc8964..e124d24c141 100644 --- a/lib/AsmParser/Lexer.l +++ b/lib/AsmParser/Lexer.l @@ -174,6 +174,7 @@ appending { return APPENDING; } uninitialized { return EXTERNAL; } /* Deprecated, turn into external */ external { return EXTERNAL; } implementation { return IMPLEMENTATION; } +zeroinitializer { return ZEROINITIALIZER; } \.\.\. { return DOTDOTDOT; } null { return NULL_TOK; } to { return TO; } diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index ca5b48d01fb..233d9ea6baa 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -702,7 +702,8 @@ Module *RunVMAsmParser(const std::string &Filename, FILE *F) { %type OptVAR_ID OptAssign FuncName -%token IMPLEMENTATION TRUE FALSE BEGINTOK ENDTOK DECLARE GLOBAL CONSTANT +%token IMPLEMENTATION ZEROINITIALIZER TRUE FALSE BEGINTOK ENDTOK +%token DECLARE GLOBAL CONSTANT %token TO EXCEPT DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE APPENDING %token OPAQUE NOT EXTERNAL TARGET ENDIAN POINTERSIZE LITTLE BIG @@ -1039,6 +1040,10 @@ ConstVal: Types '[' ConstVector ']' { // Nonempty unsized arr ThrowException("Mismatched types for constant expression!"); $$ = $2; delete $1; + } + | Types ZEROINITIALIZER { + $$ = Constant::getNullValue($1->get()); + delete $1; }; ConstVal : SIntType EINT64VAL { // integral constants -- 2.34.1