Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2643 commits
Select commit Hold shift + click to select a range
cce2b5a
[clang-tidy] Support parentheses around subscript operators in readab…
zwuis Jul 11, 2026
d5ff29d
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (5) (#208834)
arsenm Jul 11, 2026
a9987b7
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (6) (#208835)
arsenm Jul 11, 2026
4f94d25
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (7) (#208836)
arsenm Jul 11, 2026
d90e6c8
[StackColoring] Change TotalStackSize from unsigned to int64_t (#208671)
prados-oc Jul 11, 2026
4125b6f
[GlobalISel] Improve bf16 converts with fast-math flags. (#200741)
davemgreen Jul 11, 2026
a54fc1f
[AArch64][GlobalISel] Extend handling to bf16 vecreduce. (#208684)
davemgreen Jul 11, 2026
79ebcad
[analyzer] Prevent inlining RAII ctors/dtors (#208729)
steakhal Jul 11, 2026
e490b43
[analyzer] Fix invalid HTML nesting for popups at end of line (#207793)
Lu4nScr1pt1ng Jul 11, 2026
847fe43
[AArch64] Fix miscompilation due to integer overflow in immediate off…
kuroyukiasuna Jul 11, 2026
9d5d883
[AggressiveInstCombine] Fix crash when folding consecutive loads into…
kevinwkt Jul 11, 2026
a11e844
[clang][LifetimeSafety] Short-circuit joins of identical immutable co…
Xazax-hun Jul 11, 2026
31ddc7e
[mlir][presburger] Avoid redundant zero-initialization in insertColum…
linuxlonelyeagle Jul 11, 2026
670e0a0
[IR] Use pretty printing for mask in is_fpclass (#207653)
spavloff Jul 11, 2026
419cce0
[libcxx][NFC] Move release notes for MSVC's implementation of excepti…
petrhosek Jul 11, 2026
6e01e73
[libcxx] Bump runner set (#208929)
boomanaiden154 Jul 11, 2026
0979680
[VPlan] Remove dead member functions (NFC) (#208936)
fhahn Jul 11, 2026
030fdce
[VPlan] Re-use VPSlotTracker when printing recipes for costs (NFC). (…
fhahn Jul 11, 2026
5742a30
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (8) (#208837)
arsenm Jul 11, 2026
c84e264
[AArch64][GlobalISel] Add test coverage for bf16 fptosi.sat. NFC (#20…
davemgreen Jul 11, 2026
63f4d28
[ELF] Fix data race when handleTlsIe adds a RELATIVE relocation (#208…
MaskRay Jul 11, 2026
905f654
[ELF] Replace getThreadIndex with explicit shards in RelocScan. NFC (…
MaskRay Jul 11, 2026
410a2a2
[libc++][pstl] Default implementation of parallel std::reverse_copy (…
mikekazakov Jul 11, 2026
d6d0ccc
[lldb-mcp] Multiplex across all discovered LLDB instances (#208827)
JDevlieghere Jul 11, 2026
074c4b3
[ELF] Replace getThreadIndex with explicit shards in markLive. NFC (#…
MaskRay Jul 12, 2026
61b5d78
[CIR][NFC] Add missing enum values related to CXXExpansionStmt (#208919)
AmrDeveloper Jul 12, 2026
3a6048d
Revert "[ARM] Use .reloc for weak symbols in PIC mode instead of GOT …
to268 Jul 12, 2026
e9e21f5
Revert [X86] EltsFromConsecutiveLoads - handle trunc(wideload()) patt…
as4230 Jul 12, 2026
9dffcd2
[PAC][lld] Properly handle `.relr.auth.dyn` -> `.rela.dyn` movement (…
kovdan01 Jul 12, 2026
7792961
[clang][bytecode] Remove EvalEmitter::OpPC (#208988)
tbaederr Jul 12, 2026
02a3883
[lld][ELF] Allow explicit address expressions on .tbss output section…
amosher-nvidia Jul 12, 2026
359b99c
[SLP] Use constant 64-bit indices for Extract/InsertElement (#208957)
andjo403 Jul 12, 2026
76f0d46
[ELF,test] Improve .relr.auth.dyn -> .rela.dyn movement coverage (#20…
MaskRay Jul 12, 2026
7215a1a
[LoadStoreVectorizer] Use constant 64-bit indices for Extract/InsertE…
andjo403 Jul 12, 2026
2aab895
[SROA] Use constant 64-bit indices for Extract/InsertElement (#208918)
andjo403 Jul 12, 2026
e62c0cb
[clang][bytecode] Fix comparing `TemplateParamObjectDecl`s (#208734)
tbaederr Jul 12, 2026
25a5b78
[PatternMatch] Add capturing m_Phi matcher (NFC) (#208949)
fhahn Jul 12, 2026
af812fc
[Clang][RISCV][P-ext] Support packed widening convert intrinsics (#20…
Michael-Chen-NJU Jul 12, 2026
4c7948d
Revert "[VPlan] Re-use VPSlotTracker when printing recipes for costs …
nikic Jul 12, 2026
a34cb57
[analyzer] Model strchr/strrchr/memchr/strstr/strpbrk/strchrnul (#207…
steakhal Jul 12, 2026
97bceed
[RISCV][P-ext] Improve the codegen for unzip-like shuffle and buildve…
XChy Jul 12, 2026
a06b1c9
[orc-rt] Add printf logging backend (#209006)
lhames Jul 12, 2026
3187f26
[clang-tidy] Modernize-use-string-view: fix todo for ternary (#209008)
irishrover Jul 12, 2026
3f2d8eb
[FixIrreducible][UnifyLoopExits] Fix callbr multiedge splitting (#207…
hertelukas Jul 12, 2026
b82a9a5
[ADT] Fuse the two post-mutation tree walks in ImutAVLFactory (#208907)
Xazax-hun Jul 12, 2026
f99f2a5
[analyzer] Implement LifetimeModeling checker and refactor UseAfterLi…
benedekaibas Jul 12, 2026
7c2f4db
[orc-rt] Add internal secureGetenv utility and use it in the printf b…
lhames Jul 12, 2026
a259ffb
[SLP][NFC]Add tests for copyables in minmax int intrinsics, NFC
alexey-bataev Jul 12, 2026
7206149
[NFC][clang] Adjust PPMemoryAllocationsTest threshold for ASan (#209024)
vitalybuka Jul 12, 2026
97e24c8
[CIR] Fix lit tests after is.fpclass pretty printing. NFC (#209026)
darkbuck Jul 12, 2026
715cf35
[clang-tidy] Fix identifier-naming style lookup in macro arguments (#…
savchart Jul 12, 2026
4e15b55
[lld] Report missing --irpgo-profile file instead of asserting (#209028)
MaskRay Jul 12, 2026
5790cc0
[IR] Use constant 64-bit indices for Extract/InsertElement (#208996)
andjo403 Jul 12, 2026
ede6a16
[PowerPC] Use constant 64-bit indices for Extract/InsertElement (#209…
andjo403 Jul 12, 2026
66e9ac6
[InstCombine] Use constant 64-bit indices for InsertElement (#209017)
andjo403 Jul 12, 2026
83d95d8
[SimplifyLibCalls] Use constant 64-bit indices for ExtractElement (#2…
andjo403 Jul 12, 2026
3a27d29
[ELF] Move markUsedLocalSymbols from Writer to markLive. NFC (#209035)
MaskRay Jul 12, 2026
937ac00
[llvm][HTTP] Apply WinHTTP timeout setting after WinHttpOpen (#188969)
weliveindetail Jul 12, 2026
fafd0de
[SLP][NFC]Add a test with incorrect add/sub operands reorder, NFC
alexey-bataev Jul 12, 2026
2fdc877
[SLP] Fix miscompile from unsafe operand-order normalization
alexey-bataev Jul 12, 2026
5485d62
[ELF] --discard-{locals,all}: mark local symbols referenced by retain…
MaskRay Jul 12, 2026
3687639
[llvm][HTTP] Increase request handler sleep (#209038)
Nerixyz Jul 12, 2026
65735ab
[SLP][NFC]Add a test with incorrect nuw propagation in add/sub vector…
alexey-bataev Jul 12, 2026
927878d
[SLP] Drop nuw when add/sub interchange negates a nonzero constant
alexey-bataev Jul 12, 2026
b8d37cb
[AArch64] Add an OPERAND_IMM_UINT8 operand type. (#209050)
davemgreen Jul 12, 2026
5566928
[LAA] Bail out of dependence analysis when distance exceeds 64 bits. …
fhahn Jul 12, 2026
349542f
[VPlan] Add strided access test with disjoint or. (NFC) (#209051)
fhahn Jul 12, 2026
6237781
[AArch64] Add an OPERAND_IMM_UINT5 operand type. (#209057)
davemgreen Jul 12, 2026
fd65249
[VPlan] Handle AtomicRMW/AtomicCmpXchg/Fence in outer loop creation. …
fhahn Jul 12, 2026
bb4aea6
[SCEV,GVN] Add additional ptrtoaddr tests (NFC) (#209049)
fhahn Jul 12, 2026
d036d30
[test] Add REQUIRES: aarch64 (#209058)
MaskRay Jul 12, 2026
0188651
[SLP][NFC]Add a test with the incorrect const trunc in signed compare…
alexey-bataev Jul 12, 2026
fe85b5b
[SLP] Fix miscompile from truncating signed icmp constant
alexey-bataev Jul 12, 2026
9083925
[ELF,test] Modernize --retain-symbols-file tests (#209062)
MaskRay Jul 12, 2026
b6e77d6
[Clang][Test] Fix -Wctad-maybe-unsupported in OperatorNewDeletePointe…
wenju-he Jul 12, 2026
c847ddf
[ELF] Write the output to lld::outs() when -o is - (#209064)
MaskRay Jul 12, 2026
7d24dfa
ReleaseNotes: add lld/ELF notes (#209066)
MaskRay Jul 13, 2026
c7812f6
[SLP] Fix crash from repeated operand with mixed commutativity
alexey-bataev Jul 13, 2026
692d89d
[LLDB][FreeBSD] Fill pgid and sid in ProcessInfo (#209009)
aokblast Jul 13, 2026
461f0b6
[LLDB] Fix use-after-free destroying a Binder from its OnClosed handl…
aokblast Jul 13, 2026
171ba71
[BOLT] fix DIE traversal incorrect loop termination condition. (#208450)
Thrrreeee Jul 13, 2026
e6673bd
[SLP][Modularization][NFC] Extract type and constant helpers into SLP…
madhur13490 Jul 13, 2026
d91a1e8
[libc++] Switch use llvm-premerge-libcxx-runner (#208928)
yronglin Jul 13, 2026
d8df9b5
[Flang] Fix for the spurious error for VOLATILE actual argument in im…
ejose02 Jul 13, 2026
b1c56fb
[orc-rt] Add os_log logging backend (Darwin only) (#209081)
lhames Jul 13, 2026
9b9f44d
[ADT] Introduce EytzingerTableSpan (#208885)
kazutakahirata Jul 13, 2026
fd17f88
[RISCV][P-ext] Replace RISCVISD::PPAIRE_DB with RISCVISD::PPAIRE. NFC…
topperc Jul 13, 2026
11112ed
[libc] Make cpp::expected::operator bool explicit (#208681)
labath Jul 13, 2026
26e34c6
[IR] Handle vector tys in ConstantExpr::getIntrinsicIdentity for smin…
jlebar Jul 13, 2026
3f80df8
[llvm-profgen][test] Split tests by target architecture (#207724)
SergeyShch01 Jul 13, 2026
6e7afc1
[orc-rt] Remove doxygen comments from logging implemenetation APIs (#…
lhames Jul 13, 2026
2bcb848
[orc-rt] Require ORC_RT_LOG format strings to be string literals (#20…
lhames Jul 13, 2026
a0f9801
[RISCV] Fuse QC_E_LI to Loads/Store (#208134)
lenary Jul 13, 2026
fb8c7da
[clang][NFC] move TokenKey to TokenKinds.h (#208867)
Tsche Jul 13, 2026
ca970f3
[VPlan] Simplify reverses through unary ops (fneg) (#208257)
lukel97 Jul 13, 2026
f97cdc4
[PowerPC] Specify inlining behavior in TableGen (#206938)
nikic Jul 13, 2026
2119e35
[lld][ELF] Concatenate .gnu.build.attributes.* sections (#208737)
nikic Jul 13, 2026
56e62e5
[WebAssembly] Use generic pseudo_fmin/pseudo_fmax opcodes (#208454)
nikic Jul 13, 2026
32f3f9d
[SLP][NFC] Pre-commit tests for select IR-flag/metadata propagation (…
ayrai-gb Jul 13, 2026
2de67c3
[AArch64] Clear kill flags from visitINSvi64lane (#209096)
davemgreen Jul 13, 2026
f48baca
[Docs][NFC] Fix a few typos in NewLLD.rst (#193569)
SorerBOT Jul 13, 2026
c47d1cf
[flang][FIR] implement asm alias interface for fir.type under option …
jeanPerier Jul 13, 2026
3a61e72
[ARM][Thumb1] Improve EstimateFunctionSizeInBytes accuracy (#203318)
statham-arm Jul 13, 2026
1651159
[MLIR] Install missing standalone helper tools (#205066)
momchil-velikov Jul 13, 2026
6e8a4ce
[lldb][docs] Make it clear that we require SWIG >= 4 (#208687)
DavidSpickett Jul 13, 2026
cec7cf4
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (9) (#208893)
arsenm Jul 13, 2026
6e42e25
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (10) (#208894)
arsenm Jul 13, 2026
9e8b030
[MLIR][Linalg] Fix FlattenElementwiseOp on broadcasted linalgs (#207005)
nujaa Jul 13, 2026
abd72b0
[OpenMP] Publish target-init team state with acq_rel barrier (#208701)
abidh Jul 13, 2026
3de2e4a
[clang][bytecode] diagnose reads from non-constant local variables...…
tbaederr Jul 13, 2026
13dbff3
[Flang][Openmp] Implement support for partial in unroll construct (#2…
ShashwathiNavada Jul 13, 2026
e3e1569
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (11) (#208895)
arsenm Jul 13, 2026
b4698d8
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (12) (#208896)
arsenm Jul 13, 2026
b5e94d5
[flang][MIF] Fix lowering sub argument in IMAGE_INDEX #208318 (#208544)
JDPailleux Jul 13, 2026
d097c2b
[IR][NFC] Add parentheses around logical AND (#208512)
Disservin Jul 13, 2026
d62c903
[libc++] Refactor the string benchmarks (#185397)
philnik777 Jul 13, 2026
95f1eab
[RISCV] Add getJumpConditionMergingParams to support branch condition…
wangpc-pp Jul 13, 2026
f8b0713
[NFC][SPIR-V] Add emitSimpleExecutionMode helper to dedup single imm …
aobolensk Jul 13, 2026
d0ac84b
[lldb][test] Fix XML register info test (#209124)
DavidSpickett Jul 13, 2026
dc8ee15
[mlir][SPIR-V] Add SPIRVToLLVM conversion for SNegate (#206950)
aobolensk Jul 13, 2026
19f9973
[NFC][SPIR-V] Remove unused LowLevelType parameter from buildLoadInst…
aobolensk Jul 13, 2026
7176158
[clang][bytecode] Improve diagnostics on typeid field access (#209101)
tbaederr Jul 13, 2026
da13805
[CIR][AMDGPU] Add support for AMDGCN rcp builtins (#197447)
ayokunle321 Jul 13, 2026
a0df86d
[RISCV] Add TuneNoDefaultUnroll to spacemit-x100 (#209069)
zqb-all Jul 13, 2026
cb71fef
[VPlan] Expand SCEV min/max via scalar intrinsic VPInstructions. (#20…
fhahn Jul 13, 2026
6461bd3
[Polly] Fix infinite recursion in `ScopExpander::visitAddRecExpr` (#2…
L3GiaBao Jul 13, 2026
5db1f54
compiler-rt: ubsan: Add suppressions test for nested functions (#206962)
maflcko Jul 13, 2026
6d026ea
[AMDGPU] Remove option to disable SGPR hazard waits (#208720)
perlfu Jul 13, 2026
13e9cc2
[RISCV] Support spacemit vsmtvdotii extensions (#202533)
LiqinWeng Jul 13, 2026
8cb0e63
[AArch64][llvm][tablegen] Restrict luti6 assembly (4 regs, 8-bit) to …
jthackray Jul 13, 2026
3966381
[lldb] Correct alignment of register fields (#209140)
DavidSpickett Jul 13, 2026
6c009ff
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (13) (#208897)
arsenm Jul 13, 2026
d76f677
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (14) (#209117)
arsenm Jul 13, 2026
b0158bb
[orc-rt] Rename orc-executor to ogre (#209143)
lhames Jul 13, 2026
3081049
[lldb] Don't build an opcode from a failed disassembly (#208279)
charles-zablit Jul 13, 2026
efd1602
[SCEV][NFC] Address post-merge comments on precommit test (#209094)
aleks-tmb Jul 13, 2026
a5fc1d6
[gn] port cc048e80b670 more (#209156)
nico Jul 13, 2026
a4364df
[clang][bytecode] Handle invalid function in CXXInheritedCtorInitExpr…
tbaederr Jul 13, 2026
db28e48
[analyzer] Smarter range inference for {+,-,*} (#209048)
steakhal Jul 13, 2026
3ae6937
[gn build] Port 1b879464b362 (#209147)
nico Jul 13, 2026
7a9bbe0
[analyzer] Fix unary/binary op support for SMT symbolic execution (#2…
rdevshp Jul 13, 2026
cc11dd4
[gn build] Port 3bc47c8dc927 (#209148)
nico Jul 13, 2026
fb05639
[gn build] Port 640079288c5e (#209149)
nico Jul 13, 2026
af30b76
[gn build] Port 9b9f44d1c55c (#209150)
nico Jul 13, 2026
ff331ac
[gn build] Port c847ddf8f18d (#209151)
nico Jul 13, 2026
6da5260
[gn build] Port d09048a46401 (#209152)
nico Jul 13, 2026
d9a5286
[gn build] Port d1dbd484ada2 (#209153)
nico Jul 13, 2026
4df8add
[gn build] Port e6673bd03771 (#209154)
nico Jul 13, 2026
e2dee8e
[gn build] Port f99f2a582e94 (#209155)
nico Jul 13, 2026
477bb26
[GlobalISel] Add G_SADDSAT/G_UADDSAT/G_SSUBSAT/G_USUBSAT to computeKn…
Joel-Wwalker Jul 13, 2026
308393e
[LV] Allow scalable epilogue VFs matching the MainLoop VF (#208686)
MacDue Jul 13, 2026
8a337c8
Revert "[SPIR-V] Simplify and fix sign-extension bug in convertCharsT…
nikic Jul 13, 2026
16bd5ce
Reland [AArch64] Copy x4/x5 vararg payload into the x64 stack in Arm6…
asb Jul 13, 2026
5595710
[Flang][MIF] Allocation of NON-ALLOCATABLE SAVE coarray (#205847)
JDPailleux Jul 13, 2026
40f2fda
[lldb-dap] Migrate all DAP variables test. (#208215)
da-viper Jul 13, 2026
fff064e
[Clang][Interpreter] Enable PIC to avoid 32-bit relocation overflows …
aokblast Jul 13, 2026
a624d99
[orc-rt] Remove redundant [[nodiscard]] from runFinalizeActions. NFC.…
lhames Jul 13, 2026
9325f22
[MLIR] Normalize path separator in MLIRConfig.cmake (#208659)
Meinersbur Jul 13, 2026
1884c75
[mlir][tosa] Validate variable element types (#205873)
mygitljf Jul 13, 2026
0f69d28
[libc++][NFC] Remove unused includes from <__iterator/segmented_itera…
philnik777 Jul 13, 2026
d4c6c86
[SLP] Support memory runtime alias checks
alexey-bataev Jul 13, 2026
7f35300
[orc-rt] Replace ORC_RT_NODISCARD with [[nodiscard]]. NFCI. (#209169)
lhames Jul 13, 2026
dc1273b
clang-linker-wrapper: Use AMDGPU::TargetID for device-image compatibi…
arsenm Jul 13, 2026
254472b
[Flang][CMake] Use LLVM-declared LLVM_EXTERNAL_LIT (#208680)
Meinersbur Jul 13, 2026
a9ba4d3
Revert "[SLP] Support memory runtime alias checks"
alexey-bataev Jul 13, 2026
da0045a
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (15) (#209118)
arsenm Jul 13, 2026
b719e2e
AMDGPU: Migrate CodeGen tests to amdgpu subarch triple (16) (#209119)
arsenm Jul 13, 2026
db87fc8
[libc][RISC-V] Enable additional entrypoints and headers (#208927)
mikhailramalho Jul 13, 2026
62b7c7f
[Bazel] Fixes 5595710 (#209165)
forking-google-bazel-bot[bot] Jul 13, 2026
9e014de
[Clang] Fixed missing sentinel attribute diagnostic discrepancy with …
to268 Jul 13, 2026
90d8af8
[Clang][AArch64] Add ACLE _n variants for svdot intrinsics (#208694)
kieroxide Jul 13, 2026
7a8b262
[libunwind][Hexagon] Save/restore full r0-r7 in getcontext/jumpto (#2…
quic-k Jul 13, 2026
ff599bb
[Hexagon] Enable init-array by default for picolibc (#208639)
quic-k Jul 13, 2026
fc9a4af
[WebAssembly] Port SelectionDAGISel to NewPM
boomanaiden154 Jul 13, 2026
c31455c
[libc++] Fix filesystem::remove_all bug with read-only nested directo…
jakeegan Jul 13, 2026
5251176
[AMDGPU] Fix SSID merge in SIMemoryLegalizer to use smallest inclusiv…
wooseoklee Jul 13, 2026
c42c7b4
[clang][NFC] Skip macro source-location check for names that can't wa…
AnonMiraj Jul 13, 2026
aab2ff0
[SDAG][X86] Form pseudo fmin/fmax from select_cc (#208717)
nikic Jul 13, 2026
592953b
[clang][Diagnostics] Only record lexer check points when colors are e…
AnonMiraj Jul 13, 2026
ee71eb8
[APINotes] Match function-like Where.Parameters in Sema (#205307)
StoeckOverflow Jul 13, 2026
42aaca2
[orc-rt] Add ReportErrorsViaSession utility. (#209177)
lhames Jul 13, 2026
f88150e
[MLIR][XeGPU][VectorToXeGPU] Fixed transposed transfer_read/write (#1…
AndreyPavlenko Jul 13, 2026
4c519c6
[gn] port 375cc88b510150d (AMDGPU -gisel-extended-llt) (#209181)
nico Jul 13, 2026
290601e
[lldb] Make timeout for HTTP send/receive in SymbolLocatorSymStore co…
weliveindetail Jul 13, 2026
da1e5f1
[alpha.webkit.UncheckedLocalVarsChecker] Improve the warning text (#2…
rniwa Jul 13, 2026
ac370b8
[MLIR][Linalg] Fix LinalgSpecializeGenericOpsPass for scalar inputs (…
nujaa Jul 13, 2026
24df1d1
Reapply "[Clang] Transform lambda's constraints when instantiating pa…
zyn0217 Jul 13, 2026
fb0ffb1
[AArch64] NFCI: Simplify LowerVectorFP_TO_INT_SAT (part 1) (#207198)
sdesmalen-arm Jul 13, 2026
ada4f7c
[RISCV][P-ext] Improve RV64 v2i16 reverse codegen (#208664)
sihuan Jul 13, 2026
695238f
Write original source language when writing and reading AST (#208115)
Ariel-Burton Jul 13, 2026
c4cb2c0
[Flang] Multi-config CMake output paths in standalone builds (#208690)
Meinersbur Jul 13, 2026
cb6bccc
[libc++] Backport P3029R1 Better `mdspan`'s CTAD to C++20/23 (#208132)
frederick-vs-ja Jul 13, 2026
31ccbe7
[LV] Extend test coverage with branch probabilities (NFC). (#209182)
fhahn Jul 13, 2026
a1a806b
[memref] Support non-scalar copies in `reinterpret_cast` elision (#20…
ioghiban Jul 13, 2026
158938c
Change zos-ppa1-name attr to be the name used in ppa1 (#208870)
perry-ca Jul 13, 2026
ee24ac0
[Clang] Allow devirtualization involving array subscripts with consta…
AZero13 Jul 13, 2026
5b16979
[libc++] Add missing include to thread.h (#208740)
liza371 Jul 13, 2026
cc048f0
[flang][OpenMP] Lowering support for declare variant. (#206988)
abidh Jul 13, 2026
6c63284
[analyzer] Fix stale z3 analyzer-constraints name in test z3-logicale…
rdevshp Jul 13, 2026
13dcad3
[clang][OpenMP][test] Use -fopenmp=libomp explicitly in clang driver …
kevinwkt Jul 13, 2026
0380132
[lldb][test] Fix TestStatusline path resolution in symlinked environm…
kevinwkt Jul 13, 2026
3c8b4f9
[analyzer][docs] CSA release notes for clang-23 (#207433)
steakhal Jul 13, 2026
5e98ee7
[mlir][acc] Preserve shared data operations during if-clause lowering…
khaki3 Jul 13, 2026
8eb718e
[ExpandReductions] Expand fmaximum/fminimum reductions (#195169)
Prajwal-kp-18 Jul 13, 2026
3f12bb1
[Hexagon] Add scs multilib for -fsanitize=shadow-call-stack (#208833)
androm3da Jul 13, 2026
d0ad2c6
[clang] Reuse driver option strings in CompilerInvocation (#202632)
dzbarsky Jul 13, 2026
3ee7683
[Flang][Fir] Set default alignment to 64 on inlineAllocation for arra…
Jason-Van-Beusekom Jul 13, 2026
bd27a8d
[SystemZ][z/OS] Move emission of PPA1 (#208543)
redstar Jul 13, 2026
2a74b20
[Basic] Fix crash computing the spelling index of an unknown scoped a…
vgvassilev Jul 13, 2026
4538987
[Polly] Cast delinearization terms to matching types (#206711)
kasuga-fj Jul 13, 2026
6ce86d4
[NFC][AMDGPU] Simplify scratch address materialization in SVS frame i…
gandhi56 Jul 13, 2026
6733bc3
[flang] Replace FlangOMPContext with OmpVariantMatchContext. (#209220)
abidh Jul 13, 2026
ba61e4d
[AMDGPU] Implement int div/rem by fp recip more efficiently (#204950)
LU-JOHN Jul 13, 2026
9d34596
[clang][UncheckedLocalVarsChecker][NFC] Add missing headers (#209217)
rupprecht Jul 13, 2026
f56c5d6
[webkit.UncountedLambdaCapturesChecker] Improve the warning text (#20…
rniwa Jul 13, 2026
d2bf3af
[Clang] Detects invalid unicode characters in token formed by `##` (#…
cor3ntin Jul 13, 2026
c593782
[clang][CodeGen] Evaluate `typeid` operands which are the most derive…
zwuis Jul 13, 2026
6c5332d
[NFC][AMDGPU] Add tests for eliminateFrameIndex (#208612)
gandhi56 Jul 13, 2026
9bf20bd
[clang][ssaf] Add --ssaf-include-local-entities flag (#209225)
steakhal Jul 13, 2026
fd3d20f
[RISCV] Add SelectAddrRegImm26 isel complex pattern for Xqcilo 26-bit…
quic-garvgupt Jul 13, 2026
38033e2
[clang][ssaf][NFC] Add unittests for PointerFlow and UnsafeBufferUsag…
steakhal Jul 13, 2026
15d8e43
[clang][ssaf] Add FIXME that CallGraphExtractor does not honor Includ…
steakhal Jul 13, 2026
c5d5988
[X86][CostModel] Add vXi64 divide/remainder-by-constant costs (#208491)
Licht-T Jul 13, 2026
28366bc
[clang] [Sema] Widen enumerators that overflow a _BitInt type (C23) (…
Lu4nScr1pt1ng Jul 13, 2026
4695190
Revert "Write original source language when writing and reading AST (…
nico Jul 13, 2026
1d9a3c0
[Bazel] Fixes 9bf20bd (#209238)
forking-google-bazel-bot[bot] Jul 13, 2026
633be47
Revert "[CMake] Use minimum python version of 3.8 everywhere" (#209233)
nikic Jul 13, 2026
c4076b0
[AMDGPU][GlobalISel] Combine rcp(sqrt(x)) into rsq for pseudo-scalar …
MadhurKumar004 Jul 13, 2026
ecf4197
[Verifier] Clarify supported storage bit width for apfloat conversion…
MrSidims Jul 13, 2026
62facd1
[llvm][HTTP] Relax check for timeout error message (#209240)
Nerixyz Jul 13, 2026
83e914e
[offload][test] Add fallback to legacy AMDGPU triple library dir (#20…
ro-i Jul 13, 2026
3122e20
[OpenACC] add isEffectivelySerial() to acc.parallel and acc.kernels (…
rscottmanley Jul 13, 2026
4925d64
Merge from 'main' to 'sycl-web' (152 commits)
Jul 13, 2026
8d1b52a
Merge from 'sycl' to 'sycl-web' (5 commits)
rgmunozj Jul 13, 2026
a5abbdc
Merge from 'sycl' to 'sycl-web' (3 commits)
Jul 13, 2026
1ec1b64
Merge commit 'a5abbdc587cc799d909255e278a36bafa4576caf' into llvmspir…
jsji Jul 20, 2026
e868b17
Merge commit '3122e20cfc7c1b8d103b435ecba27fc3172cb581' into llvmspir…
jsji Jul 20, 2026
f0cc082
Update SPV_INTEL_fp_conversions to the latest spec revision (#3782)
vmaksimo Jun 24, 2026
ca1dab1
Re-enable spirv-val for tests of published extensions (#3818)
vmaksimo Jun 30, 2026
8a143ca
Implement SPV_INTEL_subgroup_scaled_matrix_multiply_accumulate (#3815)
vmaksimo Jun 30, 2026
0387a3d
chore: Add AI-Assisted Contributions in CONTRIBUTING.md (#3824)
KhronosWebservices Jul 2, 2026
1cd3204
Use SPV_EXT_long_vector extension for non-standard vector size (#3777)
Qi-Ye-079 Jul 7, 2026
a23d99e
Optimize checkError (#3840)
MrSidims Jul 9, 2026
2e51794
Add additional guardrails against unsigned underflows caused by wrong…
maarquitos14 Jul 9, 2026
829463a
Add storage class memory semantics bit to LLVM IR atomic translation …
aobolensk Jul 9, 2026
6ef0d1c
Keep VectorAnyINTEL for VectorCompute modules with SPV_EXT_long_vecto…
vmaksimo Jul 9, 2026
40611ae
Allow FPFastMathMode decoration on OpFmaKHR (#3820)
aobolensk Jul 9, 2026
a95550f
Drop constant zero-sized memcpy/memmove/memset before selection (#3827)
aobolensk Jul 10, 2026
d8b6470
Adapt to latest llvm changes (#3859)
Qi-Ye-079 Jul 13, 2026
2393dc1
[loop-opt] w/a icpx -O3 loopopt miscompilation of nested formatv() (#…
wenju-he Jul 12, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 4 additions & 1 deletion .ci/compute_projects.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@
# This mapping describes runtimes that should be enabled for a specific project,
# but not necessarily run for testing. The only case of this currently is lldb
# which needs some runtimes enabled for tests.
DEPENDENT_RUNTIMES_TO_BUILD = {"lldb": {"libcxx", "libcxxabi", "libunwind"}}
DEPENDENT_RUNTIMES_TO_BUILD = {
"flang": {"openmp"},
"lldb": {"libcxx", "libcxxabi", "libunwind", "compiler-rt"},
}

# This mapping describes runtimes that should be tested when the key project is
# touched.
Expand Down
4 changes: 2 additions & 2 deletions .ci/compute_projects_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,9 @@ def test_flang(self):
env_variables = compute_projects.get_env_variables(
["flang/CMakeLists.txt"], "Linux"
)
self.assertEqual(env_variables["projects_to_build"], "clang;flang;llvm")
self.assertEqual(env_variables["projects_to_build"], "clang;flang;lld;llvm")
self.assertEqual(env_variables["project_check_targets"], "check-flang")
self.assertEqual(env_variables["runtimes_to_build"], "flang-rt")
self.assertEqual(env_variables["runtimes_to_build"], "flang-rt;openmp")
self.assertEqual(env_variables["runtimes_check_targets"], "check-flang-rt")
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
self.assertEqual(env_variables["enable_cir"], "OFF")
Expand Down
7 changes: 7 additions & 0 deletions bolt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
cmake_minimum_required(VERSION 3.20.0)
if("${CMAKE_VERSION}" VERSION_LESS "3.31.0")
message(WARNING
"Your CMake version is ${CMAKE_VERSION}. Starting with LLVM 24, the "
"minimum version of CMake required to build LLVM will become 3.31.0, and "
"using an older CMake will become an error. Please upgrade your CMake to "
"at least 3.31.0 now to avoid issues in the future.")
endif()

set(LLVM_SUBPROJECT_TITLE "BOLT")

Expand Down
4 changes: 2 additions & 2 deletions bolt/docs/BAT.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ offsets in the input binary.

## Encoding format
The encoding is specified in
[BoltAddressTranslation.h](/bolt/include/bolt/Profile/BoltAddressTranslation.h)
and [BoltAddressTranslation.cpp](/bolt/lib/Profile/BoltAddressTranslation.cpp).
[BoltAddressTranslation.h](https://github.com/llvm/llvm-project/blob/main/bolt/include/bolt/Profile/BoltAddressTranslation.h)
and [BoltAddressTranslation.cpp](https://github.com/llvm/llvm-project/blob/main/bolt/lib/Profile/BoltAddressTranslation.cpp).

### Layout
The general layout is as follows:
Expand Down
3 changes: 2 additions & 1 deletion bolt/docs/BinaryAnalysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ with the specific set depending on command line options:
non-protected return instruction
* [`ptrauth-tail-calls`](#return-address-protection-before-tail-call-ptrauth-tail-calls) -
performing a tail call with an untrusted value in the link register
* [`ptrauth-forward-cf`](#indirect-branch-call-target-protection-ptrauth-forward-cf) -
* [`ptrauth-forward-cf`](#ptrauth-forward-cf) -
non-protected destination of branch or call instruction
* [`ptrauth-sign-oracles`](#signing-oracles-ptrauth-sign-oracles) -
signing of untrusted value (signing oracle)
Expand Down Expand Up @@ -370,6 +370,7 @@ check after a regular authentication instruction, which may be either too
expensive (if a fully-generic XPAC-based sequence is being used) on one hand,
or not required at all (if `FEAT_FPAC` is known to be implemented) on the other hand.

(ptrauth-forward-cf)=
### Indirect branch / call target protection (`ptrauth-forward-cf`)

**Instructions:** Indirect call and branch instructions without built-in
Expand Down
255 changes: 255 additions & 0 deletions bolt/docs/GettingStarted.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,255 @@
Getting Started with BOLT
=========================

Input Binary Requirements
-------------------------

BOLT operates on X86-64 and AArch64 ELF binaries. At the minimum, the
binaries should have an unstripped symbol table, and, to get maximum
performance gains, they should be linked with relocations
(``--emit-relocs`` or ``-q`` linker flag).

BOLT disassembles functions and reconstructs the control flow graph
(CFG) before it runs optimizations. Since this is a nontrivial task,
especially when indirect branches are present, we rely on certain
heuristics to accomplish it. These heuristics have been tested on a code
generated with Clang and GCC compilers. The main requirement for C/C++
code is not to rely on code layout properties, such as function pointer
deltas. Assembly code can be processed too. Requirements for it include
a clear separation of code and data, with data objects being placed into
data sections/segments. If indirect jumps are used for intra-function
control transfer (e.g., jump tables), the code patterns should be
matching those generated by Clang/GCC.

NOTE: BOLT is currently incompatible with the
``-freorder-blocks-and-partition`` compiler option. Since GCC8 enables
this option by default, you have to explicitly disable it by adding
``-fno-reorder-blocks-and-partition`` flag if you are compiling with
GCC8 or above.

NOTE2: DWARF v5 is the new debugging format generated by the latest LLVM
and GCC compilers. It offers several benefits over the previous DWARF
v4. Currently, the support for v5 is a work in progress for BOLT. While
you will be able to optimize binaries produced by the latest compilers,
until the support is complete, you will not be able to update the debug
info with ``-update-debug-sections``. To temporarily work around the
issue, we recommend compiling binaries with ``-gdwarf-4`` option that
forces DWARF v4 output.

PIE and .so support has been added recently. Please report bugs if you
encounter any issues.

Installation
------------

Docker Image
~~~~~~~~~~~~

You can build and use the docker image containing BOLT using our `docker
file <https://github.com/llvm/llvm-project/blob/main/bolt/utils/docker/Dockerfile>`__.
Alternatively, you can build BOLT manually using the steps below.

Manual Build
~~~~~~~~~~~~

BOLT heavily uses LLVM libraries, and by design, it is built as one of
LLVM tools. The build process is not much different from a regular LLVM
build. The following instructions are assuming that you are running
under Linux.

Start with cloning LLVM repo:

::

> git clone https://github.com/llvm/llvm-project.git
> mkdir build
> cd build
> cmake -G Ninja ../llvm-project/llvm -DLLVM_TARGETS_TO_BUILD="X86;AArch64" -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_PROJECTS="bolt"
> ninja bolt

``llvm-bolt`` will be available under ``bin/``. Add this directory to
your path to ensure the rest of the commands in this tutorial work.

Optimizing BOLT’s Performance
-----------------------------

BOLT runs many internal passes in parallel. If you foresee heavy usage
of BOLT, you can improve the processing time by linking against one of
memory allocation libraries with good support for concurrency. E.g. to
use jemalloc:

::

> sudo yum install jemalloc-devel
> LD_PRELOAD=/usr/lib64/libjemalloc.so llvm-bolt ....

Or if you rather use tcmalloc:

::

> sudo yum install gperftools-devel
> LD_PRELOAD=/usr/lib64/libtcmalloc_minimal.so llvm-bolt ....

Usage
-----

For a complete practical guide of using BOLT see :doc:`OptimizingClang`.

Step 0
~~~~~~

In order to allow BOLT to re-arrange functions (in addition to
re-arranging code within functions) in your program, it needs a little
help from the linker. Add ``--emit-relocs`` to the final link step of
your application. You can verify the presence of relocations by checking
for ``.rela.text`` section in the binary. BOLT will also report if it
detects relocations while processing the binary.

Step 1: Collect Profile
~~~~~~~~~~~~~~~~~~~~~~~

This step is different for different kinds of executables. If you can
invoke your program to run on a representative input from a command
line, then check **For Applications** section below. If your program
typically runs as a server/service, then skip to **For Services**
section.

The version of ``perf`` command used for the following steps has to
support ``-F brstack`` option. We recommend using ``perf`` version 4.5
or later.

For Applications
^^^^^^^^^^^^^^^^

This assumes you can run your program from a command line with a typical
input. In this case, simply prepend the command line invocation with
``perf``:

::

$ perf record -e cycles:u -j any,u -o perf.data -- <executable> <args> ...

For Services
^^^^^^^^^^^^

Once you get the service deployed and warmed-up, it is time to collect
perf data with LBR (branch information). The exact perf command to use
will depend on the service. E.g., to collect the data for all processes
running on the server for the next 3 minutes use:

::

$ perf record -e cycles:u -j any,u -a -o perf.data -- sleep 180

Depending on the application, you may need more samples to be included
with your profile. It’s hard to tell upfront what would be a sweet spot
for your application. We recommend the profile to cover 1B instructions
as reported by BOLT ``-dyno-stats`` option. If you need to increase the
number of samples in the profile, you can either run the ``sleep``
command for longer and use ``-F<N>`` option with ``perf`` to increase
sampling frequency.

Note that for profile collection we recommend using cycle events and not
``BR_INST_RETIRED.*``. Empirically we found it to produce better
results.

If the collection of a profile with branches is not available, e.g.,
when you run on a VM or on hardware that does not support it, then you
can use only sample events, such as cycles. In this case, the quality of
the profile information would not be as good, and performance gains with
BOLT are expected to be lower.

With instrumentation
^^^^^^^^^^^^^^^^^^^^

If perf record is not available to you, you may collect profile by first
instrumenting the binary with BOLT and then running it.

::

llvm-bolt <executable> -instrument -o <instrumented-executable>

After you run instrumented-executable with the desired workload, its
BOLT profile should be ready for you in ``/tmp/prof.fdata`` and you can
skip **Step 2**.

Run BOLT with the ``-help`` option and check the category “BOLT
instrumentation options” for a quick reference on instrumentation knobs.

Step 2: Convert Profile to BOLT Format
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

NOTE: you can skip this step and feed ``perf.data`` directly to BOLT
using experimental ``-p perf.data`` option.

For this step, you will need ``perf.data`` file collected from the
previous step and a copy of the binary that was running. The binary has
to be either unstripped, or should have a symbol table intact (i.e.,
running ``strip -g`` is okay).

Make sure ``perf`` is in your ``PATH``, and execute ``perf2bolt``:

::

$ perf2bolt -p perf.data -o perf.fdata <executable>

This command will aggregate branch data from ``perf.data`` and store it
in a format that is both more compact and more resilient to binary
modifications.

If the profile was collected without brstacks, you will need to add `-ba` flag to
the command line above.

Step 3: Optimize with BOLT
~~~~~~~~~~~~~~~~~~~~~~~~~~

Once you have ``perf.fdata`` ready, you can use it for optimizations
with BOLT. Assuming your environment is setup to include the right path,
execute ``llvm-bolt``:

::

$ llvm-bolt <executable> -o <executable>.bolt -data=perf.fdata -reorder-blocks=ext-tsp -reorder-functions=hfsort -split-functions -split-all-cold -split-eh -dyno-stats

If you do need an updated debug info, then add
``-update-debug-sections`` option to the command above. The processing
time will be slightly longer.

For a full list of options see ``-help``/``-help-hidden`` output.

The input binary for this step does not have to 100% match the binary
used for profile collection in **Step 1**. This could happen when you
are doing active development, and the source code constantly changes,
yet you want to benefit from profile-guided optimizations. However,
since the binary is not precisely the same, the profile information
could become invalid or stale, and BOLT will report the number of
functions with a stale profile. The higher the number, the less
performance improvement should be expected. Thus, it is crucial to
update ``.fdata`` for release branches.

Multiple Profiles
-----------------

Suppose your application can run in different modes, and you can
generate multiple profiles for each one of them. To generate a single
binary that can benefit all modes (assuming the profiles don’t
contradict each other) you can use ``merge-fdata`` tool:

::

$ merge-fdata *.fdata > combined.fdata

Use ``combined.fdata`` for **Step 3** above to generate a universally
optimized binary.

Profile Formats
---------------

See :doc:`profiles` for comprehensive documentation of all profile formats
accepted by BOLT: perf.data, fdata, YAML, and pre-aggregated.

License
-------

BOLT is licensed under the `Apache License v2.0 with LLVM
Exceptions <https://github.com/llvm/llvm-project/blob/main/LICENSE.TXT>`__.
2 changes: 1 addition & 1 deletion bolt/docs/OptimizingClang.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ $ llvm-bolt $CPATH/clang-7 -o $CPATH/clang-7.bolt -b clang-7.yaml \
-split-all-cold -dyno-stats -icf=1 -use-gnu-stack
```
The output will look similar to the one below:
```t
```text
...
BOLT-INFO: enabling relocation mode
BOLT-INFO: 11415 functions out of 104526 simple functions (10.9%) have non-empty execution profile.
Expand Down
6 changes: 3 additions & 3 deletions bolt/docs/PointerAuthDesign.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Note: there are two resolutions for CFI:

### Pointer Authentication

For more information, see the [pac-ret section of the BOLT-binary-analysis document](BinaryAnalysis.md#pac-ret-analysis).
For more information, see the [pac-ret section of the BOLT-binary-analysis document](BinaryAnalysis.md#return-address-protection-ptrauth-pac-ret).

### DW_CFA_AARCH64_negate_ra_state

Expand Down Expand Up @@ -177,7 +177,7 @@ what we have before the pass, and after it.
| autiasp | negate-ra-state | signed |
| ret | | unsigned |

##### Error handling in PointerAuthCFIAnalyzer pass:
#### Error handling in PointerAuthCFIAnalyzer pass:

Whenever the PointerAuthCFIAnalyzer pass finds inconsistencies in the current
BinaryFunction, it marks the function as ignored using `BF.setIgnored()`. BOLT
Expand All @@ -200,7 +200,7 @@ pass:
2. whenever the state changes, it adds a PseudoInstruction that holds an
OpNegateRAState CFI.

##### Covering newly generated instructions:
#### Covering newly generated instructions:

Some BOLT passes can add new Instructions. In PointerAuthCFIFixup, we have
to know what RA state these have.
Expand Down
Loading