[PATCH] D92849: [OpenMPIRBuilder] Put the barrier in the exit block in createWorkshapeLoop
Alex Zinenko via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 8 14:24:26 PST 2020
ftynse updated this revision to Diff 310348.
ftynse added a comment.
Rebase on main
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D92849/new/
https://reviews.llvm.org/D92849
Files:
llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
Index: llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
===================================================================
--- llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+++ llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
@@ -1155,6 +1155,11 @@
// increment and in the statement that adds the lower bound to it.
Value *IV = CLI->getIndVar();
EXPECT_EQ(std::distance(IV->use_begin(), IV->use_end()), 3);
+
+ // The exit block should contain the "fini" call and the barrier call.
+ BasicBlock *ExitBlock = CLI->getExitBlock();
+ EXPECT_EQ(
+ count_if(*ExitBlock, [](Instruction *I) { return isa<CallInst>(I); }), 2);
}
TEST_F(OpenMPIRBuilderTest, MasterDirective) {
Index: llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
===================================================================
--- llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+++ llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
@@ -1104,7 +1104,8 @@
// Add the barrier if requested.
if (NeedsBarrier)
- createBarrier(Loc, omp::Directive::OMPD_for, /* ForceSimpleCall */ false,
+ createBarrier(LocationDescription(Builder.saveIP(), Loc.DL),
+ omp::Directive::OMPD_for, /* ForceSimpleCall */ false,
/* CheckCancelFlag */ false);
CLI->assertOK();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92849.310348.patch
Type: text/x-patch
Size: 1270 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201208/9e312206/attachment.bin>
More information about the llvm-commits
mailing list