|
| | 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.