MimIR 0.1
MimIR is my Intermediate Representation
|
As opposed to a Pass, a Phase does one thing at a time and does not mix with other Phases. More...
#include <mim/phase/phase.h>
Public Member Functions | |
Construction & Destruction | |
Phase (World &world, std::string name) | |
virtual | ~Phase ()=default |
virtual void | reset () |
Getters | |
World & | world () |
std::string_view | name () const |
bool | todo () const |
Protected Member Functions | |
virtual void | start ()=0 |
Actual entry. | |
Protected Attributes | |
bool | todo_ = false |
Set to true to indicate that you want to rerun all Phasees in current your fixed-point PhaseMan. | |
run | |
virtual void | run () |
Entry point and generates some debug output; invokes Phase::start. | |
template<class P, class... Args> | |
static void | run (Args &&... args) |
Runs a single Phase. | |
As opposed to a Pass, a Phase does one thing at a time and does not mix with other Phases.
They are supposed to classically run one after another.
|
inline |
Definition at line 24 of file phase.h.
References name(), and world().
Referenced by mim::plug::clos::ClosConv::ClosConv(), mim::ClosedMutPhase< M >::ClosedMutPhase(), mim::plug::clos::LowerTypedClos::LowerTypedClos(), mim::PassManPhase::PassManPhase(), mim::PassPhase< P >::PassPhase(), mim::PhaseMan::PhaseMan(), and mim::RWPhase::RWPhase().
|
virtualdefault |
|
inline |
Definition at line 35 of file phase.h.
Referenced by mim::ClosedMutPhase< M >::ClosedMutPhase(), mim::ll::Emitter::emit_bb(), mim::ll::Emitter::emit_epilogue(), mim::Emitter< std::string, std::string, BB, Emitter >::Emitter(), mim::FPPhase::FPPhase(), mim::NestPhase< M >::NestPhase(), Phase(), mim::ll::Emitter::prepare(), run(), and mim::RWPhase::RWPhase().
|
inlinevirtual |
Reimplemented in mim::BetaRedPhase, mim::EtaExpPhase, and mim::RWPhase.
Definition at line 29 of file phase.h.
References todo_.
Referenced by mim::RWPhase::reset(), and mim::PhaseMan::start().
|
virtual |
Entry point and generates some debug output; invokes Phase::start.
Definition at line 5 of file phase.cpp.
References name(), start(), mim::World::verify(), and world().
Referenced by mim::ClosedCollector< M >::collect(), mim::ll::emit(), main(), and mim::PassMan::run().
|
inlinestatic |
|
protectedpure virtual |
Actual entry.
Implemented in mim::ClosedMutPhase< M >, mim::ClosedMutPhase< Def >, mim::ClosedMutPhase< Lam >, mim::FPPhase, mim::ll::Emitter, mim::PassManPhase, mim::PassPhase< P >, mim::PhaseMan, mim::plug::clos::ClosConv, mim::plug::clos::LowerTypedClos, and mim::RWPhase.
Referenced by run(), and mim::ll::Emitter::start().
|
inline |
|
inline |
Definition at line 34 of file phase.h.
Referenced by mim::PhaseMan::add(), mim::plug::mem::AddMem::AddMem(), mim::plug::clos::ClosConv::ClosConv(), mim::ClosedCollector< M >::ClosedCollector(), mim::ClosedMutPhase< M >::ClosedMutPhase(), mim::ClosedCollector< M >::collect(), mim::ll::Emitter::emit_epilogue(), mim::Emitter< std::string, std::string, BB, Emitter >::Emitter(), mim::ll::Emitter::Emitter(), mim::plug::clos::LowerTypedClos::LowerTypedClos(), mim::NestPhase< M >::NestPhase(), mim::RWPhase::old_world(), mim::PassManPhase::PassManPhase(), mim::PassPhase< P >::PassPhase(), Phase(), mim::PhaseMan::PhaseMan(), reg_stages(), run(), mim::ClosedMutPhase< M >::start(), mim::plug::clos::ClosConv::start(), and mim::plug::clos::LowerTypedClos::start().
|
protected |
Set to true
to indicate that you want to rerun all Phasees in current your fixed-point PhaseMan.
Definition at line 55 of file phase.h.
Referenced by reset(), mim::BetaRedPhase::rewrite_imm_App(), mim::PhaseMan::start(), and todo().