[llvm] Make RAUW skip instances where operand is the replacement node (PR #212724)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 29 02:25:16 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index b771117f9..3db136ff2 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -13307,10 +13307,11 @@ void SelectionDAG::ReplaceAllUsesOfValueWith(SDValue From, SDValue To){
RAUWUpdateListener Listener(*this, UI, UE);
while (UI != UE) {
SDNode *User = UI->getUser();
-
+
// Don't replace uses of the To node if is is self-referential.
// If CSE tries to merge the Use with another node post-replacement
- // it'll try to remove the same node from the CSE map twice, causing a crash.
+ // it'll try to remove the same node from the CSE map twice, causing a
+ // crash.
if (User == To.getNode()) {
do {
++UI;
@@ -13318,7 +13319,6 @@ void SelectionDAG::ReplaceAllUsesOfValueWith(SDValue From, SDValue To){
continue;
}
-
bool UserRemovedFromCSEMaps = false;
// A user can appear in a use list multiple times, and when this
``````````
</details>
https://github.com/llvm/llvm-project/pull/212724
More information about the llvm-commits
mailing list