#include <memory>#include <fe/assert.h>#include <fe/cast.h>#include "mim/def.h"#include "mim/nest.h"#include "mim/rewrite.h"#include "mim/world.h"Go to the source code of this file.
Classes | |
| class | mim::Phase |
| A Phase performs one self-contained task over the whole World. More... | |
| class | mim::Analysis |
| Traverses the current World using Rewriter infrastructure while staying in the same world. More... | |
| class | mim::RWBase |
| Common base of the two rewriting Phases: RWPhase rebuilds the World, InplaceRWPhase stays in it. More... | |
| class | mim::RWPhase |
| Rebuilds old_world() into new_world() and then swaps them. More... | |
| class | mim::InplaceRWPhase |
| Rewrites the current World in place - unlike an RWPhase, which rebuilds a new World. More... | |
| class | mim::Repl |
| An RWPhase that searches for a pattern and replaces it. More... | |
| class | mim::Cleanup |
| Removes unreachable and dead code by rebuilding the whole World into a new one and swapping them afterwards. More... | |
| class | mim::PhaseMan |
| Organizes several Phases into a pipeline. More... | |
| class | mim::ClosedMutPhase< M > |
| Transitively visits all reachable, closed mutables in the World. More... | |
| class | mim::NestPhase< M > |
| Like ClosedMutPhase but computes a Nest for each NestPhase::visit. More... | |
Namespaces | |
| namespace | mim |
Macros | |
| #define | MIM_CONCAT_INNER(a, b) |
| #define | MIM_CONCAT(a, b) |
| #define | MIM_REPL(__phases, __annex, ...) |
| #define | MIM_REPL_IMPL(__phases, __annex, __id, ...) |
Typedefs | |
| using | mim::Phases = std::deque<std::unique_ptr<Phase>> |
| #define MIM_CONCAT | ( | a, | |
| b ) |
| #define MIM_REPL | ( | __phases, | |
| __annex, | |||
| ... ) |
Definition at line 547 of file phase.h.
Referenced by reg_phases().
| #define MIM_REPL_IMPL | ( | __phases, | |
| __annex, | |||
| __id, | |||
| ... ) |