brw: Add missing dependency classes to various passes

- brw_lower_3src_null_dest: Allocating a new destination, so include
  INSTRUCTION_DATA_FLOW class.

- brw_lower_alu_restriction: Removing instruction, so include
  INSTRUCTION_IDENTITY.  No details are changed so remove
  INSTRUCTION_DETAIL.

- brw_lower_vgrfs_to_fixed_grfs: Changing source and destination
  numbers, so include INSTRUCTION_DETAIL.

- brw_lower_send_gather: Insert new instructions (scalar register) and
  change sources and other information on existing ones.  So include
  INSTRUCTION_DETAIL and INSTRUCTION_IDENTITY.  Promote to INSTRUCTIONS.

- brw_opt_eliminate_find_live_channel: Can change source, so include
  INSTRUCTION_DATA_FLOW.

- brw_opt_copy_propagation_defs and brw_opt_cse_defs: Both can remove
  instructions, so include INSTRUCTION_IDENTITY.  Promote to
  INSTRUCTIONS.

- brw_opt_saturate_propagation: Instruction can have `sat` modified,
  and operands can have type modified, so include INSTRUCTION_DETAIL.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33993>
This commit is contained in:
Caio Oliveira
2025-03-10 16:08:31 -07:00
committed by Marge Bot
parent cff40b1512
commit 308f56ef82
5 changed files with 11 additions and 9 deletions
+5 -3
View File
@@ -575,7 +575,8 @@ brw_lower_3src_null_dest(brw_shader &s)
}
if (progress)
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DETAIL |
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
BRW_DEPENDENCY_INSTRUCTION_DETAIL |
BRW_DEPENDENCY_VARIABLES);
return progress;
@@ -662,7 +663,7 @@ brw_lower_alu_restrictions(brw_shader &s)
if (progress) {
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
BRW_DEPENDENCY_INSTRUCTION_DETAIL);
BRW_DEPENDENCY_INSTRUCTION_IDENTITY);
}
return progress;
@@ -758,6 +759,7 @@ brw_lower_vgrfs_to_fixed_grfs(brw_shader &s)
}
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
BRW_DEPENDENCY_INSTRUCTION_DETAIL |
BRW_DEPENDENCY_VARIABLES);
}
@@ -841,7 +843,7 @@ brw_lower_send_gather(brw_shader &s)
}
if (progress)
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTIONS |
BRW_DEPENDENCY_VARIABLES);
return progress;
+2 -1
View File
@@ -515,7 +515,8 @@ brw_opt_eliminate_find_live_channel(brw_shader &s)
out:
if (progress)
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DETAIL);
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
BRW_DEPENDENCY_INSTRUCTION_DETAIL);
return progress;
}
@@ -1926,8 +1926,7 @@ brw_opt_copy_propagation_defs(brw_shader &s)
if (progress) {
s.cfg->adjust_block_ips();
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
BRW_DEPENDENCY_INSTRUCTION_DETAIL);
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTIONS);
}
delete [] uses_deleted;
+1 -2
View File
@@ -508,8 +508,7 @@ out:
if (progress) {
s.cfg->adjust_block_ips();
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DATA_FLOW |
BRW_DEPENDENCY_INSTRUCTION_DETAIL);
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTIONS);
}
return progress;
@@ -196,7 +196,8 @@ brw_opt_saturate_propagation(brw_shader &s)
progress = opt_saturate_propagation_local(s, block) || progress;
}
/* Live intervals are still valid. */
if (progress)
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTION_DETAIL);
return progress;
}