]> granicus.if.org Git - llvm/commit
[DAGCombine] MergeConsecutiveStores - improve non-temporal load\store handling (PR42123)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 6 Jun 2019 17:04:13 +0000 (17:04 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 6 Jun 2019 17:04:13 +0000 (17:04 +0000)
commitdeea5e593e435f2f734ad4df24e5aa0cd6038884
tree1ff2b2b72e7edb7a13c105014fcb03d4b9126fc8
parent58871dab1d1d797caef27226fa91dbb0ce55bf2e
[DAGCombine] MergeConsecutiveStores - improve non-temporal load\store handling (PR42123)

This patch is the first step towards ensuring MergeConsecutiveStores correctly handles non-temporal loads\stores:

1 - When merging load\stores we must ensure that they all have the same non-temporal flag. This is unlikely to occur, but can in strange cases where we're storing at the end of one page and the beginning of another.

2 - The merged load\store node must retain the non-temporal flag.

Differential Revision: https://reviews.llvm.org/D62910

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362723 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/merge-consecutive-stores-nt.ll