Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2082 commits
Select commit Hold shift + click to select a range
c318bb4
[libc] Convert test framework libraries to standard target infrastruc…
labath Aug 19, 2026
2bdc632
[GlobalISel][AArch64] Implement `llvm.{get,set}.rounding` lowering (#…
osa1 Aug 19, 2026
907f732
[MLIR][NVVM] Enable strict property assembly format (#196289)
joker-eph Aug 19, 2026
4bcdb7d
[AMDGPU] Cleanup dVGPR subtarget feature properly. NFC (#216990)
rovka Aug 19, 2026
4e15bb3
[AMDGPU] Fix loss of relocation types during V_MOV_B64 expansion (#21…
perlfu Aug 19, 2026
c8c50cc
[LV] Improve materialisation of VFxUF for scalable vectors (#216708)
david-arm Aug 19, 2026
40fe85d
[Clang][NFC] Introduce a node to model concept and variable template …
cor3ntin Aug 19, 2026
36d7afd
[LLVM][Maintainers] Step down as a HashRecognize maintainer (#213218)
pfusik Aug 19, 2026
d558c8b
[Sema] Fix crash in DeclareAggregateDeductionGuideFromInitList for al…
Kristianerik Aug 19, 2026
aa2c9af
[GlobalISel] Combine G_SEXT_INREG(G_ZEXT) -> G_SEXT through unmerge (…
davemgreen Aug 19, 2026
fb0a50e
[TLI] Remove shouldExpandCttzElements. NFC (#217208)
lukel97 Aug 19, 2026
7002c4f
[MLIR] Fix ErasedOpsListener false positives for newly created ops/bl…
joker-eph Aug 19, 2026
f5eb3a4
[clang][diagnostics] Remove incorrect spaces before punctuation (#217…
tbaederr Aug 19, 2026
3c2eaf3
Thread Safety Analysis: Treat blocks constructing noreturn temporarie…
melver Aug 19, 2026
a1fffda
[Clang][NFC] Remove unused constructor of ASTTemplateArgumentListInfo…
zyn0217 Aug 19, 2026
3c328a3
[SCEV] Only try (A+B)/C distribution for nuw adds (NFC) (#212508)
fhahn Aug 19, 2026
d92ae18
[LV] Make operand bundle test not constant-foldable/dead. NFC (#217253)
lukel97 Aug 19, 2026
3c6befe
[libc] Modify `atan2f128` to use emulated Float128 type (#216508)
Sukumarsawant Aug 19, 2026
7271360
[X86] isTargetShuffleEquivalent - only use "known zero" element if it…
RKSimon Aug 19, 2026
de2b9f8
[Clang][RISCV] Allow three SiFive CLIC interrupt arguments (#216159)
zeyi2 Aug 19, 2026
fd0d6da
[OMPIRBuilder] Don't use invalid debug loc in declare mapper function…
abidh Aug 19, 2026
6c206e3
[AMDGPU] Fix refactoring mishap (#216974)
rovka Aug 19, 2026
d4c1935
[libclc] Use generic subnormal_config for spirv-vulkan (#217240)
rjodinchr Aug 19, 2026
1f6b652
[libc] Modify `roundf128` to use emulated Float128 type (#216563)
Sukumarsawant Aug 19, 2026
d7f1904
[X86] Vectorize non-power-of-two integer division (#215076)
patrickswedish Aug 19, 2026
28e4457
[InstCombine] Fold length-one memset with variable fillFold length-on…
hsnaveen2u Aug 19, 2026
9584b93
[X86] Narrow vXi32/vXi64 usubsat to vpsubusb/vpsubusw when LHS is kno…
sipher-01 Aug 19, 2026
2d69745
[SCEV] Directly use NUW on mul in getUDivExpr (NFC) (#217235)
artagnon Aug 19, 2026
d2391bc
[MLIR][Bufferization] Enable strict property assembly format (#217270)
joker-eph Aug 19, 2026
eb5ce30
[MLIR][Async] Enable strict property assembly format (#217268)
joker-eph Aug 19, 2026
247df97
[MLIR][Arith] Enable strict property assembly format (NFC) (#217267)
joker-eph Aug 19, 2026
cccedd4
[MLIR][NVGPU] Enable strict property assembly format (#217272)
joker-eph Aug 19, 2026
1c51891
[SystemZ] Fix assertion failures during DAG combine (#215027)
jacobly0 Aug 19, 2026
5f6a32e
SPARC: Disable generic codegen tests that depend on libcalls (#217264)
arsenm Aug 19, 2026
5815368
[MLIR][PDL] Enable strict property assembly format (#217296)
joker-eph Aug 19, 2026
5ee2778
[flang][OpenMP] Reuse canonical default mapper names for nested mappi…
laoshd Aug 19, 2026
66d4433
[MLIR][PDLInterp] Enable strict property assembly format (#217293)
joker-eph Aug 19, 2026
9816434
[SLP][NFC]Add an extra test for widened reductions, NFC
alexey-bataev Aug 19, 2026
07e1e69
[MLIR][X86] Enable strict property assembly format (#217284)
joker-eph Aug 19, 2026
9f4703c
[LegalizeTypes] Allow v1i128 as a valid SETCC result type during vect…
maryammo Aug 19, 2026
d141332
[CodeGen][AArch64] Use vector parts for internal non-power-of-two vec…
hazzlim Aug 19, 2026
62f90c1
[InstCombine] fix assertion failure in intrinsic distributive laws (#…
im-lunex Aug 19, 2026
dc44a1f
[MLIR][GPU] Enable strict property assembly format (#217278)
joker-eph Aug 19, 2026
df37e2b
[LV] Take LoopVectorizeHints from VFSelectionContext (NFC) (#216737)
fhahn Aug 19, 2026
29c2660
[Bazel] Fixes 5ee2778 (#217305)
forking-google-bazel-bot[bot] Aug 19, 2026
4cd3535
[libc] Modify nearbyintf128 to use emulated Float128 type (#217025)
Sukumarsawant Aug 19, 2026
de0cc43
[AArch64][SME] Handle SME state around Darwin TLS-descriptor calls (#…
MacDue Aug 19, 2026
bec1e53
Revert "[Flang][HLFIR] Lower PACK(array, .TRUE.) to hlfir.reshape" (#…
eugeneepshteyn Aug 19, 2026
56bb311
[MIPS] don't pass variadic arguments in float registers (#216519)
folkertdev Aug 19, 2026
aa5ffd9
[SCEV] Strip dead gcd function (NFC) (#217299)
artagnon Aug 19, 2026
af882d5
[LV] Optimise code created by createElementCount (#216981)
david-arm Aug 19, 2026
157af9c
AMDGPU: Extract mergeIncomingLaneMasks from SILowerI1Copies lowerPhis…
arsenm Aug 19, 2026
a5bb77f
[Flang][MLIR][OpenMP] Move function filtering to the omp dialect (#21…
skatrak Aug 19, 2026
79ec8e3
[Flang][OpenMP] Remove the DeleteUnreachableTargets pass (#214183)
skatrak Aug 19, 2026
af19308
[Flang][OpenMP] Improve implicit declare_target propagation (#214184)
skatrak Aug 19, 2026
779cfd5
[MLIR][OpenMP] Support calls added between MarkDeclareTarget runs (#2…
skatrak Aug 19, 2026
54702ff
[X86] Fold `B + (-C)*A` into `neg + lea` (#215145)
nickitat Aug 19, 2026
dd53a94
[clang][bytecode] Move `Descriptor` metadata to `Block` (#217280)
tbaederr Aug 19, 2026
f6f87b9
[orc-rt] Report the disconnection mode to Session clients (#217236)
lhames Aug 19, 2026
ff57194
[libc] Make `lroundf128` and `llroundf128` use the emulated float128 …
Sukumarsawant Aug 19, 2026
238981e
[orc-rt] Make the Session attach preconditions a contract (#217325)
lhames Aug 19, 2026
ee68599
[DAGCombine] Push freeze through sra (#208749)
nikic Aug 19, 2026
98205aa
[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - …
ChiragPatel8 Aug 19, 2026
202ece6
[mlir][spirv] Add in-bounds access chain conversion (#216984)
Hsiangkai Aug 19, 2026
4ea61ae
[gn build] Port 61036c3361ce (#217331)
nico Aug 19, 2026
6719148
[gn build] Port ab547095ead5 (#217332)
nico Aug 19, 2026
288fe8a
[gn] Make GlobalISel depend on SelectionDAG (#217335)
nico Aug 19, 2026
a2a9b2a
[libc] Modify `fmaxf128` and `fminf128` to use emulated Float128 type…
Sukumarsawant Aug 19, 2026
c6a5dd5
[VPlan] Split handleEarlyExits into countable and uncountable passes.…
lukel97 Aug 19, 2026
9858b9b
[DAG] Fold pow2 masked bittest comparisons (#216302)
Xylecrack Aug 19, 2026
2075bfe
[flang][NFC] Fix BUILD_SHARED_LIBS build of FortranUtils (#217312)
eugeneepshteyn Aug 19, 2026
d2adf78
[MLIR][NVVM] Support kind::ti16 for tcgen05.mma Ops (#216588)
kvederni Aug 19, 2026
297fe1e
[ASan] Correctly handle vectorized pointer sub/cmp for `invalid-point…
flovent Aug 19, 2026
e84b8cf
[libc] Add support for wchar_t in StringConverter. (#211867)
strel-12 Aug 19, 2026
f2d08fa
[LV][NFC] Fix up else-after-return introduced by PR #216981 (#217337)
david-arm Aug 19, 2026
1d7d16b
[CodeGen] Avoid register pressure limit underflow (#216372)
hjagasiaAMD Aug 19, 2026
40f48bf
[mlir][acc] Introduce acc atomic to llvm patterns (#217142)
razvanlupusoru Aug 19, 2026
6b5312b
[clang][Sema] Fixed a crash when an `address_space` attribute with a …
akash-manna-sky Aug 19, 2026
76bcfd7
[Bazel] Fixes e84b8cf (#217352)
forking-google-bazel-bot[bot] Aug 19, 2026
579840a
Align TOSA->EmitC integration tests with MLGO config (#216787)
ioghiban Aug 19, 2026
346d3ef
[libsycl] Initial prefetch implementation for queue (#212104)
Robertkq Aug 19, 2026
6136e52
[clang] Fix crash on no-prototype indirect calls with -fexperimental-…
Prabhuk Aug 19, 2026
aaf3903
[GISel][NewPM] Port LoadStoreOpt
boomanaiden154 Aug 19, 2026
c1c0f9a
[GISel] Remove DoNotRun hook from Localizer
boomanaiden154 Aug 19, 2026
4ca21f7
[libc] Gate long double assertions that fail in long double = float64…
vhscampos Aug 19, 2026
8fe17dd
[mlir][vector] Verify non-unit strides on `masked/expand/compress` op…
FedericoBruzzone Aug 19, 2026
668c44b
[GISel][NewPM] Port localizer
boomanaiden154 Aug 19, 2026
7678fad
[GISel] Move IRTranslatorImpl into cpp file (#217349)
boomanaiden154 Aug 19, 2026
de79344
[flang][FIRToSCF] Recompute a typed induction variable in closed form…
khaki3 Aug 19, 2026
f652cd6
[mlir][IR] Add transient scope support for resettable MLIRContext. (#…
jpienaar Aug 19, 2026
713b7c4
[X86] Remove write-only variable OffsetOperatorLoc (NFC) (#217231)
kazutakahirata Aug 19, 2026
4a8b939
[Clang][Sema] Fix lambda attribute processing order with clang optimi…
ketjandr Aug 19, 2026
e1b7e2d
[Bazel] Port 40f48bf (#217367)
boomanaiden154 Aug 19, 2026
9715eb9
[SCEV] Answer range queries for constants directly (NFC) (#217339)
fhahn Aug 19, 2026
a8ca5b2
[DAGCombiner] Pass const SDLoc &DL to visitADDLikeCommutative. NFC (#…
topperc Aug 19, 2026
e2679f3
[mlir][SPIR-V] Fix ArrayType::getSizeInBytes double counting the stri…
aobolensk Aug 19, 2026
fd6d7a6
[RISCV] Use correct type for (u)int64_t in RVV intrinsics on OpenBSD …
topperc Aug 19, 2026
d5b4271
[libsycl] add sycl_khr_default_context (#216863)
dvrogozh Aug 19, 2026
f078d99
[WebAssembly] fix: respect -Wl,--no-demangle option (#213878)
marxin Aug 19, 2026
0ed130a
[mlir][memref] Fix mem2reg crash on zero-extent alloca (#216851)
alepot55 Aug 19, 2026
03e28c4
[libc] Modify `roundevenf128` to use emulated Float128 type (#216568)
Sukumarsawant Aug 19, 2026
c494541
[Bazel] Fixes e2679f3 (#217374)
forking-google-bazel-bot[bot] Aug 19, 2026
8386edd
[AMDGPU] Add missing IsFlat check in misaligned tuple spill handling …
MrRoy09 Aug 19, 2026
5e23f9d
[flang][OpenACC] Rematerialize fir.absent in outlined regions. (#217103)
vzakhari Aug 19, 2026
7bde724
ExpandIRInsts: Expand frem when the libcall is unavailable (#217301)
arsenm Aug 19, 2026
e6834e0
[lldb] Interpret the DW_OP_plus_uconst addend in the popped operand's…
MrEven132 Aug 19, 2026
d211631
[lldb] Pass --enable-mte from lldb-dotest (#217176)
adrian-prantl Aug 19, 2026
8bbab3a
[flang][OpenACC] Avoid allocation actions for unified memory. (#217146)
vzakhari Aug 19, 2026
be38fff
GlobalISel: Let m_GSExtInReg match its immediate with a sub-matcher (…
arsenm Aug 19, 2026
9c32c4c
[flang][Driver] Forward negative sum reassociation flag (#217266)
tblah Aug 19, 2026
3c6d951
[libc++][test] Remove `XFAIL` mark for LLVM libc on `system` (#217237)
frederick-vs-ja Aug 19, 2026
31d3dc7
[SLSR] Add a statistic counting candidate-basis SCEV differences (NFC…
justinfargnoli Aug 19, 2026
7e44dd0
AMDGPU: Fix broken undef operand handling in SIFixSGPRCopies (#217385)
arsenm Aug 19, 2026
196786f
[lldb] Keep DWARF dereference results address-sized (#216666)
MrEven132 Aug 19, 2026
b48b696
Reland "[HLSL] Generate semantic signature metadata (#212892)" (#216805)
inbelic Aug 19, 2026
605ae83
[flang][openacc] Support labeled do loop in acc compute region (#217174)
clementval Aug 19, 2026
2bbcc2b
[lldb] Replace ConstString with std::string in SharedCacheImageInfo (…
bulbazord Aug 19, 2026
3bc948c
[AArch64] Decouple -aarch64-code-layout-opt-enable= from the Subtarge…
jroelofs Aug 19, 2026
159dcbf
[X86] Add regression test coverage for #217355 (#217387)
RKSimon Aug 19, 2026
9932f19
[profile] hoist length check before use of pointer (#217109)
gburgessiv Aug 19, 2026
0674eec
[SLP][NFC]Add an extra test for shifted zext after logical op, NFC
alexey-bataev Aug 19, 2026
0e6f9b2
[docs] Parallelize Sphinx builds by default (#217161)
rnk Aug 19, 2026
9ba265c
[LLD][MachO] Remove eh-frame test binaries (#217107)
ellishg Aug 19, 2026
82732fa
[docs] Fix default Sphinx worker count (#217429)
rnk Aug 19, 2026
91b70c3
[docs] Rename tutorial docs to Markdown (#217158)
rnk Aug 19, 2026
c357f59
[docs] Finish MyST migration for tutorial docs (#217160)
rnk Aug 19, 2026
b89551b
[SimplifyCFG] Check every sinking candidate in canSinkInstructions (#…
fhahn Aug 19, 2026
d0ab2e9
[SLP] Test for code size costing changes (#217400)
bababuck Aug 19, 2026
a10d7eb
[lldb] Use std::unique_lock instead of std::lock_guard in ResumeNewPl…
pranavk Aug 19, 2026
7d30d2b
[Coverage][MC/DC] Emit MC/DC instrumentation for block bodies (#216313)
rjmansfield Aug 19, 2026
b562ef5
[mlir][acc] Add pass to convert acc declare ctors and dtors to LLVM (…
razvanlupusoru Aug 19, 2026
a1deec9
[ADT] Clean up FoldingSet growth (NFC) (#217424)
kazutakahirata Aug 19, 2026
077ec54
IR: Validate and document the "target-abi" module flag (#217397)
arsenm Aug 19, 2026
4d0039f
[NewPM] Port MachineCombiner to the new pass manager (#217279)
isanbard Aug 19, 2026
3850af1
[AMDGPU][GlobalISel] Fix BITOP3 selecting B16 opcode for 32-bit vecto…
aobolensk Aug 19, 2026
126ce9f
RISCV/GlobalISel: Use mi_match for all-ones check (#217441)
arsenm Aug 19, 2026
e0c9e88
[Bazel] Fixes b562ef5 (#217450)
forking-google-bazel-bot[bot] Aug 19, 2026
c87e675
CodeGen: Consolidate target-abi validation (#217426)
arsenm Aug 19, 2026
5477b12
GlobalISel: Add m_GAssertZext matcher and use it in AArch64 combiner …
arsenm Aug 19, 2026
0be6014
[mlir][inliner] Avoid re-expanding recursive calls across SCC iterati…
khaki3 Aug 19, 2026
96ceaae
[HLSL][Matrix] Add comparison operator support (#216791)
farzonl Aug 19, 2026
ab962ef
[VPlan] Move requiresScalarEpilogue to VPlan (NFC). (#217447)
fhahn Aug 19, 2026
4058739
X86/GlobalISel: Use mi_match for implicit-def and constant checks (#2…
arsenm Aug 19, 2026
7e104f1
Use a fallback interval strategy for the task_for_pid request. (#217425)
jimingham Aug 19, 2026
fc70e3d
[X86] lowerFPToIntToFP - handle signedness for fp->int and int->fp in…
RKSimon Aug 19, 2026
4bfd08c
[RISCV] Turn certain cases of masked.load into vp.load + vp.merge (#2…
mshockwave Aug 19, 2026
814148e
[CIR] Insert on-demand functions at module scope (#207260)
adams381 Aug 19, 2026
3bcd9a8
[flang][cuda] Avoid crash when source is a block argument (#217459)
clementval Aug 19, 2026
cb69305
[NFC][TTI] Remove default value for CostKind from TTI::getPointersCha…
bababuck Aug 19, 2026
aacef70
[CIR] Move LoweringPrepare before callconv lowering (#216498)
adams381 Aug 19, 2026
935bfc7
[CIR] Mark bit-field access units as their own member kinds (#216864)
adams381 Aug 19, 2026
3a7967c
[MLIR][EmitC] Rewrite globals before moving function body (#217474)
joker-eph Aug 19, 2026
adb5956
[clang][SYCL] Align device binary (un)registration with CUDA/HIP/Open…
YuriPlyakhin Aug 19, 2026
e21cfc0
Analysis: Move LibcallLoweringInfo from CodeGen to Analysis (#210322)
arsenm Aug 19, 2026
851ff0e
[MLIR][X86] Track accumulator rewrites (#217477)
joker-eph Aug 19, 2026
e45fa77
[lldb][test] Unlock the mutex completely before exiting the test (#21…
pranavk Aug 19, 2026
7a9b0c1
[LoopFusion] Do not peel guarded loops to enable fusion (#217379)
amehsan Aug 19, 2026
5dff3fe
[clang] Redeclarations should inherit all unique SwiftAttrs (#217187)
Xazax-hun Aug 19, 2026
f39d581
[libc] Minor fixes/additions to signal.h header. (#217469)
vonosmas Aug 19, 2026
92242c0
[MLIR][OpenMP] Enable strict property assembly format (#217297)
joker-eph Aug 19, 2026
4d8c4b1
[MLIR][OpenACC] Defer lowering atomic capture children (#217475)
joker-eph Aug 19, 2026
b234afb
[lldb] Remove ConstString from TypeFormatImpl_EnumType (#215431)
bulbazord Aug 19, 2026
25a7ebb
[ADT] Improve unit test coverage for FoldingSet (#217214)
kazutakahirata Aug 19, 2026
d28bc6b
[AMDGPU] Remove more redundant ANDs (#216900)
LU-JOHN Aug 19, 2026
9afd75f
[NewPM] Port FuncletLayout to the new pass manager (#217490)
isanbard Aug 20, 2026
658978a
[SLP]Fix unscheduled-deps assertion for cmp with identical operands
alexey-bataev Aug 20, 2026
4b88cd2
[AMDGPU] Optimize SGPR splat reg sequences for packed 64-bit instruct…
changpeng Aug 20, 2026
002905d
[SLP]Add extractelement as a main opcode for copyables
alexey-bataev Aug 20, 2026
c68e793
[CIR] Destroy a static local's extended temporary in its cir.local_in…
bcardosolopes Aug 20, 2026
1c66392
[gn build] Port e21cfc08414e (#217503)
nico Aug 20, 2026
1c794fb
[IR] Autoupgrade trivial VP intrinsics to their non-VP counterparts (…
lukel97 Aug 20, 2026
85651c2
[BOLT] Fix overflow issue when using absolute addressing in LSDA (#21…
Jinjie-Huang Aug 20, 2026
a97f512
[Mips] Fix getInstSizeInBytes for instructions with delay slots (#216…
yingopq Aug 20, 2026
b1c24ea
[Mips] Legalize vector UNDEF instead of expanding to zero BUILD_VECTO…
yingopq Aug 20, 2026
a84425b
[Clang][RISC-V] Warn on duplicate interrupt attribute types (#217358)
zeyi2 Aug 20, 2026
050470e
[CodeGen] Replace CodeGenPassBuilder CRTP with virtual hooks (#216468)
MaskRay Aug 20, 2026
d0e8f5f
[CMake] Add AsmPrinter link dependency to LLVMPasses (#217524)
MaskRay Aug 20, 2026
9344320
[libc] Implement `execle` (#217213)
beamandala Aug 20, 2026
e5b8a7c
[PAC][ELF] Make non-preemptible IFUNC GOT assertion an error and exte…
jrtc27 Aug 20, 2026
c4e2411
[analyzer][z3] Fix SMTConstraintManager.h removeDeadBindings (#215240)
rdevshp Aug 20, 2026
01da06d
[RISCV] Fix incorrect stride computation in concat_vectors-of-loads c…
topperc Aug 20, 2026
25a993c
[clang][Sema] Warn on explicit conversion functions in C++20 with -Wc…
flash1729 Aug 20, 2026
a160d90
workflows/commit-access-review: Limit token to current repository (#2…
tstellar Aug 20, 2026
bcf0093
[ORC] Move simple lookupAndRecordAddrs uses to lookupAndApply (#217509)
lhames Aug 20, 2026
014b3ed
[clang][Sema] Do lvalue-to-rvalue conversion on isfpclass Mask arg (#…
tbaederr Aug 20, 2026
93ac788
[VectorCombine] Fold deinterleave/interleave pairs (#211022)
jacob-crawley Aug 20, 2026
6ac7a9f
[flang][PFT-to-MLIR] Do not wrap the DO of an OpenMP loop construct (…
ergawy Aug 20, 2026
20444f7
[GISel] Fix link error when dylib is enabled (#217516)
shiltian Aug 20, 2026
9610d9c
[offload] Split strictness for threads and blocks (#211400)
kevinsala Aug 20, 2026
bc0c028
[Flang][Driver] Add support for option -f[no-]split-machine-functions…
kaviya2510 Aug 20, 2026
c65f246
[clang-tidy] Fix invalid suggestion in `performance-inefficient-algor…
davidmenggx Aug 20, 2026
7fd5234
[mlir][SCF] Fix use-after-free in coalesceLoops when inner loop yield…
amanyagami Aug 20, 2026
3391631
[AArch64] Add tests for trunc nsw smin combine. NFC (#217545)
davemgreen Aug 20, 2026
020fe19
[lldb] Inherit behaves_like_zeroth_frame in synthesized inline frames…
felipepiovezan Aug 20, 2026
b955ea9
[lldb][debugserver] Fix a bug in FindBreakpointsThatOverlapRange (#21…
DavidSpickett Aug 20, 2026
8ee17c2
[Clang][NFC] DeducedTemplateSpecializationType can't actually be null…
cor3ntin Aug 20, 2026
5d97ece
Revert "[SLP]Extend GEP pointer-chain cost to casts and non-root exte…
madhur13490 Aug 20, 2026
1b3f575
[clang][bytecode][NFC] Add another dynamic_cast test (#217541)
tbaederr Aug 20, 2026
394de25
AArch64: Use m_GPtrAdd in selectAddrModeRegisterOffset (#217446)
arsenm Aug 20, 2026
220c4ee
Merge from 'sycl' to 'sycl-web' (11 commits)
Aug 20, 2026
745b86b
[clang][bytecode] Fix crash when dynamic_cast'ing a root pointer (#21…
tbaederr Aug 20, 2026
dc7baf9
[CAS] Account for LLVM_ENABLE_THREADS=OFF in unit tests (#217251)
DavidSpickett Aug 20, 2026
c871d0c
[LV] Avoid collapsing VF to zero when a loop has no memory ops or red…
wangpc-pp Aug 20, 2026
d136559
[flang][Lower] Reassociate sums before kind conversion (#217283)
tblah Aug 20, 2026
1ba2f49
[flang][debug] Use lowercase name for the main program. (#217340)
abidh Aug 20, 2026
65b9e06
[ConstraintSystem] Build constraint rows in sparse form (NFC). (#215735)
fhahn Aug 20, 2026
88fe4c3
[MLIR][MemRef] Enable strict property assembly format (#217274)
joker-eph Aug 20, 2026
9fa6a2d
Validate EXT byte-index immediates (#214233)
HamzaKodez Aug 20, 2026
6d28f51
[mlir][Printer] Optimize --mlir-elide-resource-strings-if-larger when…
natanael-cintean Aug 20, 2026
9ad4102
[SPIRV] Simplify by not using StructType::setBody unnecessarily (#212…
jayfoad Aug 20, 2026
2c72beb
[clang[cir] Fix tests post #217297 (#217555)
banach-space Aug 20, 2026
88b850b
[RISCV] Support i64 accumulator for Zvdot4a8i partial reductions
wangpc-pp Aug 20, 2026
3460160
Merge from 'main' to 'sycl-web' (376 commits)
wenju-he Aug 20, 2026
aa3dd37
[docs] Update docs for CMake `LLVM_LIT_TOOLS_DIR` to Git for Windows …
nga888 Aug 20, 2026
5cbcb1b
[CodeGen] Represent ISD::ArgFlagsTy flags as a bitmask (NFC) (#217548)
c-rhodes Aug 20, 2026
a49d906
[MIPS] fix `__int128` register alignment (#214322)
folkertdev Aug 20, 2026
a60571c
[AArch64] Select [SU]ADDLP for a partial reduction into a zero accumu…
as4230 Aug 20, 2026
cfb17eb
[Flang] Move integration Lit tests to the right directory, NFC (#215536)
skatrak Aug 20, 2026
778836d
[AMDGPU] Exclude CDNA-3 parts from cube instruction feature (#215484)
aobolensk Aug 20, 2026
a6f35d1
[X86] combineTargetShuffle - remove redundant INSERTPS demanded mask …
RKSimon Aug 20, 2026
f33142d
[PAC][ELF] Remove NEEDS_{GOT,TLSDESC}_NONAUTH (#213452)
jrtc27 Aug 20, 2026
8f15542
[mlir:linalg:py] Undo unintentional type narrowing from #214539. (#21…
ingomueller-net Aug 20, 2026
994383c
[NVPTX] Add "exclusive" intrinsic variants for tcgen05.alloc/dealloc …
DharuniRAcharya Aug 20, 2026
c3cb2eb
[lldb] Add MSVC STL/libstdc++ formatters for queue, stack, and priori…
Daedie-git Aug 20, 2026
1ae007f
[clang][Sema] Handle function parameter packs in `PackDeductionScope:…
zwuis Aug 20, 2026
0085ac9
[clang] Implement the __builtin_type_order intrinsic for P2830R10 Con…
Tsche Aug 20, 2026
b14b5d9
[clang][bytecode][NFC] Remove useless if statement (#217583)
tbaederr Aug 20, 2026
2526c9d
SPIRV: Use mi_match in combiner match functions (#216964)
arsenm Aug 20, 2026
b31b67f
clang/AMDGPU: Don't emit target-features on AMDGCN-flavored SPIR-V (#…
arsenm Aug 20, 2026
892eb7b
[AMDGPU] Inline mayIgnoreSignedZero into raw flag check (NFC) (#217580)
aobolensk Aug 20, 2026
6eff9bb
Merge from 'sycl' to 'sycl-web' (6 commits)
Aug 20, 2026
3e35f60
Merge commit '6eff9bb342cd6864bb1547aba1ee291197fe7506' into llvmspir…
jsji Sep 2, 2026
e077ee9
Merge with Conflict Markers
jsji Sep 2, 2026
987e943
Fix assertion on OpPtrEqual/OpPtrNotEqual with mismatched pointer typ…
aobolensk Aug 10, 2026
01bdf3b
phi node: filter multiple entries for same predecessor (#3866)
simeonschaub Aug 11, 2026
0f6236a
Fix UniformId decoration round trip and SPIR-V version negotiation (#…
aobolensk Aug 11, 2026
7438dab
Make the error handling kind selectable through TranslatorOpts (#3941)
pvelesko Aug 14, 2026
293bfa2
Mangle `OpUMulExtended` builtin arguments as unsigned (#3963)
vmaksimo Aug 18, 2026
d12442d
Point CI badge links at workflow-scoped Actions pages (#3979)
vmaksimo Aug 19, 2026
f0df9bf
Fix memory leak in isInternalSPIRVBuiltin (#3961)
ustachow Aug 19, 2026
d210cf5
Diagnose unsupported module level inline assembly instead of silently…
aobolensk Aug 20, 2026
305e48c
Fix backend checks in spirv_param_decorations_quals.ll (#3988)
lamb-j Aug 24, 2026
5eb8a7e
Remove invalid entry_point_func.ll test (#3933)
aobolensk Aug 24, 2026
07ed8e6
Make LLVMSPIRVLib include directories PUBLIC for in-tree builds (#3590)
wenju-he Aug 24, 2026
2d64bfc
Use relative paths for install destinations (#3992)
Expertcoderz Aug 28, 2026
d7a3a67
Add option to pick reverse translation target triple (#3991)
maarquitos14 Sep 1, 2026
423babe
Temporarily disable llc runs with SPV_EXT_long_vector (#3995)
Qi-Ye-079 Sep 1, 2026
467598a
[SYCL] Fix native-cpu llvm::Any build after fa23198d685b (#22963)
wenju-he Aug 21, 2026
5b52d7c
[Clang][Test] Fix optnone-pragma-optimize-off.cpp after 4a8b9399eb9c-…
wenju-he Aug 23, 2026
5245a60
Fix SPIRV test expectations after OpPtrEqual/OpPtrNotEqual patch
jsji Sep 2, 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.
1 change: 0 additions & 1 deletion .github/new-prs-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -935,7 +935,6 @@ backend:SPIR-V:
- llvm/test/CodeGen/SPIRV/**
- llvm/test/Frontend/HLSL/**
- llvm/docs/SPIRVUsage.rst
- llvm/tools/spirv-tools/**

mlgo:
- changed-files:
Expand Down
5 changes: 5 additions & 0 deletions bolt/docs/CommandLineArgumentReference.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,11 @@

Write BOLT Address Translation tables

- `--fix-branches-with-liveness`

Use liveness analysis to decide whether AArch64 branch inversion must
preserve condition flags

- `--force-data-relocations`

Force relocations to data sections to always be processed
Expand Down
64 changes: 52 additions & 12 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@
#include "bolt/RuntimeLibs/RuntimeLibrary.h"
#include "llvm/ADT/AddressRanges.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/BinaryFormat/MachO.h"
Expand Down Expand Up @@ -261,15 +263,18 @@ class BinaryContext {
/// The runtime library.
std::unique_ptr<RuntimeLibrary> RtLibrary;

/// DWP Context.
std::shared_ptr<DWARFContext> DWPContext;

/// Decoded pseudo probes.
std::shared_ptr<MCPseudoProbeDecoder> PseudoProbeDecoder;

/// A map of DWO Ids to CUs.
/// Populated once in preprocessDWODebugInfo() and immutable thereafter; it
/// lets getDWOCU() (re-)open a DWO context on demand. The context is then
/// owned and cached by the skeleton unit itself (DWARFUnit::hasDWO()).
using DWOIdToCUMapType = std::unordered_map<uint64_t, DWARFUnit *>;
DWOIdToCUMapType DWOCUs;
DWOIdToCUMapType DWOIdToSkeletonCU;

/// With a package every split CU shares one DWARFContext, which changes how
/// it may be released -- see releaseDWOCU().
bool UsesDWP{false};

bool ContainsDwarf5{false};
bool ContainsDwarfLegacy{false};
Expand Down Expand Up @@ -326,14 +331,32 @@ class BinaryContext {

void clearFragmentsToSkip() { FragmentsToSkip.clear(); }

/// Given DWOId returns CU if it exists in DWOCUs.
/// True if split-dwarf files being processed come from a package (as
/// opposed to dwo files scattered on disk).
bool usesDWP() const { return UsesDWP; }

/// Given a DWOId, return the corresponding split CU, lazily opening its DWO
/// context if needed. Returns std::nullopt if the DWO could not be loaded.
///
/// There is no shared mutable state to guard here: DWOIdToSkeletonCU is
/// immutable after preprocessing and the context is cached by the skeleton
/// unit. Callers must, however, keep a given DWOId to a single thread at a
/// time -- during parallel rewriting each DWOId belongs to exactly one
/// bucket -- because opening and releasing both mutate the skeleton unit's
/// DWO pointer.
std::optional<DWARFUnit *> getDWOCU(uint64_t DWOId);

/// Returns DWOContext if it exists.
DWARFContext *getDWOContext() const;
/// Release the DWO context previously opened for \p DWOId (if any), freeing
/// its DWARFContext and parsed unit vector. Same threading contract as
/// getDWOCU().
void releaseDWOCU(uint64_t DWOId);

/// Release all currently-open DWO contexts. Used after preprocessing, so that
/// contexts are re-opened lazily and during rewriting. Not thread-safe.
void releaseAllDWOContexts();

/// Get Number of DWOCUs in a map.
uint32_t getNumDWOCUs() { return DWOCUs.size(); }
/// Get the number of split-DWARF CUs in the binary.
uint32_t getNumDWOCUs() { return DWOIdToSkeletonCU.size(); }

/// Returns true if DWARF5 is used.
bool isDWARF5Used() const { return ContainsDwarf5; }
Expand Down Expand Up @@ -367,7 +390,14 @@ class BinaryContext {
std::vector<SegmentInfo> NewSegments;

/// [name] -> [BinaryData*] map used for global symbol resolution.
using SymbolMapType = StringMap<BinaryData *>;
///
/// The map keys are StringRefs pointing into the names owned by MCContext
/// (i.e. MCSymbol::getName()) rather than strings owned by this map. Every
/// registered name is already interned in MCContext, so keying on those
/// strings avoids duplicating potentially large (mangled) symbol names, which
/// is a significant source of memory use on large binaries. The referenced
/// names outlive this map, as MCContext is owned by BinaryContext.
using SymbolMapType = DenseMap<StringRef, BinaryData *>;
SymbolMapType GlobalSymbols;

/// [address] -> [BinaryData], ...
Expand Down Expand Up @@ -569,7 +599,14 @@ class BinaryContext {
}

/// Return functions meant for the output in a sorted order.
BinaryFunctionListType &getOutputBinaryFunctions() { return OutputFunctions; }
const BinaryFunctionListType &getOutputBinaryFunctions() const {
return OutputFunctions;
}

/// Update output function list.
void updateOutputBinaryFunctions(BinaryFunctionListType &&Functions) {
OutputFunctions.swap(Functions);
}

/// Create BOLT-injected function
BinaryFunction *createInjectedBinaryFunction(const std::string &Name,
Expand All @@ -587,6 +624,9 @@ class BinaryContext {
const InstructionListType &Instructions,
const Twine &Name = "");

/// Create a binary function with a base \p Name.
BinaryFunction *createThunkBinaryFunction(const std::string &Name);

BinaryFunctionListType &getInjectedBinaryFunctions() {
return InjectedBinaryFunctions;
}
Expand Down
39 changes: 29 additions & 10 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
#include <algorithm>
#include <iterator>
#include <limits>
#include <optional>
#include <unordered_map>
#include <utility>
#include <vector>
Expand All @@ -66,6 +67,8 @@ class DWARFUnit;

namespace bolt {

class BranchLivenessInfo;

using InputOffsetToAddressMapTy = std::unordered_multimap<uint64_t, uint64_t>;

/// Types of macro-fusion alignment corrections.
Expand Down Expand Up @@ -403,11 +406,15 @@ class BinaryFunction {
/// to avoid redundant processing.
bool NeedBranchValidation{true};

/// Name for the section this function code should reside in.
std::string CodeSectionName;
/// Name for the section this function code should reside in. When unset, the
/// default name is derived on demand from the function's name (see
/// getMainSectionName()). Deferring this avoids eagerly storing a copy of the
/// (potentially large, mangled) function name for every function, which is a
/// significant source of memory use on large binaries.
std::optional<std::string> CodeSectionName;

/// Name for the corresponding cold code section.
std::string ColdCodeSectionName;
/// Name for the corresponding cold code section. See CodeSectionName.
std::optional<std::string> ColdCodeSectionName;

/// Parent function fragment for split function fragments.
using FragmentsSetTy = SmallPtrSet<BinaryFunction *, 1>;
Expand Down Expand Up @@ -747,12 +754,24 @@ class BinaryFunction {
static std::string buildColdCodeSectionName(StringRef Name,
const BinaryContext &BC);

/// Return the name of the main code section, using the default derived from
/// the function's name when no name has been explicitly assigned.
std::string getMainSectionName() const {
return CodeSectionName ? *CodeSectionName
: buildCodeSectionName(getOneName(), BC);
}

/// Return the name of the cold code section, using the default derived from
/// the function's name when no name has been explicitly assigned.
std::string getColdSectionName() const {
return ColdCodeSectionName ? *ColdCodeSectionName
: buildColdCodeSectionName(getOneName(), BC);
}

/// Creation should be handled by RewriteInstance or BinaryContext
BinaryFunction(const std::string &Name, BinarySection &Section,
uint64_t Address, uint64_t Size, BinaryContext &BC)
: OriginSection(&Section), Address(Address), Size(Size), BC(BC),
CodeSectionName(buildCodeSectionName(Name, BC)),
ColdCodeSectionName(buildColdCodeSectionName(Name, BC)),
FunctionNumber(++Count) {
Symbols.push_back(BC.Ctx->getOrCreateSymbol(Name));
}
Expand Down Expand Up @@ -1398,12 +1417,12 @@ class BinaryFunction {
SmallString<32>
getCodeSectionName(const FragmentNum Fragment = FragmentNum::main()) const {
if (Fragment == FragmentNum::main())
return SmallString<32>(CodeSectionName);
return SmallString<32>(getMainSectionName());
if (Fragment == FragmentNum::cold())
return SmallString<32>(ColdCodeSectionName);
return SmallString<32>(getColdSectionName());
if (BC.HasWarmSection && Fragment == FragmentNum::warm())
return SmallString<32>(BC.getWarmCodeSectionName());
return formatv("{0}.{1}", ColdCodeSectionName, Fragment.get() - 1);
return formatv("{0}.{1}", getColdSectionName(), Fragment.get() - 1);
}

/// Assign a code section name to the function.
Expand Down Expand Up @@ -2504,7 +2523,7 @@ class BinaryFunction {
/// while the second successor - false/fall-through branch.
///
/// When we reverse the branch condition, the CFG is updated accordingly.
void fixBranches();
void fixBranches(const BranchLivenessInfo *BLI = nullptr);

/// Mark function as finalized. No further optimizations are permitted.
void setFinalized() { CurrentState = State::CFG_Finalized; }
Expand Down
43 changes: 43 additions & 0 deletions bolt/include/bolt/Core/BranchLivenessInfo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//===- bolt/Core/BranchLivenessInfo.h ---------------------------*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//

#ifndef BOLT_CORE_BRANCHLIVENESSINFO_H
#define BOLT_CORE_BRANCHLIVENESSINFO_H

namespace llvm {
class MCInst;

namespace bolt {
class BinaryFunction;

class BranchLivenessInfo {
BinaryFunction *BF;
unsigned AnnotationIndex;

void swap(BranchLivenessInfo &Other) noexcept;

public:
explicit BranchLivenessInfo(BinaryFunction &BF);
~BranchLivenessInfo();

// Copies would create multiple owners for removing the same annotations.
BranchLivenessInfo(const BranchLivenessInfo &) = delete;
BranchLivenessInfo &operator=(const BranchLivenessInfo &) = delete;

BranchLivenessInfo(BranchLivenessInfo &&Other) noexcept;
BranchLivenessInfo &operator=(BranchLivenessInfo &&Other) noexcept;

bool mustPreserveFlags(const MCInst &Inst) const;
void removeAnnotation(MCInst &Inst) const;
void setFlagsDead(MCInst &Inst);
};

} // namespace bolt
} // namespace llvm

#endif
13 changes: 9 additions & 4 deletions bolt/include/bolt/Core/MCPlusBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,8 @@ class MCPlusBuilder {
}

/// Check whether this conditional branch can be reversed
virtual bool isReversibleBranch(const MCInst &Inst) const {
virtual bool isReversibleBranch(const MCInst &Inst,
bool MustPreserveFlags = true) const {
assert(!isUnsupportedInstruction(Inst) && isConditionalBranch(Inst) &&
"Instruction is not known conditional branch");

Expand Down Expand Up @@ -2150,9 +2151,13 @@ class MCPlusBuilder {
llvm_unreachable("not implemented");
}

/// Reverses the branch condition in Inst and update its taken target to TBB.
virtual void reverseBranchCondition(MCInst &Inst, const MCSymbol *TBB,
MCContext *Ctx) const {
/// Return the instruction sequence for the reversed branch condition of
/// \p Inst and update its taken target to \p TBB. Assumes that the branch is
/// reversible. It may replace Inst with a longer instruction sequence on some
/// targets.
virtual InstructionListType
reverseBranchCondition(MCInst Inst, const MCSymbol *TBB, MCContext *Ctx,
bool MustPreserveFlags = true) const {
llvm_unreachable("not implemented");
}

Expand Down
28 changes: 28 additions & 0 deletions bolt/include/bolt/Passes/BranchLivenessUtils.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//===- bolt/Passes/BranchLivenessUtils.h ------------------------*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//

#ifndef BOLT_PASSES_BRANCHLIVENESSUTILS_H
#define BOLT_PASSES_BRANCHLIVENESSUTILS_H

#include "bolt/Core/BranchLivenessInfo.h"

namespace llvm {
namespace bolt {
class BinaryFunction;
class RegAnalysis;

/// Return true if \p BF needs liveness info for branch transformations.
bool needsBranchLiveness(BinaryFunction &BF);

/// Return liveness info required for branch transformations.
BranchLivenessInfo computeBranchLiveness(BinaryFunction &BF, RegAnalysis &RA);

} // namespace bolt
} // namespace llvm

#endif
49 changes: 47 additions & 2 deletions bolt/include/bolt/Passes/LongJmp.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
namespace llvm {
namespace bolt {

class BranchLivenessInfo;

/// LongJmp is veneer-insertion pass originally written for AArch64 that
/// compensates for its short-range branches, typically done during linking. We
/// pull this pass inside BOLT because here we can do a better job at stub
Expand Down Expand Up @@ -73,8 +75,51 @@ class LongJmpPass : public BinaryFunctionPass {

/// Relax all internal function branches including those between fragments.
/// Assume that fragments are placed in different sections but are within
/// 128MB of each other.
void relaxLocalBranches(BinaryFunction &BF);
/// 128MB of each other. Return false and report an error if a branch cannot
/// be relaxed.
bool relaxLocalBranches(BinaryFunction &BF,
const BranchLivenessInfo *BLI = nullptr);

/// A group of functions that are located within the longest direct
/// branch/call instruction distance. Functions within the cluster do not
/// require a thunk for calls in the same cluster. The cluster may include
/// a set of thunks for covering calls to functions outside.
struct FunctionCluster {
/// All functions in this cluster.
DenseSet<BinaryFunction *> Functions;

/// Symbols corresponding to entry points of functions that this cluster
/// calls. Note that it excludes all functions in the cluster itself.
DenseSet<const MCSymbol *> Callees;

/// Estimated size of the cluster in bytes.
uint64_t Size{0};

/// The index of the last function in the cluster. Used as an insertion
/// point for adding thunks to the output function list.
size_t LastFunctionIndex = -1;

/// When placing hot code at the end of the binary, track the first function
/// for insertion purposes.
size_t FirstFunctionIndex = -1;

/// Thunks located at the end of this cluster.
BinaryFunctionListType ThunkList;

/// Thunks used by this cluster. Some could be in a ThunkList of the
/// preceding cluster.
///
/// <Function Symbol> -> <Thunk Function>.
DenseMap<const MCSymbol *, BinaryFunction *> Thunks;
};

/// Maximum size of combined regular functions in the cluster. Note that it's
/// less than 128MB, because the size of the cluster plus its thunks should be
/// less than 128MB.
static constexpr uint64_t MaxClusterSize = 125 * 1024 * 1024;

/// Relax calls using function cluster approach.
void relaxCalls(BinaryContext &BC);

/// -- Layout estimation methods --
/// Try to do layout before running the emitter, by looking at BinaryFunctions
Expand Down
4 changes: 2 additions & 2 deletions bolt/include/bolt/Profile/Heatmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ class Heatmap {

void print(raw_ostream &OS) const;

void printCDF(StringRef FileName) const;
void printCDF(StringRef FileName, StringRef Label) const;

void printCDF(raw_ostream &OS) const;
void printCDF(raw_ostream &OS, StringRef Label) const;

void printSectionHotness(StringRef Filename) const;

Expand Down
Loading
Loading