MimIR 0.1
MimIR is my Intermediate Representation
|
An optimizer that combines several optimizations in an optimal way. More...
#include <mim/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 |
Friends | |
template<class P , class M > | |
class | FPPass |
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 mim::RWPass< P, M >::curr_mut(), and mim::RWPass< P, M >::inspect().
|
inline |
void mim::PassMan::run | ( | ) |
Run all registered passes on the whole World.
Definition at line 41 of file pass.cpp.
References mim::World::debug_dump(), mim::Def::extended_ops(), mim::World::externals(), mim::Def::is_set(), mim::No_Undo, mim::Def::num_ops(), mim::Def::op(), passes(), mim::pop(), mim::Def::reset(), mim::Phase::run(), mim::Def::type(), mim::World::verify(), mim::Def::world(), and world().
Referenced by run(), and mim::PassPhase< P >::start().
|
inlinestatic |
|
inline |
Definition at line 114 of file pass.h.
Referenced by run(), run(), and mim::Pass::world().