MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::plug::clos::FreeDefAna Class Reference

Transitively compute free Def's on demand. More...

#include <mim/plug/clos/phase/clos_conv.h>

Public Member Functions

 FreeDefAna (World &world)
 
DefSetrun (Lam *lam)
 FreeDefAna::run will compute free defs (FD) that appear in lams body.
 

Detailed Description

Transitively compute free Def's on demand.

This is used internally by ClosConv.

Definition at line 16 of file clos_conv.h.

Constructor & Destructor Documentation

◆ FreeDefAna()

mim::plug::clos::FreeDefAna::FreeDefAna ( World & world)
inline

Definition at line 18 of file clos_conv.h.

Member Function Documentation

◆ run()

DefSet & mim::plug::clos::FreeDefAna::run ( Lam * lam)

FreeDefAna::run will compute free defs (FD) that appear in lams body.

Mutable Defs are only considered free if they are annotated with Clos::freeBB or Clos::fstclassBB. Otherwise, we add a mut's free defs in order to build a closure for it. Immutables containing mutables are broken up if necessary.

Definition at line 92 of file clos_conv.cpp.

References run().

Referenced by run().


The documentation for this class was generated from the following files: