3 KiB
| layout | title |
|---|---|
| page | Function (llvm.core) |
llvm.core.Function
- This will become a table of contents (this text will be scraped). {:toc}
Base Class
Static Constructors
new(module_obj, func_ty, name)
Create a function named name of type func_ty in the module
module_obj and return a Function object that represents it.
get(module_obj, name)
Return a Function object to represent the function
named name in the module module_obj or raise LLVMException if
such a function does not exist.
get_or_insert(module_obj, func_ty, name)
Similar to get, except that if the function does not exist it
is added first, as though with new.
intrinsic(module_obj, intrinsic_id, types)
Create and return a Function object that refers to an intrinsic
function, as described here.
Properties
calling_convention
The calling convention for the function, as listed here.
collector
A string holding the name of the garbage collection algorithm. See LLVM docs.
does_not_throw
Setting to True sets the ATTR_NO_UNWIND attribute, False
removes it. Shortcut to using f.add_attribute(ATTR_NO_UNWIND)
and f.remove_attribute(ATTR_NO_UNWIND).
args
read-only
List of llvm.core.Argument objects representing the formal arguments of the function.
basic_block_count
read-only
Number of basic blocks belonging to this function. Same as
len(f.basic_blocks) but faster if you just want the count.
entry_basic_block
read-only
The llvm.core.BasicBlock object representing the entry
basic block for this function, or None if there are no
basic blocks.
basic_blocks
read-only
List of llvm.core.BasicBlock objects representing the basic blocks belonging to this function.
intrinsic_id
read-only
Returns the ID of the intrinsic if this object represents an intrinsic instruction. Otherwise 0.
Methods
delete()
Deletes the function from it's module. Do not hold any
references to this object after calling delete on it.
append_basic_block(name)
Add a new basic block named name, and return a corresponding
llvm.core.BasicBlock object. Note that if this is not the
entry basic block, you'll have to add appropriate branch
instructions from other basic blocks yourself.
add_attribute(attr)
Add an attribute attr to the function, from the set listed above.
remove_attribute(attr)
Remove the attribute attr of the function.
viewCFG()
Displays the control flow graph using the GraphViz tool.
viewCFGOnly()
Displays the control flow graph using the GraphViz tool, but omitting function bodies.
verify()
Verifies the function. See LLVM docs.