Implements the OMPIRBuilder portion for the
Interop directive.
Details
Diff Detail
- Repository
 - rG LLVM Github Monorepo
 
Event Timeline
| clang/lib/CodeGen/CGStmtOpenMP.cpp | ||
|---|---|---|
| 6578–6579 | This code can be removed.  | |
| 6596 | bool  | |
| 6597 | hasClausesOfKind should be better  | |
| 6602 | EmitLValue(C->getInteropVar()).getPointer(*this);.  | |
| 6612–6613 | EmitLValue(C->getInteropVar()).getPointer(*this);.  | |
| 6618–6619 | EmitLValue(C->getInteropVar()).getPointer(*this);.  | |
| 6623–6626 | Is this allowed at all? If not, better to turn it into an assert.  | |
| clang/test/OpenMP/interop_irbuilder.cpp | ||
| 2 | Actual codegen checks are missing  | |
you need to squash your commits locally and update this revision with a single commit/diff.
| clang/lib/CodeGen/CGStmtOpenMP.cpp | ||
|---|---|---|
| 6570–6625 | This is not how assertions work. assert(EXPR && "MESSAGE");  | |
| clang/lib/CodeGen/CGStmtOpenMP.cpp | ||
|---|---|---|
| 6598–6599 | This code is common for all if-else braches, move out of the conditional blocks?  | |
| 6603–6604 | Can we have anything else rather than C->getIsTargetSync() here? If no, then it should look like this: if (C->getIsTarget()) {
  InteropType = llvm::omp::OMPInteropType::Target;
} else {
  assert(C->getIsTargetSync() && "Expected ...");
  InteropType = llvm::omp::OMPInteropType::TargetSync;
} | |
LGTM,
please rebase on top of trunk and use ConstantInt::get(Int32, 0) instead of the APInt way.
This code can be removed.