[llvm] r351571 - [SelectionDAG] Split very large token factors for chained stores to 64k chunks.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 18 10:37:38 PST 2019


Author: fhahn
Date: Fri Jan 18 10:37:38 2019
New Revision: 351571

URL: http://llvm.org/viewvc/llvm-project?rev=351571&view=rev
Log:
[SelectionDAG] Split very large token factors for chained stores to 64k chunks.

Similar to D55073. Without this change, the DAG combiner crashes on code
with more than 64k of stores in a single basic block that form parallelizable
chains.

No test case, as it would be very IR file.

Reviewed By: RKSimon

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

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=351571&r1=351570&r2=351571&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Jan 18 10:37:38 2019
@@ -19349,7 +19349,7 @@ bool DAGCombiner::parallelizeChainedStor
   if (AddNewChain)
     TFOps.insert(TFOps.begin(), NewChain);
 
-  SDValue TF = DAG.getNode(ISD::TokenFactor, SDLoc(STChain), MVT::Other, TFOps);
+  SDValue TF = DAG.getTokenFactor(SDLoc(STChain), TFOps);
   CombineTo(St, TF);
 
   AddToWorklist(STChain);




More information about the llvm-commits mailing list