ghc-lib-0.20190903: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

Llvm.MetaData

Contents

Synopsis

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

newtype MetaId Source #

A reference to an un-named metadata node.

Constructors

MetaId Int 
Instances
Enum MetaId Source # 
Instance details

Defined in Llvm.MetaData

Eq MetaId Source # 
Instance details

Defined in Llvm.MetaData

Methods

(==) :: MetaId -> MetaId -> Bool #

(/=) :: MetaId -> MetaId -> Bool #

Ord MetaId Source # 
Instance details

Defined in Llvm.MetaData

Outputable MetaId Source # 
Instance details

Defined in Llvm.MetaData

Methods

ppr :: MetaId -> SDoc #

pprPrec :: Rational -> MetaId -> SDoc #

data MetaExpr Source #

LLVM metadata expressions

Instances
Eq MetaExpr Source # 
Instance details

Defined in Llvm.MetaData

Outputable MetaExpr Source # 
Instance details

Defined in Llvm.MetaData

data MetaAnnot Source #

Associates some metadata with a specific label for attaching to an instruction.

Instances
Eq MetaAnnot Source # 
Instance details

Defined in Llvm.MetaData

data MetaDecl Source #

Metadata declarations. Metadata can only be declared in global scope.

Constructors

MetaNamed !LMString [MetaId]

Named metadata. Only used for communicating module information to LLVM. ('!name = !{ [!n] }' form).

MetaUnnamed !MetaId !MetaExpr

Metadata node declaration. ('!0 = metadata !{ expression }' form).