Skip to content

Commit

Permalink
[OpenMPOpt] Properly check AA pointers
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
jdoerfert committed Jun 29, 2023
1 parent c11d22c commit 21c0d6b
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions llvm/lib/Transforms/IPO/OpenMPOpt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2959,11 +2959,11 @@ ChangeStatus AAExecutionDomainFunction::updateImpl(Attributor &A) {
} else {
// For live non-entry blocks we only propagate
// information via live edges.
if (LivenessAA->isAssumedDead(&BB))
if (LivenessAA && LivenessAA->isAssumedDead(&BB))
continue;

for (auto *PredBB : predecessors(&BB)) {
if (LivenessAA->isEdgeDead(PredBB, &BB))
if (LivenessAA && LivenessAA->isEdgeDead(PredBB, &BB))
continue;
bool InitialEdgeOnly = isInitialThreadOnlyEdge(
A, dyn_cast<BranchInst>(PredBB->getTerminator()), BB);
Expand Down Expand Up @@ -3059,10 +3059,10 @@ ChangeStatus AAExecutionDomainFunction::updateImpl(Attributor &A) {
// alignment.
Function *Callee = CB->getCalledFunction();
if (!IsNoSync && Callee && !Callee->isDeclaration()) {
const auto &EDAA = *A.getAAFor<AAExecutionDomain>(
const auto *EDAA = A.getAAFor<AAExecutionDomain>(
*this, IRPosition::function(*Callee), DepClassTy::OPTIONAL);
if (EDAA.getState().isValidState()) {
const auto &CalleeED = EDAA.getFunctionExecutionDomain();
if (EDAA && EDAA->getState().isValidState()) {
const auto &CalleeED = EDAA->getFunctionExecutionDomain();
ED.IsReachedFromAlignedBarrierOnly =
CalleeED.IsReachedFromAlignedBarrierOnly;
AlignedBarrierLastInBlock = ED.IsReachedFromAlignedBarrierOnly;
Expand Down Expand Up @@ -3189,7 +3189,7 @@ ChangeStatus AAExecutionDomainFunction::updateImpl(Attributor &A) {
continue;
BasicBlock *SyncBB = SyncInst->getParent();
for (auto *PredBB : predecessors(SyncBB)) {
if (LivenessAA->isEdgeDead(PredBB, SyncBB))
if (LivenessAA && LivenessAA->isEdgeDead(PredBB, SyncBB))
continue;
if (!Visited.insert(PredBB))
continue;
Expand Down

0 comments on commit 21c0d6b

Please sign in to comment.