Skip to content

Commit 438fd8f

Browse files
authored
Merge branch 'main' into users/kparzysz/t02-taskgraph-clauses
2 parents e96f543 + 8ae3aea commit 438fd8f

File tree

174 files changed

+4328
-834
lines changed

Some content is hidden

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

174 files changed

+4328
-834
lines changed

bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2517,21 +2517,17 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
25172517
createInstrIncMemory(const MCSymbol *Target, MCContext *Ctx, bool IsLeaf,
25182518
unsigned CodePointerSize) const override {
25192519
unsigned int I = 0;
2520-
InstructionListType Instrs(10);
2520+
InstructionListType Instrs(6);
25212521

25222522
createPushRegisters(Instrs[I++], AArch64::X0, AArch64::X1);
2523-
getSystemFlag(Instrs[I++], AArch64::X1);
25242523
InstructionListType Addr = materializeAddress(Target, Ctx, AArch64::X0);
25252524
assert(Addr.size() == 2 && "Invalid Addr size");
25262525
std::copy(Addr.begin(), Addr.end(), Instrs.begin() + I);
25272526
I += Addr.size();
2528-
storeReg(Instrs[I++], AArch64::X2, AArch64::SP);
2529-
InstructionListType Insts = createIncMemory(AArch64::X0, AArch64::X2);
2527+
InstructionListType Insts = createIncMemory(AArch64::X0, AArch64::X1);
25302528
assert(Insts.size() == 2 && "Invalid Insts size");
25312529
std::copy(Insts.begin(), Insts.end(), Instrs.begin() + I);
25322530
I += Insts.size();
2533-
loadReg(Instrs[I++], AArch64::X2, AArch64::SP);
2534-
setSystemFlag(Instrs[I++], AArch64::X1);
25352531
createPopRegisters(Instrs[I++], AArch64::X0, AArch64::X1);
25362532
return Instrs;
25372533
}

clang/docs/OpenMPSupport.rst

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,16 +366,25 @@ implementation.
366366
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
367367
| threadset clause | :part:`in progress` | :none:`unclaimed` | |
368368
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
369-
| Recording of task graphs | :none:`unclaimed` | :none:`unclaimed` | |
369+
| Recording of task graphs | :part:`in progress` | :part:`in progress` | clang: jtb20, flang: kparzysz |
370370
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
371371
| Parallel inductions | :none:`unclaimed` | :none:`unclaimed` | |
372372
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
373373
| init_complete for scan directive | :none:`unclaimed` | :none:`unclaimed` | |
374374
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
375-
| Loop transformation constructs | :none:`unclaimed` | :none:`unclaimed` | |
375+
| loop interchange transformation | :good:`done` | :none:`unclaimed` | Clang (interchange): https://github.com/llvm/llvm-project/pull/93022 |
376+
| | | | Clang (permutation): https://github.com/llvm/llvm-project/pull/92030 |
377+
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
378+
| loop reverse transformation | :good:`done` | :none:`unclaimed` | https://github.com/llvm/llvm-project/pull/92916 |
376379
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
377380
| loop stripe transformation | :good:`done` | :none:`unclaimed` | https://github.com/llvm/llvm-project/pull/119891 |
378381
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
382+
| loop fusion transformation | :part:`in progress` | :none:`unclaimed` | https://github.com/llvm/llvm-project/pull/139293 |
383+
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
384+
| loop index set splitting transformation | :none:`unclaimed` | :none:`unclaimed` | |
385+
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
386+
| loop transformation apply clause | :none:`unclaimed` | :none:`unclaimed` | |
387+
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
379388
| workdistribute construct | | :none:`in progress` | @skc7, @mjklemm |
380389
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
381390
| task_iteration | :none:`unclaimed` | :none:`unclaimed` | |
@@ -446,7 +455,7 @@ implementation.
446455
| Optionally omit array length expression | :good:`done` | :none:`unclaimed` | (Parse) https://github.com/llvm/llvm-project/pull/148048, |
447456
| | | | (Sema) https://github.com/llvm/llvm-project/pull/152786 |
448457
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
449-
| Canonical loop sequences | :none:`unclaimed` | :part:`In Progress` | |
458+
| Canonical loop sequences | :part:`in progress` | :part:`in progress` | Clang: https://github.com/llvm/llvm-project/pull/139293 |
450459
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
451460
| Clarifications to Fortran map semantics | :none:`unclaimed` | :none:`unclaimed` | |
452461
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
@@ -507,6 +516,10 @@ implementation.
507516
| | | | https://github.com/llvm/llvm-project/pull/152830 |
508517
| | | | https://github.com/llvm/llvm-project/pull/152831) |
509518
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
519+
| loop flatten transformation | :none:`unclaimed` | :none:`unclaimed` | |
520+
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
521+
| loop grid/tile modifiers for sizes clause | :none:`unclaimed` | :none:`unclaimed` | |
522+
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
510523

511524

512525
OpenMP Extensions

clang/docs/ReleaseNotes.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,9 @@ Bug Fixes to C++ Support
350350
authentication enabled. (#GH152601)
351351
- Fix the check for narrowing int-to-float conversions, so that they are detected in
352352
cases where converting the float back to an integer is undefined behaviour (#GH157067).
353+
- Fix a crash when applying binary or ternary operators to two same function types with different spellings,
354+
where at least one of the function parameters has an attribute which affects
355+
the function type.
353356
- Fix an assertion failure when a ``constexpr`` variable is only referenced through
354357
``__builtin_addressof``, and related issues with builtin arguments. (#GH154034)
355358

clang/include/clang/Basic/BuiltinsAMDGPU.def

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,20 @@ BUILTIN(__builtin_amdgcn_workgroup_id_x, "Ui", "nc")
3434
BUILTIN(__builtin_amdgcn_workgroup_id_y, "Ui", "nc")
3535
BUILTIN(__builtin_amdgcn_workgroup_id_z, "Ui", "nc")
3636

37+
TARGET_BUILTIN(__builtin_amdgcn_cluster_id_x, "Ui", "nc", "gfx1250-insts")
38+
TARGET_BUILTIN(__builtin_amdgcn_cluster_id_y, "Ui", "nc", "gfx1250-insts")
39+
TARGET_BUILTIN(__builtin_amdgcn_cluster_id_z, "Ui", "nc", "gfx1250-insts")
40+
41+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_id_x, "Ui", "nc", "gfx1250-insts")
42+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_id_y, "Ui", "nc", "gfx1250-insts")
43+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_id_z, "Ui", "nc", "gfx1250-insts")
44+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_flat_id, "Ui", "nc", "gfx1250-insts")
45+
46+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_max_id_x, "Ui", "nc", "gfx1250-insts")
47+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_max_id_y, "Ui", "nc", "gfx1250-insts")
48+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_max_id_z, "Ui", "nc", "gfx1250-insts")
49+
TARGET_BUILTIN(__builtin_amdgcn_cluster_workgroup_max_flat_id, "Ui", "nc", "gfx1250-insts")
50+
3751
BUILTIN(__builtin_amdgcn_workitem_id_x, "Ui", "nc")
3852
BUILTIN(__builtin_amdgcn_workitem_id_y, "Ui", "nc")
3953
BUILTIN(__builtin_amdgcn_workitem_id_z, "Ui", "nc")

clang/include/clang/Sema/Sema.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,9 +845,16 @@ enum AttrName { Target, TargetClones, TargetVersion };
845845

846846
void inferNoReturnAttr(Sema &S, const Decl *D);
847847

848+
#ifdef __GNUC__
849+
#pragma GCC diagnostic push
850+
#pragma GCC diagnostic ignored "-Wattributes"
851+
#endif
848852
/// Sema - This implements semantic analysis and AST building for C.
849853
/// \nosubgrouping
850854
class Sema final : public SemaBase {
855+
#ifdef __GNUC__
856+
#pragma GCC diagnostic pop
857+
#endif
851858
// Table of Contents
852859
// -----------------
853860
// 1. Semantic Analysis (Sema.cpp)

clang/lib/AST/ASTContext.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14195,7 +14195,11 @@ static QualType getCommonNonSugarTypeNode(const ASTContext &Ctx, const Type *X,
1419514195
FunctionProtoType::ExtProtoInfo EPIX = FX->getExtProtoInfo(),
1419614196
EPIY = FY->getExtProtoInfo();
1419714197
assert(EPIX.ExtInfo == EPIY.ExtInfo);
14198-
assert(EPIX.ExtParameterInfos == EPIY.ExtParameterInfos);
14198+
assert(!EPIX.ExtParameterInfos == !EPIY.ExtParameterInfos);
14199+
assert(!EPIX.ExtParameterInfos ||
14200+
llvm::equal(
14201+
llvm::ArrayRef(EPIX.ExtParameterInfos, FX->getNumParams()),
14202+
llvm::ArrayRef(EPIY.ExtParameterInfos, FY->getNumParams())));
1419914203
assert(EPIX.RefQualifier == EPIY.RefQualifier);
1420014204
assert(EPIX.TypeQuals == EPIY.TypeQuals);
1420114205
assert(EPIX.Variadic == EPIY.Variadic);

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5453,13 +5453,14 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
54535453
const bool IsAssertBuild = true;
54545454
#endif
54555455

5456-
// Disable the verification pass in asserts builds unless otherwise specified.
5456+
// Disable the verification pass in no-asserts builds unless otherwise
5457+
// specified.
54575458
if (Args.hasFlag(options::OPT_fno_verify_intermediate_code,
54585459
options::OPT_fverify_intermediate_code, !IsAssertBuild)) {
54595460
CmdArgs.push_back("-disable-llvm-verifier");
54605461
}
54615462

5462-
// Discard value names in assert builds unless otherwise specified.
5463+
// Discard value names in no-asserts builds unless otherwise specified.
54635464
if (Args.hasFlag(options::OPT_fdiscard_value_names,
54645465
options::OPT_fno_discard_value_names, !IsAssertBuild)) {
54655466
if (Args.hasArg(options::OPT_fdiscard_value_names) &&

0 commit comments

Comments
 (0)