llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-llvm-regalloc Author: None (pzzp) <details> <summary>Changes</summary> Ensure segments use the correct copied VNInfos when assigning from another LiveRange. --- Full diff: https://github.com/llvm/llvm-project/pull/148790.diff 1 Files Affected: - (modified) llvm/include/llvm/CodeGen/LiveInterval.h (+3-1) ``````````diff diff --git a/llvm/include/llvm/CodeGen/LiveInterval.h b/llvm/include/llvm/CodeGen/LiveInterval.h index e1c5717f5face..29c3416ccc0c8 100644 --- a/llvm/include/llvm/CodeGen/LiveInterval.h +++ b/llvm/include/llvm/CodeGen/LiveInterval.h @@ -257,11 +257,13 @@ namespace llvm { assert(Other.segmentSet == nullptr && "Copying of LiveRanges with active SegmentSets is not supported"); // Duplicate valnos. + auto FirstNewVNIIdx = valnos.size(); for (const VNInfo *VNI : Other.valnos) createValueCopy(VNI, Allocator); // Now we can copy segments and remap their valnos. for (const Segment &S : Other.segments) - segments.push_back(Segment(S.start, S.end, valnos[S.valno->id])); + segments.push_back( + Segment(S.start, S.end, valnos[FirstNewVNIIdx + S.valno->id])); } /// advanceTo - Advance the specified iterator to point to the Segment `````````` </details> https://github.com/llvm/llvm-project/pull/148790 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits