LLVM: lib/CodeGen/GlobalISel/Legalizer.cpp File Reference (original ) (raw )Go to the source code of this file.
Variables
static cl::opt < bool >
EnableCSEInLegalizer ("enable-cse-in-legalizer", cl::desc ("Should enable CSE in Legalizer"), cl::Optional, cl::init(false))
static cl::opt < bool >
AllowGInsertAsArtifact ("allow-ginsert-as-artifact", cl::desc ("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " "test infinite loops."), cl::Optional, cl::init(true))
static cl::opt < DebugLocVerifyLevel >
VerifyDebugLocs ("verify-legalizer-debug -locs", cl::desc ("Verify that debug locations are handled"), cl::values(clEnumValN (DebugLocVerifyLevel::None , "none", "No verification"), clEnumValN (DebugLocVerifyLevel::Legalizations , "legalizations", "Verify legalizations"), clEnumValN (DebugLocVerifyLevel::LegalizationsAndArtifactCombiners , "legalizations+artifactcombiners", "Verify legalizations and artifact combines")), cl::init(DebugLocVerifyLevel::Legalizations ))
DEBUG_TYPE
Legalize the Machine IR a function s Machine
IR
Legalize the Machine IR a function s Machine
false
◆ DEBUG_TYPE#define DEBUG_TYPE "legalizer"
◆ ArtifactListTy◆ InstListTy◆ DebugLocVerifyLevel
Enumerator
None
Legalizations
LegalizationsAndArtifactCombiners
Definition at line 49 of file Legalizer.cpp .
◆ INITIALIZE_PASS_BEGIN()◆ isArtifact()◆ AllowGInsertAsArtifact
cl::opt < bool > AllowGInsertAsArtifact("allow-ginsert-as-artifact", cl::desc ("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " "test infinite loops."), cl::Optional, cl::init(true)) ( "allow-ginsert-as-artifact" , cl::desc ("Allow G_INSERT to be considered an artifact. Hack around AMDGPU " "test infinite loops.") , cl::Optional , cl::init(true) )
static
◆ DEBUG_TYPE◆ EnableCSEInLegalizer
cl::opt < bool > EnableCSEInLegalizer("enable-cse-in-legalizer", cl::desc ("Should enable CSE in Legalizer"), cl::Optional, cl::init(false)) ( "enable-cse-in-legalizer" , cl::desc ("Should enable CSE in Legalizer") , cl::Optional , cl::init(false) )
static
◆ false◆ IRDefinition at line 80 of file Legalizer.cpp .
Referenced by llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::AnalysisManager , llvm::mca::Scheduler::analyzeDataDependencies() , llvm::IRComparer< T >::analyzeIR() , llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::cachedResultExists() , canNarrowLoad() , llvm::mca::AMDGPUCustomBehaviour::checkCustomHazard() , llvm::mca::CustomBehaviour::checkCustomHazard() , llvm::mca::Stage::checkNextStage() , llvm::mca::checkRegisterHazard() , llvm::AnalysisManager< IRUnitT, ExtraArgTs >::clear() , llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::clear() , llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::clearAnalysis() , llvm::mca::Scheduler::cycleEvent() , llvm::mca::ExecuteStage::cycleStart() , llvm::mca::InOrderIssueStage::cycleStart() , llvm::mca::LSUnit::dispatch() , llvm::mca::LSUnitBase::dispatch() , llvm::mca::RetireControlUnit::dispatch() , llvm::mca::Scheduler::dispatch() , llvm::mca::DispatchStage::execute() , llvm::mca::ExecuteStage::execute() , llvm::mca::InOrderIssueStage::execute() , llvm::mca::InstructionTables::execute() , llvm::mca::MicroOpQueueStage::execute() , llvm::mca::RetireStage::execute() , llvm::mca::Stage::execute() , llvm::mca::findFirstWriteBackCycle() , llvm::ChangeReporter< IRUnitT >::generateIRRepresentation() , llvm::DotCfgChangeReporter::generateIRRepresentation() , llvm::InLineChangePrinter::generateIRRepresentation() , llvm::IRChangedPrinter::generateIRRepresentation() , llvm::detail::getAnalysisResult() , llvm::detail::getAnalysisResultUnpackTuple() , llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::getCachedResult() , llvm::OuterAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::getCachedResult() , GetFunctions() , getIRFileDisplayName() , llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::getResult() , llvm::DotCfgChangeReporter::handleAfter() , llvm::InLineChangePrinter::handleAfter() , llvm::ChangeReporter< IRUnitT >::handleInitialIR() , llvm::DotCfgChangeReporter::handleInitialIR() , llvm::IRChangedTester::handleInitialIR() , llvm::TextChangeReporter< IRUnitT >::handleInitialIR() , llvm::ChangeReporter< IRUnitT >::handleIRAfterPass() , llvm::mca::LSUnit::hasDependentUsers() , llvm::mca::LSUnitBase::hasDependentUsers() , llvm::mca::hasResourceHazard() , llvm::mca::Scheduler::instructionCheck() , llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate() , llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate() , llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate() , llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::invalidate() , llvm::detail::AnalysisResultConcept< IRUnitT, Invalidator >::invalidate() , llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, true >::invalidate() , llvm::FunctionAnalysisManagerMachineFunctionProxy::Result::invalidate() , llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs >::Result::invalidate() , llvm::mca::DispatchStage::isAvailable() , llvm::mca::ExecuteStage::isAvailable() , llvm::mca::InOrderIssueStage::isAvailable() , llvm::mca::LSUnit::isAvailable() , llvm::mca::LSUnitBase::isAvailable() , llvm::mca::MicroOpQueueStage::isAvailable() , llvm::mca::Scheduler::isAvailable() , llvm::mca::Stage::isAvailable() , llvm::mca::LSUnit::isPending() , llvm::mca::LSUnitBase::isPending() , llvm::mca::LSUnit::isReady() , llvm::mca::LSUnitBase::isReady() , llvm::mca::Scheduler::issueInstruction() , llvm::mca::LSUnit::isWaiting() , llvm::mca::LSUnitBase::isWaiting() , llvm::mca::Stage::moveToTheNextStage() , llvm::mca::Scheduler::mustIssueImmediately() , llvm::mca::ExecuteStage::notifyInstructionExecuted() , llvm::mca::ExecuteStage::notifyInstructionIssued() , llvm::mca::ExecuteStage::notifyInstructionPending() , llvm::mca::ExecuteStage::notifyInstructionReady() , llvm::mca::RetireStage::notifyInstructionRetired() , llvm::mca::ExecuteStage::notifyReservedOrReleasedBuffers() , llvm::mca::LSUnit::MemoryGroup::onGroupIssued() , llvm::mca::LSUnit::MemoryGroup::onInstructionExecuted() , llvm::mca::LSUnit::onInstructionExecuted() , llvm::mca::LSUnitBase::onInstructionExecuted() , llvm::mca::RetireControlUnit::onInstructionExecuted() , llvm::mca::LSUnit::MemoryGroup::onInstructionIssued() , llvm::mca::LSUnit::onInstructionIssued() , llvm::mca::LSUnitBase::onInstructionIssued() , llvm::mca::LSUnit::onInstructionRetired() , llvm::mca::LSUnitBase::onInstructionRetired() , llvm::mca::operator<<() , llvm::operator<<() , llvm::TimeProfilingPassesHandler::operator=() , planContainsAdditionalSimplifications() , llvm::printIRUnitNameForStackTrace() , processCall() , llvm::DebugifyEachInstrumentation::registerCallbacks() , llvm::DroppedVariableStatsIR::registerCallbacks() , llvm::OptNoneInstrumentation::registerCallbacks() , llvm::OptPassGateInstrumentation::registerCallbacks() , llvm::PreservedCFGCheckerInstrumentation::registerCallbacks() , llvm::PrintCrashIRInstrumentation::registerCallbacks() , llvm::PrintIRInstrumentation::registerCallbacks() , llvm::PrintPassInstrumentation::registerCallbacks() , llvm::PseudoProbeVerifier::registerCallbacks() , llvm::TimeProfilingPassesHandler::registerCallbacks() , llvm::VerifyInstrumentation::registerCallbacks() , llvm::ChangeReporter< IRUnitT >::registerRequiredCallbacks() , llvm::detail::AnalysisPassConcept< IRUnitT, Invalidator, ExtraArgTs... >::run() , llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::run() , llvm::detail::PassConcept< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::run() , llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >::run() , llvm::FunctionToLoopPassAdaptor::run() , llvm::InlinerPass::run() , llvm::InnerAnalysisManagerProxy< CGSCCAnalysisManager, Module >::run() , llvm::ModuleInlinerPass::run() , llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::run() , llvm::PassManager< LazyCallGraph::SCC, CGSCCAnalysisManager, LazyCallGraph &, CGSCCUpdateResult & >::run() , llvm::PassInstrumentation::runAfterAnalysis() , llvm::DroppedVariableStatsIR::runAfterPass() , llvm::PassInstrumentation::runAfterPass() , llvm::PseudoProbeVerifier::runAfterPass() , llvm::PassInstrumentation::runAnalysisInvalidated() , llvm::PassInstrumentation::runBeforeAnalysis() , llvm::DroppedVariableStatsIR::runBeforePass() , llvm::PassInstrumentation::runBeforePass() , llvm::ChangeReporter< IRUnitT >::saveIRBeforePass() , llvm::mca::Scheduler::select() , llvm::OptPassGateInstrumentation::shouldRun() , unwrapIR() , llvm::mca::verifyInstructionEliminated() , llvm::AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & >::verifyNotInvalidated() , writeIRFileDisplayName() , llvm::mca::AMDGPUCustomBehaviour::~AMDGPUCustomBehaviour() , llvm::mca::CustomBehaviour::~CustomBehaviour() , llvm::InLineChangePrinter::~InLineChangePrinter() , llvm::IRChangedPrinter::~IRChangedPrinter() , and llvm::IRChangedTester::~IRChangedTester() .
◆ VerifyDebugLocs
cl::opt < DebugLocVerifyLevel > VerifyDebugLocs("verify-legalizer-debug -locs", cl::desc ("Verify that debug locations are handled"), cl::values( clEnumValN (DebugLocVerifyLevel::None , "none", "No verification"), clEnumValN (DebugLocVerifyLevel::Legalizations , "legalizations", "Verify legalizations"), clEnumValN (DebugLocVerifyLevel::LegalizationsAndArtifactCombiners , "legalizations+artifactcombiners", "Verify legalizations and artifact combines")), cl::init(DebugLocVerifyLevel::Legalizations )) ( "verify-legalizer-debug -locs" , cl::desc ("Verify that debug locations are handled") , cl::values( clEnumValN (DebugLocVerifyLevel::None , "none", "No verification"), clEnumValN (DebugLocVerifyLevel::Legalizations , "legalizations", "Verify legalizations"), clEnumValN (DebugLocVerifyLevel::LegalizationsAndArtifactCombiners , "legalizations+artifactcombiners", "Verify legalizations and artifact combines")) , cl::init(DebugLocVerifyLevel::Legalizations ) )
static