reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
 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);