reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
341 ASTContext &Ctx = CGF.getContext(); 349 llvm::Value *NumElts = CGF.emitArrayLength(AT, BaseEltQT, DstAddr); 354 CGF.Builder.CreateNUWMul(BaseEltSizeVal, NumElts); 355 Address BC = CGF.Builder.CreateBitCast(DstAddr, CGF.CGM.Int8PtrTy); 355 Address BC = CGF.Builder.CreateBitCast(DstAddr, CGF.CGM.Int8PtrTy); 357 CGF.Builder.CreateInBoundsGEP(BC.getPointer(), SizeInBytes); 358 DstArrayEnd = CGF.Builder.CreateBitCast(DstArrayEnd, CGF.CGM.Int8PtrPtrTy, 358 DstArrayEnd = CGF.Builder.CreateBitCast(DstArrayEnd, CGF.CGM.Int8PtrPtrTy, 360 llvm::BasicBlock *PreheaderBB = CGF.Builder.GetInsertBlock(); 363 llvm::BasicBlock *HeaderBB = CGF.createBasicBlock("loop.header"); 364 CGF.EmitBlock(HeaderBB); 368 PHIs[I] = CGF.Builder.CreatePHI(CGF.CGM.Int8PtrPtrTy, 2, "addr.cur"); 368 PHIs[I] = CGF.Builder.CreatePHI(CGF.CGM.Int8PtrPtrTy, 2, "addr.cur"); 373 llvm::BasicBlock *ExitBB = CGF.createBasicBlock("loop.exit"); 374 llvm::BasicBlock *LoopBB = CGF.createBasicBlock("loop.body"); 379 CGF.Builder.CreateICmpEQ(PHIs[DstIdx], DstArrayEnd, "done"); 380 CGF.Builder.CreateCondBr(Done, ExitBB, LoopBB); 383 CGF.EmitBlock(LoopBB); 396 LoopBB = CGF.Builder.GetInsertBlock(); 406 CGF.Builder.CreateBr(HeaderBB); 407 CGF.EmitBlock(ExitBB);