if (LIS) {
LastCopyIdx = LIS->InsertMachineInstrInMaps(*PrevMI).getRegSlot();
- SlotIndex endIdx =
- LIS->getInstructionIndex(*MI).getRegSlot(IsEarlyClobber);
if (RegA.isVirtual()) {
LiveInterval &LI = LIS->getInterval(RegA);
VNInfo *VNI = LI.getNextValue(LastCopyIdx, LIS->getVNInfoAllocator());
- LI.addSegment(LiveRange::Segment(LastCopyIdx, endIdx, VNI));
+ SlotIndex endIdx =
+ LIS->getInstructionIndex(*MI).getRegSlot(IsEarlyClobber);
+ LI.addSegment(LiveInterval::Segment(LastCopyIdx, endIdx, VNI));
for (auto &S : LI.subranges()) {
VNI = S.getNextValue(LastCopyIdx, LIS->getVNInfoAllocator());
- S.addSegment(LiveRange::Segment(LastCopyIdx, endIdx, VNI));
- }
- } else {
- for (MCRegUnitIterator Unit(RegA, TRI); Unit.isValid(); ++Unit) {
- if (LiveRange *LR = LIS->getCachedRegUnit(*Unit)) {
- VNInfo *VNI =
- LR->getNextValue(LastCopyIdx, LIS->getVNInfoAllocator());
- LR->addSegment(LiveRange::Segment(LastCopyIdx, endIdx, VNI));
- }
+ S.addSegment(LiveInterval::Segment(LastCopyIdx, endIdx, VNI));
}
}
}
; RUN: llc -mtriple armv7-arm-linux-gnueabihf -O2 -mcpu=cortex-a7 < %s | FileCheck %s
-; RUN: llc -mtriple armv7-arm-linux-gnueabihf -O2 -mcpu=cortex-a7 -early-live-intervals < %s | FileCheck %s
%struct.twofloat = type { float, float }
%struct.twodouble = type { double, double }
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s | FileCheck %s
-; RUN: llc -early-live-intervals < %s | FileCheck %s
target triple = "thumbv6m-unknown-unknown-eabi"
define void @vla_emergency_spill(i32 %n) {