Skip to content

Commit aac0eab

Browse files
committed
fixup! Merge in changes from llvm#132060
1 parent a2ff5dc commit aac0eab

File tree

6 files changed

+169
-194
lines changed

6 files changed

+169
-194
lines changed

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 113 additions & 129 deletions
Large diffs are not rendered by default.

clang/lib/CodeGen/TargetBuiltins/AArch64.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2572,8 +2572,8 @@ static Value *EmitSpecialRegisterBuiltin(CodeGenFunction &CGF,
25722572
if (AccessKind != Write) {
25732573
assert(AccessKind == NormalRead || AccessKind == VolatileRead);
25742574
llvm::Function *F = CGM.getIntrinsic(
2575-
AccessKind == VolatileRead ? llvm::Intrinsic::read_volatile_register
2576-
: llvm::Intrinsic::read_register,
2575+
AccessKind == VolatileRead ? Intrinsic::read_volatile_register
2576+
: Intrinsic::read_register,
25772577
Types);
25782578
llvm::Value *Call = Builder.CreateCall(F, Metadata);
25792579

@@ -2588,7 +2588,7 @@ static Value *EmitSpecialRegisterBuiltin(CodeGenFunction &CGF,
25882588
return Call;
25892589
}
25902590

2591-
llvm::Function *F = CGM.getIntrinsic(llvm::Intrinsic::write_register, Types);
2591+
llvm::Function *F = CGM.getIntrinsic(Intrinsic::write_register, Types);
25922592
llvm::Value *ArgValue = CGF.EmitScalarExpr(E->getArg(1));
25932593
if (MixedTypes) {
25942594
// Extend 32 bit write value to 64 bit to pass to write.
@@ -4934,7 +4934,7 @@ Value *readX18AsPtr(CodeGenFunction &CGF) {
49344934
llvm::MDNode *RegName = llvm::MDNode::get(Context, Ops);
49354935
llvm::Value *Metadata = llvm::MetadataAsValue::get(Context, RegName);
49364936
llvm::Function *F =
4937-
CGF.CGM.getIntrinsic(llvm::Intrinsic::read_register, {CGF.Int64Ty});
4937+
CGF.CGM.getIntrinsic(Intrinsic::read_register, {CGF.Int64Ty});
49384938
llvm::Value *X18 = CGF.Builder.CreateCall(F, Metadata);
49394939
return CGF.Builder.CreateIntToPtr(X18, CGF.Int8PtrTy);
49404940
}
@@ -5272,7 +5272,7 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
52725272
llvm::Value *Metadata = llvm::MetadataAsValue::get(Context, RegName);
52735273

52745274
llvm::Function *F =
5275-
CGM.getIntrinsic(llvm::Intrinsic::read_register, {Int64Ty});
5275+
CGM.getIntrinsic(Intrinsic::read_register, {Int64Ty});
52765276
return Builder.CreateCall(F, Metadata);
52775277
}
52785278

@@ -5281,7 +5281,7 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
52815281
if (!E->getArg(0)->EvaluateAsInt(Result, CGM.getContext()))
52825282
llvm_unreachable("Sema will ensure that the parameter is constant");
52835283

5284-
llvm::Function *F = CGM.getIntrinsic(llvm::Intrinsic::aarch64_break);
5284+
llvm::Function *F = CGM.getIntrinsic(Intrinsic::aarch64_break);
52855285
return Builder.CreateCall(F, {EmitScalarExpr(E->getArg(0))});
52865286
}
52875287

@@ -5470,12 +5470,12 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
54705470
llvm::Type *Types[] = { RegisterType };
54715471

54725472
if (BuiltinID == clang::AArch64::BI_ReadStatusReg) {
5473-
llvm::Function *F = CGM.getIntrinsic(llvm::Intrinsic::read_register, Types);
5473+
llvm::Function *F = CGM.getIntrinsic(Intrinsic::read_register, Types);
54745474

54755475
return Builder.CreateCall(F, Metadata);
54765476
}
54775477

5478-
llvm::Function *F = CGM.getIntrinsic(llvm::Intrinsic::write_register, Types);
5478+
llvm::Function *F = CGM.getIntrinsic(Intrinsic::write_register, Types);
54795479
llvm::Value *ArgValue = EmitScalarExpr(E->getArg(1));
54805480

54815481
return Builder.CreateCall(F, { Metadata, ArgValue });
@@ -7892,8 +7892,8 @@ Value *CodeGenFunction::EmitBPFBuiltinExpr(unsigned BuiltinID,
78927892
Value *InfoKind = ConstantInt::get(Int64Ty, C->getSExtValue());
78937893

78947894
// Built the IR for the preserve_field_info intrinsic.
7895-
llvm::Function *FnGetFieldInfo = llvm::Intrinsic::getOrInsertDeclaration(
7896-
&CGM.getModule(), llvm::Intrinsic::bpf_preserve_field_info,
7895+
llvm::Function *FnGetFieldInfo = Intrinsic::getOrInsertDeclaration(
7896+
&CGM.getModule(), Intrinsic::bpf_preserve_field_info,
78977897
{FieldAddr->getType()});
78987898
return Builder.CreateCall(FnGetFieldInfo, {FieldAddr, InfoKind});
78997899
}
@@ -7914,11 +7914,11 @@ Value *CodeGenFunction::EmitBPFBuiltinExpr(unsigned BuiltinID,
79147914

79157915
llvm::Function *FnDecl;
79167916
if (BuiltinID == BPF::BI__builtin_btf_type_id)
7917-
FnDecl = llvm::Intrinsic::getOrInsertDeclaration(
7918-
&CGM.getModule(), llvm::Intrinsic::bpf_btf_type_id, {});
7917+
FnDecl = Intrinsic::getOrInsertDeclaration(
7918+
&CGM.getModule(), Intrinsic::bpf_btf_type_id, {});
79197919
else
7920-
FnDecl = llvm::Intrinsic::getOrInsertDeclaration(
7921-
&CGM.getModule(), llvm::Intrinsic::bpf_preserve_type_info, {});
7920+
FnDecl = Intrinsic::getOrInsertDeclaration(
7921+
&CGM.getModule(), Intrinsic::bpf_preserve_type_info, {});
79227922
CallInst *Fn = Builder.CreateCall(FnDecl, {SeqNumVal, FlagValue});
79237923
Fn->setMetadata(LLVMContext::MD_preserve_access_index, DbgInfo);
79247924
return Fn;
@@ -7952,8 +7952,8 @@ Value *CodeGenFunction::EmitBPFBuiltinExpr(unsigned BuiltinID,
79527952
Value *FlagValue = ConstantInt::get(Int64Ty, Flag->getSExtValue());
79537953
Value *SeqNumVal = ConstantInt::get(Int32Ty, BuiltinSeqNum++);
79547954

7955-
llvm::Function *IntrinsicFn = llvm::Intrinsic::getOrInsertDeclaration(
7956-
&CGM.getModule(), llvm::Intrinsic::bpf_preserve_enum_value, {});
7955+
llvm::Function *IntrinsicFn = Intrinsic::getOrInsertDeclaration(
7956+
&CGM.getModule(), Intrinsic::bpf_preserve_enum_value, {});
79577957
CallInst *Fn =
79587958
Builder.CreateCall(IntrinsicFn, {SeqNumVal, EnumStrVal, FlagValue});
79597959
Fn->setMetadata(LLVMContext::MD_preserve_access_index, DbgInfo);

clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ static Value *handleAsDoubleBuiltin(CodeGenFunction &CGF, const CallExpr *E) {
209209
if (CGF.CGM.getTarget().getTriple().isDXIL())
210210
return CGF.Builder.CreateIntrinsic(
211211
/*ReturnType=*/ResultType, Intrinsic::dx_asdouble,
212-
ArrayRef<Value *>{OpLowBits, OpHighBits}, nullptr, "hlsl.asdouble");
212+
{OpLowBits, OpHighBits}, nullptr, "hlsl.asdouble");
213213

214214
if (!E->getArg(0)->getType()->isVectorType()) {
215215
OpLowBits = CGF.Builder.CreateVectorSplat(1, OpLowBits);
@@ -240,13 +240,13 @@ static Value *handleHlslClip(const CallExpr *E, CodeGenFunction *CGF) {
240240
auto *FCompInst = CGF->Builder.CreateFCmpOLT(Op0, FZeroConst);
241241
CMP = CGF->Builder.CreateIntrinsic(
242242
CGF->Builder.getInt1Ty(), CGF->CGM.getHLSLRuntime().getAnyIntrinsic(),
243-
{FCompInst}, nullptr);
243+
{FCompInst});
244244
} else
245245
CMP = CGF->Builder.CreateFCmpOLT(Op0, FZeroConst);
246246

247247
if (CGF->CGM.getTarget().getTriple().isDXIL())
248248
LastInstr = CGF->Builder.CreateIntrinsic(
249-
CGF->VoidTy, llvm::Intrinsic::dx_discard, {CMP}, nullptr);
249+
CGF->VoidTy, Intrinsic::dx_discard, {CMP});
250250
else if (CGF->CGM.getTarget().getTriple().isSPIRV()) {
251251
BasicBlock *LT0 = CGF->createBasicBlock("lt0", CGF->CurFn);
252252
BasicBlock *End = CGF->createBasicBlock("end", CGF->CurFn);
@@ -255,11 +255,9 @@ static Value *handleHlslClip(const CallExpr *E, CodeGenFunction *CGF) {
255255

256256
CGF->Builder.SetInsertPoint(LT0);
257257

258-
CGF->Builder.CreateIntrinsic(CGF->VoidTy, llvm::Intrinsic::spv_discard, {},
259-
nullptr);
258+
CGF->Builder.CreateIntrinsic(CGF->VoidTy, Intrinsic::spv_discard, {});
260259

261260
LastInstr = CGF->Builder.CreateBr(End);
262-
263261
CGF->Builder.SetInsertPoint(End);
264262
} else {
265263
llvm_unreachable("Backend Codegen not supported.");
@@ -442,11 +440,11 @@ static Intrinsic::ID getWaveActiveSumIntrinsic(llvm::Triple::ArchType Arch,
442440
CGHLSLRuntime &RT, QualType QT) {
443441
switch (Arch) {
444442
case llvm::Triple::spirv:
445-
return llvm::Intrinsic::spv_wave_reduce_sum;
443+
return Intrinsic::spv_wave_reduce_sum;
446444
case llvm::Triple::dxil: {
447445
if (QT->isUnsignedIntegerType())
448-
return llvm::Intrinsic::dx_wave_reduce_usum;
449-
return llvm::Intrinsic::dx_wave_reduce_sum;
446+
return Intrinsic::dx_wave_reduce_usum;
447+
return Intrinsic::dx_wave_reduce_sum;
450448
}
451449
default:
452450
llvm_unreachable("Intrinsic WaveActiveSum"
@@ -460,12 +458,12 @@ static Intrinsic::ID getWaveActiveMaxIntrinsic(llvm::Triple::ArchType Arch,
460458
switch (Arch) {
461459
case llvm::Triple::spirv:
462460
if (QT->isUnsignedIntegerType())
463-
return llvm::Intrinsic::spv_wave_reduce_umax;
464-
return llvm::Intrinsic::spv_wave_reduce_max;
461+
return Intrinsic::spv_wave_reduce_umax;
462+
return Intrinsic::spv_wave_reduce_max;
465463
case llvm::Triple::dxil: {
466464
if (QT->isUnsignedIntegerType())
467-
return llvm::Intrinsic::dx_wave_reduce_umax;
468-
return llvm::Intrinsic::dx_wave_reduce_max;
465+
return Intrinsic::dx_wave_reduce_umax;
466+
return Intrinsic::dx_wave_reduce_max;
469467
}
470468
default:
471469
llvm_unreachable("Intrinsic WaveActiveMax"
@@ -504,17 +502,17 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
504502
LowB = Builder.CreateExtractElement(OpB, (uint64_t)0, "LowB");
505503
HighB = Builder.CreateExtractElement(OpB, (uint64_t)1, "HighB");
506504
} else {
507-
LowA = Builder.CreateShuffleVector(OpA, ArrayRef<int>{0, 2}, "LowA");
508-
HighA = Builder.CreateShuffleVector(OpA, ArrayRef<int>{1, 3}, "HighA");
509-
LowB = Builder.CreateShuffleVector(OpB, ArrayRef<int>{0, 2}, "LowB");
510-
HighB = Builder.CreateShuffleVector(OpB, ArrayRef<int>{1, 3}, "HighB");
505+
LowA = Builder.CreateShuffleVector(OpA, {0, 2}, "LowA");
506+
HighA = Builder.CreateShuffleVector(OpA, {1, 3}, "HighA");
507+
LowB = Builder.CreateShuffleVector(OpB, {0, 2}, "LowB");
508+
HighB = Builder.CreateShuffleVector(OpB, {1, 3}, "HighB");
511509
}
512510

513511
// Use an uadd_with_overflow to compute the sum of low words and obtain a
514512
// carry value
515513
llvm::Value *Carry;
516514
llvm::Value *LowSum = EmitOverflowIntrinsic(
517-
*this, llvm::Intrinsic::uadd_with_overflow, LowA, LowB, Carry);
515+
*this, Intrinsic::uadd_with_overflow, LowA, LowB, Carry);
518516
llvm::Value *ZExtCarry =
519517
Builder.CreateZExt(Carry, HighA->getType(), "CarryZExt");
520518

@@ -525,7 +523,7 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
525523

526524
if (NumElements == 4) {
527525
return Builder.CreateShuffleVector(LowSum, HighSumPlusCarry,
528-
ArrayRef<int>{0, 2, 1, 3},
526+
{0, 2, 1, 3},
529527
"hlsl.AddUint64");
530528
}
531529

@@ -1341,11 +1339,11 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID,
13411339
// The builtins take these arguments as vec4 where the last element is
13421340
// ignored. The intrinsic takes them as vec3.
13431341
RayOrigin = Builder.CreateShuffleVector(RayOrigin, RayOrigin,
1344-
ArrayRef<int>{0, 1, 2});
1342+
{0, 1, 2});
13451343
RayDir =
1346-
Builder.CreateShuffleVector(RayDir, RayDir, ArrayRef<int>{0, 1, 2});
1344+
Builder.CreateShuffleVector(RayDir, RayDir, {0, 1, 2});
13471345
RayInverseDir = Builder.CreateShuffleVector(RayInverseDir, RayInverseDir,
1348-
ArrayRef<int>{0, 1, 2});
1346+
{0, 1, 2});
13491347

13501348
Function *F = CGM.getIntrinsic(Intrinsic::amdgcn_image_bvh_intersect_ray,
13511349
{NodePtr->getType(), RayDir->getType()});

clang/lib/CodeGen/TargetBuiltins/PPC.cpp

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,9 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
149149
StringRef CPUStr = cast<clang::StringLiteral>(CPUExpr)->getString();
150150
llvm::Triple Triple = getTarget().getTriple();
151151

152-
unsigned LinuxSupportMethod, LinuxIDValue, AIXSupportMethod, AIXIDValue;
153152
typedef std::tuple<unsigned, unsigned, unsigned, unsigned> CPUInfo;
154153

155-
std::tie(LinuxSupportMethod, LinuxIDValue, AIXSupportMethod, AIXIDValue) =
154+
auto [LinuxSupportMethod, LinuxIDValue, AIXSupportMethod, AIXIDValue] =
156155
static_cast<CPUInfo>(StringSwitch<CPUInfo>(CPUStr)
157156
#define PPC_CPU(NAME, Linux_SUPPORT_METHOD, LinuxID, AIX_SUPPORT_METHOD, \
158157
AIXID) \
@@ -188,12 +187,10 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
188187
const Expr *CPUExpr = E->getArg(0)->IgnoreParenCasts();
189188
StringRef CPUStr = cast<clang::StringLiteral>(CPUExpr)->getString();
190189
if (Triple.isOSAIX()) {
191-
unsigned SupportMethod, FieldIdx, Mask, Value;
192-
CmpInst::Predicate CompOp;
193190
typedef std::tuple<unsigned, unsigned, unsigned, CmpInst::Predicate,
194191
unsigned>
195192
CPUSupportType;
196-
std::tie(SupportMethod, FieldIdx, Mask, CompOp, Value) =
193+
auto [SupportMethod, FieldIdx, Mask, CompOp, Value] =
197194
static_cast<CPUSupportType>(StringSwitch<CPUSupportType>(CPUStr)
198195
#define PPC_AIX_FEATURE(NAME, DESC, SUPPORT_METHOD, INDEX, MASK, COMP_OP, \
199196
VALUE) \
@@ -207,9 +204,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
207204

208205
assert(Triple.isOSLinux() &&
209206
"__builtin_cpu_supports() is only supported for AIX and Linux.");
210-
unsigned FeatureWord;
211-
unsigned BitMask;
212-
std::tie(FeatureWord, BitMask) =
207+
auto [FeatureWord, BitMask] =
213208
StringSwitch<std::pair<unsigned, unsigned>>(CPUStr)
214209
#define PPC_LNX_FEATURE(Name, Description, EnumName, Bitmask, FA_WORD) \
215210
.Case(Name, {FA_WORD, Bitmask})
@@ -935,7 +930,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
935930
if (getTarget().isLittleEndian()) {
936931
// Reverse the double words in the vector we will extract from.
937932
Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int64Ty, 2));
938-
Op0 = Builder.CreateShuffleVector(Op0, Op0, ArrayRef<int>{1, 0});
933+
Op0 = Builder.CreateShuffleVector(Op0, Op0, {1, 0});
939934

940935
// Reverse the index.
941936
Index = MaxIndex - Index;
@@ -972,7 +967,7 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
972967
Value *Call = Builder.CreateCall(F, {Op0, Op1});
973968

974969
Value *ShuffleCall =
975-
Builder.CreateShuffleVector(Call, Call, ArrayRef<int>{1, 0});
970+
Builder.CreateShuffleVector(Call, Call, {1, 0});
976971
return ShuffleCall;
977972
} else {
978973
Op1 = ConstantInt::getSigned(Int32Ty, Index);

clang/lib/CodeGen/TargetBuiltins/WebAssembly.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ Value *CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned BuiltinID,
372372
Function *Callee = CGM.getIntrinsic(IntNo, {TruncT, SrcT});
373373
Value *Trunc = Builder.CreateCall(Callee, Vec);
374374
Value *Splat = Constant::getNullValue(TruncT);
375-
return Builder.CreateShuffleVector(Trunc, Splat, ArrayRef<int>{0, 1, 2, 3});
375+
return Builder.CreateShuffleVector(Trunc, Splat, {0, 1, 2, 3});
376376
}
377377
case WebAssembly::BI__builtin_wasm_shuffle_i8x16: {
378378
Value *Ops[18];

0 commit comments

Comments
 (0)