[llvm] [SCCP] fix non-determinism (PR #105758)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 22 17:53:29 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Florian Mayer (fmayer)
<details>
<summary>Changes</summary>
the visit order depended on hashing because we iterated over a
SmallPtrSet
---
Full diff: https://github.com/llvm/llvm-project/pull/105758.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Utils/SCCPSolver.cpp (+2-1)
``````````diff
diff --git a/llvm/lib/Transforms/Utils/SCCPSolver.cpp b/llvm/lib/Transforms/Utils/SCCPSolver.cpp
index 40f0f04c323ddc..670d88ac7cf8fa 100644
--- a/llvm/lib/Transforms/Utils/SCCPSolver.cpp
+++ b/llvm/lib/Transforms/Utils/SCCPSolver.cpp
@@ -13,6 +13,7 @@
//===----------------------------------------------------------------------===//
#include "llvm/Transforms/Utils/SCCPSolver.h"
+#include "llvm/ADT/SetVector.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/ValueLattice.h"
@@ -418,7 +419,7 @@ class SCCPInstVisitor : public InstVisitor<SCCPInstVisitor> {
DenseMap<Function *, std::unique_ptr<PredicateInfo>> FnPredicateInfo;
- DenseMap<Value *, SmallPtrSet<User *, 2>> AdditionalUsers;
+ DenseMap<Value *, SmallSetVector<User *, 2>> AdditionalUsers;
LLVMContext &Ctx;
``````````
</details>
https://github.com/llvm/llvm-project/pull/105758
More information about the llvm-commits
mailing list