LLVM 24.0.0git
RegBankSelect.cpp File Reference

This file implements the RegBankSelect class. More...

#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
#include "llvm/CodeGen/MachinePassManager.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegisterBank.h"
#include "llvm/CodeGen/RegisterBankInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Analysis.h"
#include "llvm/IR/Function.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/BlockFrequency.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <limits>
#include <memory>
#include <optional>
#include <utility>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "reg-bank-select"

Functions

 INITIALIZE_PASS_BEGIN (RegBankSelectLegacy, DEBUG_TYPE, "Assign register bank of generic virtual registers", false, false)
 INITIALIZE_PASS_END (RegBankSelectLegacy, DEBUG_TYPE, "Assign register bank of generic virtual registers", false, false) static RegBankSelectMode computeOptMode(RegBankSelectMode RequestedMode)

Variables

static constexpr unsigned ImpossibleRepairCost
 Cost value representing an impossible or invalid repairing.
static cl::opt< RegBankSelectModeRegBankSelectModeOption (cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional, cl::values(clEnumValN(RegBankSelectMode::Fast, "regbankselect-fast", "Run the Fast mode (default mapping)"), clEnumValN(RegBankSelectMode::Greedy, "regbankselect-greedy", "Use the Greedy mode (best local mapping)")))

Detailed Description

This file implements the RegBankSelect class.

Definition in file RegBankSelect.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "reg-bank-select"

Definition at line 55 of file RegBankSelect.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( RegBankSelectLegacy ,
DEBUG_TYPE ,
"Assign register bank of generic virtual registers" ,
false ,
false  )

References DEBUG_TYPE.

◆ INITIALIZE_PASS_END()

INITIALIZE_PASS_END ( RegBankSelectLegacy ,
DEBUG_TYPE ,
"Assign register bank of generic virtual registers" ,
false ,
false  )

Definition at line 80 of file RegBankSelect.cpp.

References DEBUG_TYPE, INITIALIZE_PASS_END, and RegBankSelectModeOption.

Variable Documentation

◆ ImpossibleRepairCost

unsigned ImpossibleRepairCost
staticconstexpr
Initial value:
=
std::numeric_limits<unsigned>::max()

Cost value representing an impossible or invalid repairing.

This matches the value returned by RegisterBankInfo::copyCost() and RegisterBankInfo::getBreakDownCost() when the cost cannot be computed.

Definition at line 62 of file RegBankSelect.cpp.

◆ RegBankSelectModeOption

cl::opt< RegBankSelectMode > RegBankSelectModeOption(cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional, cl::values(clEnumValN(RegBankSelectMode::Fast, "regbankselect-fast", "Run the Fast mode (default mapping)"), clEnumValN(RegBankSelectMode::Greedy, "regbankselect-greedy", "Use the Greedy mode (best local mapping)"))) ( cl::desc("Mode of the RegBankSelect pass") ,
cl::Hidden ,
cl::Optional ,
cl::values(clEnumValN(RegBankSelectMode::Fast, "regbankselect-fast", "Run the Fast mode (default mapping)"), clEnumValN(RegBankSelectMode::Greedy, "regbankselect-greedy", "Use the Greedy mode (best local mapping)"))  )
static

Referenced by INITIALIZE_PASS_END().