// Copyright 2021 yuzu Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include #include #include #include "shader_recompiler/environment.h" #include "shader_recompiler/frontend/ir/basic_block.h" #include "shader_recompiler/frontend/ir/function.h" #include "shader_recompiler/frontend/maxwell/control_flow.h" namespace Shader::Maxwell { class Program { friend std::string DumpProgram(const Program& program); public: explicit Program(Environment& env, const Flow::CFG& cfg); private: boost::pool_allocator block_alloc_pool; boost::container::small_vector functions; }; [[nodiscard]] std::string DumpProgram(const Program& program); } // namespace Shader::Maxwell