Skip to content
Draft
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
423 commits
Select commit Hold shift + click to select a range
6d63151
[SPARC] Use FMA instructions when we have UA2007 (#148434)
koachan Aug 12, 2025
228a893
[clang-format] Allow breaking before bit-field colons (#153529)
owenca Aug 17, 2025
fcb9159
[clang-format] Fix a bug in breaking before FunctionDeclarationName (…
owenca Aug 17, 2025
41cf773
release/21.x: [clang-format] Don't annotate class property specifiers…
owenca Aug 17, 2025
993c564
[clang][PAC][darwin] Set correct default ptrauth features for arm64e-…
ojhunt Aug 20, 2025
c587c24
[TailDup] Delay aggressive computed-goto taildup to after RegAlloc. (…
fhahn Jul 28, 2025
fe59f72
[clang] Allow trivial pp-directives before C++ module directive (#153…
yronglin Aug 18, 2025
16bea73
[clang] return type not correctly deduced for discarded lambdas (#153…
ojhunt Aug 18, 2025
2cf40a6
[POWERPC] Fixes an error in the handling of the MTVSRBMI instruction …
diggerlin Aug 6, 2025
45300aa
[clang][PAC] ptrauth_qualifier and ptrauth_intrinsic should only be a…
ojhunt Aug 18, 2025
7d6969b
[clang][ObjC] Fix incorrect return type inference for discarded block…
ojhunt Aug 18, 2025
27fc211
[NFC][Clang][Docs] Update Pointer Authentication documentation (#152596)
ojhunt Aug 19, 2025
1672f7d
[X86] lowerShuffleAsLanePermuteAndPermute - ensure we've simplified t…
RKSimon Aug 14, 2025
53aa823
[C] Fix issue with -Wimplicit-void-ptr-cast (#154351)
AaronBallman Aug 19, 2025
333bdbb
On Windows, in the release build script, fix detecting if clang-cl is…
aganea Aug 19, 2025
65b0685
Add PowerPC/AIX related release notes to LLVM 21.1.0
amy-kwan Aug 20, 2025
5d71f7c
[X86] SimplifyDemandedVectorEltsForTargetNode - don't split X86ISD::C…
RKSimon Aug 20, 2025
0eba8cf
[mlir] Make parser not rely on terminating null. (#151007)
jpienaar Jul 29, 2025
6989071
Move OpenACC Release Note-
erichkeane Aug 20, 2025
7575bda
[clang][Obj-C][PAC] Add support for authenticating block metadata (#1…
ojhunt Aug 14, 2025
ad7bb1c
[clang][Obj-C][PAC] Make block descriptor pointer signing configurabl…
ojhunt Aug 15, 2025
4b40020
[Hexagon] Add missing operand when disassembling Y4_crswap10 (#153849)
s-barannikov Aug 16, 2025
b95cfa4
[Driver] DragonFly does not support C11 threads (#154886)
brad0 Aug 22, 2025
c1ddc79
[LLD][COFF] Set isUsedInRegularObj for target symbols in resolveAlter…
cjacek Aug 22, 2025
5ec7fdf
[libc++] Add tests for the ABI break introduced by switching to _LIBC…
philnik777 Aug 22, 2025
a2f2f1a
[libc++] Fix ABI break introduced by switching to _LIBCPP_COMPRESSED_…
philnik777 Aug 23, 2025
3263ad7
[clang] Remove hasValue() check in `RecordExprEvaluator::VisitCXXCons…
tbaederr Aug 23, 2025
eabd1a5
[MLIR][Vector] Fix bug in ExtractStrideSlicesOp canonicalization (#14…
tlongeri Jul 16, 2025
80e8900
[MLIR] Fix use-after-frees when accessing DistinctAttr storage (#148666)
abulavin Jul 16, 2025
6d00bfb
[mlir][mesh] Add null check for dyn_cast to prevent crash (#149266)
CoTinker Jul 18, 2025
5f1f668
[mlir] Fix missing import (#150330)
dan-garvey Jul 24, 2025
d5be26a
Fix Bug in RemoveDeadValues Pass (#148437)
ronigoldman22 Jul 25, 2025
59bdb0b
[mlir][SCF] Do not access erased operation in `scf.while` lowering (#…
matthias-springer Jul 26, 2025
5eff9ac
[mlir][OpenMP][NFC] Fix gcc 14 warning (#151941)
tblah Aug 4, 2025
a77611f
[mlir] Clone attrs of unregistered dialect ops (#151847)
brnorris03 Aug 5, 2025
9874646
[NFC][mlir] Update DataFlowFramework.h to be compatible with clang c+…
philass Aug 5, 2025
5b94126
[mlir][cmake] Fix MLIR shared library installation (#152195)
brnorris03 Aug 7, 2025
49ebd43
[MLIR] Make `PassPipelineOptions` virtually inheriting from PassOptio…
svuckovicTT Aug 8, 2025
166a0f7
[NFC][mlir] Fully qualify namespace to avoid an MSVC bug (#152860)
yronglin Aug 10, 2025
cd7a9f6
[MLIR][Python] MLIR Enum Python bindings infinite recursion (#151584)…
nsmithtt Aug 12, 2025
9a68897
[mlir][ExecutionEngine] fix default free function in `OwningMemRef`. …
batzor Aug 13, 2025
0d793d4
[mlir][DialectUtils] Fix div by zero crash (#153380)
matthias-springer Aug 13, 2025
d04de7b
[MLIR] Erase unreachable blocks before applying patterns in the greed…
joker-eph Aug 18, 2025
fee593d
[MLIR] Refactor the walkAndApplyPatterns driver to remove the recursi…
joker-eph Aug 18, 2025
648c566
[MLIR] Fix SCF verifier crash (#153974)
joker-eph Aug 18, 2025
1339866
[MLIR] Stop visiting unreachable blocks in the walkAndApplyPatterns d…
joker-eph Aug 18, 2025
3e22f22
[MLIR] Fix Liveness analysis handling of unreachable code (#153973)
joker-eph Aug 18, 2025
6a252e4
[MLIR] Introduce a OpWithState class to act as a stream modifier for …
joker-eph Aug 1, 2025
a93ae21
[MLIR] Fix duplicated attribute nodes in MLIR bytecode deserializatio…
hankluo6 Aug 20, 2025
f01726b
[llvm][release] Correct formatting field in release message
Aug 12, 2025
8c3f99c
[lldb][test][NFC] Re-arrange ifdefs in compressed_pair.h
Michael137 Aug 24, 2025
a5448ad
[lldb][DataFormatters] Support newer _LIBCPP_COMPRESSED_PAIR layout (…
Michael137 Aug 25, 2025
3de3347
[flang] Disable loop interchange by default (#155279)
nikic Aug 26, 2025
29b3836
[Flang] Fix crash when a derived type with private attribute is speci…
ceseo Aug 4, 2025
080a2f8
[WIP] [clang] Align cleanup structs to prevent SIGBUS on sparc32 (#15…
koachan Aug 13, 2025
2b5beba
Move rest of documentation problems that found their way to the SA sec.
erichkeane Aug 20, 2025
4957391
[analyzer] Drop assertion enforcing that assume args are known consta…
steakhal Aug 5, 2025
d618b40
[analyzer] Add missing expected-warning after #151908
steakhal Aug 5, 2025
306481b
[PAC] Fix codegen for polymorphic class variables with consteval cons…
ahatanak Aug 25, 2025
3e406bb
[analyzer][docs] CSA release notes for clang-21
steakhal Aug 20, 2025
bc08104
[PowerPC] Indicate that PPC32PICGOT clobbers LR (#154654)
cuviper Aug 25, 2025
3623fe6
Bump version to 21.1.0
tru Aug 26, 2025
8b6caff
Bump version to 21.1.1
tru Sep 3, 2025
33e18ac
[Analyzer] No longer crash with VLA operands to unary type traits (#1…
AaronBallman Aug 1, 2025
562605c
ThinLTOBitcodeWriter: Emit __cfi_check to full LTO part of bitcode file.
pcc Aug 21, 2025
1db648d
[release] Correct download links for Windows on Arm packages (#156459)
Sep 2, 2025
0d67367
[X86] getScalarMaskingNode - if the mask is zero just return the blen…
RKSimon Sep 2, 2025
9560864
[LoongArch] Fix broadcast load with extension. (#155960)
tangaac Sep 1, 2025
64dd539
[sanitizer_common] Older Haiku needs _GNU_SOURCE (#156291)
brad0 Sep 1, 2025
35215b6
[SLP]Do not to try to revectorize previously vectorized phis in loops
alexey-bataev Aug 31, 2025
ef3a6bd
[Clang][CMake] Use IRPGO instead of FE PGO for Cmake Caches (#155957)
boomanaiden154 Aug 29, 2025
7dbfe40
[libc++] Disable cv-qualified arithmetic hash specializations (#155786)
philnik777 Aug 29, 2025
9f3f813
Add pointer auth documentation to contents (#155763)
ojhunt Aug 28, 2025
d69907d
[AArch64][PAC] Fix clobbering registers by BLRA and AUTH_TCRETURN (#1…
atrosinenko Aug 27, 2025
1f1a20b
[AArch64][PAC] Do not execute AUT instructions speculatively (#155372)
atrosinenko Aug 27, 2025
0e5c3f9
[mlir][cmake] Fix mlir target export (#153341)
brnorris03 Aug 14, 2025
acabba4
[NVPTX] don't erase CopyToRegs when folding movs into loads (#149393)
Prince781 Jul 18, 2025
e35cb1a
[clang] Make sure EvalInfo pointer isn't null (#155563)
tbaederr Aug 27, 2025
27f0e6e
[clang][PAC] Fix builtins that claim address discriminated types are …
ojhunt Aug 26, 2025
ca11cf3
[clang-format] Use proper flags for git diff-tree (#155247)
boomanaiden154 Aug 26, 2025
b63daf6
[RISCV] Cost casts with illegal types that can't be legalized (#153030)
lukel97 Aug 11, 2025
b7c18c1
[libc++] Ensure that we restore invariants in basic_filebuf::overflow…
ldionne Jul 15, 2025
362b99f
[libcxx][fstream][NFC] Make __failed helper lambda a member function …
Michael137 Jul 17, 2025
113916c
[lldb][ClangASTImporter] Don't ASTImport LambdaExpr nodes (#154962)
Michael137 Aug 22, 2025
f8a0ecf
[compiler-rt] Avoid depending on the libnvmm header for NetBSD (#153534)
alexrp Aug 24, 2025
3751e53
[AArch64][BTI] Add BTI at EH entries. (#155308)
shashforge Aug 30, 2025
85e3f8e
Remove EH_LABEL comments from tests
davemgreen Sep 1, 2025
7a077a1
[libc++][AIX] Fixup problems with ABI list checking (#155643)
daltenty Aug 27, 2025
b4274c3
[DebugInfo] When referencing structured bindings use the reference's …
dwblaikie Sep 2, 2025
e0d94d9
[lldb][DWARFASTParserClang] Don't complete conflicting Objective-C++ …
Michael137 Sep 3, 2025
160ad51
[clang][docs] Fix implicit-int-conversion-on-negation typos
correctmost Sep 4, 2025
12fbb34
[Coroutines] Restore accidentally dropped intrinsic IDs
nikic Jul 24, 2025
fa462a6
[lldb][DataFormatter] Allow std::string formatters to match against c…
Michael137 Sep 5, 2025
677a8a2
[compiler-rt] Remove leftovers of FreeBSD md5/sha2 interceptors (#153…
alexrp Aug 24, 2025
0bbb936
[libc++] Fix broken precondition of __bit_log2 (#155476)
ldionne Aug 28, 2025
c75a075
[builtins] Rename freebsd to elf_aux_info to reflect the function cal…
brad0 Aug 28, 2025
35f812f
compiler-rt: Use OpenBSD's elf_aux_info to detect AArch64 HW features…
brad0 Aug 28, 2025
41df6d5
[CMake][AIX] Enable CMP0182: Create shared library archives by defaul…
daltenty Aug 28, 2025
81d3b6e
[X86] Only fold AND/ANDNP back to VSELECT if we know the predicated m…
RKSimon Sep 3, 2025
2d72648
[LV] Add more tests for interleave groups requiring predicates.
fhahn Sep 4, 2025
2daad31
[LV] Don't run instcombine for interleaved-accesses test.
fhahn Sep 4, 2025
bb383ad
[SCEVExp] Fix early exit in ComputeEndCheck. (#156910)
fhahn Sep 5, 2025
5a86dc9
[Xtensa] Fix lowering FP compare operations.
andreisfr Sep 3, 2025
f490704
[Clang][Cygwin] Use correct mangling rule (#158404)
kikairoya Sep 13, 2025
5489683
[lldb][Target] Clear selected frame index after a StopInfo::PerformAc…
Michael137 Sep 8, 2025
faedeb1
[lldb][Instrumentation] Set selected frame to outside sanitizer libra…
Michael137 Sep 8, 2025
f5ba883
[lldb][test] TestTsanBasic.py: fix function name assertion
Michael137 Sep 8, 2025
2c8cb31
[lldb][test] Only assert function name is in user-code on Darwin plat…
Michael137 Sep 8, 2025
1a644bc
[X86] Fix assertion in AVX512 setcc combine due to invalid APInt mask…
Aug 28, 2025
ff039a9
[RISCV] Support PreserveMost calling convention (#148214)
wangpc-pp Jul 30, 2025
0174263
Bump version to 21.1.2
tstellar Sep 23, 2025
5af5cfb
[clang-format] Handle C digit separators (#158418)
owenca Sep 14, 2025
9eedaf5
[VectorCombine] Fix scalarizeExtExtract for big-endian (#157962)
uyoyo0 Sep 15, 2025
f089fb2
[LoongArch] Fix MergeBaseOffset for constant pool index operand (#159…
heiher Sep 18, 2025
15a3183
[RISCV] Re-work how VWADD_W_VL and similar _W_VL nodes are handled in…
topperc Sep 19, 2025
9c8736f
[ELF] -r/--emit-relocs: Fix crash when processing .rela.text before .…
mykouHW Sep 20, 2025
db70369
[Clang] Fix an error-recovery crash after d1a80dea (#159976)
zyn0217 Sep 21, 2025
f5c1b52
[PowerPC] Avoid working on deleted node in ext bool trunc combine (#1…
nikic Sep 22, 2025
661c387
release/21.x: [VPlan] Don't narrow op multiple times in narrowInterle…
fhahn Sep 10, 2025
e2e5eb2
[Loads] Check for overflow when adding MaxPtrDiff + Offset.
fhahn Sep 2, 2025
bc5e9a5
[MC] Add parseSymbol() helper (NFC) (#158106)
nikic Sep 12, 2025
3e93017
MC: Better handle backslash-escaped symbols (#158780)
MaskRay Sep 16, 2025
e625a78
[LLVM] Update CUDA ELF flags for their new ABI (#149534)
jhuber6 Jul 21, 2025
dcc2c1c
[RISCV] Reduce ManualCodeGen for segment load/store intrinsics. NFC
topperc Aug 20, 2025
f14551d
[RISCV] Reduce ManualCodeGen for RVV intrinsics with rounding mode. NFC
topperc Aug 21, 2025
77a3b0e
[RISCV] Refactor RVV builtin code generation for reduce compilation t…
kito-cheng Aug 26, 2025
b708aea
[SCEV] Don't perform implication checks with many predicates (#158652)
nikic Sep 16, 2025
74cb34a
Bump version to 21.1.3
tstellar Sep 23, 2025
31e4363
[NVPTX] Disable relative lookup tables (#159748)
nikic Sep 22, 2025
0060034
[analyzer] Revert #115918, so empty base class optimization works aga…
steakhal Sep 11, 2025
d1e2f89
[LLD] [COFF] Fix symbol names for import thunks (#160694)
mstorsjo Sep 25, 2025
559d966
[Mips] Fix atomic min/max generate mips4 instructions when compiling …
yingopq Sep 26, 2025
41e817a
release/21.x: [clang-format] Fix bugs in annotating arrows and square…
owenca Sep 28, 2025
a867bd5
[clang][PAC] Don't try to diagnose use of pointer auth on dependent t…
ojhunt Sep 20, 2025
220bac1
[Hexagon] Add opcode V6_vS32Ub_npred_ai for offset validity check (#1…
iajbar Oct 2, 2025
9ee4ac8
[clang][SPARC] Pass 16-aligned structs with the correct alignment in …
koachan Oct 3, 2025
f8151a1
[clang] [Headers] Don't use unreserved names in avx10_2bf16intrin.h (…
mstorsjo Oct 3, 2025
6e687cb
[SPARC] Prevent meta instructions from being inserted into delay slot…
koachan Oct 3, 2025
2cb08db
[compiler-rt][sanitizer] fix msghdr for musl (#136195)
deaklajos Jul 22, 2025
05b5090
Port 5b4819e to release/21.x
dwblaikie Sep 16, 2025
450f52e
Bump version to 21.1.3.
dyung Oct 7, 2025
2760508
[LLDB][ProcessWindows] Set exit status on instance rather than going …
Nerixyz Sep 18, 2025
c000f32
[Mips] Fixed libunwind::Registers_mips_o32::jumpto to allow for load …
Jade-Marker Sep 25, 2025
0d1b924
[CI] Add dyung and c-rhodes to the Release Asset List (#162478)
boomanaiden154 Oct 8, 2025
13bee3a
[Mips] Fix clang crashes when assembling invalid MIPS beql instructio…
yingopq Oct 10, 2025
18593ab
workflows/release-binaries: Run tests on the same runner as the build…
tstellar Oct 10, 2025
5386abc
[libc++][ranges] Fix `ranges::join_view` segmented iterator trait (#1…
lbonn Sep 27, 2025
caef761
[clang-format] Fix a bug in OneLineFormatOffRegex (#162961)
owenca Oct 11, 2025
c03b58b
[clangd] Fix code action kind for readability-identifier-naming fixes…
ZhongRuoyu Oct 13, 2025
a86b1e3
compiler-rt: Make the tests pass on AArch64 and with page size != 4096.
pcc Aug 14, 2025
68f118f
Switch dtls_test.c from XFAIL to UNSUPPORTED on aarch64.
pcc Aug 15, 2025
c9fbd57
dfsan: Fix test with gcc 15.
pcc Aug 15, 2025
b54051a
[clang-format] Correctly annotate RequiresExpressionLBrace (#155773)
owenca Aug 28, 2025
e14b5e8
[clang-format] Fix a bug in wrapping { after else (#161048)
owenca Sep 30, 2025
a847f18
[Hexagon] Support lowering of setuo & seto for vector types in Hexago…
fhossein-quic Oct 3, 2025
7b785dc
[LLD][COFF] Fix tailMergeARM64 delayload thunk 128 MB range limitatio…
zmodem Oct 3, 2025
bd9bc53
[LLD] [COFF] Fix aarch64 delayimport of sret arguments (#163096)
mstorsjo Oct 13, 2025
dfdee9a
[clang][modules] Derive mtime from PCM timestamps, not PCM files (#16…
jansvoboda11 Oct 13, 2025
a2e93dc
[Hexagon][llvm-objdump] Start a fresh packet at symbol boundaries. (#…
quic-areg Oct 16, 2025
c6af6be
[libc++][docs] Add missing entry for P3379R0 to `21.rst`
frederick-vs-ja Oct 16, 2025
570c4c9
[clang] Fix catching pointers by reference on mingw targets (#162546)
mstorsjo Oct 16, 2025
ffa6b0c
[MachinePipeliner] Limit the number of stores in BB (#154940)
kasuga-fj Oct 9, 2025
464d75a
[MachinePipeliner] Add test missed in #154940 (NFC) (#163350)
kasuga-fj Oct 16, 2025
0d819a9
[libunwind] Fix aarch64 SEH unwinding with a debugger attached (#162867)
mstorsjo Oct 16, 2025
c5a3aa8
[libc++] Properly implement array cookies in the ARM ABI (#160182)
ldionne Oct 17, 2025
faca424
[clang-format] Correctly handle backward compatibility of C headers (…
owenca Sep 25, 2025
7e153f5
[clang-format] Fix an assertion failure on comment-only config files …
owenca Oct 17, 2025
ceeb930
[libclang/python] Return None instead of null cursors from Token.curs…
DeinAlptraum Oct 13, 2025
54cdd97
[clang-format] Annotate ::operator and Foo::operator correctly (#164048)
owenca Oct 18, 2025
3333dd8
Update clang/lib/Format/TokenAnnotator.cpp
owenca Oct 18, 2025
480a904
release/21.x: [clang-format] Fix a crash on BAS_BlockIndent (#164047)
owenca Oct 18, 2025
222fc11
Bump version to 21.1.4
c-rhodes Oct 21, 2025
45afac6
Bump version to 21.1.5
c-rhodes Oct 23, 2025
9faef12
[sancov] Fix stack-depth tracking to use debug locations (#162428)
kees Oct 9, 2025
2cdfa9d
[X86] Use pseudo instructions to zero registers in `buildClearRegiste…
Oct 17, 2025
cd7d2db
[lld][test] Fix AArch64 build attribute test cleanup
Oct 21, 2025
1600cf0
[Github] Only look at previous commit for MacOS Premerge (#164483)
boomanaiden154 Oct 21, 2025
e94561c
workflows/release-documentation: Allow secrets pass through from call…
tstellar Oct 22, 2025
5c802f9
[Clang] Do not warn on UTF-16 -> UTF-32 conversions. (#163927)
cor3ntin Oct 19, 2025
04102d9
[AArch64][llvm] Relax mandatory features for Armv9.6-A (#163973)
jthackray Oct 23, 2025
a2178eb
[Hexagon] Incorrect MIR after "hexinsert" pass (#164021)
quic-akaryaki Oct 21, 2025
495a2ab
[Hexagon] Add REQUIRES: asserts to test
nikic Oct 21, 2025
11ef752
[BPF] Support for `DW_TAG_variant_part` in BTF generation (#155783)
vadorovsky Oct 20, 2025
c346c16
[BPF] Do not emit names for PTR, CONST, VOLATILE and RESTRICT BTF typ…
vadorovsky Oct 22, 2025
0921531
[llvm-objcopy][COFF] Update .symidx values after stripping (#153322)
e-kud Sep 3, 2025
6bb6ffe
[LLD][COFF] Fix manifest UAC trustInfo namespace (#165285)
nga888 Oct 29, 2025
df3145b
[clang-shlib] Fix linking libclang-cpp on Haiku (#156401)
brad0 Oct 30, 2025
8e2cd28
[OpenMP] Fix preprocessor mismatches between include and usages of hw…
pearzt Oct 15, 2025
4aaab27
Bump version to 21.1.6
c-rhodes Nov 4, 2025
4b2ac3f
[debugserver] Fix debugserver build on < macOS 10.15 (#166599)
JDevlieghere Nov 5, 2025
251d2d3
[Github] Backport ABI Workflow Changes to Release Branch
boomanaiden154 Nov 11, 2025
2fde0df
[clang][modules] Fix crash in enum visibility lookup for C++20 header…
naveen-seth Nov 4, 2025
69586a9
[RISCV] Correct the CFA offsets for stack probing. (#166616)
topperc Nov 6, 2025
6ca6454
[MachineCopyPropagation] Remove logic to recognise and delete no-op m…
asb Nov 11, 2025
2d631cc
[CMake][Release] Stop linking against stage1 runtimes (#164017)
tstellar Oct 22, 2025
a832a52
Reland "[LoongArch] Add `isSafeToMove` hook to prevent unsafe instruc…
heiher Nov 12, 2025
33e1a55
Bump version to 21.1.7.
dyung Nov 18, 2025
922c991
[clangd] Clangd running with `--experimental-modules-support` crashes…
slavek-kucera Aug 19, 2025
9ed1927
[server-llvm-21][MC] Fixing vector overflow
Nov 21, 2025
292dc2b
[LLD][COFF] Align EC code ranges to page boundaries (#168222)
cjacek Nov 17, 2025
f68f64e
Bump version to 21.1.8
tru Dec 2, 2025
b845b4c
[rtsan] Handle attributed IR function declarations (#169577)
davidtrevelyan Dec 1, 2025
94c40c6
[clang-format] Don't swap `(const override)` with QAS_Right (#167191)
owenca Nov 13, 2025
a565880
[clang-format] Fix a crash in AlignArrayOfStructures (#167099)
owenca Nov 10, 2025
4582a80
release/21.x: [clang-format] Fix a regression in annotating star befo…
owenca Dec 6, 2025
4b24e73
[WebAssembly] Remove FAKE_USEs before ExplicitLocals (#160768)
aheejin Sep 25, 2025
d2e835b
[SelectOptimize] Fix incorrect -1 immediate for large integers (#170860)
nikic Dec 10, 2025
51e5074
[compiler-rt][sanitizer] fix i386 build for Haiku (#171075)
brad0 Dec 10, 2025
7eb4bfe
[ExtractAPI] Format typedef params correctly (#171516)
snprajwal Dec 9, 2025
b6360d3
[Github] Remove install-ninja/setup-windows
boomanaiden154 Nov 21, 2025
2078da4
[Github] Remove use of setup-windows and install-ninja in llvm tests
boomanaiden154 Nov 21, 2025
4af7f44
NPU infra for 21.x (#11)
Maxim-Doronin Dec 17, 2025
fce2b89
[mlir][RFC] Allow to skip operands type specification in ASM form
Oct 12, 2021
77d9062
Add FlatSymbolRefAttr and ArrayAttr for memory space representation (…
nikita-kud Dec 21, 2021
6d3f422
[mlir] Relax ASM parser requirements about operands Type presence
Jan 14, 2022
a4cb8d6
[mlir] Remove LIT tests affected by ASM simplification
Jan 21, 2022
7023593
Merge pull request #11 from iszilve/SymbolTableTweaks
nikita-kud Mar 14, 2023
55ffa76
Disable failed tests: #73140
nikita-kud Feb 13, 2024
cdbc3be
extend SymbolContainer semantics to SymbolUserMap
Jun 22, 2023
406ac9c
Add method getInlineBlockAndPoint for DialectInlinerInterface
nikita-kud Jan 31, 2024
dc5651d
Added f8E4M3FN and f8E5M2 support to existing QuantizedTypes (17.x) (…
AndreiFilipIntel Feb 22, 2024
144e66f
Initialize pass options using pipeline options
nikita-kud Apr 15, 2024
ee4e87e
Fix compilation issue with MSVC
jschj May 7, 2024
6eaf574
Port Ubunu-24 warning fixes to npu/release/18.x (#45)
DariaMityagina Jun 24, 2024
34a913a
Extend Quant dialect with Quantile Quantization type (#53)
sartil Aug 20, 2024
23a6af9
Extending QuantileQuantizedType with quantileType mlir::Type member (…
sartil Oct 3, 2024
a2ca591
Relax negative scales conditions in Quant Dialect (#61)
ZoranZomborat Oct 10, 2024
9d74ec8
Adding missing check in QuantileQuantizedPerAxisType::verify (#66)
sartil Oct 11, 2024
fcef848
Adding new quantileType types to mlir test (#85)
sartil Nov 19, 2024
f88bb56
Add Value back to SideEffectInterfaces
rayngun Mar 21, 2025
eb5a8ec
Revert "[mlir][Symbol] Add verification that symbol's parent is a Sym…
rayngun Mar 24, 2025
33efd4d
Fix thread handle leak on Windows (#133)
lmielick Jun 4, 2025
f44972c
EISW-130780: remove all wd flag to enable warnings when LLVM_ENABLE_W…
ShaojieZhuIntel Jun 11, 2025
836e039
EISW-176770 Fix argument parsing issue in mlir-src-sharder after comm…
sramasit Jun 27, 2025
9529786
[mlir] Expose output strategies of TimingManager (#166548)
andrey-golubev Nov 6, 2025
e8a99db
[mlir][bufferization] Support custom types at function boundaries (#1…
andrey-golubev Sep 24, 2025
970c50d
Avoid copies in getChecked (cherry-pick from upstream) (#151) (#170)
AlexandruLorinti Nov 10, 2025
cc8ea1c
[mlir][bufferization] Refine tensor-buffer compatibility checks (#167…
andrey-golubev Nov 18, 2025
e689889
[MLIR][ODS] Fully qualify namespace for mlir::Attribute in ODS genera…
BogdanDragosV Nov 21, 2025
6749243
Enable quantization for FP4 type
Jacenty-And-Intel Dec 23, 2025
04649f1
[MLIR] Forward generated OpTy::create arguments (#170012)
ricejasonf Dec 2, 2025
a2126df
[mlir][SCF] Add scf.index_switch support for populateSCFStructuralTyp…
ArtemySkrebkov Sep 24, 2025
8d12776
Enable printing newlines and indents in attribute and type printers (…
Jacenty-And-Intel Jan 5, 2026
cf3934f
Extending UniformQuantizedType with interface-based support for new s…
vsimion26 Feb 26, 2026
e0a54ec
Make printing Value to a stream thread-safe (cherry-pick from upstream)
Jacenty-And-Intel Mar 13, 2026
0f0abce
[MLIR] Add getter for the action handler of MLIR context (#197230)
akigyosi May 13, 2026
37c421b
Quantile Type and Low FP Support (#190321)
vsimion26 Jun 2, 2026
7b6dcff
removed QuantileQuantized and replaced with QuantileType
vsimion26 Jun 12, 2026
f05e1da
QuantileType bytecode patch (#203495)
vsimion26 Jun 12, 2026
707247a
QuantileType relax quantileType conditions and inheritance
vsimion26 Jun 19, 2026
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
  •  
  •  
  •  
65 changes: 53 additions & 12 deletions .ci/compute_projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
PROJECT_DEPENDENCIES = {
"llvm": set(),
"clang": {"llvm"},
"CIR": {"clang", "mlir"},
"bolt": {"clang", "lld", "llvm"},
"clang-tools-extra": {"clang", "llvm"},
"compiler-rt": {"clang", "lld"},
Expand Down Expand Up @@ -55,6 +56,7 @@
".ci": {
"llvm",
"clang",
"CIR",
"lld",
"lldb",
"bolt",
Expand Down Expand Up @@ -128,6 +130,7 @@
"lldb": "check-lldb",
"llvm": "check-llvm",
"clang": "check-clang",
"CIR": "check-clang-cir",
"bolt": "check-bolt",
"lld": "check-lld",
"flang": "check-flang",
Expand All @@ -141,6 +144,23 @@

RUNTIMES = {"libcxx", "libcxxabi", "libunwind", "compiler-rt", "libc"}

# Meta projects are projects that need explicit handling but do not reside
# in their own top level folder. To add a meta project, the start of the path
# for the metaproject should be mapped to the name of the project below.
# Multiple paths can map to the same metaproject.
META_PROJECTS = {
("clang", "lib", "CIR"): "CIR",
("clang", "test", "CIR"): "CIR",
("clang", "include", "clang", "CIR"): "CIR",
("*", "docs"): "docs",
("llvm", "utils", "gn"): "gn",
(".github", "workflows", "premerge.yaml"): ".ci",
("third-party",): ".ci",
}

# Projects that should not run any tests. These need to be metaprojects.
SKIP_PROJECTS = ["docs", "gn"]


def _add_dependencies(projects: Set[str], runtimes: Set[str]) -> Set[str]:
projects_with_dependents = set(projects)
Expand Down Expand Up @@ -233,21 +253,34 @@ def _compute_runtimes_to_build(
return _exclude_projects(runtimes_to_build, platform)


def _path_matches(matcher: tuple[str], file_path: tuple[str]) -> bool:
if len(file_path) < len(matcher):
return False
for match_part, file_part in zip(matcher, file_path):
if match_part == "*" or file_part == "*":
continue
if match_part != file_part:
return False
return True


def _get_modified_projects_for_file(modified_file: str) -> Set[str]:
modified_projects = set()
path_parts = pathlib.Path(modified_file).parts
for meta_project_files in META_PROJECTS.keys():
if _path_matches(meta_project_files, path_parts):
meta_project = META_PROJECTS[meta_project_files]
if meta_project in SKIP_PROJECTS:
return set()
modified_projects.add(meta_project)
modified_projects.add(pathlib.Path(modified_file).parts[0])
return modified_projects


def _get_modified_projects(modified_files: list[str]) -> Set[str]:
modified_projects = set()
for modified_file in modified_files:
path_parts = pathlib.Path(modified_file).parts
# Exclude files in the docs directory. They do not impact an test
# targets and there is a separate workflow used for ensuring the
# documentation builds.
if len(path_parts) > 2 and path_parts[1] == "docs":
continue
# Exclude files for the gn build. We do not test it within premerge
# and changes occur often enough that they otherwise take up
# capacity.
if len(path_parts) > 3 and path_parts[:3] == ("llvm", "utils", "gn"):
continue
modified_projects.add(pathlib.Path(modified_file).parts[0])
modified_projects.update(_get_modified_projects_for_file(modified_file))
return modified_projects


Expand All @@ -267,6 +300,13 @@ def get_env_variables(modified_files: list[str], platform: str) -> Set[str]:
runtimes_check_targets_needs_reconfig = _compute_project_check_targets(
runtimes_to_test_needs_reconfig
)

# CIR is used as a pseudo-project in this script. It is built as part of the
# clang build, but it requires an explicit option to enable. We set that
# option here, and remove it from the projects_to_build list.
enable_cir = "ON" if "CIR" in projects_to_build else "OFF"
projects_to_build.discard("CIR")

# We use a semicolon to separate the projects/runtimes as they get passed
# to the CMake invocation and thus we need to use the CMake list separator
# (;). We use spaces to separate the check targets as they end up getting
Expand All @@ -279,6 +319,7 @@ def get_env_variables(modified_files: list[str], platform: str) -> Set[str]:
"runtimes_check_targets_needs_reconfig": " ".join(
sorted(runtimes_check_targets_needs_reconfig)
),
"enable_cir": enable_cir,
}


Expand Down
98 changes: 95 additions & 3 deletions .ci/compute_projects_test.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
"""Does some stuff."""
"""Tests for compute_projects.py"""

import unittest

Expand Down Expand Up @@ -104,6 +104,10 @@ def test_clang(self):
env_variables["runtimes_check_targets_needs_reconfig"],
"check-cxx check-cxxabi check-unwind",
)
self.assertEqual(
env_variables["enable_cir"],
"OFF",
)

def test_clang_windows(self):
env_variables = compute_projects.get_env_variables(
Expand All @@ -126,6 +130,32 @@ def test_clang_windows(self):
env_variables["runtimes_check_targets_needs_reconfig"],
"check-cxx check-cxxabi check-unwind",
)
self.assertEqual(env_variables["enable_cir"], "OFF")

def test_cir(self):
env_variables = compute_projects.get_env_variables(
["clang/lib/CIR/CMakeLists.txt"], "Linux"
)
self.assertEqual(
env_variables["projects_to_build"],
"clang;clang-tools-extra;lld;llvm;mlir",
)
self.assertEqual(
env_variables["project_check_targets"],
"check-clang check-clang-cir check-clang-tools",
)
self.assertEqual(
env_variables["runtimes_to_build"], "compiler-rt;libcxx;libcxxabi;libunwind"
)
self.assertEqual(
env_variables["runtimes_check_targets"],
"check-compiler-rt",
)
self.assertEqual(
env_variables["runtimes_check_targets_needs_reconfig"],
"check-cxx check-cxxabi check-unwind",
)
self.assertEqual(env_variables["enable_cir"], "ON")

def test_bolt(self):
env_variables = compute_projects.get_env_variables(
Expand Down Expand Up @@ -158,6 +188,7 @@ def test_mlir(self):
self.assertEqual(env_variables["runtimes_to_build"], "")
self.assertEqual(env_variables["runtimes_check_targets"], "")
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
self.assertEqual(env_variables["enable_cir"], "OFF")

def test_flang(self):
env_variables = compute_projects.get_env_variables(
Expand All @@ -168,10 +199,11 @@ def test_flang(self):
self.assertEqual(env_variables["runtimes_to_build"], "")
self.assertEqual(env_variables["runtimes_check_targets"], "")
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
self.assertEqual(env_variables["enable_cir"], "OFF")

def test_invalid_subproject(self):
env_variables = compute_projects.get_env_variables(
["third-party/benchmark/CMakeLists.txt"], "Linux"
["llvm-libgcc/CMakeLists.txt"], "Linux"
)
self.assertEqual(env_variables["projects_to_build"], "")
self.assertEqual(env_variables["project_check_targets"], "")
Expand Down Expand Up @@ -237,7 +269,7 @@ def test_ci(self):
)
self.assertEqual(
env_variables["project_check_targets"],
"check-bolt check-clang check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",
"check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",
)
self.assertEqual(
env_variables["runtimes_to_build"],
Expand Down Expand Up @@ -276,6 +308,66 @@ def test_clang_tools_extra(self):
self.assertEqual(env_variables["runtimes_check_targets"], "check-libc")
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")

def test_premerge_workflow(self):
env_variables = compute_projects.get_env_variables(
[".github/workflows/premerge.yaml"], "Linux"
)
self.assertEqual(
env_variables["projects_to_build"],
"bolt;clang;clang-tools-extra;flang;libclc;lld;lldb;llvm;mlir;polly",
)
self.assertEqual(
env_variables["project_check_targets"],
"check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",
)
self.assertEqual(
env_variables["runtimes_to_build"],
"compiler-rt;libc;libcxx;libcxxabi;libunwind",
)
self.assertEqual(
env_variables["runtimes_check_targets"],
"check-compiler-rt check-libc",
)
self.assertEqual(
env_variables["runtimes_check_targets_needs_reconfig"],
"check-cxx check-cxxabi check-unwind",
)

def test_other_github_workflow(self):
env_variables = compute_projects.get_env_variables(
[".github/workflows/docs.yml"], "Linux"
)
self.assertEqual(env_variables["projects_to_build"], "")
self.assertEqual(env_variables["project_check_targets"], "")
self.assertEqual(env_variables["runtimes_to_build"], "")
self.assertEqual(env_variables["runtimes_check_targets"], "")
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")

def test_third_party_benchmark(self):
env_variables = compute_projects.get_env_variables(
["third-party/benchmark/CMakeLists.txt"], "Linux"
)
self.assertEqual(
env_variables["projects_to_build"],
"bolt;clang;clang-tools-extra;flang;libclc;lld;lldb;llvm;mlir;polly",
)
self.assertEqual(
env_variables["project_check_targets"],
"check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly",
)
self.assertEqual(
env_variables["runtimes_to_build"],
"compiler-rt;libc;libcxx;libcxxabi;libunwind",
)
self.assertEqual(
env_variables["runtimes_check_targets"],
"check-compiler-rt check-libc",
)
self.assertEqual(
env_variables["runtimes_check_targets_needs_reconfig"],
"check-cxx check-cxxabi check-unwind",
)


if __name__ == "__main__":
unittest.main()
10 changes: 10 additions & 0 deletions .ci/metrics/metrics.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
"""Collects Github metrics and uploads them to Grafana.

This script contains machinery that will pull metrics periodically from Github
about workflow runs. It will upload the collected metrics to the specified
Grafana instance.
"""

import collections
import datetime
import github
Expand Down
75 changes: 75 additions & 0 deletions .ci/metrics/metrics_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
"""Tests for metrics.py"""

from dataclasses import dataclass
import requests
import unittest
import unittest.mock

import metrics


class TestMetrics(unittest.TestCase):
def test_upload_gauge_metric(self):
"""Test that we can upload a gauge metric correctly.

Also verify that we pass around parameters like API keys and user IDs
correctly to the HTTP POST request.
"""
test_metrics = [metrics.GaugeMetric("gauge_test", 5, 1000)]
return_value = requests.Response()
return_value.status_code = 204
with unittest.mock.patch(
"requests.post", return_value=return_value
) as post_mock:
metrics.upload_metrics(test_metrics, "test_userid", "test_api_key")
self.assertSequenceEqual(post_mock.call_args.args, [metrics.GRAFANA_URL])
self.assertEqual(
post_mock.call_args.kwargs["data"], "gauge_test value=5 1000"
)
self.assertEqual(
post_mock.call_args.kwargs["auth"], ("test_userid", "test_api_key")
)

def test_upload_job_metric(self):
"""Test that we can upload a job metric correctly."""
test_metrics = [
metrics.JobMetrics("test_job", 5, 10, 1, 1000, 7, "test_workflow")
]
return_value = requests.Response()
return_value.status_code = 204
with unittest.mock.patch(
"requests.post", return_value=return_value
) as post_mock:
metrics.upload_metrics(test_metrics, "test_userid", "test_aoi_key")
self.assertEqual(
post_mock.call_args.kwargs["data"],
"test_job queue_time=5,run_time=10,status=1 1000",
)

def test_upload_unknown_metric(self):
"""Test we report an error if we encounter an unknown metric type."""

@dataclass
class FakeMetric:
fake_data: str

test_metrics = [FakeMetric("test")]

with self.assertRaises(ValueError):
metrics.upload_metrics(test_metrics, "test_userid", "test_api_key")

def test_bad_response_code(self):
"""Test that we gracefully handle HTTP response errors."""
test_metrics = [metrics.GaugeMetric("gauge_test", 5, 1000)]
return_value = requests.Response()
return_value.status_code = 403
# Just assert that we continue running here and do not raise anything.
with unittest.mock.patch("requests.post", return_value=return_value) as _:
metrics.upload_metrics(test_metrics, "test_userid", "test_api_key")


if __name__ == "__main__":
unittest.main()
Loading
Loading