Skip to content

Commit 05cc70f

Browse files
committed
merge main into amd-staging
2 parents d19d7e0 + d4fdfc3 commit 05cc70f

File tree

347 files changed

+5158
-3902
lines changed

Some content is hidden

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

347 files changed

+5158
-3902
lines changed

clang/docs/ReleaseNotes.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ C++ Specific Potentially Breaking Changes
7171
if it's out of range. The Boost numeric_conversion library is impacted by
7272
this; it was fixed in Boost 1.81. (#GH143034)
7373

74+
- Fully implemented `CWG400 Using-declarations and the `
75+
`"struct hack" <https://wg21.link/CWG400>`_. Invalid member using-declaration
76+
whose nested-name-specifier doesn't refer to a base class such as
77+
``using CurrentClass::Foo;`` is now rejected in C++98 mode.
78+
7479
ABI Changes in This Version
7580
---------------------------
7681

@@ -666,6 +671,9 @@ Improvements to Clang's diagnostics
666671
#GH69470, #GH59391, #GH58172, #GH46215, #GH45915, #GH45891, #GH44490,
667672
#GH36703, #GH32903, #GH23312, #GH69874.
668673

674+
- A warning is now emitted when ``main`` is attached to a named module,
675+
which can be turned off with ``-Wno-main-attached-to-named-module``. (#GH146247)
676+
669677
- Clang now avoids issuing `-Wreturn-type` warnings in some cases where
670678
the final statement of a non-void function is a `throw` expression, or
671679
a call to a function that is trivially known to always throw (i.e., its

clang/include/clang/Basic/BuiltinsAMDGPU.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,10 @@ TARGET_BUILTIN(__builtin_amdgcn_ds_load_tr16_b128_v8f16, "V8hV8h*3", "nc", "gfx1
659659
TARGET_BUILTIN(__builtin_amdgcn_ds_load_tr16_b128_v8bf16, "V8yV8y*3", "nc", "gfx1250-insts,wavefrontsize32")
660660

661661
TARGET_BUILTIN(__builtin_amdgcn_s_setprio_inc_wg, "vIs", "n", "setprio-inc-wg-inst")
662+
TARGET_BUILTIN(__builtin_amdgcn_s_monitor_sleep, "vIs", "n", "gfx1250-insts")
662663

664+
TARGET_BUILTIN(__builtin_amdgcn_cvt_f16_fp8, "hiIi", "nc", "gfx1250-insts")
665+
TARGET_BUILTIN(__builtin_amdgcn_cvt_f16_bf8, "hiIi", "nc", "gfx1250-insts")
663666
TARGET_BUILTIN(__builtin_amdgcn_cvt_pk_f16_fp8, "V2hs", "nc", "gfx1250-insts")
664667
TARGET_BUILTIN(__builtin_amdgcn_cvt_pk_f16_bf8, "V2hs", "nc", "gfx1250-insts")
665668

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,6 +1062,10 @@ def err_constexpr_main : Error<
10621062
"'main' is not allowed to be declared %select{constexpr|consteval}0">;
10631063
def err_deleted_main : Error<"'main' is not allowed to be deleted">;
10641064
def err_mainlike_template_decl : Error<"%0 cannot be a template">;
1065+
def warn_main_in_named_module
1066+
: ExtWarn<"'main' should not be attached to a named module; consider "
1067+
"adding C++ language linkage">,
1068+
InGroup<DiagGroup<"main-attached-to-named-module">>;
10651069
def err_main_returns_nonint : Error<"'main' must return 'int'">;
10661070
def ext_main_returns_nonint : ExtWarn<"return type of 'main' is not 'int'">,
10671071
InGroup<MainReturnType>;

clang/include/clang/Basic/arm_neon.td

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -453,28 +453,28 @@ def VSLI_N : WInst<"vsli_n", "...I",
453453
////////////////////////////////////////////////////////////////////////////////
454454
// E.3.14 Loads and stores of a single vector
455455
def VLD1 : WInst<"vld1", ".(c*!)",
456-
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPs">;
456+
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
457457
def VLD1_X2 : WInst<"vld1_x2", "2(c*!)",
458-
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPs">;
458+
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPsmQm">;
459459
def VLD1_X3 : WInst<"vld1_x3", "3(c*!)",
460-
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPs">;
460+
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPsmQm">;
461461
def VLD1_X4 : WInst<"vld1_x4", "4(c*!)",
462-
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPs">;
462+
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPsmQm">;
463463
def VLD1_LANE : WInst<"vld1_lane", ".(c*!).I",
464-
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPs",
464+
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPsmQm",
465465
[ImmCheck<2, ImmCheckLaneIndex, 1>]>;
466466
def VLD1_DUP : WInst<"vld1_dup", ".(c*!)",
467-
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPs">;
467+
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
468468
def VST1 : WInst<"vst1", "v*(.!)",
469-
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPs">;
469+
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
470470
def VST1_X2 : WInst<"vst1_x2", "v*(2!)",
471-
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPs">;
471+
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPsmQm">;
472472
def VST1_X3 : WInst<"vst1_x3", "v*(3!)",
473-
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPs">;
473+
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPsmQm">;
474474
def VST1_X4 : WInst<"vst1_x4", "v*(4!)",
475-
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPs">;
475+
"cfilsUcUiUlUsQcQfQiQlQsQUcQUiQUlQUsPcPsQPcQPsmQm">;
476476
def VST1_LANE : WInst<"vst1_lane", "v*(.!)I",
477-
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPs",
477+
"QUcQUsQUiQUlQcQsQiQlQfQPcQPsUcUsUiUlcsilfPcPsmQm",
478478
[ImmCheck<2, ImmCheckLaneIndex, 1>]>;
479479

480480
let ArchGuard = "(__ARM_FP & 2)" in {
@@ -495,29 +495,29 @@ def VST1_LANE_F16 : WInst<"vst1_lane", "v*(.!)I", "hQh",
495495

496496
////////////////////////////////////////////////////////////////////////////////
497497
// E.3.15 Loads and stores of an N-element structure
498-
def VLD2 : WInst<"vld2", "2(c*!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPs">;
499-
def VLD3 : WInst<"vld3", "3(c*!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPs">;
500-
def VLD4 : WInst<"vld4", "4(c*!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPs">;
498+
def VLD2 : WInst<"vld2", "2(c*!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
499+
def VLD3 : WInst<"vld3", "3(c*!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
500+
def VLD4 : WInst<"vld4", "4(c*!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
501501
def VLD2_DUP : WInst<"vld2_dup", "2(c*!)",
502-
"UcUsUiUlcsilfPcPsQcQfQiQlQsQPcQPsQUcQUiQUlQUs">;
502+
"UcUsUiUlcsilfPcPsQcQfQiQlQsQPcQPsQUcQUiQUlQUsmQm">;
503503
def VLD3_DUP : WInst<"vld3_dup", "3(c*!)",
504-
"UcUsUiUlcsilfPcPsQcQfQiQlQsQPcQPsQUcQUiQUlQUs">;
504+
"UcUsUiUlcsilfPcPsQcQfQiQlQsQPcQPsQUcQUiQUlQUsmQm">;
505505
def VLD4_DUP : WInst<"vld4_dup", "4(c*!)",
506-
"UcUsUiUlcsilfPcPsQcQfQiQlQsQPcQPsQUcQUiQUlQUs">;
507-
def VLD2_LANE : WInst<"vld2_lane", "2(c*!)2I", "QUsQUiQsQiQfQPsUcUsUicsifPcPs",
506+
"UcUsUiUlcsilfPcPsQcQfQiQlQsQPcQPsQUcQUiQUlQUsmQm">;
507+
def VLD2_LANE : WInst<"vld2_lane", "2(c*!)2I", "QUsQUiQsQiQfQPsUcUsUicsifPcPsmQm",
508508
[ImmCheck<4, ImmCheckLaneIndex, 1>]>;
509-
def VLD3_LANE : WInst<"vld3_lane", "3(c*!)3I", "QUsQUiQsQiQfQPsUcUsUicsifPcPs",
509+
def VLD3_LANE : WInst<"vld3_lane", "3(c*!)3I", "QUsQUiQsQiQfQPsUcUsUicsifPcPsmQm",
510510
[ImmCheck<5, ImmCheckLaneIndex, 1>]>;
511-
def VLD4_LANE : WInst<"vld4_lane", "4(c*!)4I", "QUsQUiQsQiQfQPsUcUsUicsifPcPs",
511+
def VLD4_LANE : WInst<"vld4_lane", "4(c*!)4I", "QUsQUiQsQiQfQPsUcUsUicsifPcPsmQm",
512512
[ImmCheck<6, ImmCheckLaneIndex, 1>]>;
513-
def VST2 : WInst<"vst2", "v*(2!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPs">;
514-
def VST3 : WInst<"vst3", "v*(3!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPs">;
515-
def VST4 : WInst<"vst4", "v*(4!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPs">;
516-
def VST2_LANE : WInst<"vst2_lane", "v*(2!)I", "QUsQUiQsQiQfQPsUcUsUicsifPcPs",
513+
def VST2 : WInst<"vst2", "v*(2!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
514+
def VST3 : WInst<"vst3", "v*(3!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
515+
def VST4 : WInst<"vst4", "v*(4!)", "QUcQUsQUiQcQsQiQfQPcQPsUcUsUiUlcsilfPcPsmQm">;
516+
def VST2_LANE : WInst<"vst2_lane", "v*(2!)I", "QUsQUiQsQiQfQPsUcUsUicsifPcPsmQm",
517517
[ImmCheck<3, ImmCheckLaneIndex, 1>]>;
518-
def VST3_LANE : WInst<"vst3_lane", "v*(3!)I", "QUsQUiQsQiQfQPsUcUsUicsifPcPs",
518+
def VST3_LANE : WInst<"vst3_lane", "v*(3!)I", "QUsQUiQsQiQfQPsUcUsUicsifPcPsmQm",
519519
[ImmCheck<4, ImmCheckLaneIndex, 1>]>;
520-
def VST4_LANE : WInst<"vst4_lane", "v*(4!)I", "QUsQUiQsQiQfQPsUcUsUicsifPcPs",
520+
def VST4_LANE : WInst<"vst4_lane", "v*(4!)I", "QUsQUiQsQiQfQPsUcUsUicsifPcPsmQm",
521521
[ImmCheck<5, ImmCheckLaneIndex, 1>]>;
522522
let ArchGuard = "(__ARM_FP & 2)" in {
523523
def VLD2_F16 : WInst<"vld2", "2(c*!)", "hQh">;
@@ -2194,4 +2194,4 @@ let ArchGuard = "defined(__aarch64__)", TargetGuard = "fp8,neon" in {
21942194
// fscale
21952195
def FSCALE_V128 : WInst<"vscale", "..(.S)", "QdQfQh">;
21962196
def FSCALE_V64 : WInst<"vscale", "(.q)(.q)(.qS)", "fh">;
2197-
}
2197+
}

clang/include/clang/Basic/arm_sve.td

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def SVLD1UW_GATHER_INDEX_S : MInst<"svld1uw_gather[_{2}base]_index_{d}", "dPul
121121

122122

123123
// First-faulting load one vector (scalar base)
124-
def SVLDFF1 : MInst<"svldff1[_{2}]", "dPc", "csilUcUsUiUlhfd", [IsLoad], MemEltTyDefault, "aarch64_sve_ldff1">;
124+
def SVLDFF1 : MInst<"svldff1[_{2}]", "dPc", "csilUcUsUiUlhfdm", [IsLoad], MemEltTyDefault, "aarch64_sve_ldff1">;
125125
def SVLDFF1SB : MInst<"svldff1sb_{d}", "dPS", "silUsUiUl", [IsLoad], MemEltTyInt8, "aarch64_sve_ldff1">;
126126
def SVLDFF1UB : MInst<"svldff1ub_{d}", "dPW", "silUsUiUl", [IsLoad, IsZExtReturn], MemEltTyInt8, "aarch64_sve_ldff1">;
127127
def SVLDFF1SH : MInst<"svldff1sh_{d}", "dPT", "ilUiUl", [IsLoad], MemEltTyInt16, "aarch64_sve_ldff1">;
@@ -130,7 +130,7 @@ def SVLDFF1SW : MInst<"svldff1sw_{d}", "dPU", "lUl", [IsLoad],
130130
def SVLDFF1UW : MInst<"svldff1uw_{d}", "dPY", "lUl", [IsLoad, IsZExtReturn], MemEltTyInt32, "aarch64_sve_ldff1">;
131131

132132
// First-faulting load one vector (scalar base, VL displacement)
133-
def SVLDFF1_VNUM : MInst<"svldff1_vnum[_{2}]", "dPcl", "csilUcUsUiUlhfd", [IsLoad], MemEltTyDefault, "aarch64_sve_ldff1">;
133+
def SVLDFF1_VNUM : MInst<"svldff1_vnum[_{2}]", "dPcl", "csilUcUsUiUlhfdm", [IsLoad], MemEltTyDefault, "aarch64_sve_ldff1">;
134134
def SVLDFF1SB_VNUM : MInst<"svldff1sb_vnum_{d}", "dPSl", "silUsUiUl", [IsLoad], MemEltTyInt8, "aarch64_sve_ldff1">;
135135
def SVLDFF1UB_VNUM : MInst<"svldff1ub_vnum_{d}", "dPWl", "silUsUiUl", [IsLoad, IsZExtReturn], MemEltTyInt8, "aarch64_sve_ldff1">;
136136
def SVLDFF1SH_VNUM : MInst<"svldff1sh_vnum_{d}", "dPTl", "ilUiUl", [IsLoad], MemEltTyInt16, "aarch64_sve_ldff1">;
@@ -223,7 +223,7 @@ def SVLDFF1SW_GATHER_INDEX_S : MInst<"svldff1sw_gather[_{2}base]_index_{d}", "dP
223223
def SVLDFF1UW_GATHER_INDEX_S : MInst<"svldff1uw_gather[_{2}base]_index_{d}", "dPul", "lUl", [IsGatherLoad, IsZExtReturn], MemEltTyInt32, "aarch64_sve_ldff1_gather_scalar_offset">;
224224

225225
// Non-faulting load one vector (scalar base)
226-
def SVLDNF1 : MInst<"svldnf1[_{2}]", "dPc", "csilUcUsUiUlhfd", [IsLoad], MemEltTyDefault, "aarch64_sve_ldnf1">;
226+
def SVLDNF1 : MInst<"svldnf1[_{2}]", "dPc", "csilUcUsUiUlhfdm", [IsLoad], MemEltTyDefault, "aarch64_sve_ldnf1">;
227227
def SVLDNF1SB : MInst<"svldnf1sb_{d}", "dPS", "silUsUiUl", [IsLoad], MemEltTyInt8, "aarch64_sve_ldnf1">;
228228
def SVLDNF1UB : MInst<"svldnf1ub_{d}", "dPW", "silUsUiUl", [IsLoad, IsZExtReturn], MemEltTyInt8, "aarch64_sve_ldnf1">;
229229
def SVLDNF1SH : MInst<"svldnf1sh_{d}", "dPT", "ilUiUl", [IsLoad], MemEltTyInt16, "aarch64_sve_ldnf1">;
@@ -232,7 +232,7 @@ def SVLDNF1SW : MInst<"svldnf1sw_{d}", "dPU", "lUl", [IsLoad],
232232
def SVLDNF1UW : MInst<"svldnf1uw_{d}", "dPY", "lUl", [IsLoad, IsZExtReturn], MemEltTyInt32, "aarch64_sve_ldnf1">;
233233

234234
// Non-faulting load one vector (scalar base, VL displacement)
235-
def SVLDNF1_VNUM : MInst<"svldnf1_vnum[_{2}]", "dPcl", "csilUcUsUiUlhfd", [IsLoad], MemEltTyDefault, "aarch64_sve_ldnf1">;
235+
def SVLDNF1_VNUM : MInst<"svldnf1_vnum[_{2}]", "dPcl", "csilUcUsUiUlhfdm", [IsLoad], MemEltTyDefault, "aarch64_sve_ldnf1">;
236236
def SVLDNF1SB_VNUM : MInst<"svldnf1sb_vnum_{d}", "dPSl", "silUsUiUl", [IsLoad], MemEltTyInt8, "aarch64_sve_ldnf1">;
237237
def SVLDNF1UB_VNUM : MInst<"svldnf1ub_vnum_{d}", "dPWl", "silUsUiUl", [IsLoad, IsZExtReturn], MemEltTyInt8, "aarch64_sve_ldnf1">;
238238
def SVLDNF1SH_VNUM : MInst<"svldnf1sh_vnum_{d}", "dPTl", "ilUiUl", [IsLoad], MemEltTyInt16, "aarch64_sve_ldnf1">;
@@ -258,7 +258,7 @@ let SVETargetGuard = "sve,bf16", SMETargetGuard = "sme,bf16" in {
258258
}
259259

260260
// Load one quadword and replicate (scalar base)
261-
def SVLD1RQ : SInst<"svld1rq[_{2}]", "dPc", "csilUcUsUiUlhfd", MergeNone, "aarch64_sve_ld1rq", [VerifyRuntimeMode]>;
261+
def SVLD1RQ : SInst<"svld1rq[_{2}]", "dPc", "csilUcUsUiUlhfdm", MergeNone, "aarch64_sve_ld1rq", [VerifyRuntimeMode]>;
262262

263263
let SVETargetGuard = "sve,bf16", SMETargetGuard = "sme,bf16" in {
264264
def SVLD1RQ_BF : SInst<"svld1rq[_{2}]", "dPc", "b", MergeNone, "aarch64_sve_ld1rq", [VerifyRuntimeMode]>;
@@ -283,7 +283,7 @@ defm SVLD4_VNUM : StructLoad<"svld4_vnum[_{2}]", "4Pcl", "aarch64_sve_ld4_sret">
283283

284284
// Load one octoword and replicate (scalar base)
285285
let SVETargetGuard = "sve,f64mm", SMETargetGuard = InvalidMode in {
286-
def SVLD1RO : SInst<"svld1ro[_{2}]", "dPc", "csilUcUsUiUlhfd", MergeNone, "aarch64_sve_ld1ro">;
286+
def SVLD1RO : SInst<"svld1ro[_{2}]", "dPc", "csilUcUsUiUlhfdm", MergeNone, "aarch64_sve_ld1ro">;
287287
}
288288
let SVETargetGuard = "sve,f64mm,bf16", SMETargetGuard = InvalidMode in {
289289
def SVLD1RO_BF16 : SInst<"svld1ro[_{2}]", "dPc", "b", MergeNone, "aarch64_sve_ld1ro">;

clang/include/clang/Basic/riscv_vector_common.td

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -591,11 +591,8 @@ class RVVMaskOp0Builtin<string prototype> : RVVOp0Builtin<"m", prototype, "c"> {
591591
let UnMaskedPolicyScheme = HasPolicyOperand,
592592
HasMaskedOffOperand = false in {
593593
multiclass RVVSlideUpBuiltinSet {
594-
defm "" : RVVOutBuiltinSet<NAME, "csilfd",
594+
defm "" : RVVOutBuiltinSet<NAME, "csilxfd",
595595
[["vx","v", "vvvz"]]>;
596-
let RequiredFeatures = ["zvfhmin"] in
597-
defm "" : RVVOutBuiltinSet<NAME, "x",
598-
[["vx","v", "vvvz"]]>;
599596
defm "" : RVVOutBuiltinSet<NAME, "csil",
600597
[["vx","Uv", "UvUvUvz"]]>;
601598
}
@@ -616,11 +613,8 @@ let UnMaskedPolicyScheme = HasPassthruOperand,
616613
IntrinsicTypes = {ResultType, Ops.back()->getType()};
617614
}] in {
618615
multiclass RVVSlideDownBuiltinSet {
619-
defm "" : RVVOutBuiltinSet<NAME, "csilfd",
616+
defm "" : RVVOutBuiltinSet<NAME, "csilxfd",
620617
[["vx","v", "vvz"]]>;
621-
let RequiredFeatures = ["zvfhmin"] in
622-
defm "" : RVVOutBuiltinSet<NAME, "x",
623-
[["vx","v", "vvz"]]>;
624618
defm "" : RVVOutBuiltinSet<NAME, "csil",
625619
[["vx","Uv", "UvUvz"]]>;
626620
}

clang/include/clang/Driver/CommonArgs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ void AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,
3333
const llvm::opt::ArgList &Args,
3434
llvm::opt::ArgStringList &CmdArgs, const JobAction &JA);
3535

36+
const char *getLDMOption(const llvm::Triple &T, const llvm::opt::ArgList &Args);
37+
3638
void addLinkerCompressDebugSectionsOption(const ToolChain &TC,
3739
const llvm::opt::ArgList &Args,
3840
llvm::opt::ArgStringList &CmdArgs);

clang/lib/AST/ByteCode/FunctionPointer.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ void FunctionPointer::print(llvm::raw_ostream &OS) const {
2727
OS << "FnPtr(";
2828
if (Func)
2929
OS << Func->getName();
30-
else if (Func)
31-
OS << reinterpret_cast<uintptr_t>(Func);
3230
else
3331
OS << "nullptr";
3432
OS << ")";

clang/lib/CodeGen/CGClass.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,7 @@ static void EmitMemberInitializer(CodeGenFunction &CGF,
626626
CXXCtorInitializer *MemberInit,
627627
const CXXConstructorDecl *Constructor,
628628
FunctionArgList &Args) {
629+
ApplyAtomGroup Grp(CGF.getDebugInfo());
629630
ApplyDebugLocation Loc(CGF, MemberInit->getSourceLocation());
630631
assert(MemberInit->isAnyMemberInitializer() &&
631632
"Must have member initializer!");
@@ -999,7 +1000,8 @@ namespace {
9991000
void emitMemcpyIR(Address DestPtr, Address SrcPtr, CharUnits Size) {
10001001
DestPtr = DestPtr.withElementType(CGF.Int8Ty);
10011002
SrcPtr = SrcPtr.withElementType(CGF.Int8Ty);
1002-
CGF.Builder.CreateMemCpy(DestPtr, SrcPtr, Size.getQuantity());
1003+
auto *I = CGF.Builder.CreateMemCpy(DestPtr, SrcPtr, Size.getQuantity());
1004+
CGF.addInstToCurrentSourceAtom(I, nullptr);
10031005
}
10041006

10051007
void addInitialField(FieldDecl *F) {
@@ -1112,6 +1114,7 @@ namespace {
11121114
}
11131115

11141116
pushEHDestructors();
1117+
ApplyAtomGroup Grp(CGF.getDebugInfo());
11151118
emitMemcpy();
11161119
AggregatedInits.clear();
11171120
}
@@ -1247,6 +1250,7 @@ namespace {
12471250
reset();
12481251
}
12491252

1253+
ApplyAtomGroup Grp(CGF.getDebugInfo());
12501254
emitMemcpy();
12511255
AggregatedStmts.clear();
12521256
}
@@ -1337,9 +1341,9 @@ void CodeGenFunction::EmitCtorPrologue(const CXXConstructorDecl *CD,
13371341
assert(!Member->isBaseInitializer());
13381342
assert(Member->isAnyMemberInitializer() &&
13391343
"Delegating initializer on non-delegating constructor");
1340-
ApplyAtomGroup Grp(getDebugInfo());
13411344
CM.addMemberInitializer(Member);
13421345
}
1346+
13431347
CM.finish();
13441348
}
13451349

@@ -1562,6 +1566,7 @@ void CodeGenFunction::emitImplicitAssignmentOperatorBody(FunctionArgList &Args)
15621566
AssignmentMemcpyizer AM(*this, AssignOp, Args);
15631567
for (auto *I : RootCS->body())
15641568
AM.emitAssignment(I);
1569+
15651570
AM.finish();
15661571
}
15671572

clang/lib/CodeGen/CGDebugInfo.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1955,7 +1955,9 @@ CGDebugInfo::createInlinedSubprogram(StringRef FuncName,
19551955
/*ScopeLine=*/0,
19561956
/*Flags=*/llvm::DINode::FlagArtificial,
19571957
/*SPFlags=*/llvm::DISubprogram::SPFlagDefinition,
1958-
/*TParams=*/nullptr, /*ThrownTypes=*/nullptr, /*Annotations=*/nullptr);
1958+
/*TParams=*/nullptr, /*Decl=*/nullptr, /*ThrownTypes=*/nullptr,
1959+
/*Annotations=*/nullptr, /*TargetFuncName=*/StringRef(),
1960+
/*UseKeyInstructions=*/CGM.getCodeGenOpts().DebugKeyInstructions);
19591961
}
19601962

19611963
return SP;
@@ -2335,7 +2337,8 @@ llvm::DISubprogram *CGDebugInfo::CreateCXXMemberFunction(
23352337
llvm::DISubprogram *SP = DBuilder.createMethod(
23362338
RecordTy, MethodName, MethodLinkageName, MethodDefUnit, MethodLine,
23372339
MethodTy, VIndex, ThisAdjustment, ContainingType, Flags, SPFlags,
2338-
TParamsArray.get());
2340+
TParamsArray.get(), /*ThrownTypes*/ nullptr,
2341+
CGM.getCodeGenOpts().DebugKeyInstructions);
23392342

23402343
SPCache[Method->getCanonicalDecl()].reset(SP);
23412344

@@ -4403,7 +4406,9 @@ llvm::DISubprogram *CGDebugInfo::getFunctionFwdDeclOrStub(GlobalDecl GD,
44034406
return DBuilder.createFunction(
44044407
DContext, Name, LinkageName, Unit, Line,
44054408
getOrCreateFunctionType(GD.getDecl(), FnType, Unit), 0, Flags, SPFlags,
4406-
TParamsArray.get(), getFunctionDeclaration(FD));
4409+
TParamsArray.get(), getFunctionDeclaration(FD), /*ThrownTypes*/ nullptr,
4410+
/*Annotations*/ nullptr, /*TargetFuncName*/ "",
4411+
CGM.getCodeGenOpts().DebugKeyInstructions);
44074412
}
44084413

44094414
llvm::DISubprogram *SP = DBuilder.createTempFunctionFwdDecl(
@@ -4740,8 +4745,9 @@ void CGDebugInfo::emitFunctionStart(GlobalDecl GD, SourceLocation Loc,
47404745
llvm::DISubprogram *SP = DBuilder.createFunction(
47414746
FDContext, Name, LinkageName, Unit, LineNo, DIFnType, ScopeLine,
47424747
FlagsForDef, SPFlagsForDef, TParamsArray.get(), Decl, nullptr,
4743-
Annotations);
4748+
Annotations, "", CGM.getCodeGenOpts().DebugKeyInstructions);
47444749
Fn->setSubprogram(SP);
4750+
47454751
// We might get here with a VarDecl in the case we're generating
47464752
// code for the initialization of globals. Do not record these decls
47474753
// as they will overwrite the actual VarDecl Decl in the cache.
@@ -4800,9 +4806,12 @@ void CGDebugInfo::EmitFunctionDecl(GlobalDecl GD, SourceLocation Loc,
48004806

48014807
llvm::DINodeArray Annotations = CollectBTFDeclTagAnnotations(D);
48024808
llvm::DISubroutineType *STy = getOrCreateFunctionType(D, FnType, Unit);
4809+
// Key Instructions: Don't set flag on declarations.
4810+
assert(~SPFlags & llvm::DISubprogram::SPFlagDefinition);
48034811
llvm::DISubprogram *SP = DBuilder.createFunction(
48044812
FDContext, Name, LinkageName, Unit, LineNo, STy, ScopeLine, Flags,
4805-
SPFlags, TParamsArray.get(), nullptr, nullptr, Annotations);
4813+
SPFlags, TParamsArray.get(), nullptr, nullptr, Annotations,
4814+
/*TargetFunctionName*/ "", /*UseKeyInstructions*/ false);
48064815

48074816
// Preserve btf_decl_tag attributes for parameters of extern functions
48084817
// for BPF target. The parameters created in this loop are attached as

clang/lib/Driver/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ add_clang_library(clangDriver
7878
ToolChains/OHOS.cpp
7979
ToolChains/OpenBSD.cpp
8080
ToolChains/PS4CPU.cpp
81-
ToolChains/RISCVToolchain.cpp
8281
ToolChains/Solaris.cpp
8382
ToolChains/SPIRV.cpp
8483
ToolChains/SPIRVOpenMP.cpp

0 commit comments

Comments
 (0)