reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
5676 if (!CGF.HaveInsertPoint()) 5720 CodeGenFunction::RunCleanupsScope Scope(CGF); 5725 emitSingleReductionCombiner(CGF, E, *IPriv, cast<DeclRefExpr>(*ILHS), 5747 CGF.CreateMemTemp(ReductionArrayTy, ".omp.reduction.red_list"); 5751 Address Elem = CGF.Builder.CreateConstArrayGEP(ReductionList, Idx); 5752 CGF.Builder.CreateStore( 5753 CGF.Builder.CreatePointerBitCastOrAddrSpaceCast( 5754 CGF.EmitLValue(RHSExprs[I]).getPointer(), CGF.VoidPtrTy), 5754 CGF.EmitLValue(RHSExprs[I]).getPointer(), CGF.VoidPtrTy), 5759 Elem = CGF.Builder.CreateConstArrayGEP(ReductionList, Idx); 5760 llvm::Value *Size = CGF.Builder.CreateIntCast( 5761 CGF.getVLASize( 5762 CGF.getContext().getAsVariableArrayType((*IPriv)->getType())) 5764 CGF.SizeTy, /*isSigned=*/false); 5765 CGF.Builder.CreateStore(CGF.Builder.CreateIntToPtr(Size, CGF.VoidPtrTy), 5765 CGF.Builder.CreateStore(CGF.Builder.CreateIntToPtr(Size, CGF.VoidPtrTy), 5765 CGF.Builder.CreateStore(CGF.Builder.CreateIntToPtr(Size, CGF.VoidPtrTy), 5772 Loc, CGF.ConvertTypeForMem(ReductionArrayTy)->getPointerTo(), Privates, 5781 llvm::Value *IdentTLoc = emitUpdateLocation(CGF, Loc, OMP_ATOMIC_REDUCE); 5782 llvm::Value *ThreadId = getThreadID(CGF, Loc); 5783 llvm::Value *ReductionArrayTySize = CGF.getTypeSize(ReductionArrayTy); 5784 llvm::Value *RL = CGF.Builder.CreatePointerBitCastOrAddrSpaceCast( 5785 ReductionList.getPointer(), CGF.VoidPtrTy); 5789 CGF.Builder.getInt32(RHSExprs.size()), // i32 <n> 5795 llvm::Value *Res = CGF.EmitRuntimeCall( 5801 llvm::BasicBlock *DefaultBB = CGF.createBasicBlock(".omp.reduction.default"); 5803 CGF.Builder.CreateSwitch(Res, DefaultBB, /*NumCases=*/2); 5811 llvm::BasicBlock *Case1BB = CGF.createBasicBlock(".omp.reduction.case1"); 5812 SwInst->addCase(CGF.Builder.getInt32(1), Case1BB); 5813 CGF.EmitBlock(Case1BB); 5842 RCG(CGF); 5844 CGF.EmitBranch(DefaultBB); 5851 llvm::BasicBlock *Case2BB = CGF.createBasicBlock(".omp.reduction.case2"); 5852 SwInst->addCase(CGF.Builder.getInt32(2), Case2BB); 5853 CGF.EmitBlock(Case2BB); 5965 AtomicRCG(CGF); 5967 AtomicRCG(CGF); 5970 CGF.EmitBranch(DefaultBB); 5971 CGF.EmitBlock(DefaultBB, /*IsFinished=*/true);