Class: LLVM::FunctionPassManager

Inherits:
PassManager show all
Defined in:
lib/llvm/core/pass_manager.rb

Instance Method Summary collapse

Methods inherited from PassManager

#<<, #adce!, #constprop!, #dispose, #dse!, #gdce!, #gvn!, #indvars!, #instcombine!, #jump_threading!, #licm!, #loop_deletion!, #loop_rotate!, #loop_unroll!, #loop_unswitch!, #mem2reg!, #memcpyopt!, #reassociate!, #reg2mem!, #scalarrepl!, #sccp!, #simplify_libcalls!, #simplifycfg!, #tailcallelim!, #to_ptr

Constructor Details

#initialize(execution_engine, mod) ⇒ FunctionPassManager

Creates a new pass manager on the given ExecutionEngine and Module.



42
43
44
45
46
47
# File 'lib/llvm/core/pass_manager.rb', line 42

def initialize(execution_engine, mod)
  ptr = C.LLVMCreateFunctionPassManagerForModule(mod)
  C.LLVMAddTargetData(
    C.LLVMGetExecutionEngineTargetData(execution_engine), ptr)
  @ptr = ptr
end

Instance Method Details

#do_finalizationObject



53
54
55
# File 'lib/llvm/core/pass_manager.rb', line 53

def do_finalization
  C.LLVMFinalizeFunctionPassManager(self) != 0
end

#do_initializationObject



49
50
51
# File 'lib/llvm/core/pass_manager.rb', line 49

def do_initialization
  C.LLVMInitializeFunctionPassManager(self) != 0
end

#run(fn) ⇒ Object

Runs the passes on the given function.



58
59
60
# File 'lib/llvm/core/pass_manager.rb', line 58

def run(fn)
  C.LLVMRunFunctionPassManager(self, fn)
end