Commit 18e73bf7 authored by Connor Abbott's avatar Connor Abbott Committed by Connor Abbott
Browse files

i965/fs: remove special case in setup_payload_interference()



regs_read() will handle LINTERP for us since the previous commit. In
addition, we were being too conservative, since it will only read 2
registers on SIMD8.

instructions in affected programs:     9061 -> 8893 (-1.85%)
helped:                                10
HURT:                                  0
GAINED:                                0
LOST:                                  0

All of the changes were due to spills being eliminated, mostly in KSP
shaders.
Reviewed-by: Jordan Justen's avatarJordan Justen <jordan.l.justen@intel.com>
Signed-off-by: default avatarConnor Abbott <connor.w.abbott@intel.com>
parent c4a2217e
......@@ -389,26 +389,6 @@ fs_visitor::setup_payload_interference(struct ra_graph *g,
/* Special case instructions which have extra implied registers used. */
switch (inst->opcode) {
case FS_OPCODE_LINTERP:
/* On gen6+ in SIMD16, there are 4 adjacent registers used by
* PLN's sourcing of the deltas, while we list only the first one
* in the arguments. Pre-gen6, the deltas are computed in normal
* VGRFs.
*/
if (devinfo->gen >= 6) {
int delta_x_arg = 0;
if (inst->src[delta_x_arg].file == HW_REG &&
inst->src[delta_x_arg].fixed_hw_reg.file ==
BRW_GENERAL_REGISTER_FILE) {
for (int i = 1; i < 4; ++i) {
int node = inst->src[delta_x_arg].fixed_hw_reg.nr + i;
assert(node < payload_node_count);
payload_last_use_ip[node] = use_ip;
}
}
}
break;
case CS_OPCODE_CS_TERMINATE:
payload_last_use_ip[0] = use_ip;
break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment