]> granicus.if.org Git - llvm/commitdiff
[DAG] Defer Pre/Post IndexStore merge to after mergestore. NFCI.
authorNirav Dave <niravd@google.com>
Thu, 15 Jun 2017 15:05:48 +0000 (15:05 +0000)
committerNirav Dave <niravd@google.com>
Thu, 15 Jun 2017 15:05:48 +0000 (15:05 +0000)
In preparation for doing storemerge post-legalization, reorder
visitSTORE passes to move pre/post-index combining after store
merge. Reordered passes other than store merge are unaffected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305473 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 3a9c17045c1b769418c1364baa2f0ddda695a384..4b1895b18d06e61dd7e47499ba32dc655bea89f8 100644 (file)
@@ -13218,10 +13218,6 @@ SDValue DAGCombiner::visitSTORE(SDNode *N) {
     Chain = ST->getChain();
   }
 
-  // Try transforming N to an indexed store.
-  if (CombineToPreIndexedLoadStore(N) || CombineToPostIndexedLoadStore(N))
-    return SDValue(N, 0);
-
   // FIXME: is there such a thing as a truncating indexed store?
   if (ST->isTruncatingStore() && ST->isUnindexed() &&
       Value.getValueType().isInteger()) {
@@ -13316,6 +13312,10 @@ SDValue DAGCombiner::visitSTORE(SDNode *N) {
     }
   }
 
+  // Try transforming N to an indexed store.
+  if (CombineToPreIndexedLoadStore(N) || CombineToPostIndexedLoadStore(N))
+    return SDValue(N, 0);
+
   // Turn 'store float 1.0, Ptr' -> 'store int 0x12345678, Ptr'
   //
   // Make sure to do this only after attempting to merge stores in order to