|
| RWPass (World &world, std::string name) |
|
| RWPass (World &world, flags_t annex) |
|
bool | inspect () const override |
| Should the PassMan even consider this pass?
|
|
M * | curr_mut () const |
|
| Pass (World &world, std::string name) |
|
| Pass (World &world, flags_t annex) |
|
virtual void | init (PassMan *) |
|
PassMan & | man () |
|
const PassMan & | man () const |
|
size_t | index () const |
|
virtual const Def * | rewrite (const Def *def) |
|
virtual const Def * | rewrite (const Var *var) |
|
virtual const Def * | rewrite (const Proxy *proxy) |
|
virtual undo_t | analyze (const Def *) |
|
virtual undo_t | analyze (const Var *) |
|
virtual undo_t | analyze (const Proxy *) |
|
virtual bool | fixed_point () const |
|
virtual void | enter () |
| Invoked just before Pass::rewriteing PassMan::curr_mut's body.
|
|
virtual void | prepare () |
| Invoked once before entering the main rewrite loop.
|
|
const Proxy * | proxy (const Def *type, Defs ops, u32 tag=0) |
|
const Proxy * | isa_proxy (const Def *def, u32 tag=0) |
| Check whether given def is a Proxy whose Proxy::pass matches this Pass's IPass::index .
|
|
const Proxy * | as_proxy (const Def *def, u32 tag=0) |
|
World & | world () |
|
Driver & | driver () |
|
Log & | log () const |
|
std::string_view | name () const |
|
flags_t | annex () const |
|
| Stage (World &world, std::string name) |
|
| Stage (World &world, flags_t annex) |
|
virtual | ~Stage ()=default |
|
virtual std::unique_ptr< Stage > | recreate () |
| Creates a new instance; needed by a fixed-point PhaseMan.
|
|
virtual void | apply (const App *) |
| Invoked if your Stage has additional args.
|
|
virtual void | apply (Stage &) |
| Dito, but invoked by Stage::recreate.
|
|
template<class P, class
M = Def>
class mim::RWPass< P, M >
Inherit from this class using CRTP, if your Pass does not need state and a fixed-point iteration.
If you a are only interested in specific mutables, you can pass this to M
.
Definition at line 293 of file pass.h.