Thorin 1.9.0
The Higher ORder INtermediate representation
|
An optimizer that combines several optimizations in an optimal way. More...
#include <thorin/pass/pass.h>
Public Member Functions | |
PassMan (World &world) | |
Getters | |
World & | world () const |
const auto & | passes () const |
bool | fixed_point () const |
Def * | curr_mut () const |
Create and run Passes | |
void | run () |
Run all registered passes on the whole World. | |
template<class P , class... Args> | |
P * | add (Args &&... args) |
Add a pass to this PassMan. | |
template<class P , class... Args> | |
static void | run (World &world, Args &&... args) |
Runs a single Pass. | |
An optimizer that combines several optimizations in an optimal way.
This is loosely based upon: "Composing dataflow analyses and transformations" by Lerner, Grove, Chambers.
|
inline |
|
inline |
Definition at line 117 of file pass.h.
Referenced by thorin::RWPass< P, M >::curr_mut(), and thorin::RWPass< P, M >::inspect().
|
inline |
void thorin::PassMan::run | ( | ) |
Run all registered passes on the whole World.
Definition at line 41 of file pass.cpp.
References thorin::World::debug_dump(), thorin::Def::extended_ops(), thorin::World::externals(), thorin::Def::is_set(), thorin::No_Undo, thorin::Def::num_ops(), thorin::Def::op(), passes(), thorin::pop(), thorin::Def::reset(), thorin::Def::type(), thorin::World::verify(), thorin::Def::world(), and world().
Referenced by run(), and thorin::PassPhase< P >::start().
|
inlinestatic |
|
inline |
Definition at line 114 of file pass.h.
Referenced by run(), run(), and thorin::Pass::world().