Thorin 1.9.0
The Higher ORder INtermediate representation
Loading...
Searching...
No Matches
thorin::TailRecElim Class Reference

#include <thorin/pass/tail_rec_elim.h>

Inheritance diagram for thorin::TailRecElim:
[legend]

Public Member Functions

 TailRecElim (PassMan &man, EtaRed *eta_red=nullptr)
 
- Public Member Functions inherited from thorin::FPPass< TailRecElim, Lam >
 FPPass (PassMan &man, std::string_view name)
 
bool fixed_point () const override
 
- Public Member Functions inherited from thorin::RWPass< P, M >
 RWPass (PassMan &man, std::string_view name)
 
bool inspect () const override
 Should the PassMan even consider this pass?
 
Mcurr_mut () const
 
- Public Member Functions inherited from thorin::Pass
 Pass (PassMan &, std::string_view name)
 
virtual ~Pass ()=default
 
Worldworld ()
 
PassManman ()
 
const PassManman () const
 
std::string_view name () const
 
size_t index () const
 
virtual Ref rewrite (const Var *var)
 
virtual Ref rewrite (const Proxy *proxy)
 
virtual undo_t analyze (const Var *)
 
virtual undo_t analyze (const Proxy *)
 
virtual void enter ()
 Invoked just before Pass::rewriteing PassMan::curr_mut's body.
 
virtual void prepare ()
 Invoked once before entering the main rewrite loop.
 
const Proxyproxy (Ref type, Defs ops, u32 tag=0)
 
const Proxyisa_proxy (Ref def, u32 tag=0)
 Check whether given def is a Proxy whose Proxy::pass matches this Pass's IPass::index.
 
const Proxyas_proxy (Ref def, u32 tag=0)
 

Private Member Functions

PassMan hooks
Ref rewrite (Ref) override
 
undo_t analyze (Ref) override
 

Additional Inherited Members

- Public Types inherited from thorin::FPPass< TailRecElim, Lam >
using Super = RWPass< TailRecElim, Lam >
 
using Data = std::tuple<>
 Default.
 
- Protected Member Functions inherited from thorin::FPPass< TailRecElim, Lam >
const auto & states () const
 
auto & states ()
 
auto & data ()
 
auto & data ()
 
auto & data (const K &key)
 Use this for your convenience if P::Data is a map.
 
auto & data (const K &key)
 Use this for your convenience if P::Data<I> is a map.
 
undo_t curr_undo () const
 Current undo point.
 
undo_t undo_visit (Def *mut) const
 Retrieves the point to backtrack to just before mut was seen the very first time.
 
undo_t undo_enter (Def *mut) const
 Retrieves the point to backtrack to just before rewriting mut's body.
 

Detailed Description

Definition at line 9 of file tail_rec_elim.h.

Constructor & Destructor Documentation

◆ TailRecElim()

thorin::TailRecElim::TailRecElim ( PassMan man,
EtaRed eta_red = nullptr 
)
inline

Definition at line 11 of file tail_rec_elim.h.

Member Function Documentation

◆ analyze()

◆ rewrite()

Ref thorin::TailRecElim::rewrite ( Ref  def)
overrideprivatevirtual

Reimplemented from thorin::Pass.

Definition at line 8 of file tail_rec_elim.cpp.

References thorin::World::app(), thorin::isa_apped_mut_lam(), and thorin::Pass::world().


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