// SPDX-License-Identifier: MIT #pragma once #include namespace FEXCore { class CPUIDEmu; } namespace FEXCore::Utils { class IntrusivePooledAllocator; } namespace FEXCore::IR { class Pass; class RegisterAllocationPass; class RegisterAllocationData; fextl::unique_ptr CreateConstProp(bool SupportsTSOImm9, const FEXCore::CPUIDEmu* CPUID); fextl::unique_ptr CreateContextLoadStoreElimination(bool SupportsSVE256); fextl::unique_ptr CreateDeadFlagCalculationEliminination(); fextl::unique_ptr CreateDeadStoreElimination(); fextl::unique_ptr CreateRegisterAllocationPass(); namespace Validation { fextl::unique_ptr CreateIRValidation(); fextl::unique_ptr CreateRAValidation(); } // namespace Validation namespace Debug { fextl::unique_ptr CreateIRDumper(); } } // namespace FEXCore::IR