Exemple #1
0
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;
}