Mesa (main): aco/spill: Use std::unordered_map for spills_entry

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Oct 1 09:57:12 UTC 2021


Module: Mesa
Branch: main
Commit: fa655b6f703d21d8244041d1f4916d64d52985cf
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa655b6f703d21d8244041d1f4916d64d52985cf

Author: Tony Wasserka <tony.wasserka at gmx.de>
Date:   Fri Jul 16 12:19:28 2021 +0200

aco/spill: Use std::unordered_map for spills_entry

fossil-db on Navi14:
Totals from 305 (0.20% of 150305) affected shaders:
CodeSize: 5498340 -> 5498328 (-0.00%)
Instrs: 1009992 -> 1009989 (-0.00%)
Latency: 33922644 -> 33923018 (+0.00%)
InvThroughput: 9302963 -> 9303151 (+0.00%)
VClause: 19004 -> 19001 (-0.02%)

Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925>

---

 src/amd/compiler/aco_spill.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/amd/compiler/aco_spill.cpp b/src/amd/compiler/aco_spill.cpp
index 3ad8c0e8553..96f3bb85061 100644
--- a/src/amd/compiler/aco_spill.cpp
+++ b/src/amd/compiler/aco_spill.cpp
@@ -67,7 +67,7 @@ struct spill_ctx {
    Program* program;
    std::vector<std::vector<RegisterDemand>> register_demand;
    std::vector<std::map<Temp, Temp>> renames;
-   std::vector<std::map<Temp, uint32_t>> spills_entry;
+   std::vector<std::unordered_map<Temp, uint32_t>> spills_entry;
    std::vector<std::unordered_map<Temp, uint32_t>> spills_exit;
 
    std::vector<bool> processed;
@@ -1294,7 +1294,7 @@ spill_block(spill_ctx& ctx, unsigned block_idx)
       add_coupling_code(ctx, block, block_idx);
    }
 
-   const std::map<Temp, uint32_t>& current_spills = ctx.spills_entry[block_idx];
+   const auto& current_spills = ctx.spills_entry[block_idx];
 
    /* check conditions to process this block */
    bool process = (block->register_demand - spilled_registers).exceeds(ctx.target_pressure) ||
@@ -1306,7 +1306,7 @@ spill_block(spill_ctx& ctx, unsigned block_idx)
    }
 
    assert(ctx.spills_exit[block_idx].empty());
-   ctx.spills_exit[block_idx] = std::unordered_map<Temp, uint32_t>(current_spills.begin(), current_spills.end());
+   ctx.spills_exit[block_idx] = current_spills;
    if (process) {
       process_block(ctx, block_idx, block, spilled_registers);
    }



More information about the mesa-commit mailing list