16 const Def*
map(
const Def* old_def,
const Def* new_def) {
return old2new_[old_def] = new_def; }
36 if (var)
map(var, arg);
46 if (vars_.has_intersection(mut->
free_vars())) {
Vars local_vars() const
Vars reachable by following immutable deps().
Muts local_muts() const
Mutables reachable by following immutable deps(); mut->local_muts() is by definition the set { mut }...
Vars free_vars() const
Compute a global solution by transitively following mutables as well.
const Var * has_var()
Only returns not nullptr, if Var of this mutable has ever been created.
virtual const Def * rewrite_mut(Def *)
const Def * map(const Def *old_def, const Def *new_def)
Map old_def to new_def and returns new_def;.
virtual const Def * rewrite_imm(const Def *)
virtual const Def * rewrite(const Def *)
constexpr bool empty() const noexcept
Is empty?
const Def * rewrite_mut(Def *mut) override
const Def * rewrite_imm(const Def *imm) override
VarRewriter(const Var *var, const Def *arg)
The World represents the whole program and manages creation of MimIR nodes (Defs).
DefMap< const Def * > Def2Def
Sets< const Var >::Set Vars