[PATCH] D111445: [OpenMP] Use AAAssumptionInfo to get assumptions in OpenMPOpt
Joseph Huber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 8 10:46:49 PDT 2021
jhuber6 updated this revision to Diff 378308.
jhuber6 added a comment.
Format
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111445/new/
https://reviews.llvm.org/D111445
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
@@ -3797,13 +3797,11 @@
CallBase &CB = cast<CallBase>(getAssociatedValue());
Function *Callee = getAssociatedFunction();
- // Helper to lookup an assumption string.
- auto HasAssumption = [](CallBase &CB, StringRef AssumptionStr) {
- return hasAssumption(CB, AssumptionStr);
- };
+ auto &AssumptionAA = A.getAAFor<AAAssumptionInfo>(
+ *this, IRPosition::callsite_function(CB), DepClassTy::OPTIONAL);
// Check for SPMD-mode assumptions.
- if (HasAssumption(CB, "ompx_spmd_amenable")) {
+ if (AssumptionAA.hasAssumption("ompx_spmd_amenable")) {
SPMDCompatibilityTracker.indicateOptimisticFixpoint();
indicateOptimisticFixpoint();
}
@@ -3828,8 +3826,8 @@
// Unknown callees might contain parallel regions, except if they have
// an appropriate assumption attached.
- if (!(HasAssumption(CB, "omp_no_openmp") ||
- HasAssumption(CB, "omp_no_parallelism")))
+ if (!(AssumptionAA.hasAssumption("omp_no_openmp") ||
+ AssumptionAA.hasAssumption("omp_no_parallelism")))
ReachedUnknownParallelRegions.insert(&CB);
// If SPMDCompatibilityTracker is not fixed, we need to give up on the
@@ -4392,11 +4390,15 @@
if (F->isDeclaration())
continue;
+ A.getOrCreateAAFor<AAAssumptionInfo>(IRPosition::function(*F));
A.getOrCreateAAFor<AAExecutionDomain>(IRPosition::function(*F));
if (!DisableOpenMPOptDeglobalization)
A.getOrCreateAAFor<AAHeapToStack>(IRPosition::function(*F));
for (auto &I : instructions(*F)) {
+ if (auto *CB = dyn_cast<CallBase>(&I))
+ A.getOrCreateAAFor<AAAssumptionInfo>(
+ IRPosition::callsite_function(*CB));
if (auto *LI = dyn_cast<LoadInst>(&I)) {
bool UsedAssumedInformation = false;
A.getAssumedSimplified(IRPosition::value(*LI), /* AA */ nullptr,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D111445.378308.patch
Type: text/x-patch
Size: 2096 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211008/dc1bdb93/attachment.bin>
More information about the llvm-commits
mailing list