/external/llvm/lib/CodeGen/ |
SafeStackLayout.h | 25 StackColoring::LiveRange Range; 27 const StackColoring::LiveRange &Range) 36 StackColoring::LiveRange Range; 49 const StackColoring::LiveRange &Range);
|
LiveRangeCalc.h | 80 LiveRange &LR; 94 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) 114 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, 132 void extendToUses(LiveRange &LR, unsigned Reg, LaneBitmask LaneMask); 172 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg = 0); 177 void createDeadDefs(LiveRange &LR, unsigned Reg); 183 void extendToUses(LiveRange &LR, unsigned PhysReg) { 230 void addLiveInBlock(LiveRange &LR,
|
SafeStackColoring.h | 49 struct LiveRange { 53 bool Overlaps(const LiveRange &Other) const { 56 void Join(const LiveRange &Other) { bv |= Other.bv; } 77 /// LiveRange for allocas. 78 SmallVector<LiveRange, 8> LiveRanges; 81 /// allocas get LiveRange that corresponds to the entire function. 111 /// that is large enough for LiveRange::Overlaps to be correct. 112 const LiveRange &getLiveRange(AllocaInst *AI); 116 LiveRange getFullLiveRange() { 118 LiveRange R [all...] |
LiveInterval.cpp | 10 // This file implements the LiveRange and LiveInterval classes. Given some 16 // individual segment is represented as an instance of LiveRange::Segment, 17 // and the whole range is represented as an instance of LiveRange. 53 LiveRange *LR; 56 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {} 59 typedef LiveRange::Segment Segment; 235 typedef CalcLiveRangeUtilBase<CalcLiveRangeUtilVector, LiveRange::iterator, 236 LiveRange::Segments> CalcLiveRangeUtilVectorBase; 240 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) {} 245 LiveRange::Segments &segmentsColl() { return LR->segments; [all...] |
LiveIntervalAnalysis.cpp | 151 if (LiveRange *LR = RegUnitRanges[i]) 258 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) { 318 LiveRange *LR = RegUnitRanges[Unit]; 321 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs); 341 static void createSegmentsForValues(LiveRange &LR, 347 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI)); 353 static void extendSegmentsToUses(LiveRange &LR, const SlotIndexes &Indexes, 355 const LiveRange &OldRange) { 391 LR.addSegment(LiveRange::Segment(BlockStart, Idx, VNI)); 452 LiveRange NewLR [all...] |
LiveIntervalUnion.cpp | 29 void LiveIntervalUnion::unify(LiveInterval &VirtReg, const LiveRange &Range) { 35 LiveRange::const_iterator RegPos = Range.begin(); 36 LiveRange::const_iterator RegEnd = Range.end(); 56 void LiveIntervalUnion::extract(LiveInterval &VirtReg, const LiveRange &Range) { 62 LiveRange::const_iterator RegPos = Range.begin(); 63 LiveRange::const_iterator RegEnd = Range.end();
|
LiveRegMatrix.cpp | 104 const LiveRange &Range) { 121 const LiveRange &Range) { 164 const LiveRange &Range) { 165 const LiveRange &UnitRange = LIS->getRegUnit(Unit);
|
/external/swiftshader/third_party/llvm-7.0/llvm/lib/CodeGen/ |
SafeStackColoring.h | 59 struct LiveRange { 65 bool Overlaps(const LiveRange &Other) const { 69 void Join(const LiveRange &Other) { bv |= Other.bv; } 93 /// LiveRange for allocas. 94 SmallVector<LiveRange, 8> LiveRanges; 97 /// allocas get LiveRange that corresponds to the entire function. 127 /// that is large enough for LiveRange::Overlaps to be correct. 128 const LiveRange &getLiveRange(AllocaInst *AI); 132 LiveRange getFullLiveRange() { 134 LiveRange R [all...] |
LiveRangeCalc.h | 65 /// Map LiveRange to sets of blocks (represented by bit vectors) that 76 using EntryInfoMap = DenseMap<LiveRange *, std::pair<BitVector, BitVector>>; 103 LiveRange &LR; 117 LiveInBlock(LiveRange &LR, MachineDomTreeNode *node, SlotIndex kill) 129 bool isDefOnEntry(LiveRange &LR, ArrayRef<SlotIndex> Undefs, 149 bool findReachingDefs(LiveRange &LR, MachineBasicBlock &UseMBB, 174 void extendToUses(LiveRange &LR, unsigned Reg, LaneBitmask LaneMask, 212 void extend(LiveRange &LR, SlotIndex Use, unsigned PhysReg, 218 void createDeadDefs(LiveRange &LR, unsigned Reg); 224 void extendToUses(LiveRange &LR, unsigned PhysReg) [all...] |
SafeStackLayout.h | 31 StackColoring::LiveRange Range; 34 const StackColoring::LiveRange &Range) 44 StackColoring::LiveRange Range; 60 const StackColoring::LiveRange &Range);
|
LiveIntervalUnion.cpp | 30 void LiveIntervalUnion::unify(LiveInterval &VirtReg, const LiveRange &Range) { 36 LiveRange::const_iterator RegPos = Range.begin(); 37 LiveRange::const_iterator RegEnd = Range.end(); 57 void LiveIntervalUnion::extract(LiveInterval &VirtReg, const LiveRange &Range) { 63 LiveRange::const_iterator RegPos = Range.begin(); 64 LiveRange::const_iterator RegEnd = Range.end(); 140 LiveRange::const_iterator LREnd = LR->end();
|
LiveInterval.cpp | 10 // This file implements the LiveRange and LiveInterval classes. Given some 16 // individual segment is represented as an instance of LiveRange::Segment, 17 // and the whole range is represented as an instance of LiveRange. 68 LiveRange *LR; 71 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {} 74 using Segment = LiveRange::Segment; 77 /// A counterpart of LiveRange::createDeadDef: Make sure the range has a 284 CalcLiveRangeUtilBase<CalcLiveRangeUtilVector, LiveRange::iterator, 285 LiveRange::Segments>; 289 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) { [all...] |
LiveIntervals.cpp | 118 for (LiveRange *LR : RegUnitRanges) 160 if (LiveRange *LR = RegUnitRanges[Unit]) 264 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) { 331 LiveRange *LR = RegUnitRanges[Unit]; 334 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs); 351 static void createSegmentsForValues(LiveRange &LR, 357 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI)); 361 void LiveIntervals::extendSegmentsToUses(LiveRange &Segments, 370 -> const LiveRange& { 383 const LiveRange &OldRange = getSubRange(LI, LaneMask) [all...] |
LiveRegMatrix.cpp | 111 TRI, VirtReg, PhysReg, [&](unsigned Unit, const LiveRange &Range) { 128 [&](unsigned Unit, const LiveRange &Range) { 171 const LiveRange &Range) { 172 const LiveRange &UnitRange = LIS->getRegUnit(Unit); 178 LiveIntervalUnion::Query &LiveRegMatrix::query(const LiveRange &LR, 200 [&](unsigned Unit, const LiveRange &LR) { 213 LiveRange::Segment Seg(Start, End, &valno); 214 LiveRange LR;
|
/external/swiftshader/third_party/llvm-7.0/llvm/include/llvm/CodeGen/ |
LiveIntervalUnion.h | 91 void unify(LiveInterval &VirtReg, const LiveRange &Range); 94 void extract(LiveInterval &VirtReg, const LiveRange &Range); 111 const LiveRange *LR = nullptr; 112 LiveRange::const_iterator LRI; ///< current position in LR 120 void reset(unsigned NewUserTag, const LiveRange &NewLR, 133 Query(const LiveRange &LR, const LiveIntervalUnion &LIU): 138 void init(unsigned NewUserTag, const LiveRange &NewLR,
|
LiveIntervals.h | 97 SmallVector<LiveRange*, 0> RegUnitRanges; 184 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices, 187 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices) { 198 void pruneValue(LiveRange &LR, SlotIndex Kill, 204 /// LiveRange and all the LiveRange of the subranges if any. 208 "Use pruneValue on the main LiveRange and on each subrange"); 245 bool isLiveInToMBB(const LiveRange &LR, 250 bool isLiveOutOfMBB(const LiveRange &LR, 393 LiveRange &getRegUnit(unsigned Unit) [all...] |
LiveInterval.h | 10 // This file implements the LiveRange and LiveInterval classes. Given some 16 // individual segment is represented as an instance of LiveRange::Segment, 17 // and the whole range is represented as an instance of LiveRange. 87 /// Result of a LiveRange query. This class hides the implementation details 157 class LiveRange { 226 /// Constructs a new LiveRange object. 227 LiveRange(bool UseSegmentSet = false) 231 /// Constructs a new LiveRange object by copying segments and valnos from 232 /// another LiveRange. 233 LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator) [all...] |
/external/llvm/include/llvm/CodeGen/ |
LiveInterval.h | 10 // This file implements the LiveRange and LiveInterval classes. Given some 16 // individual segment is represented as an instance of LiveRange::Segment, 17 // and the whole range is represented as an instance of LiveRange. 84 /// Result of a LiveRange query. This class hides the implementation details 154 class LiveRange { 221 /// Constructs a new LiveRange object. 222 LiveRange(bool UseSegmentSet = false) 226 /// Constructs a new LiveRange object by copying segments and valnos from 227 /// another LiveRange. 228 LiveRange(const LiveRange &Other, BumpPtrAllocator &Allocator) [all...] |
LiveIntervalAnalysis.h | 97 SmallVector<LiveRange*, 0> RegUnitRanges; 174 void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices); 184 void pruneValue(LiveRange &LR, SlotIndex Kill, 221 bool isLiveInToMBB(const LiveRange &LR, 226 bool isLiveOutOfMBB(const LiveRange &LR, 374 LiveRange &getRegUnit(unsigned Unit) { 375 LiveRange *LR = RegUnitRanges[Unit]; 379 RegUnitRanges[Unit] = LR = new LiveRange(UseSegmentSetForPhysRegs); 387 LiveRange *getCachedRegUnit(unsigned Unit) { 391 const LiveRange *getCachedRegUnit(unsigned Unit) const [all...] |
/external/v8/src/compiler/ |
register-allocator.h | 314 class V8_EXPORT_PRIVATE LiveRange : public NON_EXPORTED_BASE(ZoneObject) { 323 LiveRange* next() const { return next_; } 387 UsePosition* DetachAt(LifetimePosition position, LiveRange* result, 392 LiveRange* SplitAt(LifetimePosition position, Zone* zone); 416 bool ShouldBeAllocatedBefore(const LiveRange* other) const; 419 LifetimePosition FirstIntersection(LiveRange* other) const; 436 explicit LiveRange(int relative_id, MachineRepresentation rep, 461 LiveRange* next_; 471 DISALLOW_COPY_AND_ASSIGN(LiveRange); 475 class V8_EXPORT_PRIVATE TopLevelLiveRange final : public LiveRange { [all...] |
register-allocator.cc | 29 void RemoveElement(ZoneVector<LiveRange*>* v, LiveRange* range) { 101 explicit LiveRangeBound(LiveRange* range, bool skip) 110 LiveRange* const range_; 121 LiveRange* cur_cover_; 122 LiveRange* pred_cover_; 140 for (LiveRange *i = range; i != nullptr; i = i->next(), ++curr) { 396 LiveRange::LiveRange(int relative_id, MachineRepresentation rep, 415 void LiveRange::VerifyPositions() const [all...] |
/external/swiftshader/third_party/LLVM/include/llvm/CodeGen/ |
LiveInterval.h | 10 // This file implements the LiveRange and LiveInterval classes. Given some 16 // individual range is represented as an instance of LiveRange, and the whole 146 /// LiveRange structure - This represents a simple register range in the 149 struct LiveRange { 154 LiveRange(SlotIndex S, SlotIndex E, VNInfo *V) 173 bool operator<(const LiveRange &LR) const { 176 bool operator==(const LiveRange &LR) const { 184 LiveRange(); // DO NOT IMPLEMENT 187 template <> struct isPodLike<LiveRange> { static const bool value = true; }; 189 raw_ostream& operator<<(raw_ostream& os, const LiveRange &LR) [all...] |
/art/compiler/optimizing/ |
ssa_liveness_analysis.h | 63 class LiveRange final : public ArenaObject<kArenaAllocSsaLiveness> { 65 LiveRange(size_t start, size_t end, LiveRange* next) : start_(start), end_(end), next_(next) { 72 LiveRange* GetNext() const { return next_; } 74 bool IntersectsWith(const LiveRange& other) const { 79 bool IsBefore(const LiveRange& other) const { 87 LiveRange* Dup(ScopedArenaAllocator* allocator) const { 88 return new (allocator) LiveRange( 92 LiveRange* GetLastRange() { 99 LiveRange* next_ [all...] |
/external/swiftshader/third_party/LLVM/lib/CodeGen/ |
Splitter.h | 26 struct LiveRange; 83 std::pair<bool, SlotPair> getLoopSubRange(const LiveRange &lr,
|
/external/swiftshader/third_party/subzero/src/ |
IceOperand.cpp | 104 void LiveRange::addSegment(InstNumberT Start, InstNumberT End, CfgNode *Node) { 127 bool LiveRange::endsBefore(const LiveRange &Other) const { 137 bool LiveRange::overlaps(const LiveRange &Other, bool UseTrimmed) const { 156 bool LiveRange::overlapsInst(InstNumberT OtherBegin, bool UseTrimmed) const { 171 // enabled if e.g. the LiveRange implementation changes and extra testing is 174 LiveRange Temp; 187 bool LiveRange::containsValue(InstNumberT Value, bool IsDest) const { 196 void LiveRange::trim(InstNumberT Lower) [all...] |