================ @@ -1698,6 +1701,64 @@ void OpenMPIRBuilder::createTaskyield(const LocationDescription &Loc) { emitTaskyieldImpl(Loc); } +// Processes the dependencies in Dependencies and does the following +// - Allocates space on the stack of an array of DependInfo objects +// - Populates each DependInfo object with relevant information of +// the corresponding dependence. +// - All code is inserted in the entry block of the current function. +static Value * +emitDepArray(OpenMPIRBuilder &OMPBuilder, + SmallVector<OpenMPIRBuilder::DependData> &Dependencies) { + // Early return if we have no dependencies to process + if (!Dependencies.size()) + return nullptr; + + IRBuilderBase &Builder = OMPBuilder.Builder; + Type *DependInfo = OMPBuilder.DependInfo; + Module &M = OMPBuilder.M; + + Value *DepArray = nullptr; + if (Dependencies.size()) { + OpenMPIRBuilder::InsertPointTy OldIP = Builder.saveIP(); + Builder.SetInsertPoint( + &OldIP.getBlock()->getParent()->getEntryBlock().back()); ---------------- Meinersbur wrote:
```suggestion Builder.SetInsertPoint( &OldIP.getBlock()->getParent()->getEntryBlock().getTerminator()); ``` just makes it more explicit. Did you consider explicitly passing the AllocaIP, could be needed with combined constructs. https://github.com/llvm/llvm-project/pull/93977 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits