@@ -2617,7 +2617,7 @@ void OpenMPIRBuilder::emitReductionListCopy(
26172617Expected<Function *> OpenMPIRBuilder::emitInterWarpCopyFunction (
26182618    const  LocationDescription &Loc, ArrayRef<ReductionInfo> ReductionInfos,
26192619    AttributeList FuncAttrs) {
2620-   IRBuilder<>::InsertPointGuard  IPG ( Builder);
2620+   InsertPointTy SavedIP =  Builder. saveIP ( );
26212621  LLVMContext &Ctx = M.getContext ();
26222622  FunctionType *FuncTy = FunctionType::get (
26232623      Builder.getVoidTy (), {Builder.getPtrTy (), Builder.getInt32Ty ()},
@@ -2630,7 +2630,6 @@ Expected<Function *> OpenMPIRBuilder::emitInterWarpCopyFunction(
26302630  WcFunc->addParamAttr (1 , Attribute::NoUndef);
26312631  BasicBlock *EntryBB = BasicBlock::Create (M.getContext (), " entry"  , WcFunc);
26322632  Builder.SetInsertPoint (EntryBB);
2633-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
26342633
26352634  //  ReduceList: thread local Reduce list.
26362635  //  At the stage of the computation when this function is called, partially
@@ -2845,6 +2844,7 @@ Expected<Function *> OpenMPIRBuilder::emitInterWarpCopyFunction(
28452844  }
28462845
28472846  Builder.CreateRetVoid ();
2847+   Builder.restoreIP (SavedIP);
28482848
28492849  return  WcFunc;
28502850}
@@ -2853,7 +2853,6 @@ Function *OpenMPIRBuilder::emitShuffleAndReduceFunction(
28532853    ArrayRef<ReductionInfo> ReductionInfos, Function *ReduceFn,
28542854    AttributeList FuncAttrs) {
28552855  LLVMContext &Ctx = M.getContext ();
2856-   IRBuilder<>::InsertPointGuard IPG (Builder);
28572856  FunctionType *FuncTy =
28582857      FunctionType::get (Builder.getVoidTy (),
28592858                        {Builder.getPtrTy (), Builder.getInt16Ty (),
@@ -2872,7 +2871,6 @@ Function *OpenMPIRBuilder::emitShuffleAndReduceFunction(
28722871  SarFunc->addParamAttr (3 , Attribute::SExt);
28732872  BasicBlock *EntryBB = BasicBlock::Create (M.getContext (), " entry"  , SarFunc);
28742873  Builder.SetInsertPoint (EntryBB);
2875-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
28762874
28772875  //  Thread local Reduce list used to host the values of data to be reduced.
28782876  Argument *ReduceListArg = SarFunc->getArg (0 );
@@ -3019,7 +3017,7 @@ Function *OpenMPIRBuilder::emitShuffleAndReduceFunction(
30193017Function *OpenMPIRBuilder::emitListToGlobalCopyFunction (
30203018    ArrayRef<ReductionInfo> ReductionInfos, Type *ReductionsBufferTy,
30213019    AttributeList FuncAttrs) {
3022-   IRBuilder<>::InsertPointGuard  IPG ( Builder);
3020+   OpenMPIRBuilder::InsertPointTy OldIP =  Builder. saveIP ( );
30233021  LLVMContext &Ctx = M.getContext ();
30243022  FunctionType *FuncTy = FunctionType::get (
30253023      Builder.getVoidTy (),
@@ -3035,7 +3033,6 @@ Function *OpenMPIRBuilder::emitListToGlobalCopyFunction(
30353033
30363034  BasicBlock *EntryBlock = BasicBlock::Create (Ctx, " entry"  , LtGCFunc);
30373035  Builder.SetInsertPoint (EntryBlock);
3038-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
30393036
30403037  //  Buffer: global reduction buffer.
30413038  Argument *BufferArg = LtGCFunc->getArg (0 );
@@ -3123,13 +3120,14 @@ Function *OpenMPIRBuilder::emitListToGlobalCopyFunction(
31233120  }
31243121
31253122  Builder.CreateRetVoid ();
3123+   Builder.restoreIP (OldIP);
31263124  return  LtGCFunc;
31273125}
31283126
31293127Function *OpenMPIRBuilder::emitListToGlobalReduceFunction (
31303128    ArrayRef<ReductionInfo> ReductionInfos, Function *ReduceFn,
31313129    Type *ReductionsBufferTy, AttributeList FuncAttrs) {
3132-   IRBuilder<>::InsertPointGuard  IPG ( Builder);
3130+   OpenMPIRBuilder::InsertPointTy OldIP =  Builder. saveIP ( );
31333131  LLVMContext &Ctx = M.getContext ();
31343132  FunctionType *FuncTy = FunctionType::get (
31353133      Builder.getVoidTy (),
@@ -3145,7 +3143,6 @@ Function *OpenMPIRBuilder::emitListToGlobalReduceFunction(
31453143
31463144  BasicBlock *EntryBlock = BasicBlock::Create (Ctx, " entry"  , LtGRFunc);
31473145  Builder.SetInsertPoint (EntryBlock);
3148-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
31493146
31503147  //  Buffer: global reduction buffer.
31513148  Argument *BufferArg = LtGRFunc->getArg (0 );
@@ -3206,13 +3203,14 @@ Function *OpenMPIRBuilder::emitListToGlobalReduceFunction(
32063203  Builder.CreateCall (ReduceFn, {LocalReduceListAddrCast, ReduceList})
32073204      ->addFnAttr (Attribute::NoUnwind);
32083205  Builder.CreateRetVoid ();
3206+   Builder.restoreIP (OldIP);
32093207  return  LtGRFunc;
32103208}
32113209
32123210Function *OpenMPIRBuilder::emitGlobalToListCopyFunction (
32133211    ArrayRef<ReductionInfo> ReductionInfos, Type *ReductionsBufferTy,
32143212    AttributeList FuncAttrs) {
3215-   IRBuilder<>::InsertPointGuard  IPG ( Builder);
3213+   OpenMPIRBuilder::InsertPointTy OldIP =  Builder. saveIP ( );
32163214  LLVMContext &Ctx = M.getContext ();
32173215  FunctionType *FuncTy = FunctionType::get (
32183216      Builder.getVoidTy (),
@@ -3228,7 +3226,6 @@ Function *OpenMPIRBuilder::emitGlobalToListCopyFunction(
32283226
32293227  BasicBlock *EntryBlock = BasicBlock::Create (Ctx, " entry"  , LtGCFunc);
32303228  Builder.SetInsertPoint (EntryBlock);
3231-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
32323229
32333230  //  Buffer: global reduction buffer.
32343231  Argument *BufferArg = LtGCFunc->getArg (0 );
@@ -3314,13 +3311,14 @@ Function *OpenMPIRBuilder::emitGlobalToListCopyFunction(
33143311  }
33153312
33163313  Builder.CreateRetVoid ();
3314+   Builder.restoreIP (OldIP);
33173315  return  LtGCFunc;
33183316}
33193317
33203318Function *OpenMPIRBuilder::emitGlobalToListReduceFunction (
33213319    ArrayRef<ReductionInfo> ReductionInfos, Function *ReduceFn,
33223320    Type *ReductionsBufferTy, AttributeList FuncAttrs) {
3323-   IRBuilder<>::InsertPointGuard  IPG ( Builder);
3321+   OpenMPIRBuilder::InsertPointTy OldIP =  Builder. saveIP ( );
33243322  LLVMContext &Ctx = M.getContext ();
33253323  auto  *FuncTy = FunctionType::get (
33263324      Builder.getVoidTy (),
@@ -3336,7 +3334,6 @@ Function *OpenMPIRBuilder::emitGlobalToListReduceFunction(
33363334
33373335  BasicBlock *EntryBlock = BasicBlock::Create (Ctx, " entry"  , LtGRFunc);
33383336  Builder.SetInsertPoint (EntryBlock);
3339-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
33403337
33413338  //  Buffer: global reduction buffer.
33423339  Argument *BufferArg = LtGRFunc->getArg (0 );
@@ -3397,6 +3394,7 @@ Function *OpenMPIRBuilder::emitGlobalToListReduceFunction(
33973394  Builder.CreateCall (ReduceFn, {ReduceList, ReductionList})
33983395      ->addFnAttr (Attribute::NoUnwind);
33993396  Builder.CreateRetVoid ();
3397+   Builder.restoreIP (OldIP);
34003398  return  LtGRFunc;
34013399}
34023400
@@ -3409,7 +3407,6 @@ std::string OpenMPIRBuilder::getReductionFuncName(StringRef Name) const {
34093407Expected<Function *> OpenMPIRBuilder::createReductionFunction (
34103408    StringRef ReducerName, ArrayRef<ReductionInfo> ReductionInfos,
34113409    ReductionGenCBKind ReductionGenCBKind, AttributeList FuncAttrs) {
3412-   IRBuilder<>::InsertPointGuard IPG (Builder);
34133410  auto  *FuncTy = FunctionType::get (Builder.getVoidTy (),
34143411                                   {Builder.getPtrTy (), Builder.getPtrTy ()},
34153412                                   /*  IsVarArg */   false );
@@ -3422,7 +3419,6 @@ Expected<Function *> OpenMPIRBuilder::createReductionFunction(
34223419  BasicBlock *EntryBB =
34233420      BasicBlock::Create (M.getContext (), " entry"  , ReductionFunc);
34243421  Builder.SetInsertPoint (EntryBB);
3425-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
34263422
34273423  //  Need to alloca memory here and deal with the pointers before getting
34283424  //  LHS/RHS pointers out
@@ -3750,12 +3746,10 @@ static Error populateReductionFunction(
37503746    Function *ReductionFunc,
37513747    ArrayRef<OpenMPIRBuilder::ReductionInfo> ReductionInfos,
37523748    IRBuilder<> &Builder, ArrayRef<bool > IsByRef, bool  IsGPU) {
3753-   IRBuilder<>::InsertPointGuard IPG (Builder);
37543749  Module *Module = ReductionFunc->getParent ();
37553750  BasicBlock *ReductionFuncBlock =
37563751      BasicBlock::Create (Module->getContext (), " "  , ReductionFunc);
37573752  Builder.SetInsertPoint (ReductionFuncBlock);
3758-   Builder.SetCurrentDebugLocation (llvm::DebugLoc ());
37593753  Value *LHSArrayPtr = nullptr ;
37603754  Value *RHSArrayPtr = nullptr ;
37613755  if  (IsGPU) {
0 commit comments