MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
branch_clos_elim.h
Go to the documentation of this file.
1#pragma once
2
3#include <mim/phase.h>
4
6
7/// Flattens branches over closure literals back into a direct branch over Lam%s.
8class BranchClosElim : public RWPhase {
9public:
12
13private:
14 const Def* rewrite_imm_App(const App*) final;
15
16 DefMap<Lam*> branch2dropped_;
17};
18
19} // namespace mim::plug::clos::phase
Base class for all Defs.
Definition def.h:261
flags_t annex() const
Definition phase.h:81
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition phase.h:316
World & world()=delete
Hides both and forbids direct access.
The World represents the whole program and manages creation of MimIR nodes (Defs).
Definition world.h:36
const Def * rewrite_imm_App(const App *) final
BranchClosElim(World &world, flags_t annex)
u64 flags_t
Definition types.h:39
GIDMap< const Def *, To > DefMap
Definition def.h:75