diff options
author | Kareem Ergawy <kareem.ergawy@amd.com> | 2024-12-12 14:39:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-12 14:39:58 +0100 |
commit | f9734b9df15bc1eea84ef00973c2e5560e70c27d (patch) | |
tree | 3f5100f44b72d92ba9acd8acd7176b01e21bf08d /llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp | |
parent | 6a9279ca407132eec848eb5c55c2222ce605df81 (diff) | |
download | llvm-f9734b9df15bc1eea84ef00973c2e5560e70c27d.zip llvm-f9734b9df15bc1eea84ef00973c2e5560e70c27d.tar.gz llvm-f9734b9df15bc1eea84ef00973c2e5560e70c27d.tar.bz2 |
[mlir][OpenMP] - MLIR to LLVMIR translation support for delayed privatization of allocatables in `omp.target` ops (#116576)
This PR adds support to translate the `private` clause from MLIR to
LLVMIR when used on allocatables in the context of an `omp.target` op.
This replaces https://github.com/llvm/llvm-project/pull/113208.
Parent PR: https://github.com/llvm/llvm-project/pull/116770. Only the
latest commit is relevant to the PR.
Diffstat (limited to 'llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp')
-rw-r--r-- | llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp index 630cd03..d7ac108 100644 --- a/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp +++ b/llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp @@ -6358,7 +6358,13 @@ TEST_F(OpenMPIRBuilderTest, TargetRegionDevice) { auto *Load2 = Load1->getNextNode(); EXPECT_TRUE(isa<LoadInst>(Load2)); - auto *Value1 = Load2->getNextNode(); + auto *OutlinedBlockBr = Load2->getNextNode(); + EXPECT_TRUE(isa<BranchInst>(OutlinedBlockBr)); + + auto *OutlinedBlock = OutlinedBlockBr->getSuccessor(0); + EXPECT_EQ(OutlinedBlock->getName(), "outlined.body"); + + auto *Value1 = OutlinedBlock->getFirstNonPHI(); EXPECT_EQ(Value1, Value); EXPECT_EQ(Value1->getNextNode(), TargetStore); auto *Deinit = TargetStore->getNextNode(); @@ -6510,7 +6516,14 @@ TEST_F(OpenMPIRBuilderTest, ConstantAllocaRaise) { EXPECT_EQ(UserCodeBlock->getName(), "user_code.entry"); auto *Load1 = UserCodeBlock->getFirstNonPHI(); EXPECT_TRUE(isa<LoadInst>(Load1)); - auto *Load2 = Load1->getNextNode(); + + auto *OutlinedBlockBr = Load1->getNextNode(); + EXPECT_TRUE(isa<BranchInst>(OutlinedBlockBr)); + + auto *OutlinedBlock = OutlinedBlockBr->getSuccessor(0); + EXPECT_EQ(OutlinedBlock->getName(), "outlined.body"); + + auto *Load2 = OutlinedBlock->getFirstNonPHI(); EXPECT_TRUE(isa<LoadInst>(Load2)); EXPECT_EQ(Load2, Value); EXPECT_EQ(Load2->getNextNode(), TargetStore); |