shader/shader_ir: Mark tracking functions as const member functions
These don't actually modify instance state, so they can be marked as const member functions
This commit is contained in:
		| @@ -811,11 +811,12 @@ private: | ||||
|     void WriteLop3Instruction(NodeBlock& bb, Tegra::Shader::Register dest, Node op_a, Node op_b, | ||||
|                               Node op_c, Node imm_lut, bool sets_cc); | ||||
|  | ||||
|     Node TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor); | ||||
|     Node TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) const; | ||||
|  | ||||
|     std::optional<u32> TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor); | ||||
|     std::optional<u32> TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor) const; | ||||
|  | ||||
|     std::pair<Node, s64> TrackRegister(const GprNode* tracked, const NodeBlock& code, s64 cursor); | ||||
|     std::pair<Node, s64> TrackRegister(const GprNode* tracked, const NodeBlock& code, | ||||
|                                        s64 cursor) const; | ||||
|  | ||||
|     std::tuple<Node, Node, GlobalMemoryBase> TrackAndGetGlobalMemory(NodeBlock& bb, | ||||
|                                                                      Node addr_register, | ||||
|   | ||||
| @@ -17,22 +17,24 @@ std::pair<Node, s64> FindOperation(const NodeBlock& code, s64 cursor, | ||||
|     for (; cursor >= 0; --cursor) { | ||||
|         const Node node = code.at(cursor); | ||||
|         if (const auto operation = std::get_if<OperationNode>(node)) { | ||||
|             if (operation->GetCode() == operation_code) | ||||
|             if (operation->GetCode() == operation_code) { | ||||
|                 return {node, cursor}; | ||||
|             } | ||||
|         } | ||||
|         if (const auto conditional = std::get_if<ConditionalNode>(node)) { | ||||
|             const auto& conditional_code = conditional->GetCode(); | ||||
|             const auto [found, internal_cursor] = FindOperation( | ||||
|                 conditional_code, static_cast<s64>(conditional_code.size() - 1), operation_code); | ||||
|             if (found) | ||||
|             if (found) { | ||||
|                 return {found, cursor}; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     return {}; | ||||
| } | ||||
| } // namespace | ||||
|  | ||||
| Node ShaderIR::TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) { | ||||
| Node ShaderIR::TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) const { | ||||
|     if (const auto cbuf = std::get_if<CbufNode>(tracked)) { | ||||
|         // Cbuf found, but it has to be immediate | ||||
|         return std::holds_alternative<ImmediateNode>(*cbuf->GetOffset()) ? tracked : nullptr; | ||||
| @@ -65,7 +67,7 @@ Node ShaderIR::TrackCbuf(Node tracked, const NodeBlock& code, s64 cursor) { | ||||
|     return nullptr; | ||||
| } | ||||
|  | ||||
| std::optional<u32> ShaderIR::TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor) { | ||||
| std::optional<u32> ShaderIR::TrackImmediate(Node tracked, const NodeBlock& code, s64 cursor) const { | ||||
|     // Reduce the cursor in one to avoid infinite loops when the instruction sets the same register | ||||
|     // that it uses as operand | ||||
|     const auto [found, found_cursor] = | ||||
| @@ -80,7 +82,7 @@ std::optional<u32> ShaderIR::TrackImmediate(Node tracked, const NodeBlock& code, | ||||
| } | ||||
|  | ||||
| std::pair<Node, s64> ShaderIR::TrackRegister(const GprNode* tracked, const NodeBlock& code, | ||||
|                                              s64 cursor) { | ||||
|                                              s64 cursor) const { | ||||
|     for (; cursor >= 0; --cursor) { | ||||
|         const auto [found_node, new_cursor] = FindOperation(code, cursor, OperationCode::Assign); | ||||
|         if (!found_node) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Lioncash
					Lioncash