diff options
author | Nirav Dave <niravd@google.com> | 2017-05-31 13:36:17 +0000 |
---|---|---|
committer | Nirav Dave <niravd@google.com> | 2017-05-31 13:36:17 +0000 |
commit | 7c70fddba6b967acd547eeed86b1e60710345c48 (patch) | |
tree | 956099215d7bfd08f03a37b421184455444e71b5 /llvm/lib/CodeGen | |
parent | 60c247de18c517fc2bd1114a8846282fa34ba0ca (diff) | |
download | bcm5719-llvm-7c70fddba6b967acd547eeed86b1e60710345c48.tar.gz bcm5719-llvm-7c70fddba6b967acd547eeed86b1e60710345c48.zip |
[DAG] Avoid use of stale store.
Correct references to alignment of store which may be deleted in a
previous iteration of merge. Instead use first store that would be
merged.
Corrects pr33172's use-after-poison caught by ASan.
Reviewers: spatel, hfinkel, RKSimon
Reviewed By: RKSimon
Subscribers: thegameg, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D33686
llvm-svn: 304299
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index ab36bc1417a..a54ca4d32cd 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -12777,10 +12777,10 @@ bool DAGCombiner::MergeConsecutiveStores(StoreSDNode *St) { } // If we have load/store pair instructions and we only have two values, - // don't bother. + // don't bother merging. unsigned RequiredAlignment; if (LoadNodes.size() == 2 && TLI.hasPairedLoad(MemVT, RequiredAlignment) && - St->getAlignment() >= RequiredAlignment) { + StoreNodes[0].MemNode->getAlignment() >= RequiredAlignment) { StoreNodes.erase(StoreNodes.begin(), StoreNodes.begin() + 2); continue; } |