summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2016-03-24 18:57:39 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2016-03-24 18:57:39 +0000
commitc0c59fe14ea324d69a09d12bf2de2f543b990ac2 (patch)
tree906f829b715e0c0b8f2f151046d449a4a2c3789a /llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
parent42f91a995960b13dc2a661381e1e18b226d18cea (diff)
downloadbcm5719-llvm-c0c59fe14ea324d69a09d12bf2de2f543b990ac2.tar.gz
bcm5719-llvm-c0c59fe14ea324d69a09d12bf2de2f543b990ac2.zip
[Statepoints] Fix yet another issue around gc pointer uniqueing
Given that StatepointLowering now uniques derived pointers before putting them in the per-statepoint spill map, we may end up with missing entries for derived pointers when we visit a gc.relocate on a pointer that was de-duplicated away. Fix this by keeping two maps, one mapping gc pointers to their de-duplicated values, and one mapping a de-duplicated value to the slot it is spilled in. llvm-svn: 264320
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp b/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
index e5c7ade8859..9a99968b0ad 100644
--- a/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
@@ -356,7 +356,7 @@ void FunctionLoweringInfo::clear() {
ByValArgFrameIndexMap.clear();
RegFixups.clear();
StatepointStackSlots.clear();
- StatepointRelocatedValues.clear();
+ StatepointSpillMaps.clear();
PreferredExtendType.clear();
}
OpenPOWER on IntegriCloud