#include "Interface/IR/Passes.h" #include "Interface/IR/PassManager.h" namespace FEXCore::IR { void PassManager::AddDefaultPasses() { Passes.emplace_back(std::unique_ptr(CreateConstProp())); Passes.emplace_back(std::unique_ptr(CreateRedundantContextLoadElimination())); Passes.emplace_back(std::unique_ptr(CreateRedundantFlagCalculationEliminination())); Passes.emplace_back(std::unique_ptr(CreateSyscallOptimization())); Passes.emplace_back(std::unique_ptr(CreatePassDeadContextStoreElimination())); Passes.emplace_back(std::unique_ptr(CreateIRCompaction())); } void PassManager::AddDefaultValidationPasses() { // Passes.emplace_back(std::unique_ptr(Validation::CreateIRValidation())); } bool PassManager::Run(OpDispatchBuilder *Disp) { bool Changed = false; for (auto const &Pass : Passes) { Changed |= Pass->Run(Disp); } return Changed; } }