Revert "glasm: Skip phi moves on undefined instructions"

Causes regressions on Bowser's Fury.
This commit is contained in:
ReinUsesLisp 2021-05-26 18:42:37 -03:00 committed by ameerj
parent 2aa30353b7
commit 8f3043c3cf
2 changed files with 1 additions and 16 deletions

View file

@ -58,9 +58,7 @@ void EmitPhiMove(EmitContext& ctx, const IR::Value& phi_value, const IR::Value&
} }
const Register phi_reg{ctx.reg_alloc.Consume(IR::Value{&phi})}; const Register phi_reg{ctx.reg_alloc.Consume(IR::Value{&phi})};
const Value eval_value{ctx.reg_alloc.Consume(value)}; const Value eval_value{ctx.reg_alloc.Consume(value)};
if (!value.IsImmediate() && IR::IsUndef(RegAlloc::AliasInst(*value.Inst()))) {
return;
}
if (phi_reg == eval_value) { if (phi_reg == eval_value) {
return; return;
} }

View file

@ -395,17 +395,4 @@ inline f64 Value::F64() const {
return inst.GetOpcode() == Opcode::Phi; return inst.GetOpcode() == Opcode::Phi;
} }
[[nodiscard]] inline bool IsUndef(const Inst& inst) {
switch (inst.GetOpcode()) {
case Opcode::UndefU1:
case Opcode::UndefU8:
case Opcode::UndefU16:
case Opcode::UndefU32:
case Opcode::UndefU64:
return true;
default:
return false;
}
}
} // namespace Shader::IR } // namespace Shader::IR