summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/ir_opt/passes.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-03-14 03:41:05 -0300
committerGravatar ameerj2021-07-22 21:51:23 -0400
commit71f96fa6366dc6dd306a953bca1b958fb32bc55a (patch)
tree12e13f9502e4b9510446c967a831e5d4bacb729e /src/shader_recompiler/ir_opt/passes.h
parentspirv: Add SignedZeroInfNanPreserve logic (diff)
downloadyuzu-71f96fa6366dc6dd306a953bca1b958fb32bc55a.tar.gz
yuzu-71f96fa6366dc6dd306a953bca1b958fb32bc55a.tar.xz
yuzu-71f96fa6366dc6dd306a953bca1b958fb32bc55a.zip
shader: Implement CAL inlining function calls
Diffstat (limited to 'src/shader_recompiler/ir_opt/passes.h')
-rw-r--r--src/shader_recompiler/ir_opt/passes.h18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/shader_recompiler/ir_opt/passes.h b/src/shader_recompiler/ir_opt/passes.h
index 3b7e7306b..5c1fc166c 100644
--- a/src/shader_recompiler/ir_opt/passes.h
+++ b/src/shader_recompiler/ir_opt/passes.h
@@ -8,26 +8,18 @@
8 8
9#include "shader_recompiler/environment.h" 9#include "shader_recompiler/environment.h"
10#include "shader_recompiler/frontend/ir/basic_block.h" 10#include "shader_recompiler/frontend/ir/basic_block.h"
11#include "shader_recompiler/frontend/ir/function.h"
12#include "shader_recompiler/frontend/ir/program.h" 11#include "shader_recompiler/frontend/ir/program.h"
13 12
14namespace Shader::Optimization { 13namespace Shader::Optimization {
15 14
16template <typename Func>
17void PostOrderInvoke(Func&& func, IR::Function& function) {
18 for (const auto& block : function.post_order_blocks) {
19 func(*block);
20 }
21}
22
23void CollectShaderInfoPass(IR::Program& program); 15void CollectShaderInfoPass(IR::Program& program);
24void ConstantPropagationPass(IR::Block& block); 16void ConstantPropagationPass(IR::Program& program);
25void DeadCodeEliminationPass(IR::Block& block); 17void DeadCodeEliminationPass(IR::Program& program);
26void GlobalMemoryToStorageBufferPass(IR::Program& program); 18void GlobalMemoryToStorageBufferPass(IR::Program& program);
27void IdentityRemovalPass(IR::Function& function); 19void IdentityRemovalPass(IR::Program& program);
28void LowerFp16ToFp32(IR::Program& program); 20void LowerFp16ToFp32(IR::Program& program);
29void SsaRewritePass(std::span<IR::Block* const> post_order_blocks); 21void SsaRewritePass(IR::Program& program);
30void TexturePass(Environment& env, IR::Program& program); 22void TexturePass(Environment& env, IR::Program& program);
31void VerificationPass(const IR::Function& function); 23void VerificationPass(const IR::Program& program);
32 24
33} // namespace Shader::Optimization 25} // namespace Shader::Optimization