[SelectionDAG] Add AssertAlign to AddNodeIDCustom so that it will CSE properly.
authorCraig Topper <craig.topper@sifive.com>
Thu, 24 Mar 2022 15:59:00 +0000 (08:59 -0700)
committerCraig Topper <craig.topper@sifive.com>
Thu, 24 Mar 2022 15:59:09 +0000 (08:59 -0700)
The alignment needs to be part of the folding set hash. This is
handled by getAssertAlign when nodes are created, but needs to repeated here.

No test case as I found it as part of a very early experimental patch.

Reviewed By: spatel

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

llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index 2eef18f..77e6e8a 100644 (file)
@@ -844,6 +844,9 @@ static void AddNodeIDCustom(FoldingSetNodeID &ID, const SDNode *N) {
     ID.AddInteger(BA->getTargetFlags());
     break;
   }
+  case ISD::AssertAlign:
+    ID.AddInteger(cast<AssertAlignSDNode>(N)->getAlign().value());
+    break;
   } // end switch (N->getOpcode())
 
   // Target specific memory nodes could also have address spaces and flags