diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-02-11 16:39:06 -0300 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:22 -0400 |
commit | 9170200a11715d131645d1ffb92e86e6ef0d7e88 (patch) | |
tree | 6c6f84c38a9b59d023ecb09c0737ea56da166b64 /src/shader_recompiler/frontend/ir/structured_control_flow.h | |
parent | 2930dccecc933d6748772e9f51a5724fe1e6771b (diff) |
shader: Initial implementation of an AST
Diffstat (limited to 'src/shader_recompiler/frontend/ir/structured_control_flow.h')
-rw-r--r-- | src/shader_recompiler/frontend/ir/structured_control_flow.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/structured_control_flow.h b/src/shader_recompiler/frontend/ir/structured_control_flow.h new file mode 100644 index 0000000000..a574c24f77 --- /dev/null +++ b/src/shader_recompiler/frontend/ir/structured_control_flow.h @@ -0,0 +1,22 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <functional> +#include <span> + +#include <boost/intrusive/list.hpp> + +#include "shader_recompiler/frontend/ir/basic_block.h" +#include "shader_recompiler/frontend/ir/microinstruction.h" +#include "shader_recompiler/object_pool.h" + +namespace Shader::IR { + +[[nodiscard]] BlockList VisitAST(ObjectPool<Inst>& inst_pool, ObjectPool<Block>& block_pool, + std::span<Block* const> unordered_blocks, + const std::function<void(Block*)>& func); + +} // namespace Shader::IR |