summaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-06-01 19:59:01 +0000
committerDevang Patel <dpatel@apple.com>2010-06-01 19:59:01 +0000
commit9126c0d42a5176e5865171713fae4a62e3c69912 (patch)
tree9da99b7d21b5e406a3dcb5a32e06e3d806996edd /lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
parent956b3490349019163d1d12bb42b82f7e1fcc20ee (diff)
downloadllvm-9126c0d42a5176e5865171713fae4a62e3c69912.tar.gz
llvm-9126c0d42a5176e5865171713fae4a62e3c69912.tar.bz2
llvm-9126c0d42a5176e5865171713fae4a62e3c69912.tar.xz
Keep track of incoming debug value of unused argument.
Radar 7927666. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105285 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h')
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
index 3fcd4b9dc4..86903caa8a 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
@@ -88,6 +88,10 @@ class SelectionDAGBuilder {
DebugLoc CurDebugLoc;
DenseMap<const Value*, SDValue> NodeMap;
+
+ /// UnusedArgNodeMap - Maps argument value for unused arguments. This is used
+ /// to preserve debug information for incoming arguments.
+ DenseMap<const Value*, SDValue> UnusedArgNodeMap;
public:
/// PendingLoads - Loads are not emitted to the program immediately. We bunch
@@ -349,6 +353,12 @@ public:
N = NewN;
}
+ void setUnusedArgValue(const Value *V, SDValue NewN) {
+ SDValue &N = UnusedArgNodeMap[V];
+ assert(N.getNode() == 0 && "Already set a value for this node!");
+ N = NewN;
+ }
+
void GetRegistersForValue(SDISelAsmOperandInfo &OpInfo,
std::set<unsigned> &OutputRegs,
std::set<unsigned> &InputRegs);