[Mesa-dev] [PATCH 6/5] i965/fs: Remove opt_drop_redundant_mov_to_flags().

Matt Turner mattst88 at gmail.com
Mon Nov 3 11:58:06 PST 2014


Dead code elimination now handles this.
---
Depends on the previously sent 5 patch series.

 src/mesa/drivers/dri/i965/brw_fs.cpp | 31 -------------------------------
 src/mesa/drivers/dri/i965/brw_fs.h   |  1 -
 2 files changed, 32 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 39c6231..baf9166 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -3414,35 +3414,6 @@ fs_visitor::calculate_register_pressure()
    }
 }
 
-/**
- * Look for repeated FS_OPCODE_MOV_DISPATCH_TO_FLAGS and drop the later ones.
- *
- * The needs_unlit_centroid_workaround ends up producing one of these per
- * channel of centroid input, so it's good to clean them up.
- *
- * An assumption here is that nothing ever modifies the dispatched pixels
- * value that FS_OPCODE_MOV_DISPATCH_TO_FLAGS reads from, but the hardware
- * dictates that anyway.
- */
-void
-fs_visitor::opt_drop_redundant_mov_to_flags()
-{
-   bool flag_mov_found[2] = {false};
-
-   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
-      if (inst->is_control_flow()) {
-         memset(flag_mov_found, 0, sizeof(flag_mov_found));
-      } else if (inst->opcode == FS_OPCODE_MOV_DISPATCH_TO_FLAGS) {
-         if (!flag_mov_found[inst->flag_subreg])
-            flag_mov_found[inst->flag_subreg] = true;
-         else
-            inst->remove(block);
-      } else if (inst->writes_flag()) {
-         flag_mov_found[inst->flag_subreg] = false;
-      }
-   }
-}
-
 bool
 fs_visitor::run()
 {
@@ -3518,8 +3489,6 @@ fs_visitor::run()
       assign_constant_locations();
       demote_pull_constants();
 
-      opt_drop_redundant_mov_to_flags();
-
 #define OPT(pass, args...) do {                                            \
       pass_num++;                                                          \
       bool this_progress = pass(args);                                     \
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index d9150c3..ccfb12d 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -434,7 +434,6 @@ public:
    bool try_constant_propagate(fs_inst *inst, acp_entry *entry);
    bool opt_copy_propagate_local(void *mem_ctx, bblock_t *block,
                                  exec_list *acp);
-   void opt_drop_redundant_mov_to_flags();
    bool opt_register_renaming();
    bool register_coalesce();
    bool compute_to_mrf();
-- 
2.0.4



More information about the mesa-dev mailing list