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:
10 using RWPhase::RWPhase;
11
12private:
13 const Def* rewrite_imm_App(const App*) final;
14
15 DefMap<Lam*> branch2dropped_;
16};
17
18} // namespace mim::plug::clos::phase
Base class for all Defs.
Definition def.h:289
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition phase.h:334
Flattens branches over closure literals back into a direct branch over Lams.
const Def * rewrite_imm_App(const App *) final
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition phase.h:334
GIDMap< const Def *, To > DefMap
Definition def.h:93