diff --git a/src/intel/compiler/brw_lower.cpp b/src/intel/compiler/brw_lower.cpp index 2eb714c31f4..6af97b44e5d 100644 --- a/src/intel/compiler/brw_lower.cpp +++ b/src/intel/compiler/brw_lower.cpp @@ -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) diff --git a/src/intel/compiler/brw_lower_integer_multiplication.cpp b/src/intel/compiler/brw_lower_integer_multiplication.cpp index 95c94a54c29..39485e8a20e 100644 --- a/src/intel/compiler/brw_lower_integer_multiplication.cpp +++ b/src/intel/compiler/brw_lower_integer_multiplication.cpp @@ -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; } diff --git a/src/intel/compiler/brw_lower_regioning.cpp b/src/intel/compiler/brw_lower_regioning.cpp index 2e76ffed5cb..e0e7ebee5bd 100644 --- a/src/intel/compiler/brw_lower_regioning.cpp +++ b/src/intel/compiler/brw_lower_regioning.cpp @@ -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 | diff --git a/src/intel/compiler/brw_lower_subgroup_ops.cpp b/src/intel/compiler/brw_lower_subgroup_ops.cpp index 8a93dbc5ca5..e0496bab3c2 100644 --- a/src/intel/compiler/brw_lower_subgroup_ops.cpp +++ b/src/intel/compiler/brw_lower_subgroup_ops.cpp @@ -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: diff --git a/src/intel/compiler/brw_opt_cmod_propagation.cpp b/src/intel/compiler/brw_opt_cmod_propagation.cpp index bb769de2106..19b114f131f 100644 --- a/src/intel/compiler/brw_opt_cmod_propagation.cpp +++ b/src/intel/compiler/brw_opt_cmod_propagation.cpp @@ -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; } diff --git a/src/intel/compiler/brw_opt_register_coalesce.cpp b/src/intel/compiler/brw_opt_register_coalesce.cpp index 0ee8d96bf4c..6195e4e7cd8 100644 --- a/src/intel/compiler/brw_opt_register_coalesce.cpp +++ b/src/intel/compiler/brw_opt_register_coalesce.cpp @@ -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; diff --git a/src/intel/compiler/brw_shader.h b/src/intel/compiler/brw_shader.h index c937dae68d0..6a4ab528540 100644 --- a/src/intel/compiler/brw_shader.h +++ b/src/intel/compiler/brw_shader.h @@ -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);