mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-10 01:00:18 +02:00
In quite a few locations we are mixing the case that SVE256 == AVX or that AVX means the guest register size is 256-bit. While this is true today, this is entanglement is going to change very quickly and cause confusion in follow-up PRs. Now we have SVE128, SVE256, and SVE2 HostFeatures to disambiguate the different features which mean different things. This PR keeps the alias that `SupportsAVX` = `SupportsSVE256 && SupportsSVE2` but that alias is going to very quickly change its definition.
34 lines
990 B
C++
34 lines
990 B
C++
// SPDX-License-Identifier: MIT
|
|
#pragma once
|
|
|
|
#include <FEXCore/fextl/memory.h>
|
|
|
|
namespace FEXCore {
|
|
class CPUIDEmu;
|
|
}
|
|
|
|
namespace FEXCore::Utils {
|
|
class IntrusivePooledAllocator;
|
|
}
|
|
|
|
namespace FEXCore::IR {
|
|
class Pass;
|
|
class RegisterAllocationPass;
|
|
class RegisterAllocationData;
|
|
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateConstProp(bool SupportsTSOImm9, const FEXCore::CPUIDEmu* CPUID);
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateContextLoadStoreElimination(bool SupportsSVE256);
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateDeadFlagCalculationEliminination();
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateDeadStoreElimination();
|
|
fextl::unique_ptr<FEXCore::IR::RegisterAllocationPass> CreateRegisterAllocationPass();
|
|
|
|
namespace Validation {
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateIRValidation();
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateRAValidation();
|
|
} // namespace Validation
|
|
|
|
namespace Debug {
|
|
fextl::unique_ptr<FEXCore::IR::Pass> CreateIRDumper();
|
|
}
|
|
} // namespace FEXCore::IR
|