Class: RLTK::CG::FunctionPassManager
- Inherits:
-
PassManager
- Object
- PassManager
- RLTK::CG::FunctionPassManager
- Defined in:
- lib/rltk/cg/pass_manager.rb
Overview
A FunctionPassManager is responsible for scheduling and running optimization passes on individual functions inside the context of a module.
Constant Summary
Constants inherited from PassManager
PassManager::CLASS_FINALIZER, PassManager::PASSES
Instance Attribute Summary
Attributes included from BindingClass
Instance Method Summary collapse
-
#initialize(mod) ⇒ FunctionPassManager
constructor
Create a new function pass manager.
-
#run(fun) ⇒ void
Run the enabled passes on the given function inside the execution engine’s module.
Methods inherited from PassManager
#add, #enabled, #enabled?, #target_data=
Methods included from BindingClass
Constructor Details
#initialize(mod) ⇒ FunctionPassManager
Create a new function pass manager. You should never have to do this as Modules should create FunctionPassManagers for you whenever they are requested.
176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/rltk/cg/pass_manager.rb', line 176 def initialize(mod) # LLVM Initialization @ptr = Bindings.create_function_pass_manager_for_module(mod) # Set the target data if the module is associated with a execution engine. self.target_data = mod.engine.target_data if mod.engine Bindings.initialize_function_pass_manager(@ptr) # RLTK Initialization @enabled = Array.new end |
Instance Method Details
#run(fun) ⇒ void
This method returns an undefined value.
Run the enabled passes on the given function inside the execution engine’s module.
195 196 197 |
# File 'lib/rltk/cg/pass_manager.rb', line 195 def run(fun) Bindings.run_function_pass_manager(@ptr, fun).to_bool end |