Lines Matching full:builder

23   IRBuilder<> Builder(CXI);  in lowerAtomicCmpXchgInst()  local
28 LoadInst *Orig = Builder.CreateLoad(Val->getType(), Ptr); in lowerAtomicCmpXchgInst()
29 Value *Equal = Builder.CreateICmpEQ(Orig, Cmp); in lowerAtomicCmpXchgInst()
30 Value *Res = Builder.CreateSelect(Equal, Val, Orig); in lowerAtomicCmpXchgInst()
31 Builder.CreateStore(Res, Ptr); in lowerAtomicCmpXchgInst()
33 Res = Builder.CreateInsertValue(PoisonValue::get(CXI->getType()), Orig, 0); in lowerAtomicCmpXchgInst()
34 Res = Builder.CreateInsertValue(Res, Equal, 1); in lowerAtomicCmpXchgInst()
42 IRBuilderBase &Builder, Value *Loaded, in buildAtomicRMWValue() argument
49 return Builder.CreateAdd(Loaded, Val, "new"); in buildAtomicRMWValue()
51 return Builder.CreateSub(Loaded, Val, "new"); in buildAtomicRMWValue()
53 return Builder.CreateAnd(Loaded, Val, "new"); in buildAtomicRMWValue()
55 return Builder.CreateNot(Builder.CreateAnd(Loaded, Val), "new"); in buildAtomicRMWValue()
57 return Builder.CreateOr(Loaded, Val, "new"); in buildAtomicRMWValue()
59 return Builder.CreateXor(Loaded, Val, "new"); in buildAtomicRMWValue()
61 NewVal = Builder.CreateICmpSGT(Loaded, Val); in buildAtomicRMWValue()
62 return Builder.CreateSelect(NewVal, Loaded, Val, "new"); in buildAtomicRMWValue()
64 NewVal = Builder.CreateICmpSLE(Loaded, Val); in buildAtomicRMWValue()
65 return Builder.CreateSelect(NewVal, Loaded, Val, "new"); in buildAtomicRMWValue()
67 NewVal = Builder.CreateICmpUGT(Loaded, Val); in buildAtomicRMWValue()
68 return Builder.CreateSelect(NewVal, Loaded, Val, "new"); in buildAtomicRMWValue()
70 NewVal = Builder.CreateICmpULE(Loaded, Val); in buildAtomicRMWValue()
71 return Builder.CreateSelect(NewVal, Loaded, Val, "new"); in buildAtomicRMWValue()
73 return Builder.CreateFAdd(Loaded, Val, "new"); in buildAtomicRMWValue()
75 return Builder.CreateFSub(Loaded, Val, "new"); in buildAtomicRMWValue()
77 return Builder.CreateMaxNum(Loaded, Val); in buildAtomicRMWValue()
79 return Builder.CreateMinNum(Loaded, Val); in buildAtomicRMWValue()
82 Value *Inc = Builder.CreateAdd(Loaded, One); in buildAtomicRMWValue()
83 Value *Cmp = Builder.CreateICmpUGE(Loaded, Val); in buildAtomicRMWValue()
85 return Builder.CreateSelect(Cmp, Zero, Inc, "new"); in buildAtomicRMWValue()
91 Value *Dec = Builder.CreateSub(Loaded, One); in buildAtomicRMWValue()
92 Value *CmpEq0 = Builder.CreateICmpEQ(Loaded, Zero); in buildAtomicRMWValue()
93 Value *CmpOldGtVal = Builder.CreateICmpUGT(Loaded, Val); in buildAtomicRMWValue()
94 Value *Or = Builder.CreateOr(CmpEq0, CmpOldGtVal); in buildAtomicRMWValue()
95 return Builder.CreateSelect(Or, Val, Dec, "new"); in buildAtomicRMWValue()
103 IRBuilder<> Builder(RMWI); in lowerAtomicRMWInst() local
104 Builder.setIsFPConstrained( in lowerAtomicRMWInst()
110 LoadInst *Orig = Builder.CreateLoad(Val->getType(), Ptr); in lowerAtomicRMWInst()
111 Value *Res = buildAtomicRMWValue(RMWI->getOperation(), Builder, Orig, Val); in lowerAtomicRMWInst()
112 Builder.CreateStore(Res, Ptr); in lowerAtomicRMWInst()