[PATCH] D64645: DAG: Handle dbg_value for arguments split into multiple subregs
Vedant Kumar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 12 10:59:24 PDT 2019
vsk added a reviewer: debug-info.
vsk added inline comments.
================
Comment at: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5334
+ case ISD::CONCAT_VECTORS:
+ for (int I = 0, E = N.getNumOperands(); I != E; ++I)
+ getUnderlyingArgRegs(Regs, N.getOperand(I));
----------------
for-range on N.op_values()?
================
Comment at: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5480
if (RFV.occupiesMultipleRegs()) {
- unsigned Offset = 0;
- for (auto RegAndSize : RFV.getRegsAndSizes()) {
- Op = MachineOperand::CreateReg(RegAndSize.first, false);
- auto FragmentExpr = DIExpression::createFragmentExpression(
- Expr, Offset, RegAndSize.second);
- if (!FragmentExpr)
- continue;
- FuncInfo.ArgDbgValues.push_back(
- BuildMI(MF, DL, TII->get(TargetOpcode::DBG_VALUE), IsDbgDeclare,
- Op->getReg(), Variable, *FragmentExpr));
- Offset += RegAndSize.second;
- }
+ splitMultiRegDbgValue(RFV.getRegsAndSizes());
return true;
----------------
I'm struggling to understand why values in the ValueMap need separate handling. IOW I don't get why it's not possible to handle the 'ArgRegsAndSizes.size() > 1' case earlier and assert '!RFV.occupiesMultipleRegs()' here.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64645/new/
https://reviews.llvm.org/D64645
More information about the llvm-commits
mailing list