Wyvern. Function
(wyvern v1.0.3)
Copy Markdown
The %Function{} represents a function defintion in the LLVM IR.
A function does not require an id because it has a global name.
Summary
Types
@type addr() :: nil | :unnamed_addr | :local_unnamed_addr
@type block_list() :: [Wyvern.BasicBlock.t()]
@type cconv() :: [nil | :fastcc | :coldcc | :tailcc | :swiftcc | :swifttailcc]
@type definition_linkage() ::
nil
| :private
| :internal
| :available_externally
| :linkonce
| :weak
| :linkonce_odr
| :weak_odr
@type param_list() :: [Wyvern.Param.t()]
@type t() :: %Wyvern.Function{ addr: addr(), blocks: block_list(), cconv: cconv(), linkage: definition_linkage(), name: String.t(), params: param_list(), ret_type: Wyvern.Type.t(), visibility: visibility() }
@type visibility() :: nil | :default | :hidden | :protected
Functions
@spec new(String.t(), Wyvern.Type.t(), param_list(), block_list(), keyword()) :: t()