X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2Fllvm.grm;h=92a4053173d64f87b08460cc956d83a0e46da449;hb=e12bf2aba135af15b33cca8a8c0fb80189a16b80;hp=86a707a925d90a4bb12c23c995a114dcf0f62390;hpb=de86d473fcc18fe769fa9edb075984880ef1a015;p=oota-llvm.git diff --git a/utils/llvm.grm b/utils/llvm.grm index 86a707a925d..92a4053173d 100644 --- a/utils/llvm.grm +++ b/utils/llvm.grm @@ -8,6 +8,8 @@ It is strictly syntax-based, and makes no attempt to generate IR that is semantically valid. Most of the IR produced doesn't pass the Verifier. +TODO: Metadata, in all its forms + *) I ::= "title: LLVM assembly language\n" @@ -162,11 +164,17 @@ FuncAttr ::= noreturn | readnone | readonly | inlinehint + | alignstack | noinline | alwaysinline | optsize | ssp | sspreq + | returns_twice + | nonlazybind + | sanitize_address + | sanitize_thread + | sanitize_memory ; OptFuncAttrs ::= + _ | OptFuncAttrs FuncAttr ; @@ -397,7 +405,7 @@ OptVolatile ::= - volatile | _ ; OptExact ::= - exact | _ ; OptNSW ::= - nsw | _ ; OptNUW ::= - nuw | _ ; -OptNW ::= OptNUW OptNSW ; +OptNW ::= OptNUW OptNSW | OptNSW OptNUW ; OptInBounds ::= - inbounds | _ ; MemoryInst ::= malloc Types OptCAlign