[debug-info] As an NFC commit, refactor EmitFuncArgumentDbgValue so that it can be...
authorMichael Gottesman <mgottesman@apple.com>
Fri, 1 Apr 2022 22:57:52 +0000 (15:57 -0700)
committerMichael Gottesman <mgottesman@apple.com>
Sat, 2 Apr 2022 00:07:28 +0000 (17:07 -0700)
commite24f5348798605a799c63ff09169d177d262cd37
tree16c19b4c48be9ed5541c25e59043fcd5f5fe9339
parent9262d031a452c96bf69d2db75ef62e3ea973a828
[debug-info] As an NFC commit, refactor EmitFuncArgumentDbgValue so that it can be extended to support llvm.dbg.addr.

The reason why I am making this change is that before this commit,
EmitFuncArgumentDbgValue relied on a boolean flag IsDbgDeclare both to signal
that a DBG_VALUE should be made to be indirect /and/ that the original intrinsic
was a dbg.declare. This is no longer always true if we add support for handling
dbg.addr since we will have an indirect DBG_VALUE that is a different intrinsic
from dbg.declare.

With that in mind, in this NFC patch, we prepare for future fixes by introducing
a 3 case-enum argument to EmitFuncArgumentDbgValue that allows the caller to
explicitly specify how the argument's DBG_VALUE should be emitted. This then
allows us to turn the indirect checks into a != FuncArgumentDbgValueKind::Value
and prepare us for a future where we add support here for llvm.dbg.addr
directly.

rdar://83957028

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D122945
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h