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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user