aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/Lexer.l1
-rw-r--r--lib/AsmParser/llvmAsmParser.y17
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 45361bd..9290cf1 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -195,6 +195,7 @@ not { return NOT; } /* Deprecated, turned into XOR */
target { return TARGET; }
triple { return TRIPLE; }
deplibs { return DEPLIBS; }
+passes { return PASSES; }
endian { return ENDIAN; }
pointersize { return POINTERSIZE; }
little { return LITTLE; }
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 1fd8782..aec7b38 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -910,7 +910,7 @@ Module *llvm::RunVMAsmParser(const std::string &Filename, FILE *F) {
%token DECLARE GLOBAL CONSTANT VOLATILE
%token TO DOTDOTDOT NULL_TOK CONST INTERNAL LINKONCE WEAK APPENDING
%token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG
-%token DEPLIBS
+%token DEPLIBS PASSES
// Basic Block Terminating Operators
%token <TermOpVal> RET BR SWITCH INVOKE UNWIND
@@ -1484,6 +1484,8 @@ ConstPool : ConstPool OptAssign TYPE TypesV { // Types can be defined in the co
}
| ConstPool DEPLIBS '=' LibrariesDefinition {
}
+ | ConstPool PASSES '=' PassesDefinition {
+ }
| /* empty: end of list */ {
};
@@ -1522,6 +1524,19 @@ LibList : LibList ',' STRINGCONSTANT {
}
;
+PassesDefinition : '[' PassList ']';
+PassList : PassList ',' STRINGCONSTANT {
+ CurModule.CurrentModule->addLibrary($3);
+ free($3);
+ }
+ | STRINGCONSTANT {
+ CurModule.CurrentModule->addLibrary($1);
+ free($1);
+ }
+ | /* empty: end of list */ {
+ }
+ ;
+
//===----------------------------------------------------------------------===//
// Rules to match Function Headers
//===----------------------------------------------------------------------===//