projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove ResourcePriorityQueue::dump as it relies on copying a non-copyable type which...
[oota-llvm.git]
/
include
/
llvm
/
CodeGen
/
LiveIntervalAnalysis.h
diff --git
a/include/llvm/CodeGen/LiveIntervalAnalysis.h
b/include/llvm/CodeGen/LiveIntervalAnalysis.h
index 098262aa828a5415a29c1cfdef87d881050225a1..dc52c0a896c40a0ae4d049930f65c0be667fb8d5 100644
(file)
--- a/
include/llvm/CodeGen/LiveIntervalAnalysis.h
+++ b/
include/llvm/CodeGen/LiveIntervalAnalysis.h
@@
-27,12
+27,15
@@
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/Support/Allocator.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/Support/Allocator.h"
+#include "llvm/Support/CommandLine.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include <cmath>
#include <iterator>
namespace llvm {
#include "llvm/Target/TargetRegisterInfo.h"
#include <cmath>
#include <iterator>
namespace llvm {
+extern cl::opt<bool> UseSegmentSetForPhysRegs;
+
class AliasAnalysis;
class BitVector;
class BlockFrequency;
class AliasAnalysis;
class BitVector;
class BlockFrequency;
@@
-377,7
+380,8
@@
namespace llvm {
LiveRange *LR = RegUnitRanges[Unit];
if (!LR) {
// Compute missing ranges on demand.
LiveRange *LR = RegUnitRanges[Unit];
if (!LR) {
// Compute missing ranges on demand.
- RegUnitRanges[Unit] = LR = new LiveRange();
+ // Use segment set to speed-up initial computation of the live range.
+ RegUnitRanges[Unit] = LR = new LiveRange(UseSegmentSetForPhysRegs);
computeRegUnitRange(*LR, Unit);
}
return *LR;
computeRegUnitRange(*LR, Unit);
}
return *LR;
@@
-398,6
+402,10
@@
namespace llvm {
/// of its subregisters.
void removePhysRegDefAt(unsigned Reg, SlotIndex Pos);
/// of its subregisters.
void removePhysRegDefAt(unsigned Reg, SlotIndex Pos);
+ /// Remove value number and related live segments of @p LI and its subranges
+ /// that start at position @p Pos.
+ void removeVRegDefAt(LiveInterval &LI, SlotIndex Pos);
+
private:
/// Compute live intervals for all virtual registers.
void computeVirtRegs();
private:
/// Compute live intervals for all virtual registers.
void computeVirtRegs();