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.
181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/rltk/cg/pass_manager.rb', line 181 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.
200 201 202 |
# File 'lib/rltk/cg/pass_manager.rb', line 200 def run(fun) Bindings.run_function_pass_manager(@ptr, fun).to_bool end |