[OpenMP] Identify non-aligned barriers executed in an aligned context
authorJohannes Doerfert <johannes@jdoerfert.de>
Mon, 23 Jan 2023 03:55:32 +0000 (19:55 -0800)
committerJohannes Doerfert <johannes@jdoerfert.de>
Mon, 23 Jan 2023 05:42:07 +0000 (21:42 -0800)
commit129faec711693ac05b0dbf97c7e84e83dc0bbb88
treee7afb1a705595be1467bb86bef37442eab27d1c8
parent0326ee790a83573825899549fce59771ddeae43d
[OpenMP] Identify non-aligned barriers executed in an aligned context

Even if a barrier does not enforce aligned execution, it will
effectively be like an aligned barrier if it is executed by all threads
in an aligned way. We lack control flow divergence analysis here so we
can only do (basic block) local reasoning for now.
llvm/include/llvm/Transforms/IPO/Attributor.h
llvm/lib/Transforms/IPO/AttributorAttributes.cpp
llvm/lib/Transforms/IPO/OpenMPOpt.cpp
llvm/test/Transforms/OpenMP/barrier_removal.ll