freedreno/ir3: legalize cleanups

We can clear the "needs" flags once we emit a flag.  And also, don't
open-code the opcode name.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Rob Clark 2019-11-10 10:49:59 -08:00
parent b22617fb57
commit df7a88dca3

View file

@ -134,10 +134,16 @@ legalize_block(struct ir3_legalize_ctx *ctx, struct ir3_block *block)
if (last_n && is_barrier(last_n)) {
n->flags |= IR3_INSTR_SS | IR3_INSTR_SY;
last_input_needs_ss = false;
regmask_init(&state->needs_ss_war);
regmask_init(&state->needs_ss);
regmask_init(&state->needs_sy);
}
if (last_n && opc_cat(last_n->opc) == 0 && opc_op(last_n->opc) == 13)
if (last_n && (last_n->opc == OPC_CONDEND)) {
n->flags |= IR3_INSTR_SS;
regmask_init(&state->needs_ss_war);
regmask_init(&state->needs_ss);
}
/* NOTE: consider dst register too.. it could happen that
* texture sample instruction (for example) writes some