16 void visit(const
Def*,
bool candidate = true);
19 bool is_candidate(
Lam* lam)
const {
return assert_lookup(candidates_, lam); }
22 LamMap<bool> candidates_;
bool analyze() final
You can do an optional fixed-point loop on the RWPhase::old_world before rewriting.
BetaRedPhase(World &world, flags_t annex)
const Def * rewrite_imm_App(const App *) final
RWPhase(World &world, std::string name)
World & world()=delete
Hides both and forbids direct access.
The World represents the whole program and manages creation of MimIR nodes (Defs).
bool visit(IndexSet< Indexer, Key > &set, const Key &key)
GIDSet< const Def * > DefSet
auto assert_lookup(C &container, const K &key)
Looks up key in container, asserts that it exists, and returns the mapped value.