Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
62adc83
[NFC][LLVM] Namespace cleanup in LoopFuse (#163758)
jurahul Oct 16, 2025
65c895d
[alpha.webkit.UnretainedCallArgsChecker] Treat getter on a dependent …
rniwa Oct 16, 2025
d0cee69
[libc++] Optimize std::{,ranges}::{fill,fill_n} for segmented iterato…
winner245 Oct 16, 2025
2914642
[AMDGPU] NFC: Add Opcode variants for TII->isMFMA* (#163874)
jrbyrnes Oct 16, 2025
4d4088e
[CIR] Add support for dynamic cast to void (#162905)
andykaylor Oct 17, 2025
99f02ea
[CIR][NFC] Improve the output for missing builtin calls (#163884)
andykaylor Oct 17, 2025
6708832
[X86][APX] Distinguish REX2 PUSH/POP from PPX (#163526)
phoebewang Oct 17, 2025
e501a1f
[RISCV] Make Zalrsc+Zaamo imply A. (#163890)
topperc Oct 17, 2025
06b1455
[HLSL] Update type for `out` arguments only for dependent params type…
hekota Oct 17, 2025
b3a1994
[libc++] Properly implement array cookies in the ARM ABI (#160182)
ldionne Oct 17, 2025
f4e906a
[RISCV] Move more stuff to RISCVInstrInfoZvfbf.td. Fix incorrect Pred…
topperc Oct 17, 2025
059f2df
[clang-format] Fix an assertion failure on comment-only config files …
owenca Oct 17, 2025
7be89bb
[MLIR] Fix typo of the word "pattern" in CAPI and docs (#163780)
jackalcooper Oct 17, 2025
4aba5ed
[CIR] Add inline function attributes (#162866)
mmha Oct 17, 2025
558d935
[clang][bytecode] Add Block::movePointersTo (#163795)
tbaederr Oct 17, 2025
5157ed5
[MLIR] Update CODEOWNERS with `mlir/include/Bindings/Python` (#163909)
makslevental Oct 17, 2025
0b9a7b8
[Polly] Update ScopInliner for NPM (#125427)
Meinersbur Oct 17, 2025
7bbb4a5
Add checksum option for create file (#162592)
demoitem Oct 17, 2025
a08b094
[clang][analyzer] Record entry-point CFG size in per-entry-point metr…
necto Oct 17, 2025
cf7929f
[libc++][C++03] Cherry-pick #120577 and #120495 (#163748)
philnik777 Oct 17, 2025
89eef94
[libc++] Only accept `__tree`s inside the __tree merge functions (#16…
philnik777 Oct 17, 2025
f5885de
[lld] Reject --read-workers when lld is built without thread support …
DavidSpickett Oct 17, 2025
9ba54ca
[OFFLOAD] Interop fixes for Windows (#162652)
adurang Oct 17, 2025
9aacc1a
Unify x64 and arm64 build process in build_llvm_release.bat (#131687)
omjavaid Oct 17, 2025
23341c3
[Clang] Substitute non dependent concepts in constraints (#163827)
cor3ntin Oct 17, 2025
50d65a5
[mlir][bufferize] Make drop-equivalent-buffer-results support mult bl…
linuxlonelyeagle Oct 17, 2025
c988bf8
[mlir][memref] Canonicalize memref.reinterpret_cast when offset/sizes…
NexMing Oct 17, 2025
6fa5513
[clang][AST] Make some ASTContext functions static (#163921)
tbaederr Oct 17, 2025
ac40b78
[Clang][MVE] Use IRBuilder methods to emit masked load/store (NFC) (#…
nikic Oct 17, 2025
d4f862a
[ORC] Disable the ReOptimizeLayerTest on Windows. (#163930)
lhames Oct 17, 2025
477704e
[lld][MachO] Disable read-workers.s test eveywhere
DavidSpickett Oct 17, 2025
1e7a23f
[ORC] Add automatic shared library resolver for unresolved symbols. (…
SahilPatidar Oct 17, 2025
a43c0cf
[SPIR-V] Generate SPIR-V instructions when 'enable-maximal-reconverge…
luciechoi Oct 17, 2025
fc1d171
[SPIRV][NFC] Remove useless cast to Constant (#163935)
jmmartinez Oct 17, 2025
0f8a137
[NFC][LLVM] Namespace cleanup in Reg2Mem.cpp (#163765)
jurahul Oct 17, 2025
993e80d
[X86] rotate-extract-vector.ll - regenerate test checks (#163939)
RKSimon Oct 17, 2025
e40f215
[MLIR][WASM] Control flow, conversion and comparison in Wasm importer…
lforg37 Oct 17, 2025
8db1aab
Revert "[ORC] Add automatic shared library resolver for unresolved sy…
SahilPatidar Oct 17, 2025
8c72b2a
[X86] LowervXi8MulWithUNPCK - remove special case constant folding ha…
RKSimon Oct 17, 2025
b00c4ff
[Matrix][IR] Cap stride bitwidth at 64 (#163729)
cofibrant Oct 17, 2025
0590c9e
[IndVars] Add additional tests with ICMP_NE loop guards.
fhahn Oct 17, 2025
fbbffc1
[MLIR][ROCDL] Add math.clampf -> rocdl.fmed3 conversion (#163520)
keshavvinayak01 Oct 17, 2025
38ce641
[CI] Fix unpacking in premerge advisor upload (#163944)
Keenuts Oct 17, 2025
8fd558d
[X86] addConstantComments - add vector constant printing for (V)PMULL…
RKSimon Oct 17, 2025
5d0a4a1
[mlir][spirv] Emit error when block to be unlinked has uses after str…
IgWod-IMG Oct 17, 2025
d74c976
[NFC][MLIR][shard] improving shard docs (#163782)
fschlimb Oct 17, 2025
d17d32a
[LLVM][ConstProp] Enable intrinsic simplifications for vector Constan…
paulwalker-arm Oct 17, 2025
a358043
[X86] addConstantComments - add vector constant printing for VPMULLQ …
RKSimon Oct 17, 2025
0cefd5c
CodeGen: Fix hardcoded libcall names in insertSSPDeclarations (NFC) (…
arsenm Oct 17, 2025
f44f83a
[clang][bytecode] Reject typeid pointers from OffsetHelper (#163793)
tbaederr Oct 17, 2025
936e038
[MLIR] Apply clang-tidy fixes for performance-unnecessary-value-param…
joker-eph Aug 21, 2025
0fdfad3
[SLP]Fix insert point for copyable node with the last inst, used only…
alexey-bataev Oct 17, 2025
f404517
[X86] addConstantComments - add vector constant printing for (V)PMULD…
RKSimon Oct 17, 2025
f3cd6b7
[HLSL] Convert vectors to bool for unary ! (#163857)
llvm-beanz Oct 17, 2025
98a6b6e
[SCEV] Improve code using SCEVPatternMatch (NFC) (#163946)
artagnon Oct 17, 2025
ed1716f
[docs][Coc] Add link to most recent transparency report (#163964)
cyndyishida Oct 17, 2025
728e925
[AMDPGU] Auto-upgrade ELF mangling in the data layout (#163644)
jhuber6 Oct 17, 2025
1c11c60
Fix MSVC compile error in BitstreamRemarkParser.h when targeting C++17
jholewinski-nv Oct 9, 2025
041ac7a
[DWARF] Don't leak line numbers onto frame-setup instructions (#161845)
OCHyams Oct 17, 2025
1dfbfbd
[clang] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]] (NFC) (#1…
kazutakahirata Oct 17, 2025
a226381
[clang-tools-extra] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused…
kazutakahirata Oct 17, 2025
7d25ba3
[flang] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]] (NFC) (#1…
kazutakahirata Oct 17, 2025
0986646
[mlir] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]] (NFC) (#16…
kazutakahirata Oct 17, 2025
ad3de39
[llvm] Proofread TableGen/BackEnds.rst (#163918)
kazutakahirata Oct 17, 2025
4b1d782
[X86] addConstantComments - merge (V)PMADDUBSW handling with all othe…
RKSimon Oct 17, 2025
7c02ca8
[NFC][LLVM] Namespace cleanup in LowerMatrixIntrinsics (#163760)
jurahul Oct 17, 2025
1e1ff21
[NFC][LLVM] Code cleanup in CFGuard.cpp (#163773)
jurahul Oct 17, 2025
9ab1677
[flang][acc] Implement PointerLikeType API gen[Allocate/Free/Copy] (#…
razvanlupusoru Oct 17, 2025
8fe71e0
[support] Don't require VFS in `SourceMgr` for loading includes (#163…
jansvoboda11 Oct 17, 2025
212eb81
To support unlimited polymorphic argument for intrinsic MERGE. (#163866)
DanielCChen Oct 17, 2025
a55c4c8
[libc][math] Refactor exp2m1f implementation to header-only in src/__…
bassiounix Oct 17, 2025
9975600
[X86] combineSelect - remove X86ISD::BLENDV if the condition signbit …
RKSimon Oct 17, 2025
bde0a8c
[Clang][HIP][CUDA] Add `__cluster_dims__` and `__no_cluster__` attrib…
shiltian Oct 17, 2025
c4ceb8d
[libc] add IPV6 related macros (#162219)
c8ef Oct 17, 2025
404099d
[libc][NFC] Remove cpp20 requirement for arpa/inet test (#163983)
c8ef Oct 17, 2025
f7a5264
[mlir][vector] Add support for yielding loop bounds in `scf.for` dist…
charithaintc Oct 17, 2025
fcb5293
[InstCombine]: Canonicalize to a mask when trunc nuw (#163628)
kper Oct 17, 2025
7bbb03d
[NFC][SROA][DebugInfo] Reuse existing dbg_assigns where possible (#16…
OCHyams Oct 17, 2025
a99e32b
Revert "[Polly] Update ScopInliner for NPM (#125427)"
boomanaiden154 Oct 17, 2025
1e78d33
[mlir][arith][nfc] Adding examples to scaling_extf/truncf description…
Muzammiluddin-Syed-ECE Oct 17, 2025
df2ff3a
[clang][x86][bytecode] remove trailing returns type from interp__buil…
donneypr Oct 17, 2025
92757f9
[CIR] TryOp add arg default value and update diagnostic (#163856)
AmrDeveloper Oct 17, 2025
6b36cfa
[NFC][IR][DebugInfo] Fix typos in comments (#163957)
jryans Oct 17, 2025
d6191b8
[CIR] Add VTable class name for enum type (#163612)
moar55 Oct 17, 2025
a76c71b
[mlir][amdgpu] Add scaled_ext_packed{8,16} operations (#159830)
amd-eochoalo Oct 17, 2025
64c511f
[AMDGPU] Add additional aliases for load transpose instructions (#163…
changpeng Oct 17, 2025
56ee43a
AMDGPU: Document address spaces as reserved (#163996)
nhaehnle Oct 17, 2025
e29cf8e
[MLIR][MathToXeVM] Remove requirement for ModuleOp op type for MathTo…
ianayl Oct 17, 2025
40d4ea6
[lldb] Fix misaligned loads violation in DataExtractor (#163880)
bulbazord Oct 17, 2025
b8c7013
[AMDGPU][MC] Fix disassembler warning for v_cmpx instructions in GFX9…
jwanggit86 Oct 17, 2025
7be2d75
[MLIR][BUILD]: Add deps after fbbffc11 (#163999)
sohaibiftikhar Oct 17, 2025
ac193bc
[AMDGPU][True16][CodeGen] S_PACK_XX_B32_B16 lowering for true16 mode …
broxigarchen Oct 17, 2025
f5ed0b7
[gn] port f5885de2cd49
nico Oct 17, 2025
783b050
[LMI] Support non-power-of-2 types for the matmul remainder (#163987)
anemet Oct 17, 2025
dc27696
[Clang] disallow constexpr with auto and explicit type in C23 (#163469)
a-tarasyuk Oct 17, 2025
2f70482
[ROCDL] Add gfx1250 WMMA intrinsics (#162343)
Muzammiluddin-Syed-ECE Oct 17, 2025
db2a75d
[flang][acc] Add recipe populate testing through type interfaces (#16…
razvanlupusoru Oct 17, 2025
024dd56
[HLSL] GetDimensions methods for buffer resources (#161929)
hekota Oct 17, 2025
89d1143
[mlir][gpu]Add GPUToXeVM lowering pipeline pass. (#161216)
mshahneo Oct 17, 2025
c0e0a33
[libc] add basic lifetime annotations for support data structures (#1…
SchrodingerZhu Oct 17, 2025
12ec050
[LV] Remove some unnecessary uses of poison from tests.
fhahn Oct 17, 2025
9324afb
maintainer change for xegpu (#163867)
Jianhui-Li Oct 17, 2025
e101afc
[CIR][NFC] Fix maybe_unused build issues (#163997)
andykaylor Oct 17, 2025
2505df0
Revert "[libc] add basic lifetime annotations for support data struct…
SchrodingerZhu Oct 17, 2025
7a73a8b
[RISCV] Allow large div peephole optimization for minsize (#163679)
kvpanch Oct 17, 2025
90e0933
[ASan] Do not instrument catch block parameters on Windows (#159618)
davidmrdavid Oct 17, 2025
228dae7
[X86] Use pseudo instructions to zero registers in `buildClearRegiste…
abhishek-kaushik22 Oct 17, 2025
ab2ece0
[libc++] Compute geomean in compare-benchmarks
ldionne Oct 17, 2025
f7c9618
[AMDGPU] 32-bit ABS is a legal DAG node (#163907)
LU-JOHN Oct 17, 2025
62f9115
[SPIR-V] Add capability for non-uniform indexing for `StructuredBuff…
luciechoi Oct 17, 2025
9a74abc
[libc++] Fix bugs in geomean calculation
ldionne Oct 17, 2025
79d8a26
[LinkerWrapper] Update deprecated fatbin command line option (#163571)
jhuber6 Oct 17, 2025
8b2fc00
[AMDGPU][NFC]: Minor Unpacking Fixes. (#163992)
akadutta Oct 17, 2025
0319951
[docs][OpenMP] Update support doc with the planned/in-progress pointe…
abhinavgaba Oct 17, 2025
9522f98
[llvm][DebugInfo] Add support for emitting DW_AT_language_version (#1…
Michael137 Oct 17, 2025
bf2d84d
[lldb][ObjC] Consult Objective-C runtime decl vendor when completing …
Michael137 Oct 17, 2025
64c8ebb
[dsymutil] Remove old --minimize option from docs (#164027)
keith Oct 17, 2025
fe5b72a
[mlir][Vector] Pattern to linearize broadcast (#163845)
newling Oct 17, 2025
df89564
[SimpleLoopUnswitch] Don't use BlockFrequencyInfo to skip cold loops …
lukel97 Oct 17, 2025
1508a8e
[MLIR][Linalg] Modify `rewriteAsPaddedOp` to not remove pre-padded o…
newling Oct 17, 2025
fe02993
[FlowSensitive] [StatusOr] [2/N] Add minimal model (#162932)
fmayer Oct 17, 2025
d833632
Add asan-win-dont-instrument-catchpad.ll to xfail list (#164042)
mtrofin Oct 18, 2025
eed8d3a
Revert "[FlowSensitive] [StatusOr] [2/N] Add minimal model" (#164040)
fmayer Oct 18, 2025
f4fe714
[Flang][OpenMP] Implement workdistribute construct lowering (#140523)
skc7 Oct 18, 2025
f37bdc2
[Clang] Add the template depth when parsing type constraints (#163960)
zyn0217 Oct 18, 2025
a3557c3
[mlir][rocdl] Adds `cvt.scalef32.pk16.*` and `cvt.scalef32.sr.pk16.*`…
amd-eochoalo Oct 18, 2025
a70efbd
Always register `asm` attribute first in a Decl. (#162687)
giulianobelinassi Oct 18, 2025
b4b7aae
[mlir][affine] Make AffineForEmptyLoopFolder as folder function (#163…
linuxlonelyeagle Oct 18, 2025
908b116
[X86] SimplifyDemandedBitsForTargetNode - PCMPGT(0,X) only demands th…
RKSimon Oct 18, 2025
eb5de5c
[SLPVectorizer] Refactor isStridedLoad, NFC. (#163844)
mgudim Oct 18, 2025
0f68dc6
[APFloat] Inline static getters (#163794)
dtcxzyw Oct 18, 2025
c491c6e
[bazel] Port 89d1143a90b7bf9b9ebabab1d8b7ed519c6ec5eb
d0k Oct 18, 2025
a5d3522
[SCEV] Rewrite A - B = UMin(1, A - B) lazily for A != B loop guards. …
fhahn Oct 18, 2025
9de2edf
[libc][annex_k] Add Annex K support macros.
bassiounix Oct 12, 2025
1d013b7
comment define macro
bassiounix Oct 17, 2025
cbdd3a2
[libc][annex_k] Add errno_t.
bassiounix Oct 12, 2025
87b39d1
change location of errno_t
bassiounix Oct 13, 2025
b58b891
add clarifying comment about LIBC_HAS_ANNEX_K
bassiounix Oct 16, 2025
160069a
add errno_t to hdrgen
bassiounix Oct 16, 2025
5c7b9a7
change clarifying comment
bassiounix Oct 16, 2025
02bef79
[libc][annex_k] Add rsize_t.
bassiounix Oct 13, 2025
7900d18
[libc][annex_k] Add constraint_handler_t.
bassiounix Oct 13, 2025
b5b13c1
change location
bassiounix Oct 13, 2025
611fd5f
[libc][annex_k] Add abort_handler_s.
bassiounix Oct 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 5 additions & 2 deletions .ci/premerge_advisor_upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,11 @@ def main(commit_sha, workflow_run_number, build_log_files):
"platform": current_platform,
}
if test_failures:
for name, failure_message in test_failures:
failure_info["failures"].append({"name": name, "message": failure_message})
for _, failures in test_failures.items():
for name, failure_message in failures:
failure_info["failures"].append(
{"name": name, "message": failure_message}
)
else:
ninja_failures = generate_test_report_lib.find_failure_in_ninja_logs(ninja_logs)
for name, failure_message in ninja_failures:
Expand Down
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
/mlir/test/python/ @ftynse @makslevental @stellaraccident @rolfmorel
/mlir/python/ @ftynse @makslevental @stellaraccident @rolfmorel
/mlir/lib/Bindings/Python @makslevental @rolfmorel
/mlir/include/Bindings/Python @makslevental @rolfmorel

# MLIR Mem2Reg/SROA
/mlir/**/Transforms/Mem2Reg.* @moxinilian
Expand Down
14 changes: 5 additions & 9 deletions clang-tools-extra/clang-doc/Generators.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,15 +97,11 @@ void Generator::addInfoToIndex(Index &Idx, const doc::Info *Info) {

// This anchor is used to force the linker to link in the generated object file
// and thus register the generators.
static int LLVM_ATTRIBUTE_UNUSED YAMLGeneratorAnchorDest =
YAMLGeneratorAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED MDGeneratorAnchorDest =
MDGeneratorAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED HTMLGeneratorAnchorDest =
HTMLGeneratorAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED MHTMLGeneratorAnchorDest =
[[maybe_unused]] static int YAMLGeneratorAnchorDest = YAMLGeneratorAnchorSource;
[[maybe_unused]] static int MDGeneratorAnchorDest = MDGeneratorAnchorSource;
[[maybe_unused]] static int HTMLGeneratorAnchorDest = HTMLGeneratorAnchorSource;
[[maybe_unused]] static int MHTMLGeneratorAnchorDest =
MHTMLGeneratorAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED JSONGeneratorAnchorDest =
JSONGeneratorAnchorSource;
[[maybe_unused]] static int JSONGeneratorAnchorDest = JSONGeneratorAnchorSource;
} // namespace doc
} // namespace clang
51 changes: 25 additions & 26 deletions clang-tools-extra/clang-tidy/ClangTidyForceLinker.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,132 +16,131 @@ namespace clang::tidy {

// This anchor is used to force the linker to link the AbseilModule.
extern volatile int AbseilModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED AbseilModuleAnchorDestination =
[[maybe_unused]] static int AbseilModuleAnchorDestination =
AbseilModuleAnchorSource;

// This anchor is used to force the linker to link the AlteraModule.
extern volatile int AlteraModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED AlteraModuleAnchorDestination =
[[maybe_unused]] static int AlteraModuleAnchorDestination =
AlteraModuleAnchorSource;

// This anchor is used to force the linker to link the AndroidModule.
extern volatile int AndroidModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED AndroidModuleAnchorDestination =
[[maybe_unused]] static int AndroidModuleAnchorDestination =
AndroidModuleAnchorSource;

// This anchor is used to force the linker to link the BoostModule.
extern volatile int BoostModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED BoostModuleAnchorDestination =
[[maybe_unused]] static int BoostModuleAnchorDestination =
BoostModuleAnchorSource;

// This anchor is used to force the linker to link the BugproneModule.
extern volatile int BugproneModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED BugproneModuleAnchorDestination =
[[maybe_unused]] static int BugproneModuleAnchorDestination =
BugproneModuleAnchorSource;

// This anchor is used to force the linker to link the CERTModule.
extern volatile int CERTModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED CERTModuleAnchorDestination =
[[maybe_unused]] static int CERTModuleAnchorDestination =
CERTModuleAnchorSource;

// This anchor is used to force the linker to link the ConcurrencyModule.
extern volatile int ConcurrencyModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ConcurrencyModuleAnchorDestination =
[[maybe_unused]] static int ConcurrencyModuleAnchorDestination =
ConcurrencyModuleAnchorSource;

// This anchor is used to force the linker to link the CppCoreGuidelinesModule.
extern volatile int CppCoreGuidelinesModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED CppCoreGuidelinesModuleAnchorDestination =
[[maybe_unused]] static int CppCoreGuidelinesModuleAnchorDestination =
CppCoreGuidelinesModuleAnchorSource;

#if CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS
// This anchor is used to force the linker to link the CustomModule.
extern volatile int CustomModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED CustomModuleAnchorDestination =
[[maybe_unused]] static int CustomModuleAnchorDestination =
CustomModuleAnchorSource;
#endif

// This anchor is used to force the linker to link the DarwinModule.
extern volatile int DarwinModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED DarwinModuleAnchorDestination =
[[maybe_unused]] static int DarwinModuleAnchorDestination =
DarwinModuleAnchorSource;

// This anchor is used to force the linker to link the FuchsiaModule.
extern volatile int FuchsiaModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED FuchsiaModuleAnchorDestination =
[[maybe_unused]] static int FuchsiaModuleAnchorDestination =
FuchsiaModuleAnchorSource;

// This anchor is used to force the linker to link the GoogleModule.
extern volatile int GoogleModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED GoogleModuleAnchorDestination =
[[maybe_unused]] static int GoogleModuleAnchorDestination =
GoogleModuleAnchorSource;

// This anchor is used to force the linker to link the HICPPModule.
extern volatile int HICPPModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED HICPPModuleAnchorDestination =
[[maybe_unused]] static int HICPPModuleAnchorDestination =
HICPPModuleAnchorSource;

// This anchor is used to force the linker to link the LinuxKernelModule.
extern volatile int LinuxKernelModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LinuxKernelModuleAnchorDestination =
[[maybe_unused]] static int LinuxKernelModuleAnchorDestination =
LinuxKernelModuleAnchorSource;

// This anchor is used to force the linker to link the LLVMModule.
extern volatile int LLVMModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LLVMModuleAnchorDestination =
[[maybe_unused]] static int LLVMModuleAnchorDestination =
LLVMModuleAnchorSource;

// This anchor is used to force the linker to link the LLVMLibcModule.
extern volatile int LLVMLibcModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LLVMLibcModuleAnchorDestination =
[[maybe_unused]] static int LLVMLibcModuleAnchorDestination =
LLVMLibcModuleAnchorSource;

// This anchor is used to force the linker to link the MiscModule.
extern volatile int MiscModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED MiscModuleAnchorDestination =
[[maybe_unused]] static int MiscModuleAnchorDestination =
MiscModuleAnchorSource;

// This anchor is used to force the linker to link the ModernizeModule.
extern volatile int ModernizeModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ModernizeModuleAnchorDestination =
[[maybe_unused]] static int ModernizeModuleAnchorDestination =
ModernizeModuleAnchorSource;

#if CLANG_TIDY_ENABLE_STATIC_ANALYZER && \
!defined(CLANG_TIDY_DISABLE_STATIC_ANALYZER_CHECKS)
// This anchor is used to force the linker to link the MPIModule.
extern volatile int MPIModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED MPIModuleAnchorDestination =
MPIModuleAnchorSource;
[[maybe_unused]] static int MPIModuleAnchorDestination = MPIModuleAnchorSource;
#endif

// This anchor is used to force the linker to link the ObjCModule.
extern volatile int ObjCModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ObjCModuleAnchorDestination =
[[maybe_unused]] static int ObjCModuleAnchorDestination =
ObjCModuleAnchorSource;

// This anchor is used to force the linker to link the OpenMPModule.
extern volatile int OpenMPModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED OpenMPModuleAnchorDestination =
[[maybe_unused]] static int OpenMPModuleAnchorDestination =
OpenMPModuleAnchorSource;

// This anchor is used to force the linker to link the PerformanceModule.
extern volatile int PerformanceModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED PerformanceModuleAnchorDestination =
[[maybe_unused]] static int PerformanceModuleAnchorDestination =
PerformanceModuleAnchorSource;

// This anchor is used to force the linker to link the PortabilityModule.
extern volatile int PortabilityModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED PortabilityModuleAnchorDestination =
[[maybe_unused]] static int PortabilityModuleAnchorDestination =
PortabilityModuleAnchorSource;

// This anchor is used to force the linker to link the ReadabilityModule.
extern volatile int ReadabilityModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ReadabilityModuleAnchorDestination =
[[maybe_unused]] static int ReadabilityModuleAnchorDestination =
ReadabilityModuleAnchorSource;

// This anchor is used to force the linker to link the ZirconModule.
extern volatile int ZirconModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ZirconModuleAnchorDestination =
[[maybe_unused]] static int ZirconModuleAnchorDestination =
ZirconModuleAnchorSource;

} // namespace clang::tidy
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clangd/FindTarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ namespace clang {
namespace clangd {
namespace {

LLVM_ATTRIBUTE_UNUSED std::string nodeToString(const DynTypedNode &N) {
[[maybe_unused]] std::string nodeToString(const DynTypedNode &N) {
std::string S = std::string(N.getNodeKind().asStringRef());
{
llvm::raw_string_ostream OS(S);
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clangd/unittests/FileDistanceTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ TEST(FileDistanceTests, BadSource) {
}

// Force the unittest URI scheme to be linked,
static int LLVM_ATTRIBUTE_UNUSED UseUnittestScheme = UnittestSchemeAnchorSource;
[[maybe_unused]] static int UseUnittestScheme = UnittestSchemeAnchorSource;

TEST(FileDistanceTests, URI) {
FileDistanceOptions Opts;
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clangd/unittests/QualityTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ namespace clang {
namespace clangd {

// Force the unittest URI scheme to be linked,
static int LLVM_ATTRIBUTE_UNUSED UnittestSchemeAnchorDest =
[[maybe_unused]] static int UnittestSchemeAnchorDest =
UnittestSchemeAnchorSource;

namespace {
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/clangd/unittests/URITests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace clang {
namespace clangd {

// Force the unittest URI scheme to be linked,
static int LLVM_ATTRIBUTE_UNUSED UnittestSchemeAnchorDest =
[[maybe_unused]] static int UnittestSchemeAnchorDest =
UnittestSchemeAnchorSource;

namespace {
Expand Down
6 changes: 5 additions & 1 deletion clang/docs/OpenMPSupport.rst
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ implementation.
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
| device | support non-contiguous array sections for target update | :good:`done` | https://github.com/llvm/llvm-project/pull/144635 |
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
| device | pointer attachment | :good:`done` | |
| device | pointer attachment | :part:`being repaired` | @abhinavgaba (https://github.com/llvm/llvm-project/pull/153683) |
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
| atomic | hints for the atomic construct | :good:`done` | D51233 |
+------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+
Expand Down Expand Up @@ -627,6 +627,10 @@ implementation.
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
| loop grid/tile modifiers for sizes clause | :none:`unclaimed` | :none:`unclaimed` | |
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+
| attach map-type modifier | :part:`In Progress` | :none:`unclaimed` | C/C++: @abhinavgaba; |
| | | | RT: @abhinavgaba (https://github.com/llvm/llvm-project/pull/149036, |
| | | | https://github.com/llvm/llvm-project/pull/158370) |
+-------------------------------------------------------------+---------------------------+---------------------------+--------------------------------------------------------------------------+


OpenMP Extensions
Expand Down
14 changes: 14 additions & 0 deletions clang/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,17 @@ AST Dumping Potentially Breaking Changes

- Default arguments of template template parameters are pretty-printed now.

- Pretty-printing of ``asm`` attributes are now always the first attribute
on the right side of the declaration. Before we had, e.g.:

``__attribute__(("visibility")) asm("string")``

Now we have:

``asm("string") __attribute__(("visibility"))``

Which is accepted by both clang and gcc parsers.

Clang Frontend Potentially Breaking Changes
-------------------------------------------
- Members of anonymous unions/structs are now injected as ``IndirectFieldDecl``
Expand Down Expand Up @@ -271,6 +282,8 @@ Non-comprehensive list of changes in this release
allocation functions with a token ID can be enabled via the
``-fsanitize=alloc-token`` flag.

- Clang now rejects the invalid use of ``constexpr`` with ``auto`` and an explicit type in C. (#GH163090)

New Compiler Flags
------------------
- New option ``-fno-sanitize-debug-trap-reasons`` added to disable emitting trap reasons into the debug info when compiling with trapping UBSan (e.g. ``-fsanitize-trap=undefined``).
Expand Down Expand Up @@ -476,6 +489,7 @@ Bug Fixes to C++ Support
- Fix a crash when attempting to deduce a deduction guide from a non deducible template template parameter. (#130604)
- Fix for clang incorrectly rejecting the default construction of a union with
nontrivial member when another member has an initializer. (#GH81774)
- Fixed a template depth issue when parsing lambdas inside a type constraint. (#GH162092)
- Diagnose unresolved overload sets in non-dependent compound requirements. (#GH51246) (#GH97753)

Bug Fixes to AST Handling
Expand Down
10 changes: 5 additions & 5 deletions clang/include/clang/AST/ASTContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -2874,11 +2874,11 @@ class ASTContext : public RefCountedBase<ASTContext> {
/// returned type is guaranteed to be free of any of these, allowing two
/// canonical types to be compared for exact equality with a simple pointer
/// comparison.
CanQualType getCanonicalType(QualType T) const {
static CanQualType getCanonicalType(QualType T) {
return CanQualType::CreateUnsafe(T.getCanonicalType());
}

const Type *getCanonicalType(const Type *T) const {
static const Type *getCanonicalType(const Type *T) {
return T->getCanonicalTypeInternal().getTypePtr();
}

Expand All @@ -2890,10 +2890,10 @@ class ASTContext : public RefCountedBase<ASTContext> {
CanQualType getCanonicalParamType(QualType T) const;

/// Determine whether the given types \p T1 and \p T2 are equivalent.
bool hasSameType(QualType T1, QualType T2) const {
static bool hasSameType(QualType T1, QualType T2) {
return getCanonicalType(T1) == getCanonicalType(T2);
}
bool hasSameType(const Type *T1, const Type *T2) const {
static bool hasSameType(const Type *T1, const Type *T2) {
return getCanonicalType(T1) == getCanonicalType(T2);
}

Expand Down Expand Up @@ -2921,7 +2921,7 @@ class ASTContext : public RefCountedBase<ASTContext> {

/// Determine whether the given types are equivalent after
/// cvr-qualifiers have been removed.
bool hasSameUnqualifiedType(QualType T1, QualType T2) const {
static bool hasSameUnqualifiedType(QualType T1, QualType T2) {
return getCanonicalType(T1).getTypePtr() ==
getCanonicalType(T2).getTypePtr();
}
Expand Down
17 changes: 17 additions & 0 deletions clang/include/clang/Basic/Attr.td
Original file line number Diff line number Diff line change
Expand Up @@ -1572,6 +1572,23 @@ def HIPManaged : InheritableAttr {
let Documentation = [HIPManagedAttrDocs];
}

def CUDAClusterDims : InheritableAttr {
let Spellings = [GNU<"cluster_dims">];
let Args = [ExprArgument<"X">, ExprArgument<"Y", /*opt=*/1>, ExprArgument<"Z", /*opt=*/1>];
let Subjects = SubjectList<[ObjCMethod, FunctionLike]>;
let LangOpts = [CUDA];
let Documentation = [CUDAClusterDimsAttrDoc];
}

def CUDANoCluster : InheritableAttr {
let Spellings = [GNU<"no_cluster">];
let Subjects = SubjectList<[ObjCMethod, FunctionLike]>;
let LangOpts = [CUDA];
let Documentation = [CUDANoClusterAttrDoc];
}

def : MutualExclusions<[CUDAClusterDims, CUDANoCluster]>;

def CUDAInvalidTarget : InheritableAttr {
let Spellings = [];
let Subjects = SubjectList<[Function]>;
Expand Down
39 changes: 39 additions & 0 deletions clang/include/clang/Basic/AttrDocs.td
Original file line number Diff line number Diff line change
Expand Up @@ -7545,6 +7545,45 @@ A managed variable can be accessed in both device and host code.
}];
}

def CUDAClusterDimsAttrDoc : Documentation {
let Category = DocCatDecl;
let Content = [{
In CUDA/HIP programming, the ``cluster_dims`` attribute, conventionally exposed as the
``__cluster_dims__`` macro, can be applied to a kernel function to set the dimensions of a
thread block cluster, which is an optional level of hierarchy and made up of thread blocks.
``__cluster_dims__`` defines the cluster size as ``(X, Y, Z)``, where each value is the number
of thread blocks in that dimension. The ``cluster_dims`` and `no_cluster`` attributes are
mutually exclusive.

.. code::

__global__ __cluster_dims__(2, 1, 1) void kernel(...) {
...
}

}];
}

def CUDANoClusterAttrDoc : Documentation {
let Category = DocCatDecl;
let Content = [{
In CUDA/HIP programming, a kernel function can still be launched with the cluster feature enabled
at runtime, even without being annotated with ``__cluster_dims__``. The LLVM/Clang-exclusive
``no_cluster`` attribute, conventionally exposed as the ``__no_cluster__`` macro, can be applied to
a kernel function to explicitly indicate that the cluster feature will not be enabled either at
compile time or at kernel launch time. This allows the compiler to apply certain optimizations
without assuming that clustering could be enabled at runtime. It is undefined behavior to launch a
kernel annotated with ``__no_cluster__`` if the cluster feature is enabled at runtime.
The ``cluster_dims`` and ``no_cluster`` attributes are mutually exclusive.

.. code::

__global__ __no_cluster__ void kernel(...) {
...
}
}];
}

def LifetimeOwnerDocs : Documentation {
let Category = DocCatDecl;
let Content = [{
Expand Down
Loading
Loading