diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-03-31 19:46:38 -0300 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:25 -0400 |
commit | 5f22cd89e20cd39c1395b7bd3b8e667a40f53751 (patch) | |
tree | cbeafb6b9b75150822c216eb41ff7d098872b3d9 /src/shader_recompiler/ir_opt/constant_propagation_pass.cpp | |
parent | eaafd53cfedf0c7ae40a3f790af5f0aec63ebd13 (diff) |
shader: Fix constant propagation to use reverse post order
Diffstat (limited to 'src/shader_recompiler/ir_opt/constant_propagation_pass.cpp')
-rw-r--r-- | src/shader_recompiler/ir_opt/constant_propagation_pass.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp index 052f1609b1..7da4d50efd 100644 --- a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp +++ b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp @@ -5,6 +5,7 @@ #include <algorithm> #include <tuple> #include <type_traits> +#include <ranges> #include "common/bit_cast.h" #include "common/bit_util.h" @@ -424,7 +425,7 @@ void ConstantPropagation(IR::Block& block, IR::Inst& inst) { } // Anonymous namespace void ConstantPropagationPass(IR::Program& program) { - for (IR::Block* const block : program.post_order_blocks) { + for (IR::Block* const block : program.post_order_blocks | std::views::reverse) { for (IR::Inst& inst : block->Instructions()) { ConstantPropagation(*block, inst); } |