Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
6296ebd
Bump version to 21.1.0-git
tru Jul 15, 2025
18624ae
[mlir][SliceAnalysis] Fix stack overflow in graph regions (#139694)
maerhart Jul 15, 2025
588b813
[AArch64] Use correct regclass for spills of ZPR2/ZPR4 (#148806)
sdesmalen-arm Jul 15, 2025
d1517ec
[AArch64] Ensure bundle expansion of MOVPRFX gets correct implicit op…
sdesmalen-arm Jul 15, 2025
7d803c8
[AArch64] Set the cache line size to 64 for the V2 and V3. (#148213)
sjoerdmeijer Jul 15, 2025
a0895b4
[Frontend][OpenMP] Move isPrivatizingClause to OMP.h, NFC (#148644)
kparzysz Jul 15, 2025
49722f1
[RISCV] Remove incorrect and untested FrameIndex support from SelectA…
topperc Jul 15, 2025
b71c9a4
[RISCV] Fix issues in ORI to QC.INSBI transformation (#148809)
svs-quic Jul 15, 2025
04d4be5
[libclang] Fix version for symbol clang_visitCXXMethods (#148958)
efriedma-quic Jul 15, 2025
adb453c
[Support][BLAKE3] Prefix more blake3 methods (#149007)
rupprecht Jul 16, 2025
6ee4eed
[Clang] Reintroduce obsolete libclang symbols to avoid an ABI break (…
Sirraide Jul 16, 2025
46c566f
[CI][Github] Switch windows to server 2022 (#148743)
boomanaiden154 Jul 15, 2025
7c2c20d
RuntimeLibcalls: Fix calling conv of win32 div libcalls (#149098)
arsenm Jul 16, 2025
194dd66
[Support][BLAKE3] Restore static on blake3_hash4_neon (#149046)
nikic Jul 16, 2025
68e17ae
[lldb] Add a release note for MCP support
JDevlieghere Jul 16, 2025
38158a9
[lldb] Document MCP tools & resources (#148708)
JDevlieghere Jul 16, 2025
2067574
[clang] Fix pointer comparisons between pointers to constexpr-unknown…
efriedma-quic Jul 15, 2025
ad90510
[Clang] Fix FE crash during CGCoroutine GRO Alloca Emission (#148962)
yuxuanchen1997 Jul 15, 2025
dd7710b
[Clang] Reintroduce obsolete symbols in libclang.map (#149190)
Sirraide Jul 16, 2025
7ac3c62
Revert "[Clang] Do not treat Foo -> const Foo conversion sequences as…
cor3ntin Jul 17, 2025
cbcb48a
Bump version to 21.1.0-rc1
tru Jul 17, 2025
1abeeab
[RISCV] Pass the MachineInstr flag as argument to allocateStack (#147…
rzinsly Jul 15, 2025
728030a
compiler-rt: test: Use the host instead of the target to select %expe…
pcc Jul 16, 2025
f1846e7
Use Parallel xz for test-suite sources. (#149389)
tru Jul 17, 2025
e36a7da
[Support/BLAKE3] quick fix for Cygwin build (#148635)
kikairoya Jul 17, 2025
607677c
[clang-format] Fix a regression of annotating PointerOrReference (#14…
owenca Jul 18, 2025
186df07
[DSE] Remove `uninitialized` from `allockind` when creating dummy zer…
clubby789 Jul 18, 2025
cbe68e5
[libcxx] Switch to release branch runners
boomanaiden154 Jul 17, 2025
0da291f
Revert "Move python binding tests to lit framework" (#149012)
DeinAlptraum Jul 16, 2025
b5043a0
[Hexagon][llvm-objdump] Improve disassembly of Hexagon bundles (#145807)
quic-areg Jul 18, 2025
68cae18
Revert "[libclc] Move CMake for prepare_builtins to a subdirectory (#…
mgorny Jul 20, 2025
69ee6a0
Revert "[libclc] Change symlinks to copies on Windows (#147759)"
mgorny Jul 20, 2025
b475893
Revert "[libclc] Fix target dependency"
mgorny Jul 20, 2025
7814dca
Revert "[libclc] Make library output directories explicit (#146833)"
mgorny Jul 20, 2025
275fa26
Revert "[libclc] Add prepare-<triple> targets (#146700)"
mgorny Jul 20, 2025
51245eb
[lld] [hexagon] guard allocateAux: only if idx nonzero (#149690)
androm3da Jul 20, 2025
5c69f70
[SPARC][Driver] Move feature mode selection to Arch/Sparc.cpp (#149652)
koachan Jul 21, 2025
cb92bc5
[RISCV] Swap source register operands in QC_SHLADD ISEL patterns (#14…
svs-quic Jul 21, 2025
17658db
[HEXAGON] Add AssertSext in sign-extended mpy (#149061)
quic-asaravan Jul 17, 2025
25c1d7a
[clang] Don't warn on zero literals with -std=c2y (#149688)
anematode Jul 21, 2025
7fd16ee
[LoongArch] Fix failure to widen operand for `[X]VMSK{LT,GE,NE}Z` (#1…
heiher Jul 21, 2025
3d520be
[Mips] Correctly define IntPtrType (#145158)
hpoussin Jul 21, 2025
aaaa542
[LLD][COFF] Follow up comments on pr146610 (#147152)
aganea Jul 21, 2025
756f489
LoongArch: Improve detection of valid TripleABI (#147952)
Mintsuki Jul 22, 2025
c568a20
[KeyInstr] Fix verifier check (#149043)
OCHyams Jul 16, 2025
1ad3d3a
[libc++][Android] Reenable 2 tests for Android (#149415)
rprichard Jul 18, 2025
da20f10
[libc++][NFC] Fix typos in the libc++ 21 release notes (#149536)
ldionne Jul 18, 2025
02b2a77
[compiler-rt][Mips] Fix stat size check on mips64 musl (#143301)
Gelbpunkt Jul 19, 2025
6dde087
[LoongArch] Strengthen stack size estimation for LSX/LASX extension (…
tangaac Jul 18, 2025
475ff34
[DTLTO][Clang] Add support for Integrated Distributed ThinLTO (#147265)
bd1976bris Jul 15, 2025
54c87e7
[DTLTO][LLD][COFF] Add support for Integrated Distributed ThinLTO (#1…
bd1976bris Jul 20, 2025
233fdcb
[KeyInstr] goto stmt atoms (#149101)
OCHyams Jul 21, 2025
f66e874
[LoopSimplifyCFG] Add check for missing loop preheader (#149743)
Justus2308 Jul 22, 2025
64a274f
[LLD][COFF] Make /wholearchive thin-archive member identifiers consis…
bd1976bris Jul 22, 2025
6cd82c5
[DTLTO] Add LLVM release note for LLVM 21
bd1976bris Jul 23, 2025
132d231
[DTLTO] Add COFF LLD release note for LLVM 21
bd1976bris Jul 23, 2025
dbe3ba0
[WebAssembly] Unstackify registers with no uses in ExplicitLocals (#1…
aheejin Jul 22, 2025
a91da31
[LV] Vectorize maxnum/minnum w/o fast-math flags. (#148239)
fhahn Jul 18, 2025
4d6604a
[flang][OpenMP] Restore reduction processor behavior broken by #14583…
ergawy Jul 23, 2025
e43496b
[Flang] Fix ASSIGN statement (#149941)
ceseo Jul 23, 2025
1db54c7
[clang][deps] Add a release note for fixing crashes in `clang-scan-de…
vsapsai Jul 23, 2025
3db29aa
[Flang] Fix a crash when equivalence and namelist statements are used…
ceseo Jul 23, 2025
564ed8e
[libc++] Fix hash_multi{map,set}::insert (#149290)
philnik777 Jul 17, 2025
f6c4f0e
[lld] Add thunks for hexagon (#111217)
androm3da Jul 20, 2025
6df2bfd
[AArch64,TTI] Remove RealUse check for vector insert/extract costs. (…
fhahn Jul 15, 2025
ba5aa84
[MachinePipeliner] Fix incorrect dependency direction (#149436)
kasuga-fj Jul 22, 2025
5345dc9
[RISCV] Don't lose elements from False in vmerge -> vmv peephole (#14…
lukel97 Jul 22, 2025
509ec13
[NFC][Sparc] Pre-commit a test showing inefficient and broken LD/GD TLS
jrtc27 Jul 21, 2025
3378b76
[Sparc] Remove bogus stack adjustment for LD/GD TLS (#149890)
jrtc27 Jul 22, 2025
ede9fbe
[KeyInstr] Inline asm atoms (#149076)
OCHyams Jul 22, 2025
fd13e38
[DTLTO] Add Clang release note for LLVM 21
bd1976bris Jul 23, 2025
704f542
[X86] Fix misassemble due to not storing registers to state machine o…
Heath123 Jul 24, 2025
9554152
[flang][OpenMP] Avoid analyzing assumed-size array bases (#150324)
kparzysz Jul 24, 2025
6077f45
[clang-format] Add AfterNot to SpaceBeforeParensOptions (#150367)
owenca Jul 24, 2025
1ddf4e3
[X86] getTargetConstantBitsFromNode - early-out if the element bitsiz…
RKSimon Jul 23, 2025
ee86ae0
[libc++][hardening] Add an experimental function to log hardening err…
var-const Jul 24, 2025
aae69e9
Adding Loongarch64 to OpenBSD parts (#149737)
nerfur Jul 22, 2025
be21c13
[Driver] Default to -mcpu=ultrasparc3 on Solaris/SPARC (#149990)
rorth Jul 23, 2025
0d8606f
[RISCV] Pass sign-extended value to isInt check in expandMul (#150211)
svs-quic Jul 25, 2025
52dfd4a
[docs] Add clang/llvm release notes for mipsel-windows-* targets
hpoussin Jul 5, 2025
ece4440
[clang] Fix potential constant expression checking with constexpr-unk…
efriedma-quic Jul 17, 2025
b00e0d2
[CI] Backport recent changes to release branch
boomanaiden154 Jul 28, 2025
c198dc7
Remove extraneous addition of `-X` flag in baremetal toolchain (#148855)
quic-garvgupt Jul 22, 2025
9ebb0ab
[lldb] Allow building using Mingw-w64 on Windows. (#150398)
cvspvr Jul 24, 2025
8c7cf7c
[CodeGenPrepare] Make sure that `AddOffset` is also a loop invariant …
dtcxzyw Jul 25, 2025
949c6cc
[flang-rt] Remove hard-coded dependency on compiler-rt path on Window…
DavidTruby Jul 26, 2025
bde97f2
[Mips] Fix wrong ELF FP ABI info when inline asm was empty (#146457)
yingopq Jul 28, 2025
16d81f8
[lld][LoongArch] Support relaxation during TLSDESC GD/LD to IE/LE con…
ylzsx Jul 23, 2025
d4955d9
[Driver] Default to -mv8plus on 32-bit Solaris/SPARC (#150176)
rorth Jul 23, 2025
c52ff1a
Revert "[MIPS]Fix QNaNs in the MIPS legacy NaN encodings" (#150773)
nikic Jul 28, 2025
67cec1a
[lldb] [Windows] Silence format string warnings (#150886)
mstorsjo Jul 28, 2025
431af6d
opencl: Ensure printf symbol is not mangled. (#150210)
fweig Jul 28, 2025
81a3436
[CodeGen] More consistently expand float ops by default (#150597)
nikic Jul 28, 2025
dc90bf0
[clang] Fix const eval of constexpr-unknown relational comparisons. (…
efriedma-quic Jul 24, 2025
f1bca17
[LLD][COFF] Move resolving alternate names to SymbolTable (NFC) (#149…
cjacek Jul 28, 2025
bbc8346
[LLD][COFF] Avoid resolving symbols with -alternatename if the target…
cjacek Jul 28, 2025
317403d
[LLDB] Switch to using DIL as default implementation for 'frame var'.…
cmtice Jul 15, 2025
a3d182b
[X86] Align f128 and i128 to 16 bytes when passing on x86-32 (#138092)
tgross35 Jul 17, 2025
2ec38ab
[Clang] Fix a partial ordering bug involving CTAD injected template a…
zyn0217 Jul 24, 2025
d8e9216
Bump version to 21.1.0-rc2
tru Jul 29, 2025
7e51c08
[LLD][COFF] Allow symbols with empty chunks to have no associated out…
cjacek Jul 28, 2025
4ca9a4b
[[gnu::nonstring]] should work on pointers too (#150974)
AaronBallman Jul 28, 2025
8c3ef23
[clang][DebugInfo] Disable VTable debug info (#130255) on COFF platforms
kikairoya Jul 28, 2025
6943f1b
[libc++][hardening] Introduce assertion semantics. (#149459)
var-const Jul 29, 2025
6145440
[PAC][compiler-rt] Fix init/fini array signing schema (#150691)
kovdan01 Jul 29, 2025
9ad630f
[lldb][AArch64] Add HWCAP3 to register field detection (#145029)
DavidSpickett Jul 28, 2025
b1c834f
[lldb][AArch64][Linux] Show MTE store only setting in mte_ctrl (#145033)
DavidSpickett Jul 28, 2025
6df1a28
[llvm][release] Add links to commonly used release packages (#147719)
DavidSpickett Jul 29, 2025
3b53c84
[C23] Handle type compatibility for enumerations better (#150282)
AaronBallman Jul 29, 2025
d436146
[scudo] Make Ptr volatile so that the malloc and free calls are not o…
fabio-d Jul 22, 2025
773b718
[LLD][X86] Match delayLoad thunk with MSVC (#149521)
e-kud Jul 28, 2025
71f9b12
[llvm-objcopy] [COFF] Ignore associative sections in executables (#15…
mstorsjo Jul 30, 2025
2dbbc27
[clang-format] Disable IntegerLiteralSeparator for C++ before c++14 (…
owenca Jul 30, 2025
f207cb4
[Analysis] Prevent revisiting block when searching for noreturn vars …
spavloff Jul 30, 2025
80a6bc7
[lld][LoongArch] Check that the relocation addend is zero before appl…
ylzsx Jul 30, 2025
78ce57c
[X86][AVX10.2] Fix VNNIINT16 maskz intrinsics arguments order (#151077)
phoebewang Jul 29, 2025
b38f357
[Flang][OpenMP][Docs] Update target-related support in Flang docs, NF…
skatrak Jul 29, 2025
1f17474
[llvm][docs] Add release note for LLDB MTE changes
DavidSpickett Jul 31, 2025
8b85cf5
[DTLTO][Clang][Docs] Update for COFF support (#149988)
bd1976bris Aug 1, 2025
d9ddd18
[DTLTO][LLD][ELF] Support bitcode members of thin archives (#149425)
bd1976bris Aug 1, 2025
9869d43
[sanitizer] Remove usage of termios ioctl constants on Linux glibc si…
trcrsired Jul 24, 2025
8d38ccb
Remove reference to obsolete termio ioctls
andreas-schwab May 7, 2025
087cb2e
[clang] Avoid inheriting [[noreturn]] in explicit function template s…
snarang181 Jul 24, 2025
ca8b2f3
[lld][LoongArch] GOT indirection to PC relative optimization (#123743)
ylzsx Aug 1, 2025
c7ac782
[clang-format] Google Style: disable DerivePointerAlignment. (#149602)
jyknight Jul 25, 2025
863f996
[RISCV] vsha2cl intrinsics should select vsha2cl instructions.
topperc Aug 2, 2025
489d36c
[NFC][ELF] Add missing blank line between functions
jrtc27 Aug 3, 2025
74a0c1e
[NFC][ELF][Hexagon] Avoid pointless ArrayRef::drop_front
jrtc27 Aug 3, 2025
f5ad8dc
[ELF][Hexagon] Fix host endianness assumption
jrtc27 Aug 3, 2025
d4046ae
Thread safety analysis: Don't warn on acquiring reentrant capability …
aaronpuchert Aug 3, 2025
16bd92c
[libc++][hardening] Add a greppable prefix to assertion messages. (#1…
var-const Jul 31, 2025
1d46440
[Driver][MinGW] Always put libc argument last, even if non-standard (…
Keno Jul 30, 2025
d502822
[C] static_assert in a for loop is not an extension (#151955)
AaronBallman Aug 4, 2025
6419104
[LifetimeSafety] Add language option for experimental lifetime safety…
usx95 Jul 22, 2025
7ee100c
[Clang] Don't allow implicit this access when checking function const…
zyn0217 Jul 30, 2025
400d8b0
[Test] Adjust quoting in archive-thin.test for spaces in paths (#151707)
bd1976bris Aug 1, 2025
3d6fb12
[C23] More improved type compatibility for enumerations (#150946)
AaronBallman Jul 29, 2025
496a49d
[libunwind] Fix return type of `DwarfFDECache::findFDE()` in definiti…
alexrp Jul 22, 2025
f24efe1
[Hexagon] Add nounwind to hexagon-strcpy.ll (#151293)
svs-quic Jul 31, 2025
bf0f8ea
[llvm][sroa] Disable support for `invariant.group` (#151743)
tommymcm Aug 5, 2025
460ff1e
[C23] AST equivalence of attributes (#151196)
AaronBallman Jul 29, 2025
d1f761c
[clangd] Add clangd 21 release notes
HighCommander4 Aug 6, 2025
6203dde
Remove reference to reverted PR #130742
hubert-reinterpretcast Aug 6, 2025
79f3653
[flang][cmake] Fix bbc dependencies (#152306)
Meinersbur Aug 6, 2025
9ec748c
[Flang] Search flang_rt in clang_rt path (#151954)
Meinersbur Aug 6, 2025
b398447
[llvm][cmake] Remove version number from runtimes in PROJECTS warning…
DavidSpickett Aug 7, 2025
2555a85
[flang-rt] Use correct flang-rt build for flang-rt unit tests on Wind…
DavidTruby Aug 7, 2025
3c754bf
[clang][PAC] Fix PAC codegen for final class dynamic_cast optimizatio…
ojhunt Aug 6, 2025
d51ce34
[clangd] Use resolved path when checking AngledHeaders/QuotedHeaders …
Harald-R Aug 8, 2025
c8f64bb
[DAG] visitFREEZE - limit freezing of multiple operands (#149797)
RKSimon Jul 22, 2025
0fb2434
[RISCV] Add test coverage for #148084
RKSimon Jul 23, 2025
3290ca0
[libc++] Add checks for misused hardening macros (#150669)
ldionne Jul 31, 2025
768c324
[AIX] Handle arbitrary sized integers when lowering formal arguments …
amy-kwan Aug 1, 2025
e239f1f
[Flang] Fix crash with parametrized derived types usage (#150289)
ceseo Aug 1, 2025
3aee9c7
[libc++] Fix tests after #144220
cor3ntin Aug 5, 2025
17c39c1
[compiler-rt][AArch64] Add GCS property in assembly files (#152502)
Il-Capitano Aug 7, 2025
3e55c84
[PowerPC] fix lowering of SPILL_CRBIT on pwr9 and pwr10 (#146424)
pmur Aug 8, 2025
7be867f
[SystemZ] Remove incorrect areInlineCompatible hook (#152494)
nikic Aug 8, 2025
ba87d05
[AVR] Fix codegen after getConstant assertions got enabled (#152269)
aykevl Aug 7, 2025
c092e2a
[libc++] Fix uses of non-empty transparent comparator in `<map>` (#15…
frederick-vs-ja Aug 8, 2025
f64406b
[IR] Handle fabs LHS in `fcmpImpliesClass` (#152913)
dtcxzyw Aug 10, 2025
6f5c887
[GVN] Check IndirectBr in Predecessor Terminators (#151188)
ParkHanbum Aug 11, 2025
a619e46
[clang][Driver] Prefer non-Linux emulations for baremetal Arm/AArch64…
jonathonpenix Jul 28, 2025
6096d35
Bump version to 21.1.0-rc3
tru Aug 12, 2025
8e0e800
PreISelIntrinsicLowering: Lower llvm.log to a loop if scalable vec ar…
steplong Aug 11, 2025
83f2150
[libc++] Fix std::variant evaluating template arguments too eagerly (…
philnik777 Aug 11, 2025
af18c6f
Work around documented Linux mmap bug. (#152595)
zygoloid Aug 13, 2025
08289ad
[RISCV] Track Linker Relaxable through Assembly Relaxation (#152602)
lenary Aug 12, 2025
5a351e9
[RISCV][MoveMerge] Don't copy kill flag when moving past an instructi…
topperc Aug 14, 2025
9bf61a6
[NFC] Precommit test for issue #149512 (#153541)
Aug 15, 2025
08b5797
[clang][LoongArch] Ensure `target("lasx")` implies LSX support (#153542)
Aug 15, 2025
482e2ff
[PowerPC][CodeGen] Expand ISD::AssertNoFPClass for ppc_fp128 (#152357)
amy-kwan Aug 13, 2025
5476696
[VectorCombine] Apply InstSimplify in scalarizeOpOrCmp to avoid infin…
XChy Aug 15, 2025
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
DavidSpickett 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
f962789
CPULLVM Toolchain for Embedded changes
jonathonpenix Sep 18, 2025
08adfe8
Turn off assertion mode in the build
navaneethshan Oct 15, 2025
1db403a
Update eld branch to release/21.x
navaneethshan Oct 16, 2025
d1dce48
Fix hyperlink in README
navaneethshan Oct 17, 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
  •  
  •  
  •  
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