Mesa (master): intel/fs: Rename PLACEHOLDER_HALT to HALT_TARGET
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Dec 1 22:26:04 UTC 2020
Module: Mesa
Branch: master
Commit: e76e3590072a60a20115cf69ca0b3aa442269f99
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e76e3590072a60a20115cf69ca0b3aa442269f99
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Thu Nov 19 09:32:27 2020 -0600
intel/fs: Rename PLACEHOLDER_HALT to HALT_TARGET
It's a bit more explicit and will play more nicely with what we're about
to do.
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5071>
---
src/intel/compiler/brw_eu_defines.h | 8 +++++++-
src/intel/compiler/brw_fs.cpp | 22 +++++++++++-----------
src/intel/compiler/brw_fs.h | 2 +-
src/intel/compiler/brw_fs_cse.cpp | 2 +-
src/intel/compiler/brw_fs_generator.cpp | 6 +++---
src/intel/compiler/brw_fs_scoreboard.cpp | 2 +-
src/intel/compiler/brw_ir_performance.cpp | 4 ++--
src/intel/compiler/brw_schedule_instructions.cpp | 2 +-
src/intel/compiler/brw_shader.cpp | 4 ++--
9 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/src/intel/compiler/brw_eu_defines.h b/src/intel/compiler/brw_eu_defines.h
index e518c8b0439..8af294aa25c 100644
--- a/src/intel/compiler/brw_eu_defines.h
+++ b/src/intel/compiler/brw_eu_defines.h
@@ -552,6 +552,13 @@ enum opcode {
SHADER_OPCODE_INTERLOCK,
+ /** Target for a HALT
+ *
+ * All HALT instructions in a shader must target the same jump point and
+ * that point is denoted by a HALT_TARGET instruction.
+ */
+ SHADER_OPCODE_HALT_TARGET,
+
VEC4_OPCODE_MOV_BYTES,
VEC4_OPCODE_PACK_BYTES,
VEC4_OPCODE_UNPACK_UNIFORM,
@@ -581,7 +588,6 @@ enum opcode {
FS_OPCODE_DISCARD_JUMP,
FS_OPCODE_SET_SAMPLE_ID,
FS_OPCODE_PACK_HALF_2x16_SPLIT,
- FS_OPCODE_PLACEHOLDER_HALT,
FS_OPCODE_INTERPOLATE_AT_SAMPLE,
FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET,
FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET,
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index ea76a21fa17..e90cf879969 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -3035,21 +3035,21 @@ fs_visitor::opt_redundant_discard_jumps()
bblock_t *last_bblock = cfg->blocks[cfg->num_blocks - 1];
- fs_inst *placeholder_halt = NULL;
+ fs_inst *halt_target = NULL;
foreach_inst_in_block_reverse(fs_inst, inst, last_bblock) {
- if (inst->opcode == FS_OPCODE_PLACEHOLDER_HALT) {
- placeholder_halt = inst;
+ if (inst->opcode == SHADER_OPCODE_HALT_TARGET) {
+ halt_target = inst;
break;
}
}
- if (!placeholder_halt)
+ if (!halt_target)
return false;
- /* Delete any HALTs immediately before the placeholder halt. */
- for (fs_inst *prev = (fs_inst *) placeholder_halt->prev;
+ /* Delete any HALTs immediately before the halt target. */
+ for (fs_inst *prev = (fs_inst *) halt_target->prev;
!prev->is_head_sentinel() && prev->opcode == FS_OPCODE_DISCARD_JUMP;
- prev = (fs_inst *) placeholder_halt->prev) {
+ prev = (fs_inst *) halt_target->prev) {
prev->remove(last_bblock);
progress = true;
}
@@ -7943,7 +7943,7 @@ fs_visitor::fixup_3src_null_dest()
* Find the first instruction in the program that might start a region of
* divergent control flow due to a HALT jump. There is no
* find_halt_control_flow_region_end(), the region of divergence extends until
- * the only FS_OPCODE_PLACEHOLDER_HALT in the program.
+ * the only SHADER_OPCODE_HALT_TARGET in the program.
*/
static const fs_inst *
find_halt_control_flow_region_start(const fs_visitor *v)
@@ -7952,7 +7952,7 @@ find_halt_control_flow_region_start(const fs_visitor *v)
brw_wm_prog_data(v->prog_data)->uses_kill) {
foreach_block_and_inst(block, fs_inst, inst, v->cfg) {
if (inst->opcode == FS_OPCODE_DISCARD_JUMP ||
- inst->opcode == FS_OPCODE_PLACEHOLDER_HALT)
+ inst->opcode == SHADER_OPCODE_HALT_TARGET)
return inst;
}
}
@@ -8012,7 +8012,7 @@ fs_visitor::fixup_nomask_control_flow()
case BRW_OPCODE_WHILE:
case BRW_OPCODE_ENDIF:
- case FS_OPCODE_PLACEHOLDER_HALT:
+ case SHADER_OPCODE_HALT_TARGET:
depth++;
break;
@@ -8528,7 +8528,7 @@ fs_visitor::run_fs(bool allow_spilling, bool do_rep_send)
return false;
if (wm_prog_data->uses_kill)
- bld.emit(FS_OPCODE_PLACEHOLDER_HALT);
+ bld.emit(SHADER_OPCODE_HALT_TARGET);
if (wm_key->alpha_test_func)
emit_alpha_test();
diff --git a/src/intel/compiler/brw_fs.h b/src/intel/compiler/brw_fs.h
index b3b280192dc..26b7c59c4cf 100644
--- a/src/intel/compiler/brw_fs.h
+++ b/src/intel/compiler/brw_fs.h
@@ -562,7 +562,7 @@ private:
struct brw_reg dst, struct brw_reg src,
unsigned swiz);
- bool patch_discard_jumps_to_fb_writes();
+ bool patch_halt_jumps();
const struct brw_compiler *compiler;
void *log_data; /* Passed to compiler->*_log functions */
diff --git a/src/intel/compiler/brw_fs_cse.cpp b/src/intel/compiler/brw_fs_cse.cpp
index 198bb5c4c5e..b5b844cec7f 100644
--- a/src/intel/compiler/brw_fs_cse.cpp
+++ b/src/intel/compiler/brw_fs_cse.cpp
@@ -325,7 +325,7 @@ fs_visitor::opt_cse_local(const fs_live_variables &live, bblock_t *block, int &i
* SHADER_OPCODE_FIND_LIVE_CHANNEL.
*/
if (inst->opcode == FS_OPCODE_DISCARD_JUMP ||
- inst->opcode == FS_OPCODE_PLACEHOLDER_HALT)
+ inst->opcode == SHADER_OPCODE_HALT_TARGET)
aeb.make_empty();
foreach_in_list_safe(aeb_entry, entry, &aeb) {
diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp
index da5f69c45c7..1b64327e18b 100644
--- a/src/intel/compiler/brw_fs_generator.cpp
+++ b/src/intel/compiler/brw_fs_generator.cpp
@@ -222,7 +222,7 @@ public:
};
bool
-fs_generator::patch_discard_jumps_to_fb_writes()
+fs_generator::patch_halt_jumps()
{
if (this->discard_halt_patches.is_empty())
return false;
@@ -2529,11 +2529,11 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width,
generate_pack_half_2x16_split(inst, dst, src[0], src[1]);
break;
- case FS_OPCODE_PLACEHOLDER_HALT:
+ case SHADER_OPCODE_HALT_TARGET:
/* This is the place where the final HALT needs to be inserted if
* we've emitted any discards. If not, this will emit no code.
*/
- if (!patch_discard_jumps_to_fb_writes()) {
+ if (!patch_halt_jumps()) {
if (unlikely(debug_flag)) {
disasm_info->use_tail = true;
}
diff --git a/src/intel/compiler/brw_fs_scoreboard.cpp b/src/intel/compiler/brw_fs_scoreboard.cpp
index 899b47542ba..7bdc8e82d90 100644
--- a/src/intel/compiler/brw_fs_scoreboard.cpp
+++ b/src/intel/compiler/brw_fs_scoreboard.cpp
@@ -76,7 +76,7 @@ namespace {
case BRW_OPCODE_SYNC:
case BRW_OPCODE_DO:
case SHADER_OPCODE_UNDEF:
- case FS_OPCODE_PLACEHOLDER_HALT:
+ case SHADER_OPCODE_HALT_TARGET:
case FS_OPCODE_SCHEDULING_FENCE:
return 0;
default:
diff --git a/src/intel/compiler/brw_ir_performance.cpp b/src/intel/compiler/brw_ir_performance.cpp
index 6129dd4da61..dd6bbc54e68 100644
--- a/src/intel/compiler/brw_ir_performance.cpp
+++ b/src/intel/compiler/brw_ir_performance.cpp
@@ -1098,7 +1098,7 @@ namespace {
}
case SHADER_OPCODE_UNDEF:
- case FS_OPCODE_PLACEHOLDER_HALT:
+ case SHADER_OPCODE_HALT_TARGET:
case FS_OPCODE_SCHEDULING_FENCE:
return calculate_desc(info, unit_null, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0);
@@ -1552,7 +1552,7 @@ namespace {
issue_instruction(st, s->devinfo, inst);
- if (inst->opcode == FS_OPCODE_PLACEHOLDER_HALT && discard_count)
+ if (inst->opcode == SHADER_OPCODE_HALT_TARGET && discard_count)
st.weight /= discard_weight;
elapsed += (st.unit_ready[unit_fe] - clock0) * st.weight;
diff --git a/src/intel/compiler/brw_schedule_instructions.cpp b/src/intel/compiler/brw_schedule_instructions.cpp
index db6f6ac36b1..10148c50999 100644
--- a/src/intel/compiler/brw_schedule_instructions.cpp
+++ b/src/intel/compiler/brw_schedule_instructions.cpp
@@ -1047,7 +1047,7 @@ instruction_scheduler::add_dep(schedule_node *before, schedule_node *after)
static bool
is_scheduling_barrier(const backend_instruction *inst)
{
- return inst->opcode == FS_OPCODE_PLACEHOLDER_HALT ||
+ return inst->opcode == SHADER_OPCODE_HALT_TARGET ||
inst->is_control_flow() ||
inst->has_side_effects();
}
diff --git a/src/intel/compiler/brw_shader.cpp b/src/intel/compiler/brw_shader.cpp
index fdbce3392fb..244e9bb2b1c 100644
--- a/src/intel/compiler/brw_shader.cpp
+++ b/src/intel/compiler/brw_shader.cpp
@@ -453,8 +453,8 @@ brw_instruction_name(const struct gen_device_info *devinfo, enum opcode op)
case FS_OPCODE_PACK_HALF_2x16_SPLIT:
return "pack_half_2x16_split";
- case FS_OPCODE_PLACEHOLDER_HALT:
- return "placeholder_halt";
+ case SHADER_OPCODE_HALT_TARGET:
+ return "halt_target";
case FS_OPCODE_INTERPOLATE_AT_SAMPLE:
return "interp_sample";
More information about the mesa-commit
mailing list