Llvm.MetaData

ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

Llvm.MetaData

Contents

- 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

Synopsis

- data MetaExpr
  - = MetaStr LMString
  - | MetaNode Int
  - | MetaVar LlvmVar
  - | MetaStruct [MetaExpr]
- data MetaAnnot = MetaAnnot LMString MetaExpr
- data MetaDecl
  - = MetaNamed LMString [Int]
  - | MetaUnamed Int MetaExpr

# 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 MetaExpr

LLVM metadata expressions

Constructors

MetaStr LMString |
MetaNode Int |
MetaVar LlvmVar |
MetaStruct [MetaExpr] |

Instances

Eq MetaExpr |
Outputable MetaExpr |

data MetaAnnot

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

Constructors

MetaAnnot LMString MetaExpr |

Instances

Eq MetaAnnot |

data MetaDecl

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

Constructors

MetaNamed LMString [Int] | Named metadata. Only used for communicating module information to LLVM. ('!name = !{ [!n] }' form).
MetaUnamed Int MetaExpr | Metadata node declaration. ('!0 = metadata !{ expression }' form).