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