/* * Copyright (c) 2023, Dan Klishch * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include "Forward.h" namespace JSSpecCompiler { class BasicBlock : public RefCounted { public: BasicBlock(size_t index, NonnullRefPtr continuation) : m_index(index) , m_continuation(move(continuation)) { } size_t m_index; Vector m_expressions; NonnullRefPtr m_continuation; }; class ControlFlowGraph : public RefCounted { public: ControlFlowGraph() { } size_t blocks_count() const { return blocks.size(); } Vector> blocks; BasicBlockRef start_block; BasicBlockRef end_block; }; }