D'oh - need to use the rigth kind of store.
authorJim Laskey <jlaskey@mac.com>
Thu, 12 Oct 2006 15:22:24 +0000 (15:22 +0000)
committerJim Laskey <jlaskey@mac.com>
Thu, 12 Oct 2006 15:22:24 +0000 (15:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30903 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 737c0685536c793ca888120531f1fa42ddc3f705..2c15f39db4a6f4b8c1d48cd241c1b6b73b8442ae 100644 (file)
@@ -49,7 +49,7 @@ namespace {
   static cl::opt<bool>
     CombinerAA("combiner-alias-analysis", cl::Hidden,
                cl::desc("Turn on alias analysis turning testing"));
-             
+
 //------------------------------ DAGCombiner ---------------------------------//
 
   class VISIBILITY_HIDDEN DAGCombiner {
@@ -504,7 +504,7 @@ SDOperand DAGCombiner::visit(SDNode *N) {
   case ISD::BR_CC:              return visitBR_CC(N);
   case ISD::LOAD:               return visitLOAD(N);
   // FIXME - Switch over after StoreSDNode comes online.
-  case ISD::TRUNCSTORE:         // Fail thru
+  case ISD::TRUNCSTORE:         // Fall thru
   case ISD::STORE:              return visitSTORE(N);
   case ISD::INSERT_VECTOR_ELT:  return visitINSERT_VECTOR_ELT(N);
   case ISD::VINSERT_VECTOR_ELT: return visitVINSERT_VECTOR_ELT(N);
@@ -2708,7 +2708,10 @@ SDOperand DAGCombiner::visitSTORE(SDNode *N) {
       // If there is a better chain.
       if (Chain != BetterChain) {
         // Replace the chain to avoid dependency.
-        SDOperand ReplTStore = DAG.getStore(BetterChain, Value, Ptr, SrcValue);
+        SDOperand ReplTStore = DAG.getNode(ISD::TRUNCSTORE, MVT::Other,
+                                            BetterChain, Value, Ptr, SrcValue,
+                                            N->getOperand(4));
+
         // Create token to keep both nodes around.
         return DAG.getNode(ISD::TokenFactor, MVT::Other, Chain, ReplTStore);
       }