LiveInterval& getInterval(unsigned reg) {
Reg2IntervalMap::iterator I = r2iMap_.find(reg);
- assert(I != r2iMap_.end()&& "Interval does not exist for register");
- return *I->second;
+ assert(I != r2iMap_.end()&& "Interval does not exist for register");
+ return *I->second;
}
/// getInstructionIndex - returns the base index of instr
MachineBasicBlock::iterator mi,
LiveInterval& interval);
- bool overlapsAliases(const LiveInterval& lhs,
- const LiveInterval& rhs) const;
+ /// Return true if the two specified registers belong to different
+ /// register classes. The registers may be either phys or virt regs.
+ bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
+
+ bool overlapsAliases(const LiveInterval *lhs,
+ const LiveInterval *rhs) const;
LiveInterval& getOrCreateInterval(unsigned reg);
LiveInterval& getInterval(unsigned reg) {
Reg2IntervalMap::iterator I = r2iMap_.find(reg);
- assert(I != r2iMap_.end()&& "Interval does not exist for register");
- return *I->second;
+ assert(I != r2iMap_.end()&& "Interval does not exist for register");
+ return *I->second;
}
/// getInstructionIndex - returns the base index of instr
MachineBasicBlock::iterator mi,
LiveInterval& interval);
- bool overlapsAliases(const LiveInterval& lhs,
- const LiveInterval& rhs) const;
+ /// Return true if the two specified registers belong to different
+ /// register classes. The registers may be either phys or virt regs.
+ bool differingRegisterClasses(unsigned RegA, unsigned RegB) const;
+
+ bool overlapsAliases(const LiveInterval *lhs,
+ const LiveInterval *rhs) const;
LiveInterval& getOrCreateInterval(unsigned reg);