[PATCH] D62910: [DAGCombine] MergeConsecutiveStores - improve non-temporal store handling (PR42123)
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 5 08:15:51 PDT 2019
RKSimon created this revision.
RKSimon added reviewers: niravd, efriedma, craig.topper, andreadb.
Herald added a project: LLVM.
This patch is the first step towards ensuring MergeConsecutiveStores correctly handles non-temporal stores:
1 - When merging 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 store node must retain the non-temporal flag.
After this I need to improve alignment handling - in most cases we shouldn't merge nt-stores unless they are naturally aligned - either we just prevent it in all cases or we refactor canMergeStoresTo to include access to the alignment and MMO flags as well?
Repository:
rL LLVM
https://reviews.llvm.org/D62910
Files:
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
test/CodeGen/X86/merge-consecutive-stores-nt.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62910.203160.patch
Type: text/x-patch
Size: 5150 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190605/0557510e/attachment.bin>
More information about the llvm-commits
mailing list