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

References

lib/CodeGen/ExpandMemCmp.cpp
  267     Source = Builder.CreateGEP(
  268         ByteType, Builder.CreateBitCast(Source, ByteType->getPointerTo()),
  271   return Builder.CreateBitCast(Source, LoadSizeType->getPointerTo());
  280   Builder.SetInsertPoint(LoadCmpBlocks[BlockIndex]);
  287   Value *LoadSrc1 = Builder.CreateLoad(LoadSizeType, Source1);
  288   Value *LoadSrc2 = Builder.CreateLoad(LoadSizeType, Source2);
  290   LoadSrc1 = Builder.CreateZExt(LoadSrc1, Type::getInt32Ty(CI->getContext()));
  291   LoadSrc2 = Builder.CreateZExt(LoadSrc2, Type::getInt32Ty(CI->getContext()));
  292   Value *Diff = Builder.CreateSub(LoadSrc1, LoadSrc2);
  299     Value *Cmp = Builder.CreateICmp(ICmpInst::ICMP_NE, Diff,
  303     Builder.Insert(CmpBr);
  307     Builder.Insert(CmpBr);
  326     Builder.SetInsertPoint(CI);
  328     Builder.SetInsertPoint(LoadCmpBlocks[BlockIndex]);
  353       LoadSrc1 = Builder.CreateLoad(LoadSizeType, Source1);
  359       LoadSrc2 = Builder.CreateLoad(LoadSizeType, Source2);
  363         LoadSrc1 = Builder.CreateZExt(LoadSrc1, MaxLoadType);
  364         LoadSrc2 = Builder.CreateZExt(LoadSrc2, MaxLoadType);
  368       Diff = Builder.CreateXor(LoadSrc1, LoadSrc2);
  369       Diff = Builder.CreateZExt(Diff, MaxLoadType);
  373       Cmp = Builder.CreateICmpNE(LoadSrc1, LoadSrc2);
  380       Value *Or = Builder.CreateOr(InList[i], InList[i + 1]);
  398     Cmp = Builder.CreateICmpNE(OrList[0], ConstantInt::get(Diff->getType(), 0));
  414   Builder.Insert(CmpBr);
  448   Builder.SetInsertPoint(LoadCmpBlocks[BlockIndex]);
  456   Value *LoadSrc1 = Builder.CreateLoad(LoadSizeType, Source1);
  457   Value *LoadSrc2 = Builder.CreateLoad(LoadSizeType, Source2);
  462     LoadSrc1 = Builder.CreateCall(Bswap, LoadSrc1);
  463     LoadSrc2 = Builder.CreateCall(Bswap, LoadSrc2);
  467     LoadSrc1 = Builder.CreateZExt(LoadSrc1, MaxLoadType);
  468     LoadSrc2 = Builder.CreateZExt(LoadSrc2, MaxLoadType);
  478   Value *Cmp = Builder.CreateICmp(ICmpInst::ICMP_EQ, LoadSrc1, LoadSrc2);
  485   Builder.Insert(CmpBr);
  504     Builder.SetInsertPoint(ResBlock.BB, InsertPt);
  508     Builder.Insert(NewBr);
  512   Builder.SetInsertPoint(ResBlock.BB, InsertPt);
  514   Value *Cmp = Builder.CreateICmp(ICmpInst::ICMP_ULT, ResBlock.PhiSrc1,
  518       Builder.CreateSelect(Cmp, ConstantInt::get(Builder.getInt32Ty(), -1),
  518       Builder.CreateSelect(Cmp, ConstantInt::get(Builder.getInt32Ty(), -1),
  519                            ConstantInt::get(Builder.getInt32Ty(), 1));
  522   Builder.Insert(NewBr);
  528   Builder.SetInsertPoint(ResBlock.BB);
  531       Builder.CreatePHI(MaxLoadType, NumLoadsNonOneByte, "phi.src1");
  533       Builder.CreatePHI(MaxLoadType, NumLoadsNonOneByte, "phi.src2");
  537   Builder.SetInsertPoint(&EndBlock->front());
  538   PhiRes = Builder.CreatePHI(Type::getInt32Ty(CI->getContext()), 2, "phi.res");
  560   return Builder.CreateZExt(Cmp, Type::getInt32Ty(CI->getContext()));
  572     Source1 = Builder.CreateBitCast(Source1, LoadSizeType->getPointerTo());
  574     Source2 = Builder.CreateBitCast(Source2, LoadSizeType->getPointerTo());
  577   Value *LoadSrc1 = Builder.CreateLoad(LoadSizeType, Source1);
  578   Value *LoadSrc2 = Builder.CreateLoad(LoadSizeType, Source2);
  583     LoadSrc1 = Builder.CreateCall(Bswap, LoadSrc1);
  584     LoadSrc2 = Builder.CreateCall(Bswap, LoadSrc2);
  590     LoadSrc1 = Builder.CreateZExt(LoadSrc1, Builder.getInt32Ty());
  590     LoadSrc1 = Builder.CreateZExt(LoadSrc1, Builder.getInt32Ty());
  591     LoadSrc2 = Builder.CreateZExt(LoadSrc2, Builder.getInt32Ty());
  591     LoadSrc2 = Builder.CreateZExt(LoadSrc2, Builder.getInt32Ty());
  592     return Builder.CreateSub(LoadSrc1, LoadSrc2);
  601   Value *CmpUGT = Builder.CreateICmpUGT(LoadSrc1, LoadSrc2);
  602   Value *CmpULT = Builder.CreateICmpULT(LoadSrc1, LoadSrc2);
  603   Value *ZextUGT = Builder.CreateZExt(CmpUGT, Builder.getInt32Ty());
  603   Value *ZextUGT = Builder.CreateZExt(CmpUGT, Builder.getInt32Ty());
  604   Value *ZextULT = Builder.CreateZExt(CmpULT, Builder.getInt32Ty());
  604   Value *ZextULT = Builder.CreateZExt(CmpULT, Builder.getInt32Ty());
  605   return Builder.CreateSub(ZextUGT, ZextULT);
  632   Builder.SetCurrentDebugLocation(CI->getDebugLoc());