diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2020-10-26 19:22:14 +0000 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-10-27 15:24:38 +0000 |
commit | 0f31fa1b645e881e5e293193c85d66f5e7e48c9a (patch) | |
tree | 8c10faedff0fe20473bb519b0445ade4ea0a22bb | |
parent | 72b307a3389b8940ec639c3086fcef79f778b7e5 (diff) |
aco: skip value numbering of copies
Instead, copy-propagate through and remove them.
This improves value numbering in this situation:
a = ...
b = copy a
c = copy a
use(b)
use(c)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7216>
-rw-r--r-- | src/amd/compiler/aco_opt_value_numbering.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/amd/compiler/aco_opt_value_numbering.cpp b/src/amd/compiler/aco_opt_value_numbering.cpp index 11aad20a0b0..91e03eb3cc0 100644 --- a/src/amd/compiler/aco_opt_value_numbering.cpp +++ b/src/amd/compiler/aco_opt_value_numbering.cpp @@ -393,6 +393,7 @@ void process_block(vn_ctx& ctx, Block& block) !instr->definitions[0].isFixed() && instr->operands[0].isTemp() && instr->operands[0].regClass() == instr->definitions[0].regClass() && !instr->isDPP() && !((int)instr->format & (int)Format::SDWA)) { ctx.renames[instr->definitions[0].tempId()] = instr->operands[0].getTemp(); + continue; } instr->pass_flags = ctx.exec_id; |