[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