|
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 |
Referenced by operator=(), Scheduler(), Scheduler(), and swap.
|
explicit |
Definition at line 9 of file schedule.cpp.
References mim::assert_emplace(), mim::Def::isa_mut(), nest(), and mim::Def::type().
|
delete |
References Scheduler().
|
inlinenoexcept |
Definition at line 51 of file schedule.h.
References Scheduler(), and swap.
| const Nest::Node * mim::Scheduler::early | ( | const Def * | def | ) |
Definition at line 42 of file schedule.cpp.
References mim::Def::deps(), early(), mim::Def::is_closed(), mim::Def::isa_mut(), and nest().
| const Nest::Node * mim::Scheduler::late | ( | Def * | curr, |
| const Def * | def ) |
Definition at line 58 of file schedule.cpp.
References mim::Def::is_closed(), mim::Def::isa_mut(), late(), mim::Nest::lca(), nest(), and uses().
|
inline |
Definition at line 61 of file schedule.h.
Referenced by early(), late(), schedule(), Scheduler(), and world().
Definition at line 55 of file schedule.h.
References Scheduler(), and swap.
|
inline |
Definition at line 62 of file schedule.h.
|
static |
Definition at line 118 of file schedule.cpp.
References nest(), mim::post_order(), and schedule().
Referenced by mim::ll::Emitter::finalize(), schedule(), and mim::Emitter< std::string, std::string, BB, Emitter >::visit().
| const Nest::Node * mim::Scheduler::smart | ( | Def * | curr, |
| const Def * | def ) |
Definition at line 63 of file schedule.h.
Referenced by late().
|
inline |
Definition at line 60 of file schedule.h.
References nest(), and mim::Nest::world().
Referenced by smart().
Definition at line 83 of file schedule.h.
References Scheduler(), and swap.
Referenced by operator=(), Scheduler(), and swap.