This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP][Archer] Add support for taskwait depend
ClosedPublic

Authored by protze.joachim on Aug 16 2023, 6:04 AM.

Details

Summary

At the moment Archer segfaults due to a null-pointer access, if an application uses taskwait with depend clause as used in the two new tests.
This patch cleans up the task_schedule function, moves semantic blocks into functions and replaces the if blocks by a single switch statement.
The switch statement will warn, when new enum values are added in OMPT and makes clear what code is executed for the different cases.

With free-agent tasks coming up in OpenMP 6.0, we should expect more null-pointer task_data, so additional null-pointer checks were added.
We also cannot rely on having an implicit task on the stack, so the BarrierIndex is stored during task creation.

Diff Detail

Event Timeline

protze.joachim created this revision.Aug 16 2023, 6:04 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 16 2023, 6:04 AM
protze.joachim requested review of this revision.Aug 16 2023, 6:04 AM

Applying clang-format

This revision is now accepted and ready to land.Aug 22 2023, 11:53 PM