LLVM  6.0.0svn
Classes | Namespaces | Macros | Typedefs | Functions | Variables
LiveIntervalAnalysis.cpp File Reference
#include "llvm/CodeGen/LiveIntervalAnalysis.h"
#include "LiveRangeCalc.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/CodeGen/LiveInterval.h"
#include "llvm/CodeGen/LiveVariables.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/CodeGen/VirtRegMap.h"
#include "llvm/MC/LaneBitmask.h"
#include "llvm/MC/MCRegisterInfo.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/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <iterator>
#include <tuple>
#include <utility>
Include dependency graph for LiveIntervalAnalysis.cpp:

Go to the source code of this file.

Classes

class  llvm::LiveIntervals::HMEditor
 Toolkit used by handleMove to trim or extend live intervals. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "regalloc"
 

Typedefs

using ShrinkToUsesWorkList = SmallVector< std::pair< SlotIndex, VNInfo * >, 16 >
 

Functions

 INITIALIZE_PASS_BEGIN (LiveIntervals, "liveintervals", "Live Interval Analysis", false, false) INITIALIZE_PASS_END(LiveIntervals
 
Live Interval static false cl::opt< boolEnablePrecomputePhysRegs ("precompute-phys-liveness", cl::Hidden, cl::desc("Eagerly compute live intervals for all physreg units."))
 
cl::opt< boolllvm::UseSegmentSetForPhysRegs ("use-segment-set-for-physregs", cl::Hidden, cl::init(true), cl::desc("Use segment set for the computation of the live ranges of physregs."))
 
static void createSegmentsForValues (LiveRange &LR, iterator_range< LiveInterval::vni_iterator > VNIs)
 
static void extendSegmentsToUses (LiveRange &LR, const SlotIndexes &Indexes, ShrinkToUsesWorkList &WorkList, const LiveRange &OldRange)
 

Variables

 liveintervals
 
Live Interval Analysis
 
Live Interval false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "regalloc"

Definition at line 58 of file LiveIntervalAnalysis.cpp.

Typedef Documentation

◆ ShrinkToUsesWorkList

using ShrinkToUsesWorkList = SmallVector<std::pair<SlotIndex, VNInfo*>, 16>

Definition at line 360 of file LiveIntervalAnalysis.cpp.

Function Documentation

◆ createSegmentsForValues()

static void createSegmentsForValues ( LiveRange LR,
iterator_range< LiveInterval::vni_iterator >  VNIs 
)
static

◆ EnablePrecomputePhysRegs()

Live Interval static false cl::opt<bool> EnablePrecomputePhysRegs ( "precompute-phys-liveness"  ,
cl::Hidden  ,
cl::desc("Eagerly compute live intervals for all physreg units.")   
)
static

◆ extendSegmentsToUses()

static void extendSegmentsToUses ( LiveRange LR,
const SlotIndexes Indexes,
ShrinkToUsesWorkList WorkList,
const LiveRange OldRange 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( LiveIntervals  ,
"liveintervals"  ,
"Live Interval Analysis ,
false  ,
false   
)

Variable Documentation

◆ Analysis

Live Interval Analysis

Definition at line 67 of file LiveIntervalAnalysis.cpp.

◆ false

Live Interval false

Definition at line 67 of file LiveIntervalAnalysis.cpp.

◆ liveintervals

liveintervals

Definition at line 67 of file LiveIntervalAnalysis.cpp.