MimIR 0.1
MimIR is my Intermediate Representation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
mim::plug::matrix::LowerMatrixHighLevelMapRed Class Reference

Resolves lowering of high level operations into medium/other high-level operations. More...

#include <mim/plug/matrix/pass/lower_matrix_highlevel.h>

Inheritance diagram for mim::plug::matrix::LowerMatrixHighLevelMapRed:
[legend]

Public Member Functions

 LowerMatrixHighLevelMapRed (PassMan &man)
 
const Defrewrite (const Def *) override
 custom rewrite function memoized version of rewrite_
 
const Defrewrite_ (const Def *)
 
- Public Member Functions inherited from mim::RWPass< LowerMatrixHighLevelMapRed, Lam >
 RWPass (PassMan &man, std::string_view name)
 
bool inspect () const override
 Should the PassMan even consider this pass?
 
Lamcurr_mut () const
 
- Public Member Functions inherited from mim::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 const Defrewrite (const Var *var)
 
virtual const Defrewrite (const Proxy *proxy)
 
virtual undo_t analyze (const Def *)
 
virtual undo_t analyze (const Var *)
 
virtual undo_t analyze (const Proxy *)
 
virtual bool fixed_point () const
 
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 (const Def *type, Defs ops, u32 tag=0)
 
const Proxyisa_proxy (const Def *def, u32 tag=0)
 Check whether given def is a Proxy whose Proxy::pass matches this Pass's IPass::index.
 
const Proxyas_proxy (const Def *def, u32 tag=0)
 

Detailed Description

Resolves lowering of high level operations into medium/other high-level operations.

Some of these transformations could be done as normalizer. We rewrite matrix operations like sum, transpose, and product into map_reduce operations. The corresponding map_reduce operation is looked up as internal_mapRed_matrix_[name].

Definition at line 14 of file lower_matrix_highlevel.h.

Constructor & Destructor Documentation

◆ LowerMatrixHighLevelMapRed()

mim::plug::matrix::LowerMatrixHighLevelMapRed::LowerMatrixHighLevelMapRed ( PassMan & man)
inline

Member Function Documentation

◆ rewrite()

const Def * mim::plug::matrix::LowerMatrixHighLevelMapRed::rewrite ( const Def * def)
overridevirtual

custom rewrite function memoized version of rewrite_

Reimplemented from mim::Pass.

Definition at line 35 of file lower_matrix_highlevel.cpp.

References rewrite_().

◆ rewrite_()

const Def * mim::plug::matrix::LowerMatrixHighLevelMapRed::rewrite_ ( const Def * def)

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