MimIR 0.1
MimIR is my Intermediate Representation
|
#include <mim/schedule.h>
Public Member Functions | |
Construction | |
Scheduler ()=default | |
Scheduler (const Nest &) | |
Scheduler (const Scheduler &)=delete | |
Scheduler (Scheduler &&other) noexcept | |
Scheduler & | operator= (Scheduler other) noexcept |
Getters | |
World & | world () |
const Nest & | nest () const |
Def * | root () const |
const Uses & | uses (const Def *def) const |
Compute Schedules | |
const Nest::Node * | early (const Def *) |
const Nest::Node * | late (Def *curr, const Def *) |
const Nest::Node * | smart (Def *curr, const Def *) |
Friends | |
void | swap (Scheduler &s1, Scheduler &s2) noexcept |
Schedule Mutabales | |
Order of Mutables within a Scope. | |
using | Schedule = Vector<Def*> |
static Schedule | schedule (const Nest &) |
Definition at line 44 of file schedule.h.
using mim::Scheduler::Schedule = Vector<Def*> |
Definition at line 79 of file schedule.h.
|
default |
|
explicit |
Definition at line 9 of file schedule.cpp.
References mim::assert_emplace(), mim::Nest::contains(), mim::Def::isa_mut(), mim::Nest::muts(), nest(), and mim::Def::type().
|
delete |
|
inlinenoexcept |
Definition at line 51 of file schedule.h.
References swap.
const Nest::Node * mim::Scheduler::early | ( | const Def * | def | ) |
Definition at line 42 of file schedule.cpp.
References mim::Def::deps(), mim::Def::has_const_dep(), and mim::Def::isa_mut().
const Nest::Node * mim::Scheduler::late | ( | Def * | curr, |
const Def * | def ) |
Definition at line 58 of file schedule.cpp.
References mim::Def::has_const_dep(), and mim::Def::isa_mut().
|
inline |
Definition at line 61 of file schedule.h.
Referenced by Scheduler(), and world().
Definition at line 55 of file schedule.h.
References swap.
|
inline |
Definition at line 62 of file schedule.h.
References mim::Nest::Node::mut(), and mim::Nest::root().
|
static |
Definition at line 114 of file schedule.cpp.
References mim::post_order(), and mim::Nest::root().
Referenced by mim::ll::Emitter::finalize(), and mim::Emitter< Value, Type, BB, Child >::visit().
const Nest::Node * mim::Scheduler::smart | ( | Def * | curr, |
const Def * | def ) |
Definition at line 79 of file schedule.cpp.
Definition at line 63 of file schedule.h.
|
inline |
Definition at line 60 of file schedule.h.
References nest(), and mim::Nest::world().
Definition at line 83 of file schedule.h.
Referenced by operator=(), and Scheduler().