"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/amd/compiler/aco_reduce_assign.cpp" between
mesa-20.0.0-rc2.tar.xz and mesa-20.0.0-rc3.tar.xz

About: Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics (main library code). Release candidate.

aco_reduce_assign.cpp  (mesa-20.0.0-rc2.tar.xz):aco_reduce_assign.cpp  (mesa-20.0.0-rc3.tar.xz)
skipping to change at line 117 skipping to change at line 117
* would insert at the end instead of using this one. */ * would insert at the end instead of using this one. */
} else { } else {
assert(last_top_level_block_idx < block.index); assert(last_top_level_block_idx < block.index);
/* insert before the branch at last top level block */ /* insert before the branch at last top level block */
std::vector<aco_ptr<Instruction>>& instructions = program->blocks [last_top_level_block_idx].instructions; std::vector<aco_ptr<Instruction>>& instructions = program->blocks [last_top_level_block_idx].instructions;
instructions.insert(std::next(instructions.begin(), instructions. size() - 1), std::move(create)); instructions.insert(std::next(instructions.begin(), instructions. size() - 1), std::move(create));
inserted_at = last_top_level_block_idx; inserted_at = last_top_level_block_idx;
} }
} }
if (op == gfx10_wave64_bpermute) {
instr->operands[1] = Operand(reduceTmp);
continue;
}
/* same as before, except for the vector temporary instead of the reduc e temporary */ /* same as before, except for the vector temporary instead of the reduc e temporary */
unsigned cluster_size = static_cast<Pseudo_reduction_instruction *>(ins tr)->cluster_size; unsigned cluster_size = static_cast<Pseudo_reduction_instruction *>(ins tr)->cluster_size;
bool need_vtmp = op == imul32 || op == fadd64 || op == fmul64 || bool need_vtmp = op == imul32 || op == fadd64 || op == fmul64 ||
op == fmin64 || op == fmax64 || op == umin64 || op == fmin64 || op == fmax64 || op == umin64 ||
op == umax64 || op == imin64 || op == imax64 || op == umax64 || op == imin64 || op == imax64 ||
op == imul64; op == imul64;
if (program->chip_class >= GFX10 && cluster_size == 64 && op != gfx10_w ave64_bpermute) if (program->chip_class >= GFX10 && cluster_size == 64)
need_vtmp = true; need_vtmp = true;
if (program->chip_class >= GFX10 && op == iadd64) if (program->chip_class >= GFX10 && op == iadd64)
need_vtmp = true; need_vtmp = true;
if (program->chip_class <= GFX7) if (program->chip_class <= GFX7)
need_vtmp = true; need_vtmp = true;
need_vtmp |= cluster_size == 32; need_vtmp |= cluster_size == 32;
vtmp_in_loop |= need_vtmp && block.loop_nest_depth > 0; vtmp_in_loop |= need_vtmp && block.loop_nest_depth > 0;
if (need_vtmp && (int)last_top_level_block_idx != vtmp_inserted_at) { if (need_vtmp && (int)last_top_level_block_idx != vtmp_inserted_at) {
 End of changes. 2 change blocks. 
1 lines changed or deleted 6 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)