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 | |
Phase (World &world, std::string_view name, bool dirty) | |
virtual | ~Phase ()=default |
Getters | |
World & | world () |
std::string_view | name () const |
bool | is_dirty () const |
Protected Member Functions | |
virtual void | start ()=0 |
Actual entry. | |
Protected Attributes | |
World & | world_ |
std::string | name_ |
bool | dirty_ |
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. Phase::dirty indicates whether we may need a Cleanup afterwards.
|
inline |
|
virtualdefault |
|
inline |
|
inline |
Definition at line 26 of file phase.h.
References name_.
Referenced by mim::ll::Emitter::emit_bb(), mim::ll::Emitter::emit_epilogue(), mim::ll::Emitter::prepare(), run(), and mim::ScopePhase::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::ll::emit(), main(), and mim::PassMan::run().
|
inlinestatic |
|
protectedpure virtual |
Actual entry.
Implemented in mim::Cleanup, mim::ClosedMutPhase< M >, mim::FPPhase, mim::ll::Emitter, mim::PassManPhase, mim::PassPhase< P >, mim::Pipeline, mim::plug::clos::ClosConv, mim::plug::clos::LowerTypedClos, mim::RWPhase, and mim::ScopePhase.
Referenced by run(), and mim::ll::Emitter::start().
|
inline |
Definition at line 25 of file phase.h.
References world_.
Referenced by mim::Pipeline::add(), mim::ll::Emitter::emit_epilogue(), run(), mim::Cleanup::start(), mim::ClosedMutPhase< M >::start(), mim::plug::clos::ClosConv::start(), mim::plug::clos::LowerTypedClos::start(), mim::ScopePhase::start(), and mim::RWPhase::world().
|
protected |
Definition at line 46 of file phase.h.
Referenced by mim::plug::mem::AddMem::AddMem(), and is_dirty().
|
protected |