LocalName ::= LOCALVAR | STRINGCONSTANT | PCTSTRINGCONSTANT ;
OptLocalName ::= LocalName | _ ;
-OptAddrSpace ::= - addrspace "(" ^ EUINT64VAL ^ ")" | _ ;
+OptAddrSpace ::= - addrspace ^ "(" ^ EUINT64VAL ^ ")" | _ ;
OptLocalAssign ::= LocalName "=" | _ ;
coldcc |
"x86_stdcallcc" |
"x86_fastcallcc" |
- "x86_ssecallcc" |
cc EUINT64VAL ;
ParamAttr ::= zeroext
| inreg
| sret
| noalias
+ | nocapture
| byval
| nest
| align EUINT64VAL
OptParamAttrs ::= + _ | OptParamAttrs ParamAttr ;
+RetAttr ::= inreg
+ | zeroext
+ | signext
+ | noalias
+ ;
+
+OptRetAttrs ::= _
+ | OptRetAttrs RetAttr
+ ;
+
FuncAttr ::= noreturn
| nounwind
+ | inreg
| zeroext
| signext
| readnone
| readonly
+ | noinline
+ | alwaysinline
+ | optsize
+ | ssp
+ | sspreq
;
OptFuncAttrs ::= + _ | OptFuncAttrs FuncAttr ;
-FuncNoteList ::= FuncNote
- | FuncNoteList ^ "," FuncNote
- ;
-
-FuncNote ::= inline ^ "=" ^ never
- | inline ^ "=" ^ always
- | "opt_size"
- ;
-
-OptFuncNotes ::= _
- | notes ^ "(" ^ FuncNoteList ^ ")"
- ;
-
OptGC ::= + _ | gc STRINGCONSTANT ;
OptAlign ::= + _ | align EUINT64VAL ;
| Types SymbolicValueRef
| Types ConstExpr
| Types zeroinitializer
- | IntType ESINT64VAL
- | IntType ESAPINTVAL
- | IntType EUINT64VAL
- | IntType EUAPINTVAL
- | INTTYPE true
- | INTTYPE false
- | FPType FPVAL ;
+ | Types ESINT64VAL
+ | Types ESAPINTVAL
+ | Types EUINT64VAL
+ | Types EUAPINTVAL
+ | Types true
+ | Types false
+ | Types FPVAL ;
ConstExpr::= CastOps "(" ^ ConstVal to Types ^ ")"
| getelementptr "(" ^ ConstVal IndexList ^ ")"
| declare FunctionProto
| - module asm AsmBlock
| OptLocalAssign type Types
- | OptLocalAssign type void
- | OptGlobalAssign GVVisibilityStyle ThreadLocal GlobalType ConstVal
- OptAddrSpace GlobalVarAttributes
- | OptGlobalAssign GVInternalLinkage GVVisibilityStyle ThreadLocal GlobalType
- ConstVal OptAddrSpace GlobalVarAttributes
- | OptGlobalAssign GVExternalLinkage GVVisibilityStyle ThreadLocal GlobalType
- Types OptAddrSpace GlobalVarAttributes
+ | OptGlobalAssign GVVisibilityStyle ThreadLocal OptAddrSpace GlobalType
+ ConstVal GlobalVarAttributes
+ | OptGlobalAssign GVInternalLinkage GVVisibilityStyle ThreadLocal OptAddrSpace
+ GlobalType ConstVal GlobalVarAttributes
+ | OptGlobalAssign GVExternalLinkage GVVisibilityStyle ThreadLocal OptAddrSpace
+ GlobalType Types GlobalVarAttributes
| OptGlobalAssign GVVisibilityStyle alias AliasLinkage AliaseeRef
| target TargetDefinition
| deplibs "=" LibrariesDefinition
TargetDefinition ::= triple "=" STRINGCONSTANT
| datalayout "=" STRINGCONSTANT ;
-LibrariesDefinition ::= "[" LibList "]";
+LibrariesDefinition ::= "[" ( LibList | _ ) "]";
-LibList ::= LibList ^ "," STRINGCONSTANT | STRINGCONSTANT | _ ;
+LibList ::= LibList ^ "," STRINGCONSTANT | STRINGCONSTANT ;
ArgListH ::= ArgListH ^ "," Types OptParamAttrs OptLocalName
| Types OptParamAttrs OptLocalName ;
ArgList ::= ArgListH | ArgListH ^ "," "..." | "..." | _ ;
-FunctionHeaderH ::= OptCallingConv ResultTypes GlobalName "(" ^ ArgList ^ ")"
- OptFuncAttrs OptSection OptAlign OptGC OptFuncNotes ;
+FunctionHeaderH ::= OptCallingConv OptRetAttrs ResultTypes
+ GlobalName ^ "(" ^ ArgList ^ ")"
+ OptFuncAttrs OptSection OptAlign OptGC ;
BEGIN ::= ( begin | "{" ) ^ "\n";