X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2Fllvm.grm;h=fb26dbb66f6098f3e0b764d0a65a775cd7b630d4;hb=57c68f972cbc97c220989167bed6b5ef902c56df;hp=4499d4b35a9f7c5124a3aa34a84f90683d040e4a;hpb=224251d18eb6b6e83b49e27ab69d6e42a405c6dd;p=oota-llvm.git diff --git a/utils/llvm.grm b/utils/llvm.grm index 4499d4b35a9..fb26dbb66f6 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" @@ -90,6 +92,8 @@ GVInternalLinkage | dllexport | common | private + | "linker_private" + | "linker_private_weak" ; GVExternalLinkage @@ -161,11 +165,15 @@ FuncAttr ::= noreturn | signext | readnone | readonly + | inlinehint + | alignstack | noinline | alwaysinline | optsize | ssp | sspreq + | returns_twice + | nonlazybind ; OptFuncAttrs ::= + _ | OptFuncAttrs FuncAttr ; @@ -396,7 +404,7 @@ OptVolatile ::= - volatile | _ ; OptExact ::= - exact | _ ; OptNSW ::= - nsw | _ ; OptNUW ::= - nuw | _ ; -OptNW ::= OptNUW OptNSW ; +OptNW ::= OptNUW OptNSW | OptNSW OptNUW ; OptInBounds ::= - inbounds | _ ; MemoryInst ::= malloc Types OptCAlign