LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

RegAllocLinearScan.cpp File Reference

#include "llvm/Function.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/MRegisterInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/STLExtras.h"
#include "LiveIntervalAnalysis.h"
#include "PhysRegTracker.h"
#include "VirtRegMap.h"
#include <algorithm>
#include <cmath>
#include <set>
#include <queue>

Include dependency graph for RegAllocLinearScan.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "regalloc"

Functions

static void updateSpillWeights (std::vector< float > &Weights, unsigned reg, float weight, const MRegisterInfo *MRI)
static RA::IntervalPtrs::iterator FindIntervalInVector (RA::IntervalPtrs &IP, LiveInterval *LI)
static void RevertVectorIteratorsTo (RA::IntervalPtrs &V, unsigned Point)
FunctionPassllvm::createLinearScanRegisterAllocator ()


Define Documentation

#define DEBUG_TYPE   "regalloc"
 

Definition at line 14 of file RegAllocLinearScan.cpp.


Function Documentation

static RA::IntervalPtrs::iterator FindIntervalInVector RA::IntervalPtrs &  IP,
LiveInterval LI
[static]
 

Definition at line 335 of file RegAllocLinearScan.cpp.

References E, and I.

static void RevertVectorIteratorsTo RA::IntervalPtrs &  V,
unsigned  Point
[static]
 

Definition at line 342 of file RegAllocLinearScan.cpp.

References I.

static void updateSpillWeights std::vector< float > &  Weights,
unsigned  reg,
float  weight,
const MRegisterInfo MRI
[static]
 

updateSpillWeights - updates the spill weights of the specifed physical register and its weight.

Definition at line 327 of file RegAllocLinearScan.cpp.

References llvm::MRegisterInfo::getAliasSet().


Variable Documentation

Statistic<double> efficiency("regalloc","Ratio of intervals processed over total intervals") [static]
 

Statistic NumBacktracks("regalloc","Number of times we had to backtrack") [static]
 

unsigned numIntervals = 0 [static]
 

Definition at line 41 of file RegAllocLinearScan.cpp.

unsigned numIterations = 0 [static]
 

Definition at line 40 of file RegAllocLinearScan.cpp.