// SPDX-License-Identifier: MIT #pragma once #include "Common/BitSet.h" #include #include #include namespace FEXCore::IR::Validation { struct BlockInfo { bool HasExit; const OrderedNode* BlockNode; fextl::vector Predecessors; fextl::vector Successors; }; class RAValidation; class IRValidation final : public FEXCore::IR::Pass { public: ~IRValidation(); bool Run(IREmitter* IREmit) override; private: BitSet NodeIsLive; OrderedNode* EntryBlock; fextl::unordered_map OffsetToBlockMap; size_t MaxNodes {}; friend class RAValidation; }; } // namespace FEXCore::IR::Validation