diff options
| author | 2021-04-21 04:58:23 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:28 -0400 | |
| commit | 23182fa59c45a88b706022c1373e307ba4636cca (patch) | |
| tree | d67509fa5ca2370bf4cf88aa69aaf36cdf58d660 /src/shader_recompiler/frontend | |
| parent | cmake: Link to common in shader_recompiler (diff) | |
| download | yuzu-23182fa59c45a88b706022c1373e307ba4636cca.tar.gz yuzu-23182fa59c45a88b706022c1373e307ba4636cca.tar.xz yuzu-23182fa59c45a88b706022c1373e307ba4636cca.zip | |
shader: Intrusively store in a block if it's sealed or not
Diffstat (limited to 'src/shader_recompiler/frontend')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/basic_block.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/basic_block.h b/src/shader_recompiler/frontend/ir/basic_block.h index ab7ddb3d5..0b0c97af6 100644 --- a/src/shader_recompiler/frontend/ir/basic_block.h +++ b/src/shader_recompiler/frontend/ir/basic_block.h | |||
| @@ -107,6 +107,13 @@ public: | |||
| 107 | return ssa_reg_values[RegIndex(reg)]; | 107 | return ssa_reg_values[RegIndex(reg)]; |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | void SsaSeal() noexcept { | ||
| 111 | is_ssa_sealed = true; | ||
| 112 | } | ||
| 113 | [[nodiscard]] bool IsSsaSealed() const noexcept { | ||
| 114 | return is_ssa_sealed; | ||
| 115 | } | ||
| 116 | |||
| 110 | [[nodiscard]] bool empty() const { | 117 | [[nodiscard]] bool empty() const { |
| 111 | return instructions.empty(); | 118 | return instructions.empty(); |
| 112 | } | 119 | } |
| @@ -190,6 +197,8 @@ private: | |||
| 190 | 197 | ||
| 191 | /// Intrusively store the value of a register in the block. | 198 | /// Intrusively store the value of a register in the block. |
| 192 | std::array<Value, NUM_REGS> ssa_reg_values; | 199 | std::array<Value, NUM_REGS> ssa_reg_values; |
| 200 | /// Intrusively store if the block is sealed in the SSA pass. | ||
| 201 | bool is_ssa_sealed{false}; | ||
| 193 | 202 | ||
| 194 | /// Intrusively stored host definition of this block. | 203 | /// Intrusively stored host definition of this block. |
| 195 | u32 definition{}; | 204 | u32 definition{}; |