summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/basic_block.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-11-02 16:34:03 -0700
committerGitHub <noreply@github.com>2021-11-02 16:34:03 -0700
commit7ce29ea74e945062b3c4c434c17980a74464383d (patch)
tree2907d9f73624bd28d112e030dd816212b3dab554 /src/shader_recompiler/frontend/ir/basic_block.h
parent43ba9db89081ed0e32b66a56ab236e6fd2c52514 (diff)
parent2d4bbd83e6f29850558fc6d741a93b5bf0d9bbb9 (diff)
Merge pull request #7262 from FernandoS27/Buffalo-buffalo-Buffalo-buffalo-buffalo
ShaderCache: Order Phi Arguments from farthest away to nearest.
Diffstat (limited to 'src/shader_recompiler/frontend/ir/basic_block.h')
-rw-r--r--src/shader_recompiler/frontend/ir/basic_block.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/basic_block.h b/src/shader_recompiler/frontend/ir/basic_block.h
index 7e134b4c7..9ce1ed07e 100644
--- a/src/shader_recompiler/frontend/ir/basic_block.h
+++ b/src/shader_recompiler/frontend/ir/basic_block.h
@@ -152,6 +152,17 @@ public:
return instructions.crend();
}
+ // Set the order of the block, it can be set pre order, the user decides
+ void SetOrder(u32 new_order) {
+ order = new_order;
+ }
+
+ // Get the order of the block.
+ // The higher, the closer is the block to the end.
+ [[nodiscard]] u32 GetOrder() const {
+ return order;
+ }
+
private:
/// Memory pool for instruction list
ObjectPool<Inst>* inst_pool;
@@ -171,6 +182,9 @@ private:
/// Intrusively stored host definition of this block.
u32 definition{};
+
+ /// Order of the block.
+ u32 order{};
};
using BlockList = std::vector<Block*>;