Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
588 commits
Select commit Hold shift + click to select a range
1fdf46a
Automerge: [compiler-rt][AArch64] Add GCS property in assembly files …
Il-Capitano Aug 7, 2025
5bef3d2
Automerge: [PowerPC] fix lowering of SPILL_CRBIT on pwr9 and pwr10 (#…
pmur Aug 8, 2025
8dbe4f6
Automerge: [SystemZ] Remove incorrect areInlineCompatible hook (#152494)
nikic Aug 8, 2025
8e1c1cb
Automerge: [AVR] Fix codegen after getConstant assertions got enabled…
aykevl Aug 7, 2025
e543720
Automerge: [libc++] Fix uses of non-empty transparent comparator in `…
frederick-vs-ja Aug 8, 2025
d3a6a3e
Automerge: [IR] Handle fabs LHS in `fcmpImpliesClass` (#152913)
dtcxzyw Aug 10, 2025
a1cc67e
Automerge: [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
26f5b58
Automerge: [clang][Driver] Prefer non-Linux emulations for baremetal …
jonathonpenix Jul 28, 2025
3d35f90
Automerge: Bump version to 21.1.0-rc3
tru Aug 12, 2025
bb670eb
[AArch64][SVE] Use FeatureUseFixedOverScalableIfEqualCost for A320 (#…
stuij 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)
Ami-zhang Aug 15, 2025
08b5797
[clang][LoongArch] Ensure `target("lasx")` implies LSX support (#153542)
Ami-zhang 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
f14a8ac
Automerge: PreISelIntrinsicLowering: Lower llvm.log to a loop if scal…
steplong Aug 11, 2025
6e1dbbe
Automerge: [libc++] Fix std::variant evaluating template arguments to…
philnik777 Aug 11, 2025
8a5f823
Automerge: Work around documented Linux mmap bug. (#152595)
zygoloid Aug 13, 2025
8366801
Automerge: [RISCV] Track Linker Relaxable through Assembly Relaxation…
lenary Aug 12, 2025
617dad6
Automerge: [RISCV][MoveMerge] Don't copy kill flag when moving past a…
topperc Aug 14, 2025
a69f767
Automerge: [NFC] Precommit test for issue #149512 (#153541)
Ami-zhang Aug 15, 2025
6f4efd9
Automerge: [clang][LoongArch] Ensure `target("lasx")` implies LSX sup…
Ami-zhang Aug 15, 2025
4babff4
Automerge: [PowerPC][CodeGen] Expand ISD::AssertNoFPClass for ppc_fp1…
amy-kwan Aug 13, 2025
e1db3c8
Automerge: [VectorCombine] Apply InstSimplify in scalarizeOpOrCmp to …
XChy Aug 15, 2025
9a4d3e2
Automerge: [SPARC] Use FMA instructions when we have UA2007 (#148434)
koachan Aug 12, 2025
913d05d
Automerge: [clang-format] Allow breaking before bit-field colons (#15…
owenca Aug 17, 2025
0b19b47
Automerge: [clang-format] Fix a bug in breaking before FunctionDeclar…
owenca Aug 17, 2025
32f5c3a
Automerge: release/21.x: [clang-format] Don't annotate class property…
owenca Aug 17, 2025
2d5f173
[ATfE] Fix linker script path in llvmlibc sample (#488)
dcandler Aug 19, 2025
993c564
[clang][PAC][darwin] Set correct default ptrauth features for arm64e-…
ojhunt Aug 20, 2025
27fbad8
Automerge: [clang][PAC][darwin] Set correct default ptrauth features …
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
133445f
Automerge: [TailDup] Delay aggressive computed-goto taildup to after …
fhahn Jul 28, 2025
ee04420
Automerge: [clang] Allow trivial pp-directives before C++ module dire…
yronglin Aug 18, 2025
0c260cb
Automerge: [clang] return type not correctly deduced for discarded la…
ojhunt Aug 18, 2025
8736927
Automerge: [POWERPC] Fixes an error in the handling of the MTVSRBMI i…
diggerlin Aug 6, 2025
a0e5711
Automerge: [clang][PAC] ptrauth_qualifier and ptrauth_intrinsic shoul…
ojhunt Aug 18, 2025
2dbb917
Automerge: [clang][ObjC] Fix incorrect return type inference for disc…
ojhunt Aug 18, 2025
d183386
Automerge: [NFC][Clang][Docs] Update Pointer Authentication documenta…
ojhunt Aug 19, 2025
4fe2f06
Automerge: [X86] lowerShuffleAsLanePermuteAndPermute - ensure we've s…
RKSimon Aug 14, 2025
61feb47
Automerge: [C] Fix issue with -Wimplicit-void-ptr-cast (#154351)
AaronBallman Aug 19, 2025
8f6d91a
Automerge: On Windows, in the release build script, fix detecting if …
aganea Aug 19, 2025
d14e0e9
Automerge: Add PowerPC/AIX related release notes to LLVM 21.1.0
amy-kwan Aug 20, 2025
afff9a4
Automerge: [X86] SimplifyDemandedVectorEltsForTargetNode - don't spli…
RKSimon Aug 20, 2025
dd8e0f5
Automerge: [mlir] Make parser not rely on terminating null. (#151007)
jpienaar Jul 29, 2025
a1da836
Automerge: Move OpenACC Release Note-
erichkeane Aug 20, 2025
30e8770
[ATfE] Fix typos and minor style issues in docs (#490) (#493)
voltur01 Aug 21, 2025
e9648db
Optimize ATfE pre/post-merge workflows with path filters
HugoSilvaSantos Aug 19, 2025
38f5345
[ATfE] Update changelog for ATfE 21 release (#491) (#495)
voltur01 Aug 21, 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
e71f79a
[Workflows] No need to merge the 20.x branch in a 21.x workflow.
MarkMurrayARM Aug 27, 2025
656f757
[arm-toolchain][Workflows] No need to merge the 20.x branch in a 21.x…
MarkMurrayARM Aug 27, 2025
d050d4b
[arm-toolchain][workflows] We are on the 21.x branch.
MarkMurrayARM Aug 28, 2025
7fce7b3
[arm-toolchain][workflows] We are on the 21.x branch. (#502)
MarkMurrayARM Aug 28, 2025
6b2dfb2
Automerge: [clang][Obj-C][PAC] Add support for authenticating block m…
ojhunt Aug 14, 2025
dd3dc8c
Automerge: [clang][Obj-C][PAC] Make block descriptor pointer signing …
ojhunt Aug 15, 2025
bde7dfb
Automerge: [Hexagon] Add missing operand when disassembling Y4_crswap…
s-barannikov Aug 16, 2025
641fd74
Automerge: [Driver] DragonFly does not support C11 threads (#154886)
brad0 Aug 22, 2025
d86abd2
Automerge: [LLD][COFF] Set isUsedInRegularObj for target symbols in r…
cjacek Aug 22, 2025
785434c
Automerge: [libc++] Add tests for the ABI break introduced by switchi…
philnik777 Aug 22, 2025
7904455
Automerge: [libc++] Fix ABI break introduced by switching to _LIBCPP_…
philnik777 Aug 23, 2025
cfb9f3d
Automerge: [clang] Remove hasValue() check in `RecordExprEvaluator::V…
tbaederr Aug 23, 2025
c0f7361
Automerge: [MLIR][Vector] Fix bug in ExtractStrideSlicesOp canonicali…
tlongeri Jul 16, 2025
02f0316
Automerge: [MLIR] Fix use-after-frees when accessing DistinctAttr sto…
abulavin Jul 16, 2025
8bc11ab
Automerge: [mlir][mesh] Add null check for dyn_cast to prevent crash …
CoTinker Jul 18, 2025
59c07aa
Automerge: [mlir] Fix missing import (#150330)
dan-garvey Jul 24, 2025
5680c2f
Automerge: Fix Bug in RemoveDeadValues Pass (#148437)
ronigoldman22 Jul 25, 2025
5aa662f
Automerge: [mlir][SCF] Do not access erased operation in `scf.while` …
matthias-springer Jul 26, 2025
3c04a7e
Automerge: [mlir][OpenMP][NFC] Fix gcc 14 warning (#151941)
tblah Aug 4, 2025
7d9fb65
Automerge: [mlir] Clone attrs of unregistered dialect ops (#151847)
brnorris03 Aug 5, 2025
a84b1e3
Automerge: [NFC][mlir] Update DataFlowFramework.h to be compatible wi…
philass Aug 5, 2025
cd38291
Automerge: [mlir][cmake] Fix MLIR shared library installation (#152195)
brnorris03 Aug 7, 2025
2a136cb
Automerge: [MLIR] Make `PassPipelineOptions` virtually inheriting fro…
svuckovicTT Aug 8, 2025
2e1788b
Automerge: [NFC][mlir] Fully qualify namespace to avoid an MSVC bug (…
yronglin Aug 10, 2025
1b1a327
Automerge: [MLIR][Python] MLIR Enum Python bindings infinite recursio…
nsmithtt Aug 12, 2025
901919f
Automerge: [mlir][ExecutionEngine] fix default free function in `Owni…
batzor Aug 13, 2025
73b693d
Automerge: [mlir][DialectUtils] Fix div by zero crash (#153380)
matthias-springer Aug 13, 2025
85dd340
Automerge: [MLIR] Erase unreachable blocks before applying patterns i…
joker-eph Aug 18, 2025
df909ab
Automerge: [MLIR] Refactor the walkAndApplyPatterns driver to remove …
joker-eph Aug 18, 2025
b53950e
Automerge: [MLIR] Fix SCF verifier crash (#153974)
joker-eph Aug 18, 2025
ba7daea
Automerge: [MLIR] Stop visiting unreachable blocks in the walkAndAppl…
joker-eph Aug 18, 2025
d57c006
Automerge: [MLIR] Fix Liveness analysis handling of unreachable code …
joker-eph Aug 18, 2025
7b80ec8
Automerge: [MLIR] Introduce a OpWithState class to act as a stream mo…
joker-eph Aug 1, 2025
93cb9a3
Automerge: [MLIR] Fix duplicated attribute nodes in MLIR bytecode des…
hankluo6 Aug 20, 2025
d736bc5
Automerge: [llvm][release] Correct formatting field in release message
DavidSpickett Aug 12, 2025
827d319
Automerge: [lldb][test][NFC] Re-arrange ifdefs in compressed_pair.h
Michael137 Aug 24, 2025
a15f22a
Automerge: [lldb][DataFormatters] Support newer _LIBCPP_COMPRESSED_PA…
Michael137 Aug 25, 2025
1542ca1
Automerge: [flang] Disable loop interchange by default (#155279)
nikic Aug 26, 2025
b5e393d
Automerge: [Flang] Fix crash when a derived type with private attribu…
ceseo Aug 4, 2025
8acfc0e
Automerge: [WIP] [clang] Align cleanup structs to prevent SIGBUS on s…
koachan Aug 13, 2025
a0c74b3
Automerge: Move rest of documentation problems that found their way t…
erichkeane Aug 20, 2025
5095f30
Automerge: [analyzer] Drop assertion enforcing that assume args are k…
steakhal Aug 5, 2025
fd51e67
Automerge: [analyzer] Add missing expected-warning after #151908
steakhal Aug 5, 2025
411a86e
Automerge: [PAC] Fix codegen for polymorphic class variables with con…
ahatanak Aug 25, 2025
bcf6967
Automerge: [analyzer][docs] CSA release notes for clang-21
steakhal Aug 20, 2025
d8a42c5
Automerge: [PowerPC] Indicate that PPC32PICGOT clobbers LR (#154654)
cuviper Aug 25, 2025
f50258f
Automerge: 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)
DavidSpickett 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
9ff59cd
[ATfL] Document how to use BOLT with ATfL (#522)
pawosm-arm Sep 8, 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
697ae73
Automerge: Bump version to 21.1.1
tru Sep 3, 2025
dbaaf53
Automerge: [Analyzer] No longer crash with VLA operands to unary type…
AaronBallman Aug 1, 2025
77c4009
Automerge: ThinLTOBitcodeWriter: Emit __cfi_check to full LTO part of…
pcc Aug 21, 2025
8c752fb
Automerge: [release] Correct download links for Windows on Arm packag…
DavidSpickett Sep 2, 2025
45aaa3e
Automerge: [X86] getScalarMaskingNode - if the mask is zero just retu…
RKSimon Sep 2, 2025
7b8e523
Automerge: [LoongArch] Fix broadcast load with extension. (#155960)
tangaac Sep 1, 2025
c992ec0
Automerge: [sanitizer_common] Older Haiku needs _GNU_SOURCE (#156291)
brad0 Sep 1, 2025
1b23418
Automerge: [SLP]Do not to try to revectorize previously vectorized ph…
alexey-bataev Aug 31, 2025
fb86632
Automerge: [Clang][CMake] Use IRPGO instead of FE PGO for Cmake Cache…
boomanaiden154 Aug 29, 2025
d80b098
Automerge: [libc++] Disable cv-qualified arithmetic hash specializati…
philnik777 Aug 29, 2025
ec3b3f4
Automerge: Add pointer auth documentation to contents (#155763)
ojhunt Aug 28, 2025
5d8abda
Automerge: [AArch64][PAC] Fix clobbering registers by BLRA and AUTH_T…
atrosinenko Aug 27, 2025
0f4a1f8
Automerge: [AArch64][PAC] Do not execute AUT instructions speculative…
atrosinenko Aug 27, 2025
6d3024c
Automerge: [mlir][cmake] Fix mlir target export (#153341)
brnorris03 Aug 14, 2025
9ae0f56
Automerge: [NVPTX] don't erase CopyToRegs when folding movs into load…
Prince781 Jul 18, 2025
f492261
Automerge: [clang] Make sure EvalInfo pointer isn't null (#155563)
tbaederr Aug 27, 2025
7c5b70d
Automerge: [clang][PAC] Fix builtins that claim address discriminated…
ojhunt Aug 26, 2025
4916cae
Automerge: [clang-format] Use proper flags for git diff-tree (#155247)
boomanaiden154 Aug 26, 2025
660ab72
Automerge: [RISCV] Cost casts with illegal types that can't be legali…
lukel97 Aug 11, 2025
c6dae09
Automerge: [libc++] Ensure that we restore invariants in basic_filebu…
ldionne Jul 15, 2025
a0226c3
Automerge: [libcxx][fstream][NFC] Make __failed helper lambda a membe…
Michael137 Jul 17, 2025
a4622b9
Automerge: [lldb][ClangASTImporter] Don't ASTImport LambdaExpr nodes …
Michael137 Aug 22, 2025
a6459df
Automerge: [compiler-rt] Avoid depending on the libnvmm header for Ne…
alexrp Aug 24, 2025
4e11f6a
Automerge: [AArch64][BTI] Add BTI at EH entries. (#155308)
shashforge Aug 30, 2025
31f8949
Automerge: Remove EH_LABEL comments from tests
davemgreen Sep 1, 2025
14abd6d
Automerge: [libc++][AIX] Fixup problems with ABI list checking (#155643)
daltenty Aug 27, 2025
3349917
Automerge: [DebugInfo] When referencing structured bindings use the r…
dwblaikie Sep 2, 2025
bb670b8
Automerge: [lldb][DWARFASTParserClang] Don't complete conflicting Obj…
Michael137 Sep 3, 2025
ffbf804
Automerge: [clang][docs] Fix implicit-int-conversion-on-negation typos
correctmost Sep 4, 2025
a5eb83c
Automerge: [Coroutines] Restore accidentally dropped intrinsic IDs
nikic Jul 24, 2025
1648dfc
Automerge: [lldb][DataFormatter] Allow std::string formatters to matc…
Michael137 Sep 5, 2025
3be6e17
Automerge: [compiler-rt] Remove leftovers of FreeBSD md5/sha2 interce…
alexrp Aug 24, 2025
648ab71
Automerge: [libc++] Fix broken precondition of __bit_log2 (#155476)
ldionne Aug 28, 2025
85f3df1
Automerge: [builtins] Rename freebsd to elf_aux_info to reflect the f…
brad0 Aug 28, 2025
73af1a9
Automerge: compiler-rt: Use OpenBSD's elf_aux_info to detect AArch64 …
brad0 Aug 28, 2025
1317cca
Automerge: [CMake][AIX] Enable CMP0182: Create shared library archive…
daltenty Aug 28, 2025
9514123
Automerge: [X86] Only fold AND/ANDNP back to VSELECT if we know the p…
RKSimon Sep 3, 2025
b02f92e
Automerge: [LV] Add more tests for interleave groups requiring predic…
fhahn Sep 4, 2025
5839d48
Automerge: [LV] Don't run instcombine for interleaved-accesses test.
fhahn Sep 4, 2025
5550a2e
Automerge: [SCEVExp] Fix early exit in ComputeEndCheck. (#156910)
fhahn Sep 5, 2025
c1928b3
Automerge: [Xtensa] Fix lowering FP compare operations.
andreisfr Sep 3, 2025
e3e01f6
[Clang][Driver][ARM] Forward `-Os` and `-Oz` as multilib flags (#526)
vhscampos Sep 12, 2025
a72ae8c
[ATfE] Changes in library variants build for code size (#532)
vhscampos Sep 12, 2025
0bac08d
[ATFE] Upgrade QEMU packages: fix unmet dependency. (#530) (#531)
simpal01 Sep 12, 2025
cb58934
[TargetParser] Normalize "aarch64-amazon-linux" to "aarch64-amazon-li…
MacDue Apr 16, 2025
fa09a04
X86 test
MacDue Jun 3, 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