MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
lam_spec.h
Go to the documentation of this file.
1#pragma once
2
3#include "mim/phase.h"
4
5namespace mim {
6
7/// Specializes a Lam at its call site by inlining all Pi-typed (i.e. higher-order) arguments.
8class LamSpec : public RWPhase {
9public:
12
13private:
14 const Def* rewrite_imm_App(const App*) final;
15
16 Def2Def old2new_;
17};
18
19} // namespace mim
Base class for all Defs.
Definition def.h:261
LamSpec(World &world, flags_t annex)
Definition lam_spec.h:10
const Def * rewrite_imm_App(const App *) final
Definition lam_spec.cpp:9
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
Definition ast.h:14
DefMap< const Def * > Def2Def
Definition def.h:77
u64 flags_t
Definition types.h:39