[PATCH] D106024: [AbstractAttributor] Fix an issue that causes program hang
Shilei Tian via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 14 18:23:22 PDT 2021
tianshilei1992 updated this revision to Diff 358806.
tianshilei1992 added a comment.
update
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106024/new/
https://reviews.llvm.org/D106024
Files:
llvm/lib/Transforms/IPO/OpenMPOpt.cpp
Index: llvm/lib/Transforms/IPO/OpenMPOpt.cpp
===================================================================
--- llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+++ llvm/lib/Transforms/IPO/OpenMPOpt.cpp
@@ -3233,8 +3233,7 @@
auto &CB = cast<CallBase>(I);
auto &CBAA = A.getAAFor<AAKernelInfo>(
*this, IRPosition::callsite_function(CB), DepClassTy::OPTIONAL);
- if (CBAA.getState().isValidState())
- getState() ^= CBAA.getState();
+ getState() ^= CBAA.getState();
Function *Callee = CB.getCalledFunction();
if (Callee) {
@@ -3270,7 +3269,7 @@
auto &CAA =
A.getOrCreateAAFor<AAKernelInfo>(IRPosition::function(*Caller));
- if (CAA.isValidState()) {
+ if (CAA.ReachingKernelEntries.isValidState()) {
ReachingKernelEntries ^= CAA.ReachingKernelEntries;
return true;
}
@@ -3536,6 +3535,11 @@
return Changed;
}
+ ChangeStatus indicatePessimisticFixpoint() override {
+ SimplifiedValue = nullptr;
+ return AAFoldRuntimeCall::indicateOptimisticFixpoint();
+ }
+
private:
/// Fold __kmpc_is_spmd_exec_mode into a constant if possible.
ChangeStatus foldIsSPMDExecMode(Attributor &A) {
@@ -3546,6 +3550,9 @@
auto &CallerKernelInfoAA = A.getAAFor<AAKernelInfo>(
*this, IRPosition::function(*getAnchorScope()), DepClassTy::REQUIRED);
+ if (!CallerKernelInfoAA.ReachingKernelEntries.isValidState())
+ return indicatePessimisticFixpoint();
+
for (Kernel K : CallerKernelInfoAA.ReachingKernelEntries) {
auto &AA = A.getAAFor<AAKernelInfo>(*this, IRPosition::function(*K),
DepClassTy::REQUIRED);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106024.358806.patch
Type: text/x-patch
Size: 1690 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210715/14d1e830/attachment.bin>
More information about the llvm-commits
mailing list