During SelectionDAG legalization SDNodes with associated extra info may
be replaced with a new SDNode. Preserve associated extra info on
ReplaceAllUsesWith and remove entries in DeallocateNode.
Depends on D130880
| Paths 
 |  Differential  D130881  
[SelectionDAG] Properly copy ExtraInfo on RAUW ClosedPublic Authored by melver on Aug 1 2022, 1:57 AM. 
Details Summary During SelectionDAG legalization SDNodes with associated extra info may Depends on D130880 
Diff Detail 
 
Unit TestsFailed Event Timelinemelver added a child revision: D130882: [SelectionDAG] Propagate PCSections through SDNodes.Aug 1 2022, 1:57 AM Comment Actions Would you be able to reproduce the issue as a new test in TEST_F(SelectionDAGAddressAnalysisTest ? Comment Actions Add unit test for RAUW. Comment Actions 
 That test seems only related to BaseIndexOffset::computeAliasing(). Added to a different test that seems to be used for that (needs a target, so there's an AArch64 one). vitalybuka added inline comments. 
 This revision is now accepted and ready to land.Aug 10 2022, 11:05 AM melver added inline comments. 
 Closed by commit rG7d63983c65f9: [SelectionDAG] Properly copy ExtraInfo on RAUW (authored by melver).  ·  Explain WhySep 6 2022, 7:34 AM This revision was automatically updated to reflect the committed changes. 
Revision Contents 
 
 
Diff 451648 llvm/include/llvm/CodeGen/SelectionDAG.h
 llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
 
 llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
this assert is inconsistent with the rest of the code