void TraceBuilder::constrainGuard(IRInstruction* inst, DataTypeCategory cat) { static_assert(DataTypeCategory() == DataTypeGeneric, "DataTypeGeneric must be the default DataTypeCategory"); auto& guard = m_guardConstraints[inst->id()]; if (cat > guard) { FTRACE(1, "constraining {}: {} -> {}\n", *inst, guard, cat); guard = cat; } }
void TraceBuilder::constrainGuard(IRInstruction* inst, DataTypeCategory cat) { static_assert(DataTypeCategory() == DataTypeGeneric, "DataTypeGeneric must be the default DataTypeCategory"); auto& guard = m_guardConstraints[inst->id()]; // TODO(t2598894) Guard relaxation on the IR is only used to distinguish // between guard/no guard for now. It will be loosened up to completely // replace relaxDeps soon. cat = DataTypeSpecific; FTRACE(1, "constraining {}: {} -> {}\n", *inst, guard, cat); if (cat > guard) guard = cat; }