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

#include <mim/analyses/schedule.h>

Public Member Functions

Construction
 Scheduler ()=default
 
 Scheduler (const Scope &)
 
 Scheduler (const Scheduler &)=delete
 
 Scheduler (Scheduler &&other) noexcept
 
Scheduleroperator= (Scheduler other) noexcept
 
Getters
const Scopescope () const
 
const F_CFGcfg () const
 
const CFNodecfg (Def *mut) const
 
const DomTreedomtree () const
 
const Usesuses (const Def *def) const
 
Compute Schedules
Defearly (const Def *)
 
Deflate (const Def *)
 
Defsmart (const Def *)
 

Friends

void swap (Scheduler &s1, Scheduler &s2) noexcept
 

Schedule Mutabales

Order of Mutables within a Scope.

using Schedule = std::vector<Def*>
 
static Schedule schedule (const Scope &)
 

Detailed Description

Definition at line 10 of file schedule.h.

Member Typedef Documentation

◆ Schedule

using mim::Scheduler::Schedule = std::vector<Def*>

Definition at line 47 of file schedule.h.

Constructor & Destructor Documentation

◆ Scheduler() [1/4]

mim::Scheduler::Scheduler ( )
default

◆ Scheduler() [2/4]

mim::Scheduler::Scheduler ( const Scope & s)
explicit

Definition at line 14 of file schedule.cpp.

References mim::assert_emplace(), cfg(), mim::Def::isa_mut(), scope(), and mim::Def::type().

◆ Scheduler() [3/4]

mim::Scheduler::Scheduler ( const Scheduler & )
delete

◆ Scheduler() [4/4]

mim::Scheduler::Scheduler ( Scheduler && other)
inlinenoexcept

Definition at line 17 of file schedule.h.

References swap.

Member Function Documentation

◆ cfg() [1/2]

const F_CFG & mim::Scheduler::cfg ( ) const
inline

Definition at line 27 of file schedule.h.

Referenced by Scheduler().

◆ cfg() [2/2]

const CFNode * mim::Scheduler::cfg ( Def * mut) const
inline

Definition at line 28 of file schedule.h.

References cfg().

Referenced by cfg().

◆ domtree()

const DomTree & mim::Scheduler::domtree ( ) const
inline

Definition at line 29 of file schedule.h.

◆ early()

Def * mim::Scheduler::early ( const Def * def)

Definition at line 49 of file schedule.cpp.

References mim::Def::dep_const(), mim::Def::extended_ops(), and mim::Def::isa_mut().

◆ late()

Def * mim::Scheduler::late ( const Def * def)

Definition at line 65 of file schedule.cpp.

References mim::Def::dep_const(), and mim::Def::isa_mut().

◆ operator=()

Scheduler & mim::Scheduler::operator= ( Scheduler other)
inlinenoexcept

Definition at line 21 of file schedule.h.

References swap.

◆ schedule()

Scheduler::Schedule mim::Scheduler::schedule ( const Scope & scope)
static

◆ scope()

const Scope & mim::Scheduler::scope ( ) const
inline

Definition at line 26 of file schedule.h.

Referenced by Scheduler().

◆ smart()

Def * mim::Scheduler::smart ( const Def * def)

Definition at line 84 of file schedule.cpp.

◆ uses()

const Uses & mim::Scheduler::uses ( const Def * def) const
inline

Definition at line 30 of file schedule.h.

Friends And Related Symbol Documentation

◆ swap

void swap ( Scheduler & s1,
Scheduler & s2 )
friend

Definition at line 51 of file schedule.h.

Referenced by operator=(), and Scheduler().


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