Skip to content

Latest commit

 

History

History
99 lines (78 loc) · 1.46 KB

transforms.md

File metadata and controls

99 lines (78 loc) · 1.46 KB

Transforms

Pass builders

PassBuilder
run!
PassException

Pass managers

LLVM.PassManager
add!(::LLVM.AbstractPassManager, ::Any)

Passes and pipelines

The functions that return the names of LLVM's passes are listed on the Passes page.

DefaultPipeline

Custom passes

LLVM.CustomPass
register!
run!(::LLVM.CustomPass, ::Union{LLVM.Function, LLVM.Module}, ::Union{Nothing, LLVM.TargetMachine})
register_callbacks!

Analyses in custom passes

FunctionAnalysisManager
ModuleAnalysisManager
PreservedAnalyses
AllAnalyses
invalidate!
remark!
Remark

Custom target info

LLVM.AbstractTargetTransformInfo
target_transform_info!
LLVM.flat_address_space
LLVM.has_branch_divergence
LLVM.is_single_threaded
LLVM.is_noop_addr_space_cast
LLVM.is_valid_addr_space_cast
LLVM.addrspaces_may_alias
LLVM.can_have_non_undef_global_initializer_in_address_space
LLVM.is_source_of_divergence
LLVM.is_always_uniform
LLVM.get_assumed_addr_space
LLVM.get_predicated_addr_space
LLVM.rewrite_intrinsic_with_address_space
LLVM.collect_flat_address_operands

IR cloning

ValueMap
dispose(::ValueMap)
map_value
map_metadata
clone_into!
clone

Control flow

split_block!
split_block_and_insert_if_then!
split_block_and_insert_if_then_else!

Promoting memory to registers

is_promotable
promote_mem_to_reg!

Inlining

inline!
inline_viability