Skip to content

Commit 21c0d6b

Browse files
committed
[OpenMPOpt] Properly check AA pointers
The interface was changed to return pointers, so we need to check them for null now at they might actually be null in the future).
1 parent c11d22c commit 21c0d6b

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

llvm/lib/Transforms/IPO/OpenMPOpt.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2959,11 +2959,11 @@ ChangeStatus AAExecutionDomainFunction::updateImpl(Attributor &A) {
29592959
} else {
29602960
// For live non-entry blocks we only propagate
29612961
// information via live edges.
2962-
if (LivenessAA->isAssumedDead(&BB))
2962+
if (LivenessAA && LivenessAA->isAssumedDead(&BB))
29632963
continue;
29642964

29652965
for (auto *PredBB : predecessors(&BB)) {
2966-
if (LivenessAA->isEdgeDead(PredBB, &BB))
2966+
if (LivenessAA && LivenessAA->isEdgeDead(PredBB, &BB))
29672967
continue;
29682968
bool InitialEdgeOnly = isInitialThreadOnlyEdge(
29692969
A, dyn_cast<BranchInst>(PredBB->getTerminator()), BB);
@@ -3059,10 +3059,10 @@ ChangeStatus AAExecutionDomainFunction::updateImpl(Attributor &A) {
30593059
// alignment.
30603060
Function *Callee = CB->getCalledFunction();
30613061
if (!IsNoSync && Callee && !Callee->isDeclaration()) {
3062-
const auto &EDAA = *A.getAAFor<AAExecutionDomain>(
3062+
const auto *EDAA = A.getAAFor<AAExecutionDomain>(
30633063
*this, IRPosition::function(*Callee), DepClassTy::OPTIONAL);
3064-
if (EDAA.getState().isValidState()) {
3065-
const auto &CalleeED = EDAA.getFunctionExecutionDomain();
3064+
if (EDAA && EDAA->getState().isValidState()) {
3065+
const auto &CalleeED = EDAA->getFunctionExecutionDomain();
30663066
ED.IsReachedFromAlignedBarrierOnly =
30673067
CalleeED.IsReachedFromAlignedBarrierOnly;
30683068
AlignedBarrierLastInBlock = ED.IsReachedFromAlignedBarrierOnly;
@@ -3189,7 +3189,7 @@ ChangeStatus AAExecutionDomainFunction::updateImpl(Attributor &A) {
31893189
continue;
31903190
BasicBlock *SyncBB = SyncInst->getParent();
31913191
for (auto *PredBB : predecessors(SyncBB)) {
3192-
if (LivenessAA->isEdgeDead(PredBB, SyncBB))
3192+
if (LivenessAA && LivenessAA->isEdgeDead(PredBB, SyncBB))
31933193
continue;
31943194
if (!Visited.insert(PredBB))
31953195
continue;

0 commit comments

Comments
 (0)