diff options
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/program.cpp')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/program.cpp | 7 |
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 | } |