LLVM 20.0.0git
Macros | Functions | Variables
RegAllocPBQP.cpp File Reference
#include "llvm/CodeGen/RegAllocPBQP.h"
#include "RegisterCoalescer.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/CodeGen/CalcSpillWeights.h"
#include "llvm/CodeGen/LiveInterval.h"
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/LiveRangeEdit.h"
#include "llvm/CodeGen/LiveStacks.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/PBQP/Graph.h"
#include "llvm/CodeGen/PBQP/Math.h"
#include "llvm/CodeGen/PBQP/Solution.h"
#include "llvm/CodeGen/PBQPRAConstraint.h"
#include "llvm/CodeGen/RegAllocRegistry.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/CodeGen/Spiller.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/CodeGen/VirtRegMap.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Module.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Printable.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <limits>
#include <map>
#include <memory>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <system_error>
#include <tuple>
#include <utility>
#include <vector>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "regalloc"
 

Functions

static bool isACalleeSavedRegister (MCRegister Reg, const TargetRegisterInfo &TRI, const MachineFunction &MF)
 
static Printable PrintNodeInfo (PBQP::RegAlloc::PBQPRAGraph::NodeId NId, const PBQP::RegAlloc::PBQPRAGraph &G)
 Create Printable object for node and register info.
 

Variables

static RegisterRegAlloc RegisterPBQPRepAlloc ("pbqp", "PBQP register allocator", createDefaultPBQPRegisterAllocator)
 
static cl::opt< boolPBQPCoalescing ("pbqp-coalescing", cl::desc("Attempt coalescing during PBQP register allocation."), cl::init(false), cl::Hidden)
 
static cl::opt< boolPBQPDumpGraphs ("pbqp-dump-graphs", cl::desc("Dump graphs for each function/round in the compilation unit."), cl::init(false), cl::Hidden)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "regalloc"

Definition at line 92 of file RegAllocPBQP.cpp.

Function Documentation

◆ isACalleeSavedRegister()

static bool isACalleeSavedRegister ( MCRegister  Reg,
const TargetRegisterInfo TRI,
const MachineFunction MF 
)
static

◆ PrintNodeInfo()

static Printable PrintNodeInfo ( PBQP::RegAlloc::PBQPRAGraph::NodeId  NId,
const PBQP::RegAlloc::PBQPRAGraph G 
)
static

Create Printable object for node and register info.

Definition at line 889 of file RegAllocPBQP.cpp.

References G, llvm::MachineFunction::getRegInfo(), MRI, OS, llvm::printReg(), and TRI.

Referenced by llvm::PBQP::RegAlloc::PBQPRAGraph::dump(), and llvm::PBQP::RegAlloc::PBQPRAGraph::printDot().

Variable Documentation

◆ PBQPCoalescing

cl::opt< bool > PBQPCoalescing("pbqp-coalescing", cl::desc("Attempt coalescing during PBQP register allocation."), cl::init(false), cl::Hidden) ( "pbqp-coalescing"  ,
cl::desc("Attempt coalescing during PBQP register allocation.")  ,
cl::init(false)  ,
cl::Hidden   
)
static

◆ PBQPDumpGraphs

cl::opt< bool > PBQPDumpGraphs("pbqp-dump-graphs", cl::desc("Dump graphs for each function/round in the compilation unit."), cl::init(false), cl::Hidden) ( "pbqp-dump-graphs"  ,
cl::desc("Dump graphs for each function/round in the compilation unit.")  ,
cl::init(false)  ,
cl::Hidden   
)
static

◆ RegisterPBQPRepAlloc

RegisterRegAlloc RegisterPBQPRepAlloc("pbqp", "PBQP register allocator", createDefaultPBQPRegisterAllocator) ( "pbqp"  ,
"PBQP register allocator"  ,
createDefaultPBQPRegisterAllocator   
)
static