pan/midgard: Add dont_eliminate flag

We need to treat fragment writes specially.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
Alyssa Rosenzweig 2019-08-12 15:29:03 -07:00
parent 6ed3843224
commit 2fc44c4dc8
2 changed files with 4 additions and 0 deletions

View file

@ -117,6 +117,9 @@ typedef struct midgard_instruction {
bool writeout;
bool prepacked_branch;
/* Kind of a hack, but hint against aggressive DCE */
bool dont_eliminate;
/* Masks in a saneish format. One bit per channel, not packed fancy.
* Use this instead of the op specific ones, and switch over at emit
* time */

View file

@ -97,6 +97,7 @@ midgard_opt_post_move_eliminate(compiler_context *ctx, midgard_block *block, str
if (ins->type != TAG_ALU_4) continue;
if (ins->compact_branch) continue;
if (!OP_IS_MOVE(ins->alu.op)) continue;
if (ins->dont_eliminate) continue;
/* Check we're to the same place post-RA */
unsigned iA = ins->ssa_args.dest;