intel: Early exit from inst_is_in_block().

Surely the compiler would sort that out, you would think.  But no, my
debugoptimized build improves
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.13 runtime by 25%
on my SKL from this change.

This was the slowest test in the GLES31 tests on APL in CI, at 22s.  And
yes, we were spending around half of our runtime in this function.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11631>
This commit is contained in:
Emma Anholt
2021-06-28 15:56:38 -07:00
committed by Marge Bot
parent 3a9716e6b1
commit b18cf54f0d

View File

@@ -1173,13 +1173,11 @@ backend_instruction::is_volatile() const
static bool
inst_is_in_block(const bblock_t *block, const backend_instruction *inst)
{
bool found = false;
foreach_inst_in_block (backend_instruction, i, block) {
if (inst == i) {
found = true;
}
if (inst == i)
return true;
}
return found;
return false;
}
#endif