Lines Matching refs:Builder
137 IRBuilder<> &Builder);
139 IRBuilder<> &Builder);
141 bool SimplifyReturn(ReturnInst *RI, IRBuilder<> &Builder);
142 bool SimplifyResume(ResumeInst *RI, IRBuilder<> &Builder);
145 bool SimplifySwitch(SwitchInst *SI, IRBuilder<> &Builder);
147 bool SimplifyUncondBranch(BranchInst *BI, IRBuilder <> &Builder);
148 bool SimplifyCondBranch(BranchInst *BI, IRBuilder <>&Builder);
648 IRBuilder<> &Builder) {
684 Instruction *NI = Builder.CreateBr(ThisDef);
769 Instruction *NI = Builder.CreateBr(TheRealDest);
848 IRBuilder<> &Builder) {
1004 Builder.SetInsertPoint(PTI);
1007 CV = Builder.CreatePtrToInt(CV, DL.getIntPtrType(CV->getType()),
1012 SwitchInst *NewSI = Builder.CreateSwitch(CV, PredDefault,
1184 IRBuilder<true, NoFolder> Builder(NT);
1203 (Builder.CreateSelect(BI->getCondition(), BB1V, BB2V,
1625 IRBuilder<true, NoFolder> Builder(BI);
1630 Value *S = Builder.CreateSelect(BrCond, TrueV, FalseV, TrueV->getName() +
1645 IRBuilder<true, NoFolder> Builder
1663 Value *V = Builder.CreateSelect(BrCond, TrueV, FalseV,
1913 IRBuilder<true, NoFolder> Builder(InsertPt);
1932 cast<SelectInst>(Builder.CreateSelect(IfCond, TrueVal, FalseVal, ""));
1942 Builder.SetInsertPoint(OldTI);
1943 Builder.CreateBr(BB);
1952 IRBuilder<> &Builder) {
1967 Builder.SetInsertPoint(BI);
1974 Builder.CreateRetVoid();
2017 TrueValue = Builder.CreateSelect(BrCond, TrueValue,
2023 Builder.CreateRetVoid() : Builder.CreateRet(TrueValue);
2197 IRBuilder<> Builder(PBI);
2207 NewCond = Builder.CreateNot(NewCond,
2253 cast<Instruction>(Builder.CreateBinOp(Opc, PBI->getCondition(),
2316 cast<Instruction>(Builder.CreateNot(PBI->getCondition(),
2319 cast<Instruction>(Builder.CreateBinOp(Instruction::And,
2324 cast<Instruction>(Builder.CreateBinOp(Instruction::Or,
2332 cast<Instruction>(Builder.CreateBinOp(Instruction::And,
2337 cast<Instruction>(Builder.CreateNot(PBI->getCondition(),
2340 cast<Instruction>(Builder.CreateBinOp(Instruction::Or,
2816 IRBuilder<true, NoFolder> Builder(PBI);
2818 PBICond = Builder.CreateNot(PBICond, PBICond->getName()+".not");
2822 BICond = Builder.CreateNot(BICond, BICond->getName()+".not");
2825 Value *Cond = Builder.CreateOr(PBICond, BICond, "brmerge");
2874 (Builder.CreateSelect(PBICond, PBIV, BIV, PBIV->getName()+".mux"));
2915 IRBuilder<> Builder(OldTerm);
2916 Builder.SetCurrentDebugLocation(OldTerm->getDebugLoc());
2923 Builder.CreateBr(TrueBB);
2927 BranchInst *NewBI = Builder.CreateCondBr(Cond, TrueBB, FalseBB);
2943 Builder.CreateBr(TrueBB);
2946 Builder.CreateBr(FalseBB);
3027 ICmpInst *ICI, IRBuilder<> &Builder, const DataLayout &DL,
3124 Builder.SetInsertPoint(NewBB);
3125 Builder.SetCurrentDebugLocation(SI->getDebugLoc());
3126 Builder.CreateBr(SuccBlock);
3134 static bool SimplifyBranchOnICmpChain(BranchInst *BI, IRBuilder<> &Builder,
3190 Builder.SetInsertPoint(OldTI);
3193 Builder.CreateCondBr(ExtraCase, EdgeBB, NewBB);
3195 Builder.CreateCondBr(ExtraCase, NewBB, EdgeBB);
3208 Builder.SetInsertPoint(BI);
3211 CompVal = Builder.CreatePtrToInt(
3216 SwitchInst *New = Builder.CreateSwitch(CompVal, DefaultBB, Values.size());
3240 bool SimplifyCFGOpt::SimplifyResume(ResumeInst *RI, IRBuilder<> &Builder) {
3385 bool SimplifyCFGOpt::SimplifyReturn(ReturnInst *RI, IRBuilder<> &Builder) {
3429 SimplifyCondBranchToTwoReturns(BI, Builder))
3487 IRBuilder<> Builder(TI);
3497 Builder.CreateBr(BI->getSuccessor(1));
3500 Builder.CreateBr(BI->getSuccessor(0));
3552 static bool TurnSwitchRangeIntoICmp(SwitchInst *SI, IRBuilder<> &Builder) {
3607 Sub = Builder.CreateAdd(Sub, Offset, Sub->getName() + ".off");
3614 Cmp = Builder.CreateICmpULT(Sub, NumCases, "switch");
3615 BranchInst *NewBI = Builder.CreateCondBr(Cmp, ContiguousDest, OtherDest);
4019 IRBuilder<> &Builder) {
4033 Builder.CreateICmpEQ(Condition, SecondCase, "switch.selectcmp");
4034 SelectValue = Builder.CreateSelect(ValueCompare, ResultVector[1].first,
4038 Builder.CreateICmpEQ(Condition, FirstCase, "switch.selectcmp");
4039 return Builder.CreateSelect(ValueCompare, ResultVector[0].first, SelectValue,
4050 IRBuilder<> &Builder) {
4056 Builder.CreateBr(PHI->getParent());
4072 static bool SwitchToSelect(SwitchInst *SI, IRBuilder<> &Builder,
4088 Builder.SetInsertPoint(SI);
4091 DefaultResult, Cond, Builder);
4093 RemoveSwitchAfterSelectConversion(SI, PHI, SelectValue, Builder);
4111 /// Build instructions with Builder to retrieve the value at
4113 Value *BuildLookup(Value *Index, IRBuilder<> &Builder);
4277 Value *SwitchLookupTable::BuildLookup(Value *Index, IRBuilder<> &Builder) {
4283 Value *Result = Builder.CreateIntCast(Index, LinearMultiplier->getType(),
4286 Result = Builder.CreateMul(Result, LinearMultiplier, "switch.idx.mult");
4288 Result = Builder.CreateAdd(Result, LinearOffset, "switch.offset");
4298 Value *ShiftAmt = Builder.CreateZExtOrTrunc(Index, MapTy, "switch.cast");
4301 ShiftAmt = Builder.CreateMul(ShiftAmt,
4306 Value *DownShifted = Builder.CreateLShr(BitMap, ShiftAmt,
4309 return Builder.CreateTrunc(DownShifted, BitMapElementTy,
4318 Index = Builder.CreateZExt(Index,
4323 Value *GEPIndices[] = { Builder.getInt32(0), Index };
4324 Value *GEP = Builder.CreateInBoundsGEP(Array->getValueType(), Array,
4326 return Builder.CreateLoad(GEP, "switch.load");
4475 static bool SwitchToLookupTable(SwitchInst *SI, IRBuilder<> &Builder,
4576 Builder.SetInsertPoint(SI);
4577 Value *TableIndex = Builder.CreateSub(SI->getCondition(), MinCaseVal,
4597 Builder.CreateBr(LookupBB);
4601 Value *Cmp = Builder.CreateICmpULT(TableIndex, ConstantInt::get(
4603 RangeCheckBranch = Builder.CreateCondBr(Cmp, LookupBB, SI->getDefaultDest());
4607 Builder.SetInsertPoint(LookupBB);
4638 Value *MaskIndex = Builder.CreateZExtOrTrunc(TableIndex, MapTy,
4640 Value *Shifted = Builder.CreateLShr(TableMask, MaskIndex,
4642 Value *LoBit = Builder.CreateTrunc(Shifted,
4645 Builder.CreateCondBr(LoBit, LookupBB, SI->getDefaultDest());
4647 Builder.SetInsertPoint(LookupBB);
4667 Value *Result = Table.BuildLookup(TableIndex, Builder);
4673 Builder.CreateRet(Result);
4692 Builder.CreateBr(CommonDest);
4710 bool SimplifyCFGOpt::SimplifySwitch(SwitchInst *SI, IRBuilder<> &Builder) {
4717 if (SimplifyEqualityComparisonWithOnlyPredecessor(SI, OnlyPred, Builder))
4732 if (FoldValueComparisonIntoPredecessors(SI, Builder))
4737 if (TurnSwitchRangeIntoICmp(SI, Builder))
4744 if (SwitchToSelect(SI, Builder, AC, DL))
4750 if (SwitchToLookupTable(SI, Builder, DL, TTI))
4861 IRBuilder<> Builder(BI);
4862 Builder.CreateUnreachable();
4869 bool SimplifyCFGOpt::SimplifyUncondBranch(BranchInst *BI, IRBuilder<> &Builder){
4888 TryToSimplifyUncondBranchWithICmpInIt(ICI, Builder, DL, TTI,
4922 bool SimplifyCFGOpt::SimplifyCondBranch(BranchInst *BI, IRBuilder<> &Builder) {
4931 if (SimplifyEqualityComparisonWithOnlyPredecessor(BI, OnlyPred, Builder))
4941 if (FoldValueComparisonIntoPredecessors(BI, Builder))
4948 if (&*I == BI && FoldValueComparisonIntoPredecessors(BI, Builder))
4954 if (SimplifyBranchOnICmpChain(BI, Builder, DL))
5064 IRBuilder<> Builder(T);
5070 Builder.CreateUnreachable();
5072 Builder.CreateBr(BI->getSuccessor(0) == BB ? BI->getSuccessor(1) :
5116 IRBuilder<> Builder(BB);
5124 Builder.SetInsertPoint(BB->getTerminator());
5127 if (SimplifyUncondBranch(BI, Builder)) return true;
5129 if (SimplifyCondBranch(BI, Builder)) return true;
5132 if (SimplifyReturn(RI, Builder)) return true;
5134 if (SimplifyResume(RI, Builder)) return true;
5139 if (SimplifySwitch(SI, Builder)) return true;