Skip to content

Commit 74b7abf

Browse files
authored
[IRBuilder] Add new overload for CreateIntrinsic (#131942)
Add a new `CreateIntrinsic` overload with no `Types`, useful for creating calls to non-overloaded intrinsics that don't need additional mangling.
1 parent 6894734 commit 74b7abf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+147
-141
lines changed

clang/lib/CodeGen/CGHLSLBuiltins.cpp

+6-8
Original file line numberDiff line numberDiff line change
@@ -66,21 +66,21 @@ static Value *handleHlslClip(const CallExpr *E, CodeGenFunction *CGF) {
6666
CMP = CGF->Builder.CreateIntrinsic(
6767
CGF->Builder.getInt1Ty(), CGF->CGM.getHLSLRuntime().getAnyIntrinsic(),
6868
{FCompInst});
69-
} else
69+
} else {
7070
CMP = CGF->Builder.CreateFCmpOLT(Op0, FZeroConst);
71+
}
7172

72-
if (CGF->CGM.getTarget().getTriple().isDXIL())
73-
LastInstr =
74-
CGF->Builder.CreateIntrinsic(CGF->VoidTy, Intrinsic::dx_discard, {CMP});
75-
else if (CGF->CGM.getTarget().getTriple().isSPIRV()) {
73+
if (CGF->CGM.getTarget().getTriple().isDXIL()) {
74+
LastInstr = CGF->Builder.CreateIntrinsic(Intrinsic::dx_discard, {CMP});
75+
} else if (CGF->CGM.getTarget().getTriple().isSPIRV()) {
7676
BasicBlock *LT0 = CGF->createBasicBlock("lt0", CGF->CurFn);
7777
BasicBlock *End = CGF->createBasicBlock("end", CGF->CurFn);
7878

7979
CGF->Builder.CreateCondBr(CMP, LT0, End);
8080

8181
CGF->Builder.SetInsertPoint(LT0);
8282

83-
CGF->Builder.CreateIntrinsic(CGF->VoidTy, Intrinsic::spv_discard, {});
83+
CGF->Builder.CreateIntrinsic(Intrinsic::spv_discard, {});
8484

8585
LastInstr = CGF->Builder.CreateBr(End);
8686
CGF->Builder.SetInsertPoint(End);
@@ -109,7 +109,6 @@ static Value *handleHlslSplitdouble(const CallExpr *E, CodeGenFunction *CGF) {
109109
Value *HighBits = nullptr;
110110

111111
if (CGF->CGM.getTarget().getTriple().isDXIL()) {
112-
113112
llvm::Type *RetElementTy = CGF->Int32Ty;
114113
if (auto *Op0VecTy = E->getArg(0)->getType()->getAs<clang::VectorType>())
115114
RetElementTy = llvm::VectorType::get(
@@ -121,7 +120,6 @@ static Value *handleHlslSplitdouble(const CallExpr *E, CodeGenFunction *CGF) {
121120

122121
LowBits = CGF->Builder.CreateExtractValue(CI, 0);
123122
HighBits = CGF->Builder.CreateExtractValue(CI, 1);
124-
125123
} else {
126124
// For Non DXIL targets we generate the instructions.
127125

clang/lib/CodeGen/CGHLSLRuntime.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -385,8 +385,8 @@ void CGHLSLRuntime::emitEntryFunction(const FunctionDecl *FD,
385385
SmallVector<OperandBundleDef, 1> OB;
386386
if (CGM.shouldEmitConvergenceTokens()) {
387387
assert(EntryFn->isConvergent());
388-
llvm::Value *I = B.CreateIntrinsic(
389-
llvm::Intrinsic::experimental_convergence_entry, {}, {});
388+
llvm::Value *I =
389+
B.CreateIntrinsic(llvm::Intrinsic::experimental_convergence_entry, {});
390390
llvm::Value *bundleArgs[] = {I};
391391
OB.emplace_back("convergencectrl", bundleArgs);
392392
}

llvm/include/llvm/IR/IRBuilder.h

+8
Original file line numberDiff line numberDiff line change
@@ -1004,6 +1004,14 @@ class IRBuilderBase {
10041004
ArrayRef<Value *> Args, FMFSource FMFSource = {},
10051005
const Twine &Name = "");
10061006

1007+
/// Create a call to non-overloaded intrinsic \p ID with \p Args. If
1008+
/// \p FMFSource is provided, copy fast-math-flags from that instruction to
1009+
/// the intrinsic.
1010+
CallInst *CreateIntrinsic(Intrinsic::ID ID, ArrayRef<Value *> Args,
1011+
FMFSource FMFSource = {}, const Twine &Name = "") {
1012+
return CreateIntrinsic(ID, /*Types=*/{}, Args, FMFSource, Name);
1013+
}
1014+
10071015
/// Create call to the minnum intrinsic.
10081016
Value *CreateMinNum(Value *LHS, Value *RHS, FMFSource FMFSource = {},
10091017
const Twine &Name = "") {

llvm/lib/CodeGen/SafeStack.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ Value *SafeStack::getStackGuard(IRBuilder<> &IRB, Function &F) {
367367

368368
if (!StackGuardVar) {
369369
TL.insertSSPDeclarations(*M);
370-
return IRB.CreateIntrinsic(Intrinsic::stackguard, {}, {});
370+
return IRB.CreateIntrinsic(Intrinsic::stackguard, {});
371371
}
372372

373373
return IRB.CreateLoad(StackPtrTy, StackGuardVar, "StackGuard");

llvm/lib/CodeGen/StackProtector.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ static Value *getStackGuard(const TargetLoweringBase *TLI, Module *M,
543543
if (SupportsSelectionDAGSP)
544544
*SupportsSelectionDAGSP = true;
545545
TLI->insertSSPDeclarations(*M);
546-
return B.CreateIntrinsic(Intrinsic::stackguard, {}, {});
546+
return B.CreateIntrinsic(Intrinsic::stackguard, {});
547547
}
548548

549549
/// Insert code into the entry block that stores the stack guard
@@ -564,7 +564,7 @@ static bool CreatePrologue(Function *F, Module *M, Instruction *CheckLoc,
564564
AI = B.CreateAlloca(PtrTy, nullptr, "StackGuardSlot");
565565

566566
Value *GuardSlot = getStackGuard(TLI, M, B, &SupportsSelectionDAGSP);
567-
B.CreateIntrinsic(Intrinsic::stackprotector, {}, {GuardSlot, AI});
567+
B.CreateIntrinsic(Intrinsic::stackprotector, {GuardSlot, AI});
568568
return SupportsSelectionDAGSP;
569569
}
570570

llvm/lib/IR/AutoUpgrade.cpp

+26-26
Original file line numberDiff line numberDiff line change
@@ -1767,7 +1767,7 @@ static Value *upgradeX86VPERMT2Intrinsics(IRBuilder<> &Builder, CallBase &CI,
17671767
if (!IndexForm)
17681768
std::swap(Args[0], Args[1]);
17691769

1770-
Value *V = Builder.CreateIntrinsic(IID, {}, Args);
1770+
Value *V = Builder.CreateIntrinsic(IID, Args);
17711771
Value *PassThru = ZeroMask ? ConstantAggregateZero::get(Ty)
17721772
: Builder.CreateBitCast(CI.getArgOperand(1),
17731773
Ty);
@@ -2022,8 +2022,8 @@ static Value *upgradeMaskedCompare(IRBuilder<> &Builder, CallBase &CI,
20222022
// Replace a masked intrinsic with an older unmasked intrinsic.
20232023
static Value *upgradeX86MaskedShift(IRBuilder<> &Builder, CallBase &CI,
20242024
Intrinsic::ID IID) {
2025-
Value *Rep = Builder.CreateIntrinsic(
2026-
IID, {}, {CI.getArgOperand(0), CI.getArgOperand(1)});
2025+
Value *Rep =
2026+
Builder.CreateIntrinsic(IID, {CI.getArgOperand(0), CI.getArgOperand(1)});
20272027
return emitX86Select(Builder, CI.getArgOperand(3), Rep, CI.getArgOperand(2));
20282028
}
20292029

@@ -2280,7 +2280,7 @@ static bool upgradeAVX512MaskToSelect(StringRef Name, IRBuilder<> &Builder,
22802280
SmallVector<Value *, 4> Args(CI.args());
22812281
Args.pop_back();
22822282
Args.pop_back();
2283-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
2283+
Rep = Builder.CreateIntrinsic(IID, Args);
22842284
unsigned NumArgs = CI.arg_size();
22852285
Rep = emitX86Select(Builder, CI.getArgOperand(NumArgs - 1), Rep,
22862286
CI.getArgOperand(NumArgs - 2));
@@ -2510,7 +2510,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
25102510
: Intrinsic::x86_avx512_sqrt_pd_512;
25112511

25122512
Value *Args[] = {CI->getArgOperand(0), CI->getArgOperand(3)};
2513-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
2513+
Rep = Builder.CreateIntrinsic(IID, Args);
25142514
} else {
25152515
Rep = Builder.CreateIntrinsic(Intrinsic::sqrt, CI->getType(),
25162516
{CI->getArgOperand(0)});
@@ -2637,8 +2637,8 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
26372637
break;
26382638
}
26392639

2640-
Rep = Builder.CreateIntrinsic(IID, {},
2641-
{CI->getOperand(0), CI->getArgOperand(1)});
2640+
Rep =
2641+
Builder.CreateIntrinsic(IID, {CI->getOperand(0), CI->getArgOperand(1)});
26422642
Rep = applyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(2));
26432643
} else if (Name.starts_with("avx512.mask.fpclass.p")) {
26442644
Type *OpTy = CI->getArgOperand(0)->getType();
@@ -2660,8 +2660,8 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
26602660
else
26612661
llvm_unreachable("Unexpected intrinsic");
26622662

2663-
Rep = Builder.CreateIntrinsic(IID, {},
2664-
{CI->getOperand(0), CI->getArgOperand(1)});
2663+
Rep =
2664+
Builder.CreateIntrinsic(IID, {CI->getOperand(0), CI->getArgOperand(1)});
26652665
Rep = applyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(2));
26662666
} else if (Name.starts_with("avx512.cmp.p")) {
26672667
SmallVector<Value *, 4> Args(CI->args());
@@ -2689,7 +2689,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
26892689
std::swap(Mask, Args.back());
26902690
Args.push_back(Mask);
26912691

2692-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
2692+
Rep = Builder.CreateIntrinsic(IID, Args);
26932693
} else if (Name.starts_with("avx512.mask.cmp.")) {
26942694
// Integer compare intrinsics.
26952695
unsigned Imm = cast<ConstantInt>(CI->getArgOperand(2))->getZExtValue();
@@ -2905,7 +2905,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
29052905
} else if (Name == "sse42.crc32.64.8") {
29062906
Value *Trunc0 =
29072907
Builder.CreateTrunc(CI->getArgOperand(0), Type::getInt32Ty(C));
2908-
Rep = Builder.CreateIntrinsic(Intrinsic::x86_sse42_crc32_32_8, {},
2908+
Rep = Builder.CreateIntrinsic(Intrinsic::x86_sse42_crc32_32_8,
29092909
{Trunc0, CI->getArgOperand(1)});
29102910
Rep = Builder.CreateZExt(Rep, CI->getType(), "");
29112911
} else if (Name.starts_with("avx.vbroadcast.s") ||
@@ -3395,7 +3395,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
33953395
IID = Intrinsic::x86_avx512_add_pd_512;
33963396

33973397
Rep = Builder.CreateIntrinsic(
3398-
IID, {},
3398+
IID,
33993399
{CI->getArgOperand(0), CI->getArgOperand(1), CI->getArgOperand(4)});
34003400
} else {
34013401
Rep = Builder.CreateFAdd(CI->getArgOperand(0), CI->getArgOperand(1));
@@ -3411,7 +3411,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
34113411
IID = Intrinsic::x86_avx512_div_pd_512;
34123412

34133413
Rep = Builder.CreateIntrinsic(
3414-
IID, {},
3414+
IID,
34153415
{CI->getArgOperand(0), CI->getArgOperand(1), CI->getArgOperand(4)});
34163416
} else {
34173417
Rep = Builder.CreateFDiv(CI->getArgOperand(0), CI->getArgOperand(1));
@@ -3427,7 +3427,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
34273427
IID = Intrinsic::x86_avx512_mul_pd_512;
34283428

34293429
Rep = Builder.CreateIntrinsic(
3430-
IID, {},
3430+
IID,
34313431
{CI->getArgOperand(0), CI->getArgOperand(1), CI->getArgOperand(4)});
34323432
} else {
34333433
Rep = Builder.CreateFMul(CI->getArgOperand(0), CI->getArgOperand(1));
@@ -3443,7 +3443,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
34433443
IID = Intrinsic::x86_avx512_sub_pd_512;
34443444

34453445
Rep = Builder.CreateIntrinsic(
3446-
IID, {},
3446+
IID,
34473447
{CI->getArgOperand(0), CI->getArgOperand(1), CI->getArgOperand(4)});
34483448
} else {
34493449
Rep = Builder.CreateFSub(CI->getArgOperand(0), CI->getArgOperand(1));
@@ -3461,7 +3461,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
34613461
Intrinsic::ID IID = MinMaxTbl[IsMin][IsDouble];
34623462

34633463
Rep = Builder.CreateIntrinsic(
3464-
IID, {},
3464+
IID,
34653465
{CI->getArgOperand(0), CI->getArgOperand(1), CI->getArgOperand(4)});
34663466
Rep =
34673467
emitX86Select(Builder, CI->getArgOperand(3), Rep, CI->getArgOperand(2));
@@ -3759,7 +3759,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
37593759
IID = Intrinsic::x86_avx512_vfmadd_f64;
37603760
else
37613761
IID = Intrinsic::x86_avx512_vfmadd_f32;
3762-
Rep = Builder.CreateIntrinsic(IID, {}, Ops);
3762+
Rep = Builder.CreateIntrinsic(IID, Ops);
37633763
} else {
37643764
Rep = Builder.CreateFMA(A, B, C);
37653765
}
@@ -3812,7 +3812,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
38123812
else
38133813
IID = Intrinsic::x86_avx512_vfmadd_pd_512;
38143814

3815-
Rep = Builder.CreateIntrinsic(IID, {}, {A, B, C, CI->getArgOperand(4)});
3815+
Rep = Builder.CreateIntrinsic(IID, {A, B, C, CI->getArgOperand(4)});
38163816
} else {
38173817
Rep = Builder.CreateFMA(A, B, C);
38183818
}
@@ -3840,7 +3840,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
38403840
Value *Ops[] = {CI->getArgOperand(0), CI->getArgOperand(1),
38413841
CI->getArgOperand(2)};
38423842
Ops[2] = Builder.CreateFNeg(Ops[2]);
3843-
Rep = Builder.CreateIntrinsic(IID, {}, Ops);
3843+
Rep = Builder.CreateIntrinsic(IID, Ops);
38443844
} else if (Name.starts_with("avx512.mask.vfmaddsub.p") ||
38453845
Name.starts_with("avx512.mask3.vfmaddsub.p") ||
38463846
Name.starts_with("avx512.maskz.vfmaddsub.p") ||
@@ -3863,7 +3863,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
38633863
if (IsSubAdd)
38643864
Ops[2] = Builder.CreateFNeg(Ops[2]);
38653865

3866-
Rep = Builder.CreateIntrinsic(IID, {}, Ops);
3866+
Rep = Builder.CreateIntrinsic(IID, Ops);
38673867
} else {
38683868
int NumElts = cast<FixedVectorType>(CI->getType())->getNumElements();
38693869

@@ -3914,7 +3914,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
39143914

39153915
Value *Args[] = {CI->getArgOperand(0), CI->getArgOperand(1),
39163916
CI->getArgOperand(2), CI->getArgOperand(3)};
3917-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
3917+
Rep = Builder.CreateIntrinsic(IID, Args);
39183918
Value *PassThru = ZeroMask ? ConstantAggregateZero::get(CI->getType())
39193919
: CI->getArgOperand(0);
39203920
Rep = emitX86Select(Builder, CI->getArgOperand(4), Rep, PassThru);
@@ -3941,7 +3941,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
39413941

39423942
Value *Args[] = {CI->getArgOperand(0), CI->getArgOperand(1),
39433943
CI->getArgOperand(2)};
3944-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
3944+
Rep = Builder.CreateIntrinsic(IID, Args);
39453945
Value *PassThru = ZeroMask ? ConstantAggregateZero::get(CI->getType())
39463946
: CI->getArgOperand(0);
39473947
Rep = emitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
@@ -3976,7 +3976,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
39763976

39773977
Value *Args[] = {CI->getArgOperand(0), CI->getArgOperand(1),
39783978
CI->getArgOperand(2)};
3979-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
3979+
Rep = Builder.CreateIntrinsic(IID, Args);
39803980
Value *PassThru = ZeroMask ? ConstantAggregateZero::get(CI->getType())
39813981
: CI->getArgOperand(0);
39823982
Rep = emitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
@@ -4005,7 +4005,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
40054005

40064006
Value *Args[] = {CI->getArgOperand(0), CI->getArgOperand(1),
40074007
CI->getArgOperand(2)};
4008-
Rep = Builder.CreateIntrinsic(IID, {}, Args);
4008+
Rep = Builder.CreateIntrinsic(IID, Args);
40094009
Value *PassThru = ZeroMask ? ConstantAggregateZero::get(CI->getType())
40104010
: CI->getArgOperand(0);
40114011
Rep = emitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
@@ -4027,7 +4027,7 @@ static Value *upgradeX86IntrinsicCall(StringRef Name, CallBase *CI, Function *F,
40274027
// Make a call with 3 operands.
40284028
Value *Args[] = {CI->getArgOperand(0), CI->getArgOperand(1),
40294029
CI->getArgOperand(2)};
4030-
Value *NewCall = Builder.CreateIntrinsic(IID, {}, Args);
4030+
Value *NewCall = Builder.CreateIntrinsic(IID, Args);
40314031

40324032
// Extract the second result and store it.
40334033
Value *Data = Builder.CreateExtractValue(NewCall, 1);
@@ -4095,7 +4095,7 @@ static Value *upgradeAArch64IntrinsicCall(StringRef Name, CallBase *CI,
40954095
Args[1] = Builder.CreateIntrinsic(
40964096
Intrinsic::aarch64_sve_convert_from_svbool, GoodPredTy, Args[1]);
40974097

4098-
return Builder.CreateIntrinsic(NewID, {}, Args, /*FMFSource=*/nullptr,
4098+
return Builder.CreateIntrinsic(NewID, Args, /*FMFSource=*/nullptr,
40994099
CI->getName());
41004100
}
41014101

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -28095,7 +28095,7 @@ Value *AArch64TargetLowering::emitLoadLinked(IRBuilderBase &Builder,
2809528095
IsAcquire ? Intrinsic::aarch64_ldaxp : Intrinsic::aarch64_ldxp;
2809628096

2809728097
Value *LoHi =
28098-
Builder.CreateIntrinsic(Int, {}, Addr, /*FMFSource=*/nullptr, "lohi");
28098+
Builder.CreateIntrinsic(Int, Addr, /*FMFSource=*/nullptr, "lohi");
2809928099

2810028100
Value *Lo = Builder.CreateExtractValue(LoHi, 0, "lo");
2810128101
Value *Hi = Builder.CreateExtractValue(LoHi, 1, "hi");
@@ -28125,7 +28125,7 @@ Value *AArch64TargetLowering::emitLoadLinked(IRBuilderBase &Builder,
2812528125

2812628126
void AArch64TargetLowering::emitAtomicCmpXchgNoStoreLLBalance(
2812728127
IRBuilderBase &Builder) const {
28128-
Builder.CreateIntrinsic(Intrinsic::aarch64_clrex, {}, {});
28128+
Builder.CreateIntrinsic(Intrinsic::aarch64_clrex, {});
2812928129
}
2813028130

2813128131
Value *AArch64TargetLowering::emitStoreConditional(IRBuilderBase &Builder,

llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1476,7 +1476,7 @@ static std::optional<Instruction *> instCombineRDFFR(InstCombiner &IC,
14761476
auto *PTrue = IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_ptrue,
14771477
{II.getType()}, {AllPat});
14781478
auto *RDFFR =
1479-
IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_rdffr_z, {}, {PTrue});
1479+
IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_rdffr_z, {PTrue});
14801480
RDFFR->takeName(&II);
14811481
return IC.replaceInstUsesWith(II, RDFFR);
14821482
}

llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ static Instruction *genAMDGPUReportBlock(Module &M, IRBuilder<> &IRB,
7373

7474
Trm = SplitBlockAndInsertIfThen(Cond, Trm, false);
7575
IRB.SetInsertPoint(Trm);
76-
return IRB.CreateIntrinsic(Intrinsic::amdgcn_unreachable, {}, {});
76+
return IRB.CreateIntrinsic(Intrinsic::amdgcn_unreachable, {});
7777
}
7878

7979
static Value *createSlowPathCmp(Module &M, IRBuilder<> &IRB, Type *IntptrTy,

llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -666,7 +666,7 @@ void AMDGPUAtomicOptimizerImpl::optimizeAtomic(Instruction &I,
666666
// Record I's original position as the entry block.
667667
PixelEntryBB = I.getParent();
668668

669-
Value *const Cond = B.CreateIntrinsic(Intrinsic::amdgcn_ps_live, {}, {});
669+
Value *const Cond = B.CreateIntrinsic(Intrinsic::amdgcn_ps_live, {});
670670
Instruction *const NonHelperTerminator =
671671
SplitBlockAndInsertIfThen(Cond, &I, false, nullptr, &DTU, nullptr);
672672

@@ -698,15 +698,14 @@ void AMDGPUAtomicOptimizerImpl::optimizeAtomic(Instruction &I,
698698
// using the mbcnt intrinsic.
699699
Value *Mbcnt;
700700
if (ST.isWave32()) {
701-
Mbcnt = B.CreateIntrinsic(Intrinsic::amdgcn_mbcnt_lo, {},
702-
{Ballot, B.getInt32(0)});
701+
Mbcnt =
702+
B.CreateIntrinsic(Intrinsic::amdgcn_mbcnt_lo, {Ballot, B.getInt32(0)});
703703
} else {
704704
Value *const ExtractLo = B.CreateTrunc(Ballot, Int32Ty);
705705
Value *const ExtractHi = B.CreateTrunc(B.CreateLShr(Ballot, 32), Int32Ty);
706-
Mbcnt = B.CreateIntrinsic(Intrinsic::amdgcn_mbcnt_lo, {},
706+
Mbcnt = B.CreateIntrinsic(Intrinsic::amdgcn_mbcnt_lo,
707707
{ExtractLo, B.getInt32(0)});
708-
Mbcnt =
709-
B.CreateIntrinsic(Intrinsic::amdgcn_mbcnt_hi, {}, {ExtractHi, Mbcnt});
708+
Mbcnt = B.CreateIntrinsic(Intrinsic::amdgcn_mbcnt_hi, {ExtractHi, Mbcnt});
710709
}
711710

712711
Function *F = I.getFunction();

llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ Value *AMDGPUCodeGenPrepareImpl::optimizeWithFDivFast(
10341034
if (!HasFP32DenormalFlush && !NumIsOne)
10351035
return nullptr;
10361036

1037-
return Builder.CreateIntrinsic(Intrinsic::amdgcn_fdiv_fast, {}, {Num, Den});
1037+
return Builder.CreateIntrinsic(Intrinsic::amdgcn_fdiv_fast, {Num, Den});
10381038
}
10391039

10401040
Value *AMDGPUCodeGenPrepareImpl::visitFDivElement(

llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ static bool lowerKernelArguments(Function &F, const TargetMachine &TM) {
304304
return false;
305305

306306
CallInst *KernArgSegment =
307-
Builder.CreateIntrinsic(Intrinsic::amdgcn_kernarg_segment_ptr, {}, {},
307+
Builder.CreateIntrinsic(Intrinsic::amdgcn_kernarg_segment_ptr, {},
308308
nullptr, F.getName() + ".kernarg.segment");
309309
KernArgSegment->addRetAttr(Attribute::NonNull);
310310
KernArgSegment->addRetAttr(

0 commit comments

Comments
 (0)