MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::Zonker Class Reference

#include <mim/rewrite.h>

Inheritance diagram for mim::Zonker:
[legend]

Public Member Functions

C'tor
 Zonker (World &world)
 
Stack of Maps
const Defmap (const Def *old_def, const Def *new_def) final
 
const Deflookup (const Def *old_def) final
 Lookup old_def by searching in reverse through the stack of maps.
 
rewrite
const Defrewrite (const Def *) final
 
const Defrewrite_mut (Def *mut) final
 
const Defrewire_mut (Def *)
 
- Public Member Functions inherited from mim::Rewriter
 Rewriter (std::unique_ptr< World > &&ptr)
 
 Rewriter (World &world)
 
virtual ~Rewriter ()=default
 
void reset (std::unique_ptr< World > &&ptr)
 
void reset ()
 
Worldworld ()
 
virtual void push ()
 
virtual void pop ()
 
const Defmap (const Def *old_def, Defs new_defs)
 
const Defmap (Defs old_defs, const Def *new_def)
 
const Defmap (Defs old_defs, Defs new_defs)
 
virtual const Defrewrite_imm (const Def *)
 
virtual const Defrewrite_stub (Def *, Def *)
 
virtual DefVec rewrite (Defs)
 
virtual const Defrewrite_imm_Seq (const Seq *seq)
 
virtual const Defrewrite_mut_Seq (Seq *seq)
 

Friends

void swap (Zonker &z1, Zonker &z2) noexcept
 

Additional Inherited Members

- Protected Attributes inherited from mim::Rewriter
std::deque< Def2Defold2news_
 

Detailed Description

Definition at line 157 of file rewrite.h.

Constructor & Destructor Documentation

◆ Zonker()

mim::Zonker::Zonker ( World & world)
inline

Definition at line 161 of file rewrite.h.

References mim::Rewriter::Rewriter(), and mim::Rewriter::world().

Referenced by swap.

Member Function Documentation

◆ lookup()

const Def * mim::Zonker::lookup ( const Def * old_def)
finalvirtual

Lookup old_def by searching in reverse through the stack of maps.

Returns
nullptr if nothing was found.

Reimplemented from mim::Rewriter.

Definition at line 211 of file rewrite.cpp.

References mim::Rewriter::old2news_.

Referenced by map().

◆ map()

const Def * mim::Zonker::map ( const Def * old_def,
const Def * new_def )
finalvirtual

Reimplemented from mim::Rewriter.

Definition at line 205 of file rewrite.cpp.

References lookup(), and mim::Rewriter::old2news_.

Referenced by rewire_mut(), and rewrite_mut().

◆ rewire_mut()

const Def * mim::Zonker::rewire_mut ( Def * mut)

◆ rewrite()

const Def * mim::Zonker::rewrite ( const Def * def)
finalvirtual

Reimplemented from mim::Rewriter.

Definition at line 238 of file rewrite.cpp.

References mim::Def::isa_mut(), mim::Def::needs_zonk(), and mim::Rewriter::rewrite().

Referenced by rewire_mut(), and mim::Def::zonk().

◆ rewrite_mut()

const Def * mim::Zonker::rewrite_mut ( Def * mut)
inlinefinalvirtual

Reimplemented from mim::Rewriter.

Definition at line 174 of file rewrite.h.

References map().

Friends And Related Symbol Documentation

◆ swap

void swap ( Zonker & z1,
Zonker & z2 )
friend

Definition at line 178 of file rewrite.h.

References mim::Rewriter::Rewriter(), swap, and Zonker().

Referenced by swap.


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