aboutsummaryrefslogtreecommitdiff
path: root/utils/llvm.grm
diff options
context:
space:
mode:
Diffstat (limited to 'utils/llvm.grm')
-rw-r--r--utils/llvm.grm39
1 files changed, 27 insertions, 12 deletions
diff --git a/utils/llvm.grm b/utils/llvm.grm
index bec33edff9..9f7588ae28 100644
--- a/utils/llvm.grm
+++ b/utils/llvm.grm
@@ -123,6 +123,7 @@ OptCallingConv ::= + _ |
coldcc |
"x86_stdcallcc" |
"x86_fastcallcc" |
+ "x86_ssecallcc" |
cc EUINT64VAL ;
ParamAttr ::= zeroext
@@ -149,6 +150,19 @@ FuncAttr ::= noreturn
OptFuncAttrs ::= + _ | OptFuncAttrs FuncAttr ;
+FuncNoteList ::= FuncNote
+ | FuncNoteList ^ "," FuncNote
+ ;
+
+FuncNote ::= inline ^ "=" ^ never
+ | inline ^ "=" ^ always
+ | "opt_size"
+ ;
+
+OptFuncNotes ::= _
+ | notes ^ "(" ^ FuncNoteList ^ ")"
+ ;
+
OptGC ::= + _ | gc STRINGCONSTANT ;
OptAlign ::= + _ | align EUINT64VAL ;
@@ -175,9 +189,9 @@ Types
| "[" ^ EUINT64VAL "x" Types ^ "]"
| "<" ^ EUINT64VAL "x" Types ^ ">"
| "{" TypeListI "}"
- | "{" "}"
+ | "{" ^ "}"
| "<" ^ "{" TypeListI "}" ^ ">"
- | "<" ^ "{" "}" ^ ">"
+ | "<" ^ "{" ^ "}" ^ ">"
;
ArgType ::= Types OptParamAttrs ;
@@ -191,13 +205,13 @@ ArgTypeListI ::= ArgTypeList | ArgTypeList ^ "," "..." | "..." | _ ;
TypeListI ::= Types | TypeListI ^ "," Types ;
ConstVal::= Types "[" ^ ConstVector ^ "]"
- | Types "[" "]"
+ | Types "[" ^ "]"
| Types "c" ^ STRINGCONSTANT
| Types "<" ^ ConstVector ^ ">"
| Types "{" ConstVector "}"
- | Types "{" "}"
+ | Types "{" ^ "}"
| Types "<" ^ "{" ConstVector "}" ^ ">"
- | Types "<" ^ "{" "}" ^ ">"
+ | Types "<" ^ "{" ^ "}" ^ ">"
| Types null
| Types undef
| Types SymbolicValueRef
@@ -271,7 +285,7 @@ ArgListH ::= ArgListH ^ "," Types OptParamAttrs OptLocalName
ArgList ::= ArgListH | ArgListH ^ "," "..." | "..." | _ ;
FunctionHeaderH ::= OptCallingConv ResultTypes GlobalName "(" ^ ArgList ^ ")"
- OptFuncAttrs OptSection OptAlign OptGC ;
+ OptFuncAttrs OptSection OptAlign OptGC OptFuncNotes ;
BEGIN ::= ( begin | "{" ) ^ "\n";
@@ -296,12 +310,12 @@ ConstValueRef ::= ESINT64VAL
| zeroinitializer
| "<" ConstVector ">"
| "[" ConstVector "]"
- | "[" "]"
+ | "[" ^ "]"
| "c" ^ STRINGCONSTANT
| "{" ConstVector "}"
- | "{" "}"
+ | "{" ^ "}"
| "<" ^ "{" ConstVector "}" ^ ">"
- | "<" ^ "{" "}" ^ ">"
+ | "<" ^ "{" ^ "}" ^ ">"
| ConstExpr
| asm OptSideEffect STRINGCONSTANT ^ "," STRINGCONSTANT ;
@@ -330,8 +344,9 @@ BBTerminatorInst ::= ^ " " ^
| br label ValueRef
| br INTTYPE ValueRef ^ "," label ValueRef ^ "," label ValueRef
| switch IntType ValueRef ^ "," label ValueRef "[" JumpTable "]"
- | switch IntType ValueRef ^ "," label ValueRef "[" "]"
- | invoke OptCallingConv ResultTypes ValueRef "(" ^ ParamList ^ ")" OptFuncAttrs
+ | switch IntType ValueRef ^ "," label ValueRef "[" ^ "]"
+ | invoke OptCallingConv ResultTypes ValueRef ^ "(" ^ ParamList ^ ")"
+ OptFuncAttrs
to label ValueRef unwind label ValueRef
| unwind
| unreachable ) ^ "\n";
@@ -370,7 +385,7 @@ InstVal ::=
| insertelement ResolvedVal ^ "," ResolvedVal ^ "," ResolvedVal
| shufflevector ResolvedVal ^ "," ResolvedVal ^ "," ResolvedVal
| phi PHIList
- | OptTailCall OptCallingConv ResultTypes ValueRef "(" ^ ParamList ^ ")"
+ | OptTailCall OptCallingConv ResultTypes ValueRef ^ "(" ^ ParamList ^ ")"
OptFuncAttrs
| MemoryInst ;