mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 00:00:11 +01:00
brw: Remove bblock_t parameters from various passes
These are either unused or can be trivially replaced by a block stored in an instruction. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33815>
This commit is contained in:
parent
8e2a7cb42d
commit
25875f5e79
7 changed files with 59 additions and 61 deletions
|
|
@ -354,7 +354,7 @@ brw_lower_barycentrics(brw_shader &s)
|
|||
* swizzles of the source, specified as \p swz0 and \p swz1.
|
||||
*/
|
||||
static bool
|
||||
lower_derivative(brw_shader &s, bblock_t *block, brw_inst *inst,
|
||||
lower_derivative(brw_shader &s, brw_inst *inst,
|
||||
unsigned swz0, unsigned swz1)
|
||||
{
|
||||
const brw_builder ubld = brw_builder(inst).exec_all();
|
||||
|
|
@ -386,19 +386,19 @@ brw_lower_derivatives(brw_shader &s)
|
|||
|
||||
foreach_block_and_inst(block, brw_inst, inst, s.cfg) {
|
||||
if (inst->opcode == FS_OPCODE_DDX_COARSE)
|
||||
progress |= lower_derivative(s, block, inst,
|
||||
progress |= lower_derivative(s, inst,
|
||||
BRW_SWIZZLE_XXXX, BRW_SWIZZLE_YYYY);
|
||||
|
||||
else if (inst->opcode == FS_OPCODE_DDX_FINE)
|
||||
progress |= lower_derivative(s, block, inst,
|
||||
progress |= lower_derivative(s, inst,
|
||||
BRW_SWIZZLE_XXZZ, BRW_SWIZZLE_YYWW);
|
||||
|
||||
else if (inst->opcode == FS_OPCODE_DDY_COARSE)
|
||||
progress |= lower_derivative(s, block, inst,
|
||||
progress |= lower_derivative(s, inst,
|
||||
BRW_SWIZZLE_XXXX, BRW_SWIZZLE_ZZZZ);
|
||||
|
||||
else if (inst->opcode == FS_OPCODE_DDY_FINE)
|
||||
progress |= lower_derivative(s, block, inst,
|
||||
progress |= lower_derivative(s, inst,
|
||||
BRW_SWIZZLE_XYXY, BRW_SWIZZLE_ZWZW);
|
||||
}
|
||||
|
||||
|
|
@ -778,7 +778,7 @@ brw_s0(enum brw_reg_type type, unsigned subnr)
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_send_gather_inst(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_send_gather_inst(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const intel_device_info *devinfo = s.devinfo;
|
||||
assert(devinfo->ver >= 30);
|
||||
|
|
@ -837,7 +837,7 @@ brw_lower_send_gather(brw_shader &s)
|
|||
|
||||
foreach_block_and_inst(block, brw_inst, inst, s.cfg) {
|
||||
if (inst->opcode == SHADER_OPCODE_SEND_GATHER)
|
||||
progress |= brw_lower_send_gather_inst(s, block, inst);
|
||||
progress |= brw_lower_send_gather_inst(s, inst);
|
||||
}
|
||||
|
||||
if (progress)
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ factor_uint32(uint32_t x, unsigned *result_a, unsigned *result_b)
|
|||
}
|
||||
|
||||
static void
|
||||
brw_lower_mul_dword_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
||||
brw_lower_mul_dword_inst(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const intel_device_info *devinfo = s.devinfo;
|
||||
const brw_builder ibld(inst);
|
||||
|
|
@ -244,7 +244,7 @@ brw_lower_mul_dword_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
|||
|
||||
if (inst->src[1].abs || (inst->src[1].negate &&
|
||||
source_mods_unsupported))
|
||||
brw_lower_src_modifiers(s, block, inst, 1);
|
||||
brw_lower_src_modifiers(s, inst, 1);
|
||||
|
||||
if (inst->src[1].file == IMM) {
|
||||
unsigned a;
|
||||
|
|
@ -298,7 +298,7 @@ brw_lower_mul_dword_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
|||
}
|
||||
|
||||
static void
|
||||
brw_lower_mul_qword_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
||||
brw_lower_mul_qword_inst(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const intel_device_info *devinfo = s.devinfo;
|
||||
const brw_builder ibld(inst);
|
||||
|
|
@ -367,7 +367,7 @@ brw_lower_mul_qword_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
|||
}
|
||||
|
||||
static void
|
||||
brw_lower_mulh_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
||||
brw_lower_mulh_inst(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const intel_device_info *devinfo = s.devinfo;
|
||||
const brw_builder ibld(inst);
|
||||
|
|
@ -382,7 +382,7 @@ brw_lower_mulh_inst(brw_shader &s, brw_inst *inst, bblock_t *block)
|
|||
* mach (8) r5.0<1>:d r2.0<8;8,1>:d r3.0<8;8,1>:d"
|
||||
*/
|
||||
if (inst->src[1].negate || inst->src[1].abs)
|
||||
brw_lower_src_modifiers(s, block, inst, 1);
|
||||
brw_lower_src_modifiers(s, inst, 1);
|
||||
|
||||
/* Should have been lowered to 8-wide. */
|
||||
assert(inst->exec_size <= brw_get_lowered_simd_width(&s, inst));
|
||||
|
|
@ -430,7 +430,7 @@ brw_lower_integer_multiplication(brw_shader &s)
|
|||
inst->src[0].type == BRW_TYPE_UQ) &&
|
||||
(inst->src[1].type == BRW_TYPE_Q ||
|
||||
inst->src[1].type == BRW_TYPE_UQ)) {
|
||||
brw_lower_mul_qword_inst(s, inst, block);
|
||||
brw_lower_mul_qword_inst(s, inst);
|
||||
inst->remove();
|
||||
progress = true;
|
||||
} else if (!inst->dst.is_accumulator() &&
|
||||
|
|
@ -438,12 +438,12 @@ brw_lower_integer_multiplication(brw_shader &s)
|
|||
inst->dst.type == BRW_TYPE_UD) &&
|
||||
(!devinfo->has_integer_dword_mul ||
|
||||
devinfo->verx10 >= 125)) {
|
||||
brw_lower_mul_dword_inst(s, inst, block);
|
||||
brw_lower_mul_dword_inst(s, inst);
|
||||
inst->remove();
|
||||
progress = true;
|
||||
}
|
||||
} else if (inst->opcode == SHADER_OPCODE_MULH) {
|
||||
brw_lower_mulh_inst(s, inst, block);
|
||||
brw_lower_mulh_inst(s, inst);
|
||||
inst->remove();
|
||||
progress = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ namespace {
|
|||
}
|
||||
|
||||
bool
|
||||
lower_instruction(brw_shader *v, bblock_t *block, brw_inst *inst);
|
||||
lower_instruction(brw_shader *v, brw_inst *inst);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -466,7 +466,7 @@ namespace {
|
|||
* MOV instruction prior to the original instruction.
|
||||
*/
|
||||
bool
|
||||
brw_lower_src_modifiers(brw_shader &s, bblock_t *block, brw_inst *inst, unsigned i)
|
||||
brw_lower_src_modifiers(brw_shader &s, brw_inst *inst, unsigned i)
|
||||
{
|
||||
assert(inst->components_read(i) == 1);
|
||||
assert(s.devinfo->has_integer_dword_mul ||
|
||||
|
|
@ -478,7 +478,7 @@ brw_lower_src_modifiers(brw_shader &s, bblock_t *block, brw_inst *inst, unsigned
|
|||
const brw_builder ibld(inst);
|
||||
const brw_reg tmp = ibld.vgrf(get_exec_type(inst));
|
||||
|
||||
lower_instruction(&s, block, ibld.MOV(tmp, inst->src[i]));
|
||||
lower_instruction(&s, ibld.MOV(tmp, inst->src[i]));
|
||||
inst->src[i] = tmp;
|
||||
|
||||
return true;
|
||||
|
|
@ -493,7 +493,7 @@ namespace {
|
|||
* instruction.
|
||||
*/
|
||||
bool
|
||||
lower_dst_modifiers(brw_shader *v, bblock_t *block, brw_inst *inst)
|
||||
lower_dst_modifiers(brw_shader *v, brw_inst *inst)
|
||||
{
|
||||
const brw_builder ibld(inst);
|
||||
const brw_reg_type type = get_exec_type(inst);
|
||||
|
|
@ -511,7 +511,7 @@ namespace {
|
|||
tmp = horiz_stride(tmp, stride);
|
||||
|
||||
/* Emit a MOV taking care of all the destination modifiers. */
|
||||
brw_inst *mov = ibld.at(block, inst->next).MOV(inst->dst, tmp);
|
||||
brw_inst *mov = ibld.at(inst->block, inst->next).MOV(inst->dst, tmp);
|
||||
mov->saturate = inst->saturate;
|
||||
if (!has_inconsistent_cmod(inst))
|
||||
mov->conditional_mod = inst->conditional_mod;
|
||||
|
|
@ -520,7 +520,7 @@ namespace {
|
|||
mov->predicate_inverse = inst->predicate_inverse;
|
||||
}
|
||||
mov->flag_subreg = inst->flag_subreg;
|
||||
lower_instruction(v, block, mov);
|
||||
lower_instruction(v, mov);
|
||||
|
||||
/* Point the original instruction at the temporary, and clean up any
|
||||
* destination modifiers.
|
||||
|
|
@ -542,7 +542,7 @@ namespace {
|
|||
* copies into a temporary with the same channel layout as the destination.
|
||||
*/
|
||||
bool
|
||||
lower_src_region(brw_shader *v, bblock_t *block, brw_inst *inst, unsigned i)
|
||||
lower_src_region(brw_shader *v, brw_inst *inst, unsigned i)
|
||||
{
|
||||
assert(inst->components_read(i) == 1);
|
||||
const intel_device_info *devinfo = v->devinfo;
|
||||
|
|
@ -582,7 +582,7 @@ namespace {
|
|||
/* The copy isn't guaranteed to comply with all subdword integer
|
||||
* regioning restrictions in some cases. Lower it recursively.
|
||||
*/
|
||||
lower_instruction(v, block, jnst);
|
||||
lower_instruction(v, jnst);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -604,7 +604,7 @@ namespace {
|
|||
* sources.
|
||||
*/
|
||||
bool
|
||||
lower_dst_region(brw_shader *v, bblock_t *block, brw_inst *inst)
|
||||
lower_dst_region(brw_shader *v, brw_inst *inst)
|
||||
{
|
||||
/* We cannot replace the result of an integer multiply which writes the
|
||||
* accumulator because MUL+MACH pairs act on the accumulator as a 66-bit
|
||||
|
|
@ -645,13 +645,13 @@ namespace {
|
|||
}
|
||||
|
||||
for (unsigned j = 0; j < n; j++) {
|
||||
brw_inst *jnst = ibld.at(block, inst->next).MOV(subscript(inst->dst, raw_type, j),
|
||||
brw_inst *jnst = ibld.at(inst->block, inst->next).MOV(subscript(inst->dst, raw_type, j),
|
||||
subscript(tmp, raw_type, j));
|
||||
if (has_subdword_integer_region_restriction(v->devinfo, jnst)) {
|
||||
/* The copy isn't guaranteed to comply with all subdword integer
|
||||
* regioning restrictions in some cases. Lower it recursively.
|
||||
*/
|
||||
lower_instruction(v, block, jnst);
|
||||
lower_instruction(v, jnst);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -679,7 +679,7 @@ namespace {
|
|||
* where the execution type of an instruction is unsupported.
|
||||
*/
|
||||
bool
|
||||
lower_exec_type(brw_shader *v, bblock_t *block, brw_inst *inst)
|
||||
lower_exec_type(brw_shader *v, brw_inst *inst)
|
||||
{
|
||||
assert(inst->dst.type == get_exec_type(inst));
|
||||
const unsigned mask = has_invalid_exec_type(v->devinfo, inst);
|
||||
|
|
@ -713,7 +713,7 @@ namespace {
|
|||
mov->predicate = inst->predicate;
|
||||
mov->predicate_inverse = inst->predicate_inverse;
|
||||
}
|
||||
lower_instruction(v, block, mov);
|
||||
lower_instruction(v, mov);
|
||||
}
|
||||
|
||||
inst->remove();
|
||||
|
|
@ -729,7 +729,7 @@ namespace {
|
|||
* the general lowering in lower_src_modifiers or lower_src_region.
|
||||
*/
|
||||
void
|
||||
lower_src_conversion(brw_shader *v, bblock_t *block, brw_inst *inst)
|
||||
lower_src_conversion(brw_shader *v, brw_inst *inst)
|
||||
{
|
||||
const intel_device_info *devinfo = v->devinfo;
|
||||
const brw_builder ibld = brw_builder(inst).scalar_group();
|
||||
|
|
@ -758,7 +758,7 @@ namespace {
|
|||
* instruction.
|
||||
*/
|
||||
bool
|
||||
lower_instruction(brw_shader *v, bblock_t *block, brw_inst *inst)
|
||||
lower_instruction(brw_shader *v, brw_inst *inst)
|
||||
{
|
||||
const intel_device_info *devinfo = v->devinfo;
|
||||
bool progress = false;
|
||||
|
|
@ -773,26 +773,26 @@ namespace {
|
|||
return false;
|
||||
|
||||
if (has_invalid_dst_modifiers(devinfo, inst))
|
||||
progress |= lower_dst_modifiers(v, block, inst);
|
||||
progress |= lower_dst_modifiers(v, inst);
|
||||
|
||||
if (has_invalid_dst_region(devinfo, inst))
|
||||
progress |= lower_dst_region(v, block, inst);
|
||||
progress |= lower_dst_region(v, inst);
|
||||
|
||||
if (has_invalid_src_conversion(devinfo, inst)) {
|
||||
lower_src_conversion(v, block, inst);
|
||||
lower_src_conversion(v, inst);
|
||||
progress = true;
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < inst->sources; i++) {
|
||||
if (has_invalid_src_modifiers(devinfo, inst, i))
|
||||
progress |= brw_lower_src_modifiers(*v, block, inst, i);
|
||||
progress |= brw_lower_src_modifiers(*v, inst, i);
|
||||
|
||||
if (has_invalid_src_region(devinfo, inst, i))
|
||||
progress |= lower_src_region(v, block, inst, i);
|
||||
progress |= lower_src_region(v, inst, i);
|
||||
}
|
||||
|
||||
if (has_invalid_exec_type(devinfo, inst))
|
||||
progress |= lower_exec_type(v, block, inst);
|
||||
progress |= lower_exec_type(v, inst);
|
||||
|
||||
return progress;
|
||||
}
|
||||
|
|
@ -804,7 +804,7 @@ brw_lower_regioning(brw_shader &s)
|
|||
bool progress = false;
|
||||
|
||||
foreach_block_and_inst_safe(block, brw_inst, inst, s.cfg)
|
||||
progress |= lower_instruction(&s, block, inst);
|
||||
progress |= lower_instruction(&s, inst);
|
||||
|
||||
if (progress)
|
||||
s.invalidate_analysis(BRW_DEPENDENCY_INSTRUCTIONS |
|
||||
|
|
|
|||
|
|
@ -249,7 +249,7 @@ brw_emit_scan(const brw_builder &bld, enum opcode opcode, const brw_reg &tmp,
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_reduce(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_reduce(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -301,7 +301,7 @@ brw_lower_reduce(brw_shader &s, bblock_t *block, brw_inst *inst)
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_scan(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_scan(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -486,7 +486,7 @@ brw_lower_quad_vote_gfx20(const brw_builder &bld, enum opcode opcode, brw_reg ds
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_vote(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_vote(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -516,7 +516,7 @@ brw_lower_vote(brw_shader &s, bblock_t *block, brw_inst *inst)
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_ballot(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_ballot(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -546,7 +546,7 @@ brw_lower_ballot(brw_shader &s, bblock_t *block, brw_inst *inst)
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_quad_swap(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_quad_swap(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -602,7 +602,7 @@ brw_lower_quad_swap(brw_shader &s, bblock_t *block, brw_inst *inst)
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_read_from_live_channel(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_read_from_live_channel(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -618,7 +618,7 @@ brw_lower_read_from_live_channel(brw_shader &s, bblock_t *block, brw_inst *inst)
|
|||
}
|
||||
|
||||
static bool
|
||||
brw_lower_read_from_channel(brw_shader &s, bblock_t *block, brw_inst *inst)
|
||||
brw_lower_read_from_channel(brw_shader &s, brw_inst *inst)
|
||||
{
|
||||
const brw_builder bld(inst);
|
||||
|
||||
|
|
@ -658,34 +658,34 @@ brw_lower_subgroup_ops(brw_shader &s)
|
|||
foreach_block_and_inst_safe(block, brw_inst, inst, s.cfg) {
|
||||
switch (inst->opcode) {
|
||||
case SHADER_OPCODE_REDUCE:
|
||||
progress |= brw_lower_reduce(s, block, inst);
|
||||
progress |= brw_lower_reduce(s, inst);
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_INCLUSIVE_SCAN:
|
||||
case SHADER_OPCODE_EXCLUSIVE_SCAN:
|
||||
progress |= brw_lower_scan(s, block, inst);
|
||||
progress |= brw_lower_scan(s, inst);
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_VOTE_ANY:
|
||||
case SHADER_OPCODE_VOTE_ALL:
|
||||
case SHADER_OPCODE_VOTE_EQUAL:
|
||||
progress |= brw_lower_vote(s, block, inst);
|
||||
progress |= brw_lower_vote(s, inst);
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_BALLOT:
|
||||
progress |= brw_lower_ballot(s, block, inst);
|
||||
progress |= brw_lower_ballot(s, inst);
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_QUAD_SWAP:
|
||||
progress |= brw_lower_quad_swap(s, block, inst);
|
||||
progress |= brw_lower_quad_swap(s, inst);
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_READ_FROM_LIVE_CHANNEL:
|
||||
progress |= brw_lower_read_from_live_channel(s, block, inst);
|
||||
progress |= brw_lower_read_from_live_channel(s, inst);
|
||||
break;
|
||||
|
||||
case SHADER_OPCODE_READ_FROM_CHANNEL:
|
||||
progress |= brw_lower_read_from_channel(s, block, inst);
|
||||
progress |= brw_lower_read_from_channel(s, inst);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -49,8 +49,7 @@
|
|||
*/
|
||||
|
||||
static bool
|
||||
cmod_propagate_cmp_to_add(const intel_device_info *devinfo, bblock_t *block,
|
||||
brw_inst *inst)
|
||||
cmod_propagate_cmp_to_add(const intel_device_info *devinfo, brw_inst *inst)
|
||||
{
|
||||
bool read_flag = false;
|
||||
const unsigned flags_written = inst->flags_written(devinfo);
|
||||
|
|
@ -166,8 +165,7 @@ cmod_propagate_cmp_to_add(const intel_device_info *devinfo, bblock_t *block,
|
|||
* or.z.f0(8) g78<8,8,1> g76<8,8,1>UD g77<8,8,1>UD
|
||||
*/
|
||||
static bool
|
||||
cmod_propagate_not(const intel_device_info *devinfo, bblock_t *block,
|
||||
brw_inst *inst)
|
||||
cmod_propagate_not(const intel_device_info *devinfo, brw_inst *inst)
|
||||
{
|
||||
const enum brw_conditional_mod cond = brw_negate_cmod(inst->conditional_mod);
|
||||
bool read_flag = false;
|
||||
|
|
@ -271,14 +269,14 @@ opt_cmod_propagation_local(const intel_device_info *devinfo, bblock_t *block)
|
|||
*/
|
||||
if (inst->opcode == BRW_OPCODE_CMP && !inst->src[1].is_zero()) {
|
||||
if (brw_type_is_float(inst->src[0].type) &&
|
||||
cmod_propagate_cmp_to_add(devinfo, block, inst))
|
||||
cmod_propagate_cmp_to_add(devinfo, inst))
|
||||
progress = true;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (inst->opcode == BRW_OPCODE_NOT) {
|
||||
progress = cmod_propagate_not(devinfo, block, inst) || progress;
|
||||
progress = cmod_propagate_not(devinfo, inst) || progress;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ is_coalesce_candidate(const brw_shader *v, const brw_inst *inst)
|
|||
static bool
|
||||
can_coalesce_vars(const intel_device_info *devinfo,
|
||||
const brw_live_variables &live, const cfg_t *cfg,
|
||||
const bblock_t *block, const brw_inst *inst,
|
||||
const brw_inst *inst,
|
||||
int dst_var, int src_var)
|
||||
{
|
||||
if (!live.vars_interfere(src_var, dst_var))
|
||||
|
|
@ -176,7 +176,7 @@ can_coalesce_vars(const intel_device_info *devinfo,
|
|||
/* See the big comment above */
|
||||
if (regions_overlap(scan_inst->dst, scan_inst->size_written,
|
||||
inst->src[0], inst->size_read(devinfo, 0))) {
|
||||
if (seen_copy || scan_block != block ||
|
||||
if (seen_copy || scan_block != inst->block ||
|
||||
(scan_inst->force_writemask_all && !inst->force_writemask_all))
|
||||
return false;
|
||||
seen_src_write = true;
|
||||
|
|
@ -302,7 +302,7 @@ brw_opt_register_coalesce(brw_shader &s)
|
|||
dst_var[i] = live.var_from_vgrf[dst_reg] + dst_reg_offset[i];
|
||||
src_var[i] = live.var_from_vgrf[src_reg] + i;
|
||||
|
||||
if (!can_coalesce_vars(devinfo, live, s.cfg, block, inst, dst_var[i], src_var[i]) ||
|
||||
if (!can_coalesce_vars(devinfo, live, s.cfg, inst, dst_var[i], src_var[i]) ||
|
||||
would_violate_eot_restriction(s, s.cfg, dst_reg, src_reg)) {
|
||||
can_coalesce = false;
|
||||
src_reg = ~0u;
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ bool brw_lower_send_descriptors(brw_shader &s);
|
|||
bool brw_lower_send_gather(brw_shader &s);
|
||||
bool brw_lower_sends_overlapping_payload(brw_shader &s);
|
||||
bool brw_lower_simd_width(brw_shader &s);
|
||||
bool brw_lower_src_modifiers(brw_shader &s, bblock_t *block, brw_inst *inst, unsigned i);
|
||||
bool brw_lower_src_modifiers(brw_shader &s, brw_inst *inst, unsigned i);
|
||||
bool brw_lower_sub_sat(brw_shader &s);
|
||||
bool brw_lower_subgroup_ops(brw_shader &s);
|
||||
bool brw_lower_uniform_pull_constant_loads(brw_shader &s);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue