#include #include #include namespace willow { void Value::addUse(Instruction *instruction) { auto [it, inserted] = uses.try_emplace(instruction, 1); if (!inserted) it->second += 1; } void Value::delUse(Instruction *instruction) { assert(uses.contains(instruction) && "No uses to remove"); auto it = uses.find(instruction); it->second -= 1; if (it->second == 0) uses.erase(it); } } // namespace willow