31 auto i = def2uses_.find(def);
32 assert(i != def2uses_.end());
53 swap(s1.scope_, s2.scope_);
54 swap(s1.cfg_, s2.cfg_);
55 swap(s1.domtree_, s2.domtree_);
56 swap(s1.early_, s2.early_);
57 swap(s1.late_, s2.late_);
58 swap(s1.smart_, s2.smart_);
59 swap(s1.def2uses_, s2.def2uses_);
63 const Scope* scope_ =
nullptr;
64 const F_CFG* cfg_ =
nullptr;
65 const DomTree* domtree_ =
nullptr;
const F_CFG & cfg() const
Scheduler(Scheduler &&other) noexcept
const CFNode * cfg(Def *mut) const
Scheduler(const Scheduler &)=delete
const DomTree & domtree() const
static Schedule schedule(const Scope &)
Scheduler & operator=(Scheduler other) noexcept
const Uses & uses(const Def *def) const
friend void swap(Scheduler &s1, Scheduler &s2) noexcept
std::vector< Def * > Schedule
const Scope & scope() const
A Scope represents a region of Defs that are live from the view of an entry's Var.
GIDMap< const Def *, To > DefMap
absl::flat_hash_set< Use, UseHash, UseEq > Uses