diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-07-12 10:22:01 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:40 +0200 |
commit | bf2956d77ab0ad06c4b5505cc9906e51e5878274 (patch) | |
tree | 3aae336c0dc3fe65351d5e6e312a214351e2e2fc /src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp | |
parent | glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE (diff) | |
download | yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.gz yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.bz2 yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.lz yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.xz yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.tar.zst yuzu-bf2956d77ab0ad06c4b5505cc9906e51e5878274.zip |
Diffstat (limited to 'src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp')
-rw-r--r-- | src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp b/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp index dcaced83f..53145fb5e 100644 --- a/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp +++ b/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp @@ -14,7 +14,6 @@ // https://link.springer.com/chapter/10.1007/978-3-642-37051-9_6 // -#include <ranges> #include <span> #include <variant> #include <vector> @@ -243,7 +242,9 @@ public: void SealBlock(IR::Block* block) { const auto it{incomplete_phis.find(block)}; if (it != incomplete_phis.end()) { - for (auto& [variant, phi] : it->second) { + for (auto& pair : it->second) { + auto& variant{pair.first}; + auto& phi{pair.second}; std::visit([&](auto& variable) { AddPhiOperands(variable, *phi, block); }, variant); } } @@ -373,8 +374,9 @@ void VisitBlock(Pass& pass, IR::Block* block) { void SsaRewritePass(IR::Program& program) { Pass pass; - for (IR::Block* const block : program.post_order_blocks | std::views::reverse) { - VisitBlock(pass, block); + const auto end{program.post_order_blocks.rend()}; + for (auto block = program.post_order_blocks.rbegin(); block != end; ++block) { + VisitBlock(pass, *block); } } |