them, but hopefully we won't. And this is not the right data structure
to do it anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117412
91177308-0d34-0410-b5e6-
96231b3b80d8
// Consider coalescing adjacent segments to save space, even though it makes
// extraction more complicated.
void LiveIntervalUnion::unify(LiveInterval &lvr) {
// Consider coalescing adjacent segments to save space, even though it makes
// extraction more complicated.
void LiveIntervalUnion::unify(LiveInterval &lvr) {
- // Add this live virtual register to the union
- LiveVirtRegs::iterator pos = std::upper_bound(lvrs_.begin(), lvrs_.end(),
- &lvr, less_ptr<LiveInterval>());
- assert((pos == lvrs_.end() || *pos != &lvr) && "duplicate LVR insertion");
- lvrs_.insert(pos, &lvr);
// Insert each of the virtual register's live segments into the map
SegmentIter segPos = segments_.begin();
for (LiveInterval::iterator lvrI = lvr.begin(), lvrEnd = lvr.end();
// Insert each of the virtual register's live segments into the map
SegmentIter segPos = segments_.begin();
for (LiveInterval::iterator lvrI = lvr.begin(), lvrEnd = lvr.end();
private:
unsigned repReg_; // representative register number
LiveSegments segments_; // union of virtual reg segements
private:
unsigned repReg_; // representative register number
LiveSegments segments_; // union of virtual reg segements
- LiveVirtRegs lvrs_; // set of live virtual regs in the union
public:
// default ctor avoids placement new
public:
// default ctor avoids placement new