Lines Matching refs:IRB
53 IRBuilder<> *IRB = nullptr; member in __anonbaf99a280111::SPIRVEmitIntrinsics
71 return IRB->CreateIntrinsic(IntrID, {Types}, Args); in buildIntrWithMD()
156 IRB->SetInsertPoint(U); in replaceMemInstrUses()
158 IRB->CreateIntrinsic(Intrinsic::spv_assign_type, {New->getType()}, Args); in replaceMemInstrUses()
184 IRB->SetInsertPoint(I); in preprocessUndefs()
185 auto *IntrUndef = IRB->CreateIntrinsic(Intrinsic::spv_undef, {}, {}); in preprocessUndefs()
206 IRB->SetInsertPoint(I); in preprocessCompositeConstants()
208 IRB->CreateIntrinsic(Intrinsic::spv_const_composite, {}, {Args}); in preprocessCompositeConstants()
240 IRB->SetInsertPoint(&I); in visitSwitchInst()
241 IRB->CreateIntrinsic(Intrinsic::spv_switch, {I.getOperand(0)->getType()}, in visitSwitchInst()
249 Args.push_back(IRB->getInt1(I.isInBounds())); in visitGetElementPtrInst()
252 auto *NewI = IRB->CreateIntrinsic(Intrinsic::spv_gep, {Types}, {Args}); in visitGetElementPtrInst()
273 auto *NewI = IRB->CreateIntrinsic(Intrinsic::spv_bitcast, {Types}, {Args}); in visitBitCastInst()
322 setInsertPointSkippingPhis(*IRB, I); in insertPtrCastInstr()
376 {IRB->getInt32(AddressSpace)}); in insertPtrCastInstr()
380 SmallVector<Value *, 2> Args = {Pointer, VMD, IRB->getInt32(AddressSpace)}; in insertPtrCastInstr()
382 IRB->CreateIntrinsic(Intrinsic::spv_ptrcast, {Types}, Args); in insertPtrCastInstr()
393 auto *NewI = IRB->CreateIntrinsic(Intrinsic::spv_insertelt, {Types}, {Args}); in visitInsertElementInst()
406 auto *NewI = IRB->CreateIntrinsic(Intrinsic::spv_extractelt, {Types}, {Args}); in visitExtractElementInst()
419 Args.push_back(UndefValue::get(IRB->getInt32Ty())); in visitInsertValueInst()
423 Args.push_back(IRB->getInt32(Op)); in visitInsertValueInst()
425 IRB->CreateIntrinsic(Intrinsic::spv_insertv, {Types}, {Args}); in visitInsertValueInst()
435 Args.push_back(IRB->getInt32(Op)); in visitExtractValueInst()
437 IRB->CreateIntrinsic(Intrinsic::spv_extractv, {I.getType()}, {Args}); in visitExtractValueInst()
451 IRB->CreateIntrinsic(Intrinsic::spv_load, {I.getOperand(0)->getType()}, in visitLoadInst()
452 {I.getPointerOperand(), IRB->getInt16(Flags), in visitLoadInst()
453 IRB->getInt8(I.getAlign().value())}); in visitLoadInst()
466 auto *NewI = IRB->CreateIntrinsic( in visitStoreInst()
468 {I.getValueOperand(), PtrOp, IRB->getInt16(Flags), in visitStoreInst()
469 IRB->getInt8(I.getAlign().value())}); in visitStoreInst()
477 auto *NewI = IRB->CreateIntrinsic(Intrinsic::spv_alloca, {PtrTy}, {}); in visitAllocaInst()
490 Args.push_back(IRB->getInt32(I.getSyncScopeID())); in visitAtomicCmpXchgInst()
491 Args.push_back(IRB->getInt32( in visitAtomicCmpXchgInst()
493 Args.push_back(IRB->getInt32( in visitAtomicCmpXchgInst()
495 auto *NewI = IRB->CreateIntrinsic(Intrinsic::spv_cmpxchg, in visitAtomicCmpXchgInst()
502 IRB->SetInsertPoint(&I); in visitUnreachableInst()
503 IRB->CreateIntrinsic(Intrinsic::spv_unreachable, {}, {}); in visitUnreachableInst()
513 Type *Ty = isAggrToReplace(Init) ? IRB->getInt32Ty() : Init->getType(); in processGlobalValue()
514 Constant *Const = isAggrToReplace(Init) ? IRB->getInt32(1) : Init; in processGlobalValue()
515 auto *InitInst = IRB->CreateIntrinsic(Intrinsic::spv_init_global, in processGlobalValue()
521 IRB->CreateIntrinsic(Intrinsic::spv_unref_global, GV.getType(), &GV); in processGlobalValue()
528 setInsertPointSkippingPhis(*IRB, I->getNextNode()); in insertAssignPtrTypeIntrs()
543 {IRB->getInt32(AddressSpace)}); in insertAssignPtrTypeIntrs()
549 setInsertPointSkippingPhis(*IRB, I->getNextNode()); in insertAssignTypeIntrs()
566 setInsertPointSkippingPhis(*IRB, I); in insertAssignTypeIntrs()
568 buildIntrWithMD(Intrinsic::spv_assign_type, {IRB->getInt32Ty()}, Op, in insertAssignTypeIntrs()
569 UndefValue::get(IRB->getInt32Ty()), {}); in insertAssignTypeIntrs()
581 IRB->SetInsertPoint(I->getNextNode()); in processInstrAfterVisit()
582 Type *Ty = IRB->getInt32Ty(); in processInstrAfterVisit()
599 IRB->SetInsertPoint(I); in processInstrAfterVisit()
606 setInsertPointSkippingPhis(*IRB, I->getNextNode()); in processInstrAfterVisit()
608 addStringImm(I->getName(), *IRB, Args); in processInstrAfterVisit()
609 IRB->CreateIntrinsic(Intrinsic::spv_assign_name, {I->getType()}, Args); in processInstrAfterVisit()
617 IRB = new IRBuilder<>(Func.getContext()); in runOnFunction()
632 IRB->SetInsertPoint(&Func.getEntryBlock(), Func.getEntryBlock().begin()); in runOnFunction()
651 IRB->SetInsertPoint(I->getNextNode()); in runOnFunction()