diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:01:25 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:01:25 +0000 |
commit | d8e91e46262bc44006913e6796843909f1ac7bcd (patch) | |
tree | 7d0c143d9b38190e0fa0180805389da22cd834c5 /lib/CodeGen/LiveInterval.cpp | |
parent | b7eb8e35e481a74962664b63dfb09483b200209a (diff) | |
download | src-d8e91e46262bc44006913e6796843909f1ac7bcd.tar.gz src-d8e91e46262bc44006913e6796843909f1ac7bcd.zip |
Vendor import of llvm trunk r351319 (just before the release_80 branchvendor/llvm/llvm-trunk-r351319
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=343171
svn path=/vendor/llvm/llvm-trunk-r351319/; revision=343172; tag=vendor/llvm/llvm-trunk-r351319
Diffstat (limited to 'lib/CodeGen/LiveInterval.cpp')
-rw-r--r-- | lib/CodeGen/LiveInterval.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/CodeGen/LiveInterval.cpp b/lib/CodeGen/LiveInterval.cpp index 83dd982587c6..2340b6abd87c 100644 --- a/lib/CodeGen/LiveInterval.cpp +++ b/lib/CodeGen/LiveInterval.cpp @@ -1310,17 +1310,17 @@ void ConnectedVNInfoEqClasses::Distribute(LiveInterval &LI, LiveInterval *LIV[], MachineOperand &MO = *RI; MachineInstr *MI = RI->getParent(); ++RI; - // DBG_VALUE instructions don't have slot indexes, so get the index of the - // instruction before them. - // Normally, DBG_VALUE instructions are removed before this function is - // called, but it is not a requirement. - SlotIndex Idx; - if (MI->isDebugValue()) - Idx = LIS.getSlotIndexes()->getIndexBefore(*MI); - else - Idx = LIS.getInstructionIndex(*MI); - LiveQueryResult LRQ = LI.Query(Idx); - const VNInfo *VNI = MO.readsReg() ? LRQ.valueIn() : LRQ.valueDefined(); + const VNInfo *VNI; + if (MI->isDebugValue()) { + // DBG_VALUE instructions don't have slot indexes, so get the index of + // the instruction before them. The value is defined there too. + SlotIndex Idx = LIS.getSlotIndexes()->getIndexBefore(*MI); + VNI = LI.Query(Idx).valueOut(); + } else { + SlotIndex Idx = LIS.getInstructionIndex(*MI); + LiveQueryResult LRQ = LI.Query(Idx); + VNI = MO.readsReg() ? LRQ.valueIn() : LRQ.valueDefined(); + } // In the case of an <undef> use that isn't tied to any def, VNI will be // NULL. If the use is tied to a def, VNI will be the defined value. if (!VNI) |