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 160 of file rewrite.h.

Constructor & Destructor Documentation

◆ Zonker()

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

Definition at line 164 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 212 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 206 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 239 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 177 of file rewrite.h.

References map().

◆ swap

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

Definition at line 181 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: