MimIR
0.5-dev
MimIR is my Intermediate Representation
Toggle main menu visibility
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
5
namespace
mim::plug::clos::phase
{
6
7
/// Flattens branches over closure literals back into a direct branch over Lam%s.
8
class
BranchClosElim
:
public
RWPhase
{
9
public
:
10
using
RWPhase::RWPhase
;
11
12
private
:
13
const
Def
*
rewrite_imm_App
(
const
App
*)
final
;
14
15
DefMap<Lam*>
branch2dropped_;
16
};
17
18
}
// namespace mim::plug::clos::phase
mim::App
Definition
lam.h:215
mim::Def
Base class for all Defs.
Definition
def.h:289
mim::RWPhase::RWPhase
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition
phase.h:334
mim::plug::clos::phase::BranchClosElim
Flattens branches over closure literals back into a direct branch over Lams.
Definition
branch_clos_elim.h:8
mim::plug::clos::phase::BranchClosElim::rewrite_imm_App
const Def * rewrite_imm_App(const App *) final
Definition
branch_clos_elim.cpp:27
mim::plug::clos::phase::BranchClosElim::RWPhase
RWPhase(World &world, std::string name, Analysis *analysis=nullptr)
Definition
phase.h:334
mim::plug::clos::phase
Definition
branch_clos_elim.h:5
mim::DefMap
GIDMap< const Def *, To > DefMap
Definition
def.h:93
phase.h
include
mim
plug
clos
phase
branch_clos_elim.h
Generated by
1.18.0