[DebugInfo] Let InstrRefBasedLDV handle joins for lists of debug ops
authorStephen Tozer <stephen.tozer@sony.com>
Sat, 18 Jun 2022 00:09:13 +0000 (01:09 +0100)
committerStephen Tozer <stephen.tozer@sony.com>
Mon, 22 Aug 2022 19:22:22 +0000 (20:22 +0100)
commit53fd5af689268140466897912be1075e3ed50d8e
treee5902ec7666614816999fb6fef8fd20f3e29ea33
parent5d794552bc0c15bbe9852080e60bcecead09302f
[DebugInfo] Let InstrRefBasedLDV handle joins for lists of debug ops

In preparation for adding support for DBG_VALUE_LIST instructions in
InstrRefLDV, this patch updates the logic for joining variables at block
joins to support joining variables that use multiple debug operands.
This is one of the more meaty "logical" changes, although the line count
isn't too high - this changes pickVPHILoc to find a valid joined
location for every operand, with part of the function being split off
into pickValuePHILoc which finds a location for a single operand.

Differential Revision: https://reviews.llvm.org/D128180
llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
llvm/unittests/CodeGen/InstrRefLDVTest.cpp