summaryrefslogtreecommitdiff
path: root/lib/CodeGen/ScheduleDAGInstrs.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-05-20 02:44:38 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-05-20 02:44:38 +0000
commit93e29ce066c80528ab0afb90fdaabf734fb4b412 (patch)
treed5700cee87af0e2732e708e14e1b1bb2d03803cb /lib/CodeGen/ScheduleDAGInstrs.cpp
parente1b93d2e86a3396b1b1d3d761f0335b17c5f54b8 (diff)
downloadllvm-93e29ce066c80528ab0afb90fdaabf734fb4b412.tar.gz
llvm-93e29ce066c80528ab0afb90fdaabf734fb4b412.tar.bz2
llvm-93e29ce066c80528ab0afb90fdaabf734fb4b412.tar.xz
Use LiveRangeQuery in ScheduleDAGInstrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157144 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/ScheduleDAGInstrs.cpp')
-rw-r--r--lib/CodeGen/ScheduleDAGInstrs.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/lib/CodeGen/ScheduleDAGInstrs.cpp b/lib/CodeGen/ScheduleDAGInstrs.cpp
index 9f8b4613fd..54f3dd3fcc 100644
--- a/lib/CodeGen/ScheduleDAGInstrs.cpp
+++ b/lib/CodeGen/ScheduleDAGInstrs.cpp
@@ -445,19 +445,11 @@ void ScheduleDAGInstrs::addVRegUseDeps(SUnit *SU, unsigned OperIdx) {
// Lookup this operand's reaching definition.
assert(LIS && "vreg dependencies requires LiveIntervals");
- SlotIndex UseIdx = LIS->getInstructionIndex(MI).getRegSlot();
- LiveInterval *LI = &LIS->getInterval(Reg);
- VNInfo *VNI = LI->getVNInfoBefore(UseIdx);
+ LiveRangeQuery LRQ(LIS->getInterval(Reg), LIS->getInstructionIndex(MI));
+ VNInfo *VNI = LRQ.valueIn();
- // Special case: An early-clobber tied operand reads and writes the
- // register one slot early. e.g. InlineAsm.
- //
- // FIXME: Same special case is in shrinkToUses. Hide under an API.
- if (SlotIndex::isSameInstr(VNI->def, UseIdx)) {
- UseIdx = VNI->def;
- VNI = LI->getVNInfoBefore(UseIdx);
- }
// VNI will be valid because MachineOperand::readsReg() is checked by caller.
+ assert(VNI && "No value to read by operand");
MachineInstr *Def = LIS->getInstructionFromIndex(VNI->def);
// Phis and other noninstructions (after coalescing) have a NULL Def.
if (Def) {