summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/maxwell/program.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/program.cpp')
-rw-r--r--src/shader_recompiler/frontend/maxwell/program.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/program.cpp b/src/shader_recompiler/frontend/maxwell/program.cpp
index dab6d68c0..8331d576c 100644
--- a/src/shader_recompiler/frontend/maxwell/program.cpp
+++ b/src/shader_recompiler/frontend/maxwell/program.cpp
@@ -53,21 +53,22 @@ IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool, ObjectPool<IR::Blo
53 for (Flow::Function& cfg_function : cfg.Functions()) { 53 for (Flow::Function& cfg_function : cfg.Functions()) {
54 functions.push_back(IR::Function{ 54 functions.push_back(IR::Function{
55 .blocks{TranslateCode(inst_pool, block_pool, env, cfg_function)}, 55 .blocks{TranslateCode(inst_pool, block_pool, env, cfg_function)},
56 .post_order_blocks{},
56 }); 57 });
57 } 58 }
58
59 fmt::print(stdout, "No optimizations: {}", IR::DumpProgram(program));
60 for (IR::Function& function : functions) { 59 for (IR::Function& function : functions) {
61 function.post_order_blocks = PostOrder(function.blocks); 60 function.post_order_blocks = PostOrder(function.blocks);
62 Optimization::SsaRewritePass(function.post_order_blocks); 61 Optimization::SsaRewritePass(function.post_order_blocks);
63 } 62 }
63 fmt::print(stdout, "{}\n", IR::DumpProgram(program));
64 Optimization::GlobalMemoryToStorageBufferPass(program);
64 for (IR::Function& function : functions) { 65 for (IR::Function& function : functions) {
65 Optimization::PostOrderInvoke(Optimization::GlobalMemoryToStorageBufferPass, function);
66 Optimization::PostOrderInvoke(Optimization::ConstantPropagationPass, function); 66 Optimization::PostOrderInvoke(Optimization::ConstantPropagationPass, function);
67 Optimization::PostOrderInvoke(Optimization::DeadCodeEliminationPass, function); 67 Optimization::PostOrderInvoke(Optimization::DeadCodeEliminationPass, function);
68 Optimization::IdentityRemovalPass(function); 68 Optimization::IdentityRemovalPass(function);
69 Optimization::VerificationPass(function); 69 Optimization::VerificationPass(function);
70 } 70 }
71 Optimization::CollectShaderInfoPass(program);
71 //*/ 72 //*/
72 return program; 73 return program;
73} 74}