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

#include <mim/rewrite.h>

Inheritance diagram for mim::VarRewriter:
[legend]

Public Member Functions

Construction
 VarRewriter (World &world)
 
 VarRewriter (const Var *var, const Def *arg)
 
VarRewriteradd (const Var *var, const Def *arg)
 
push / pop
void push () final
 
void pop () final
 
rewrite
const Defrewrite (const Def *) final
 
const Defrewrite_mut (Def *) final
 
- 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 const Defmap (const Def *old_def, const Def *new_def)
 
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 Deflookup (const Def *old_def)
 Lookup old_def by searching in reverse through the stack of maps.
 
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 (VarRewriter &vrw1, VarRewriter &vrw2) noexcept
 

Additional Inherited Members

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

Detailed Description

Definition at line 110 of file rewrite.h.

Constructor & Destructor Documentation

◆ VarRewriter() [1/2]

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

Definition at line 114 of file rewrite.h.

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

Referenced by add(), and swap.

◆ VarRewriter() [2/2]

mim::VarRewriter::VarRewriter ( const Var * var,
const Def * arg )
inline

Definition at line 116 of file rewrite.h.

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

Member Function Documentation

◆ add()

VarRewriter & mim::VarRewriter::add ( const Var * var,
const Def * arg )
inline

Definition at line 122 of file rewrite.h.

References mim::Rewriter::map(), and VarRewriter().

Referenced by VarRewriter().

◆ pop()

void mim::VarRewriter::pop ( )
inlinefinalvirtual

Reimplemented from mim::Rewriter.

Definition at line 132 of file rewrite.h.

References mim::Rewriter::pop().

◆ push()

void mim::VarRewriter::push ( )
inlinefinalvirtual

Reimplemented from mim::Rewriter.

Definition at line 131 of file rewrite.h.

References mim::Rewriter::push().

◆ rewrite()

◆ rewrite_mut()

const Def * mim::VarRewriter::rewrite_mut ( Def * mut)
finalvirtual

Reimplemented from mim::Rewriter.

Definition at line 192 of file rewrite.cpp.

References mim::Def::has_var(), mim::Rewriter::rewrite_mut(), mim::World::vars(), and mim::Rewriter::world().

Referenced by rewrite().

Friends And Related Symbol Documentation

◆ swap

void swap ( VarRewriter & vrw1,
VarRewriter & vrw2 )
friend

Definition at line 141 of file rewrite.h.

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

Referenced by swap.


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