Llvm.MetaData

# Metadata can be constructed in a few different ways (See below).

# After which it can either be attached to LLVM statements to pass along

# Metadata expressions -- these are the raw metadata values that encode

# Metadata nodes -- global metadata variables that attach a metadata

# Named metadata -- global metadata variables that attach a metadata nodes

# Attach to instructions -- metadata can be attached to LLVM instructions

# As arguments -- llvm functions can take metadata as arguments, for

# As a named metadata -- Here the metadata is simply declared in global

data MetaId

data MetaExpr

data MetaAnnot

data MetaDecl