Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3492 commits
Select commit Hold shift + click to select a range
046e55b
[libc++] Add coverage for push_range on stack/queue with non-default …
Sep 29, 2026
e90c043
[compiler-rt] Remove dlsym interceptor for HSA UBSan (#227022)
Sep 29, 2026
8ce1ee4
[mlir][arith] Support equal-width float conversions (#225346)
Sep 29, 2026
e3c7196
[AMDGPU] Don't apply gfx950 fetch-window loop align to the wrong bloc…
Sep 29, 2026
3272c28
[GitHub] Fix test-suite.yml FFmpeg build with AArch64 (#227346)
Sep 29, 2026
05a75e8
[ADT] Move DenseMapIterator above DenseMapBase (NFC) (#227208)
Sep 29, 2026
91b08a5
[MISched](NFC) Factor control dependency construction state and logic…
Sep 29, 2026
f30100d
[libc++][NFC] Fix typos in the LNT tooling (#227347)
Sep 29, 2026
08ba06e
[mlir][OpenACC] Fix tile clause element bounds for descending loops (…
Sep 29, 2026
c3460c8
[Clang][docs] Markup corrections for attribute documentation (#226729)
Sep 29, 2026
9cafc5e
[Clang] prevent instantiation of invalid friend function templates (#…
Sep 29, 2026
d909762
[Offload] Remove unreachable code (#227100)
Sep 29, 2026
ca811cf
[RISCV] Remove combineTruncSelectToSMaxUSat. (#227162)
Sep 29, 2026
55400d7
[CodeGen] Remove DIE::setForceChildren and DIE::ForceChildren (NFC) (…
Sep 29, 2026
0240437
[lldb][Windows] Register the shadow listener in PlatformWindows (#227…
Sep 29, 2026
7ed1f48
TwoAddressInstructions: Add another reschedule copy order test (#227342)
Sep 29, 2026
3f91f48
[lldb][Windows] Format in-process x86 and x64 GPRs as lowercase hex (…
Sep 29, 2026
9076414
[OpenMP] Support up to 32 arguments in the generic microtask dispatch…
Sep 29, 2026
db7c669
ARM: Move abi name implied float abi to TargetParser (#226774)
Sep 29, 2026
43d9238
[RISCV][P-Ext] Prefer pack/ppairo.h over pncvt.h/pncvth.h in shuffle …
Sep 29, 2026
c2333b4
[docs] Enforce unambiguous toctree in clang/docs (#224101)
Sep 29, 2026
667cfbe
[libc] Reset thread-specific key value before invoking destructor (#2…
Sep 29, 2026
747612b
[lldb][test] Fix race condition in test_stop-hook.cpp (#227284)
Sep 29, 2026
0c8e577
[AMDGPU] Insert exec-forced V_NOP after V_PERM_PK16 (gfx1250/gfx1251 …
Sep 29, 2026
387b1c5
ARM: Mark __chkstk call's implicit LR def dead (#227218)
Sep 29, 2026
41823dd
[Clang][Sema] Add fortify warnings for poll, ppoll, and ppoll64 (#226…
Sep 29, 2026
255bce1
[gn build] Port 3b0b6d892bdf (#227382)
Sep 29, 2026
db96411
[gn build] Port 5239371ffa13 (#227383)
Sep 29, 2026
37c9017
[gn build] Port 72a712b0a552 (#227384)
Sep 29, 2026
78386bf
[NVPTX] Implement shouldBuildLookupTablesForConstant (#220088)
Sep 29, 2026
d1bc40a
[InstCombine] Use uint64_t for TruncRatio to avoid overflow (#225150)
Sep 29, 2026
690aab4
[Bazel] Fixes 09cdef0 (#227345)
Sep 29, 2026
a4652a6
[AMDGPU] Fold fpround of fadd and fsub into v_mad/fma_mixlo and mixhi…
Sep 29, 2026
9fc7a33
[gn build] Port 72a712b0a552 (#227384)
Sep 29, 2026
b4d0c56
[offload][cuda] Fix uid string handling (#227223)
Sep 29, 2026
d4e9196
[libc++] Remove unnecessary container constructions in setup code (#2…
Sep 29, 2026
d53a3f7
[lldb] Add null opcode to formatter bytecode (#224443)
Sep 29, 2026
bfa516b
[ValueTracking] Support Array and Structure in contains* check (#226748)
Sep 29, 2026
fb00768
[libc++] Fix calling push_heap on an empty range in the push_heap ben…
Sep 29, 2026
36668e0
[AMDGPU] Add intrinsics and builtins for v_wave_match_b32 (#226971)
Sep 29, 2026
afa5673
[Clang][Sema] Add fortify warnings for poll, ppoll, and ppoll64 (#226…
Sep 29, 2026
030f119
[compiler-rt] Support `-shared-libsan` for Offload UBSan (#226551)
Sep 29, 2026
1ad0d1c
[Clang][NFC] Fix tagging issue number in clang releasenotes (#227374)
Sep 29, 2026
e2892c9
[llvm] Adjust export annotations for tests (#227255)
Sep 29, 2026
8abde19
[ARM] Use target constant for MVE fixed fp convert constant (#227250)
Sep 29, 2026
d3263d3
TwoAddressInstructions: Don't treat an undef use as a kill (#227309)
Sep 29, 2026
ea14603
[Plugins] Rename PassPlugin::Load to load. NFC (#227408)
Sep 29, 2026
e7836a0
[clang-linker-wrapper] Remove -load-pass-plugin (#227410)
Sep 29, 2026
73c7c35
[MemoryBuiltins] Preserve profiles when optimizing llvm.objectsize (#…
Sep 29, 2026
c0a3f49
[SLP]Fix stale candidate lookup for externally used reduced values
Sep 29, 2026
9838613
[CAS] Split on-disk CAS validate-if-needed into validation and recove…
Sep 29, 2026
841433d
[CAS] Support validation and recovery for plugin CAS in llvm-cas (#22…
Sep 29, 2026
92cdaa2
[compiler-rt] Don't build offload ubsan library on 32-bit hosts (#227…
Sep 29, 2026
abf1029
[NFC][AMDGPU] Add tests for SCC live into a frame index user (#225196)
Sep 29, 2026
a3ea30a
[AMDGPU] Don't spill an SGPR while SCC is live in frame index lowerin…
Sep 29, 2026
e6e7da3
[libc][hdrgen] Improve support for function-types as function args. (…
Sep 29, 2026
ef1e579
[libc][mathvec] Vectorise cosf (#224290)
Sep 29, 2026
05ec41c
[ARM] Use target constant for MVE fixed fp convert constant (#227250)
Sep 29, 2026
3084a8f
[Plugins] Add -plugin-arg and PassPluginLibraryInfo::ParseArguments (…
Sep 29, 2026
e76fc68
[RISCV] Emit jumptables into text section with large code model (#227…
Sep 29, 2026
9ff7b3e
[OFFLOAD] add olIteratePlatforms (#226439)
Sep 29, 2026
64182d5
[SLP][NFC]Add a test with ineffective vectorization, NFC
Sep 29, 2026
fce53c8
[SLP][NFC]Add a test with ineffective vectorization, NFC
Sep 29, 2026
98331a0
[MLIR][MathToXeVM] Add Algebraic simplification patterns in MathToXeV…
Sep 29, 2026
08d36e8
[CopyProf] Clang frontend and driver integration. (#225905)
Sep 29, 2026
fbf3ce7
[SLP]Vectorize the longer store groups first
Sep 29, 2026
079efa2
[offload][omp] Load plugins through liboffload (#226440)
Sep 29, 2026
3f4b3ca
[NFC][AMDGPU] Add cost tests for narrow integer to fp casts (#225341)
Sep 29, 2026
f5e74fe
[clang][WebAssembly] Don't register this-returning destructors of ref…
Sep 29, 2026
46d5388
[HLSL] Add `InterlockedCompareStore` function and resource methods (#…
Sep 29, 2026
7bb059d
[OpenMP] Fix descriptor allocation for absent optional arrays (#227082)
Sep 29, 2026
98f3dda
[libc] Add setgroups and initgroups entrypoints (#227272)
Sep 29, 2026
9c7b7ee
[clang-format] Fix crashes on directives in discarded macro call args…
Sep 29, 2026
a6999e6
[Flang] Fix install components and dependencies (#227365)
Sep 29, 2026
165f4df
[Offload] Re-add flang to AMDGPU bot cmake cache (#227434)
Sep 29, 2026
90b2982
[HLSL][DirectX] report a fatal error when resource access is not guar…
Sep 29, 2026
e196a7e
[X86] Fix CCMP miscompile for flag-source-folded SETCC leaves (#217682)
Sep 29, 2026
6a47b13
Don't crash reloading a corefile saved from a live process (#224324)
Sep 29, 2026
2babd10
[NVPTX] Fix for device function pointer having the same name as gener…
Sep 29, 2026
ff6c317
[HLSL][DirectX] report a fatal error when resource access is not guar…
Sep 29, 2026
4cee350
[HLSL] Fold inverse matrix transposes (#227049)
Sep 29, 2026
1912ab9
X86: Preserve dead flags on EFLAGS when lowering CMPXCHG16B pseudos (…
Sep 29, 2026
d5e13b1
[CAS] Fix UnifiedOnDiskCacheTest build with MSVC 2019 (#227453)
Sep 29, 2026
a367d92
[libc][mathvec] Remove unneeded inf check in within_ulp_tolerance (#2…
Sep 29, 2026
7f3fa13
[HLSL] Add `InterlockedCompareExchange` function and resource methods…
Sep 29, 2026
1fbf812
[HLSL] Add `InterlockedCompareStoreFloatBitwise` function and resourc…
Sep 29, 2026
4a0e98b
[HLSL] Add `InterlockedCompareExchangeFloatBitwise` function and reso…
Sep 29, 2026
72c6b3b
[InstCombine] Handle select-like i1 sext/zexts in canonicalizeClampLi…
Sep 29, 2026
cedf871
[lldb] Bounds-check ELF relocation offsets (#227046)
Sep 29, 2026
56ee698
[HLSL][Matrix] Convert loaded bool matrices to `i1` (#226599)
Sep 29, 2026
a3db7fe
TwoAddressInstructions: Fix subranges straddling the INSERT_SUBREG su…
Sep 29, 2026
9cfc2b2
[obj2yaml] Suppress leak check on abnormal exit (#227444)
Sep 29, 2026
9425f15
[lldb] Fix deadlock when a REPL expression hits a breakpoint (#227400)
Sep 29, 2026
2b0cd5f
[AMDGPU][NFC] De-factorize scalar_to_vector bf16 patterns (#226847)
Sep 29, 2026
930a118
[LLVMABI][AARCH64] Handle vector types (#225201)
Sep 29, 2026
8081af8
[RISCV][P-ext] Add scalar multiply high intrinsics (#225561)
Sep 29, 2026
7e0802b
[clang][CIR] Match CIR return value with OGCG using mem2reg (#227241)
Sep 29, 2026
280a20b
[MLIR][XeGPU][XeVM] Lower to XeVM: support skipping backend. (#227125)
Sep 29, 2026
83826c2
[flang][openacc] Add ACCEraseUnusedKernelAllocations pass (#227481)
Sep 29, 2026
ba19a43
[lldb] Add label, title and divider ANSI settings (#226606)
Sep 29, 2026
b8952a1
[clang][docs] Use doc links to HLSL/ResourceTypes in AttrDocs.td (#22…
Sep 29, 2026
b41ef0f
[Hexagon,test] Enable +audio for intrinsics-v67.ll (#227362)
Sep 29, 2026
f35bd33
[libc][aarch64] Use inline_memcpy_aligned_access_64bit under -mstrict…
Sep 29, 2026
0cf5430
[BOLT] Emit DW_AT_high_pc matching the class of its form (#227066)
Sep 29, 2026
40edcbb
[IndirectBrExpand] Use UTC for basic.ll
Sep 29, 2026
b8c4e9f
[lldb-dap] End the session before sending the disconnect response (#2…
Sep 29, 2026
c2ccc57
[bazel][MLIR] Fix 98331a0a49e6d4a86d2e39ecc71025ce3b85acd9 (#227500)
Sep 29, 2026
531fe44
[mlir][xegpu] Check uArch block shapes in VectorToXeGPU transfer lowe…
Sep 29, 2026
d883453
[orc-rt] Remove duplicate section from regression test README. NFC. (…
Sep 29, 2026
a2e1ea9
[BOLT] Ensure runtime is built with uncompressed debug symbols (#218126)
Sep 29, 2026
69385fc
[orc-rt] Make split-file a required regression test tool. (#227510)
Sep 29, 2026
a903200
Fix typo in comment for ConstantInt get method (#227493)
Sep 29, 2026
8219f5c
[msan] add tests for llvm.masked.{udiv,sdiv,urem,srem} (#227462)
Sep 29, 2026
71879b9
[BOLT] Keep instrumentation diagnostics out of line (#225986)
Sep 29, 2026
afab119
[SelectionDAG] Add computeKnownBits support for VP_LOAD_FF's second r…
Sep 29, 2026
3a2f13f
[HLSL] Extract matrix elementwise cast operands from SSA (#227065)
Sep 29, 2026
779a0f4
[TableGen] Support HwMode registers in CompressInstEmitter (#203599)
Sep 30, 2026
fbb647b
[gn] port 841433da7862 (#227524)
Sep 30, 2026
851b198
[orc-rt] Add C addressing regression tests for functions. (#227518)
Sep 30, 2026
b08d731
[libc++][docs] Rename documentation files to Markdown (batch 2) (#222…
Sep 30, 2026
a0e3ae7
[libc++][docs] Convert documentation from reST to Markdown (batch 2) …
Sep 30, 2026
ccb1e29
[orc-rt] Fix 80-col violations in CMake (#227525)
Sep 30, 2026
18fb201
[lldb] Find Python relative to LLDB.framework on Darwin (again) (#227…
Sep 30, 2026
fddb78d
[AMDGPU] Fix inline constant for scalar_to_vector of bf16 math ops (#…
Sep 30, 2026
9e42499
[libc++] Bump machines to latest test suite (#227528)
Sep 30, 2026
0285033
[SystemZ][z/OS] Emit CELQMAIN for a module defining main (#226710)
Sep 30, 2026
9f54efd
[orc-rt] Flatten C addressing regression tests. NFC. (#227529)
Sep 30, 2026
33cbf68
[runtimes] Add llvm-dis to compiler-rt test dependency (#227212)
Sep 30, 2026
4daebae
[Clang][HLSL] Reject matrix layout modifiers on array typedefs (#227364)
Sep 30, 2026
8b90c3e
[lld][AArch64] Support R_AARCH64_TLSLE_ADD_TPREL_LO12 (#227173)
Sep 30, 2026
1eb155e
[InstCombine] Fold `-X / -Y` to `X / Y` when it cannot overflow (#224…
Sep 30, 2026
b7458ff
[Mips] Add lowerConstantFP to optimize some floating load instrs to m…
Sep 30, 2026
721b8cd
[RISCV] Model interleave2 and deinterleave2 costs with Zvzip (#225752)
Sep 30, 2026
1f84168
[Plugins] Load pass plugins after parsing the command line (#226773)
Sep 30, 2026
935c0d5
[Offload] Fix dangling memory references / leaks (#227411)
Sep 30, 2026
6ff5cc9
[RISCV][P-ext] Support Packed Widening Unzip (#227211)
Sep 30, 2026
aa79775
[bazel][libc] Fix 667cfbec38942e08bd67fa51cc05e63686dd01b9 (#227544)
Sep 30, 2026
c4825a0
[RISCV] Model Zvzip VPAIR shuffle costs (#227177)
Sep 30, 2026
e199f2b
[BOLT][Core] avoid string temporaries in block hashing. (#213510)
Sep 30, 2026
6281eb5
[libc++] Run Linux benchmarks on the premerge k8s runner set (#227547)
Sep 30, 2026
1502b67
Fix typo in comment for ConstantInt get method (#227493)
Sep 30, 2026
d01219d
[Sema] Return RecoveryExpr for ARC atomic ownership error (#224849)
Sep 30, 2026
3587185
[SelectionDAG] Keep inline asm clobbers live when read by a glued Cop…
Sep 30, 2026
474a93b
[compiler-rt] Fix failing HSA test after #226551 (#227552)
Sep 30, 2026
675d1bd
[compiler-rt] Fix failing HSA test after #226551 (#227552)
Sep 30, 2026
2982b53
[lldb] Fix unbounded recursion on an empty thread list (#227396)
Sep 30, 2026
f87fd43
[lldb/Interpreter] Report scripted hook failures via Debugger::Report…
Sep 30, 2026
54d06fb
[alpha.webkit.UncountedLocalVarsChecker] Don't skip the else branch o…
Sep 30, 2026
dc88771
[libc] Implement getentropy in sys/random (#226501)
Sep 30, 2026
e6e5ade
[llvm-objdump][RISC-V] Do not leak file-level features into $x<ISA> r…
Sep 30, 2026
4f5877f
[IR] Reduce memory usage in metadata use tracking (NFC) (#221866)
Sep 30, 2026
3bf8c1a
[IR] Remove ValueMap::{is,get}PointerIntoBucketsArray (NFC) (#227496)
Sep 30, 2026
40e834b
[RISC-V][MC][RVY] Update to v0.9.10 specification (#227554)
Sep 30, 2026
58e77af
[clang][bytecode] Diagnose destructors called on string pointers (#22…
Sep 30, 2026
e0f3c0a
[clang][bytecode][NFC] Simplify Descriptor::getLocation() (#227266)
Sep 30, 2026
ded546a
[InferAddressSpaces] Insert fixup casts before cloned user during rew…
Sep 30, 2026
65e323a
[LV][NFC] Fix erroneous debug message emitted during legality checks …
Sep 30, 2026
18ef19f
[TwoAddressInstruction] Drop physreg ranges after unfolding a load (#…
Sep 30, 2026
e3bae38
[mlir][affine] Fix crash when rolling back vectorization of reduction…
Sep 30, 2026
cf28b9f
[LoopIdiom] Fix 64-to-32-bit stride truncation in strlen idiom recogn…
Sep 30, 2026
7778bb2
[IR][ADT] Update ValueHandle PrevPtr via move constructor (NFC) (#227…
Sep 30, 2026
7c9ae52
TwoAddressInstructions: Use the per-operand early clobber flag for ti…
Sep 30, 2026
a5a1b58
[Hexagon] Fix hwloop trip count for post-increment load induction (#2…
Sep 30, 2026
8a4f055
[LAA] Honor no-wrap predicates already in PSE in isNoWrap (#226430)
Sep 30, 2026
4076fac
docs: Remove Johannes' office hours (#227350)
Sep 30, 2026
2cee1cb
Merge from 'main' to 'sycl-web' (291 commits)
Sep 30, 2026
ed32737
[clang][bytecode] Move past-end check into CheckFinalLoad (#227181)
Sep 30, 2026
d80ae72
[CIR][NFC][AMDGPU] Use new triple in CIR tests (#226972)
Sep 30, 2026
73a0b12
[CodeGenPrepare] don't promote sdiv/srem by -1 (#218737)
Sep 30, 2026
87e5a59
TwoAddressInstructions: Use a range loop to move the copy chain (#227…
Sep 30, 2026
0170d3c
[Plugins] Address review comments on -plugin-arg (#227545)
Sep 30, 2026
6a7ac20
[mlir] Test the final-policy remark on a failing pipeline without ver…
Sep 30, 2026
c9df119
AMDGPU: Use LiveIntervals instead of LiveVariables in SIOptimizeVGPRL…
Sep 30, 2026
d49626c
[ORC] Use __unw_add_dynamic_eh_frame_section/__unw_remove_dynamic_eh_…
Sep 30, 2026
e0e9285
[orc-rt] Install missing public headers. (#227578)
Sep 30, 2026
4da9e81
[SPARC] Refine instruction itinerary classes (#225328)
Sep 30, 2026
36e9bff
[VPlan] Demarcate VPIs that gen scalars (NFC) (#196207)
Sep 30, 2026
b5d5068
[obj2yaml] Return from main on error instead of calling exit (#227594)
Sep 30, 2026
4039ff2
[AMDGPU][NFC] Use CHECK-NEXT for hidden_dynamic_lds_size in hsa-metad…
Sep 30, 2026
d6048f5
[mlir][bufferization] Skip parallel analysis without parallel regions…
Sep 30, 2026
a187057
[AArch64][NeoverseV1/V2] Fix ASIMD FP convert and round scheduling (#…
Sep 30, 2026
420f6d1
[libc++] Optimize basic_string::operator= (#224535)
Sep 30, 2026
cd94d18
[ABI][AMDGPU] Add AMDGPU target ABI classifier to the LLVM ABI librar…
Sep 30, 2026
52b80c0
[mlir][affine] Handle generic memory ops in loop fusion dependence an…
Sep 30, 2026
2c29834
[mlir][vector] Use `ShapeCastOp` in `castAwayContractionLeadingOneDim…
Sep 30, 2026
3390613
AMDGPU: Update test introduced by #221821 after #227252 (#227621)
Sep 30, 2026
b1e1a2b
[llvm] Pass `/Brepro` via `add_link_options()` (#227416)
Sep 30, 2026
4c4b4b9
[libc++] Fix rvalue_iterator arithmetic operators in tests (#220686)
Sep 30, 2026
5b56cd6
[AArch64] Add retired POE2 system registers to retired-register-names…
Sep 30, 2026
4a66966
[lldb][test] Fix test_listener_event_process_state (TestMultithreaded…
Sep 30, 2026
082fe79
[AMDGPU] Add intrinsics and builtins for gfx13 exclusive scan (#226078)
Sep 30, 2026
0f5654d
[RISCV][GlobalIsel] Use Zfhmin for G_FPEXT from f16 to f32 (#227225)
Sep 30, 2026
e0a2355
[libsycl][NFC] Add licence headers to tests (#227327)
Sep 30, 2026
457e5ba
[InstCombine] Use context instruction in divceil overflow check (#227…
Sep 30, 2026
4dd9d22
[Polly] Remove non-goal TODO (#227638)
Sep 30, 2026
2820795
[JITLink][Mips] Add ELF backend (#224578)
Sep 30, 2026
d6fc996
[lldb] Skip minidump reload test on unsupported architectures (#227634)
Sep 30, 2026
67f26e1
AMDGPU: Restore dropped EXEC/SCC defs on SI_KILL_F32_COND_IMM (#227604)
Sep 30, 2026
e9ec9b5
[MLIR][Vector] Fix typo from #226524 (#227642)
Sep 30, 2026
0dba1ee
[Polly] Remove previous release's ReleaseNotes (#227644)
Sep 30, 2026
5f376e4
[lldb] Share the address lookup of thread until and StepOverUntil (#2…
Sep 30, 2026
d9b12f5
[clangd] Extract to Function: mark unmodified captured parameters const
Sep 30, 2026
5b11db2
[RISCV][P-ext] Support Packed Widening Unzip (#227211)
Sep 30, 2026
43bd07b
[lldb][Windows] Strip the extended-length prefix from host and proces…
Sep 30, 2026
b63ea1c
[lldb][Windows] Lock the thread list when lldb-server accesses it (#2…
Sep 30, 2026
09a15dd
[clang][bytecode] Fix initializer-list edge cases (#227587)
Sep 30, 2026
d4a422c
AMDGPU: Mark SCC clobber dead when moving scalar branches to VALU (#2…
Sep 30, 2026
0f972d1
AMDGPU: Mark scc clobbers in the simulated trap expansion dead (#227633)
Sep 30, 2026
fa189b0
[clang][bytecode] Reject matrix lvalue-to-rvalue casts in non-HLSL (#…
Sep 30, 2026
957dc60
AMDGPU/GlobalISel: Mark SCC clobbers on control flow pseudos dead (#2…
Sep 30, 2026
df361f8
[libc++] Optimize vector::emplace_back slow path (#222016)
Sep 30, 2026
92074f0
[VPlan] Pass result type to VPBuilder::createSingleScalarOp (NFC). (#…
Sep 30, 2026
2032d7a
[llvm][test][CGPluginTest] Avoid __attribute__((constructor)) for MSV…
Sep 30, 2026
f34ff31
[clang][bytecode] Check `diagnosing()` in `Invalid()` (#227640)
Sep 30, 2026
9e47955
[clang][bytecode] Move builtin-id check to compilation phase (#227646)
Sep 30, 2026
e1205b1
Mips/GlobalISel: Update MIR tests with calls to mark $ra dead (#227647)
Sep 30, 2026
574328f
[Bazel] Add ViewLikeInterface dependency to FIROpenACCTransforms (#22…
Sep 30, 2026
e1ffb85
[Bazel] Format MLIR BUILD.bazel (#227577)
Sep 30, 2026
5f7f8ae
[lldb][Linux] Fix false watchpoint stop on single-step when hw debug …
Sep 30, 2026
06a0942
[lldb][Windows] Report module paths the way the loader spelled them (…
Sep 30, 2026
2a62473
[IR] Deprecate ConstantExpr::getGetElementPtr() (#227601)
Sep 30, 2026
07130d0
Sparc: Mark GETPCX scratch %o7 def dead (#227676)
Sep 30, 2026
309d1d7
[clang][NFC] Add regression test for issue 111378 (#224605)
Sep 30, 2026
3541139
[CodeGen](NFC) Add `AliasAnalysis.h` to the CodeGen PCH (#227683)
Sep 30, 2026
5023684
[AArch64][SME] Emit unimplemented error for non-lazy-save of ZA. (#22…
Sep 30, 2026
a651871
[flang] Keep a loop unstructured when its END DO is branched to from …
Sep 30, 2026
739a430
[mlir][x86] Add extra patterns for AMX nano-kernel lowering (acc with…
Sep 30, 2026
bdf5228
[flang][cuda] Record implicit pinned attribution in module files (#22…
Sep 30, 2026
d1e09e1
[NFC][SPIR-V] Fix CHECK lines that never fire in tests (#227332)
Sep 30, 2026
6b26457
[AMDGPU][GlobalISel] Legalize G_VECREDUCE_FADD (#223909)
Sep 30, 2026
e83d464
[NFC][AMDGPU] Add SLP to asm tests for int to fp casts (#227344)
Sep 30, 2026
850b1f7
[lldb][test] Change vCont handling in TestEmptyThreadList.py (#227703)
Sep 30, 2026
e011bda
[AMDGPU] Stop trying to link AMDGPU ASan from compiler-rt (#227388)
Sep 30, 2026
11d3f88
Merge from 'sycl' to 'sycl-web' (9 commits)
Sep 30, 2026
f3a528d
Merge with Conflict Markers
Oct 17, 2026
f24d6f4
Merge with Conflict Markers
Oct 17, 2026
63b4366
Fix invalid SPIR-V for icmp relational predicates on i1 (#3989)
Sep 9, 2026
a7528b8
Support new OpTypeVectorIdEXT op with constant instructions in Reader…
Sep 10, 2026
72bb0b6
Fix SPV_INTEL_function_pointers translation with untyped pointers (#3…
Sep 11, 2026
dae6c0c
Emit llvm.frexp exponent OpVariable in the entry block (#4008)
Sep 14, 2026
4fb6213
Derive addrspace map out of explicit target triple (#3994)
Sep 16, 2026
076009b
Fix builtin_function_readnone_attr.ll expected output (#4025)
Sep 16, 2026
6f94540
Translate {uinc/udec}_wrap as opaque intrinsics for AMD (#3964)
Sep 17, 2026
1370786
Fix handling of checkError calls on null pointer check (#4009)
Sep 21, 2026
fee4c35
Update test for SPIR-V llvm target NoCapture emission (#4028)
Sep 22, 2026
8d85d41
Add storage class semantics to LLVM fence translation (#4030)
Sep 22, 2026
061ad25
Fix FPRoundingMode decoration handling on mini-float conversions (#4021)
Sep 23, 2026
3f2284b
[SYCL][NativeCPU] Use SYCL address spaces for GenericCastToPtrExplicit
Oct 17, 2026
f38af1d
[NVPTX] Fix local-accessor param tests after bc1a55167c5b (#40436)
Oct 6, 2026
4c74caf
[Clang] Fix duplicate OffloadArchTests target on Windows
Oct 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion bolt/docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

from llvm_sphinx import * # see llvm-project/utils/docs/README.md

globals().update(common_conf(tags, markdown=Markdown.NEVER))
globals().update(common_conf(tags))

# -- General configuration -----------------------------------------------------

Expand Down
20 changes: 15 additions & 5 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "llvm/ADT/AddressRanges.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
Expand Down Expand Up @@ -949,6 +950,10 @@ class BinaryContext {
/// and are referenced from BinaryFunction.
std::list<std::pair<BinaryFunction *, uint64_t>> InterproceduralReferences;

/// Invalid external branch targets discovered during validation.
DenseSet<std::pair<BinaryFunction *, uint64_t>>
InvalidInterproceduralReferences;

/// DWARF encoding. Available encoding types defined in BinaryFormat/Dwarf.h
/// enum Constants, e.g. DW_EH_PE_omit.
unsigned LSDAEncoding = dwarf::DW_EH_PE_omit;
Expand Down Expand Up @@ -1061,8 +1066,9 @@ class BinaryContext {
/// point.
///
/// This function also performs validations: If \p Address points to an
/// invalid instruction or lies within a constant island, return nullptr and
/// mark both \p Source and \p Target as ignored.
/// invalid instruction or lies within a constant island, return nullptr. The
/// caller is responsible for marking \p Source and \p Target as ignored
/// after all relevant references have been validated.
MCSymbol *handleExternalBranchTarget(uint64_t Address, BinaryFunction &Source,
BinaryFunction &Target);

Expand Down Expand Up @@ -1206,6 +1212,9 @@ class BinaryContext {
return ".text.injected.cold";
}

/// Return true if \p A should be emitted before \p B in code section order.
bool compareSectionNames(StringRef A, StringRef B) const;

ErrorOr<BinarySection &> getGdbIndexSection() const {
return getUniqueSectionByName(".gdb_index");
}
Expand Down Expand Up @@ -1460,9 +1469,10 @@ class BinaryContext {
}

/// Register dynamic relocation at \p Address.
void addDynamicRelocation(uint64_t Address, MCSymbol *Symbol, uint32_t Type,
uint64_t Addend, uint64_t Value = 0,
bool IsRELR = false);
void addDynamicRelocation(
uint64_t Address, MCSymbol *Symbol, uint32_t Type, uint64_t Addend,
uint64_t Value = 0, bool IsRELR = false,
uint32_t JmpRelocationIndex = Relocation::NoJmpRelocationIndex);

/// Return a dynamic relocation registered at a given \p Address, or nullptr
/// if there is no dynamic relocation at such address.
Expand Down
22 changes: 18 additions & 4 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,9 @@ class BinaryFunction {
/// True if the function is used for patching code at a fixed address.
bool IsPatch{false};

/// True if the function is a synthetic branch/call thunk.
bool IsThunk{false};

/// True if the original entry point of the function may get called, but the
/// original body cannot be executed and needs to be patched with code that
/// redirects execution to the new function body.
Expand All @@ -402,10 +405,6 @@ class BinaryFunction {
/// True if the function should not have an associated symbol table entry.
bool IsAnonymous{false};

/// Indicates whether branch validation has already been performed,
/// to avoid redundant processing.
bool NeedBranchValidation{true};

/// 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
Expand Down Expand Up @@ -905,6 +904,12 @@ class BinaryFunction {
/// Returns whether there are any labels at Offset.
bool hasLabelAt(unsigned Offset) const { return Labels.count(Offset) != 0; }

/// Return the label at \p Offset, or nullptr if none exists.
MCSymbol *getLabelAtOffset(unsigned Offset) const {
auto It = Labels.find(Offset);
return It == Labels.end() ? nullptr : It->second;
}

/// Iterate over all jump tables associated with this function.
iterator_range<std::map<uint64_t, JumpTable *>::const_iterator>
jumpTables() const {
Expand Down Expand Up @@ -1504,6 +1509,9 @@ class BinaryFunction {
/// Return true if this function is used for patching existing code.
bool isPatch() const { return IsPatch; }

/// Return true if this function is a synthetic branch/call thunk.
bool isThunk() const { return IsThunk; }

/// Return true if the function requires a patch.
bool needsPatch() const { return NeedsPatch; }

Expand Down Expand Up @@ -1941,6 +1949,12 @@ class BinaryFunction {
IsPatch = V;
}

/// Indicate that this function is a synthetic branch/call thunk.
void setIsThunk(bool V) {
assert(isInjected() && "Only injected functions can be used as thunks");
IsThunk = V;
}

/// Mark the function for patching.
void setNeedsPatch(bool V) { NeedsPatch = V; }

Expand Down
11 changes: 6 additions & 5 deletions bolt/include/bolt/Core/BinarySection.h
Original file line number Diff line number Diff line change
Expand Up @@ -365,11 +365,12 @@ class BinarySection {
}

/// Add a dynamic relocation at the given /p Offset.
void addDynamicRelocation(uint64_t Offset, MCSymbol *Symbol, uint32_t Type,
uint64_t Addend, uint64_t Value = 0,
bool IsRELR = false) {
addDynamicRelocation(
Relocation{Offset, Symbol, Type, Addend, Value, IsRELR});
void addDynamicRelocation(
uint64_t Offset, MCSymbol *Symbol, uint32_t Type, uint64_t Addend,
uint64_t Value = 0, bool IsRELR = false,
uint32_t JmpRelocationIndex = Relocation::NoJmpRelocationIndex) {
addDynamicRelocation(Relocation{Offset, Symbol, Type, Addend, Value, IsRELR,
JmpRelocationIndex});
}

void addDynamicRelocation(const Relocation &Reloc) {
Expand Down
6 changes: 6 additions & 0 deletions bolt/include/bolt/Core/DebugNames.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ class DWARF5AcceleratorTable {
uint32_t HashValue;
uint64_t EntryOffset;
std::vector<BOLTDWARF5AccelTableData *> Values;
/// Points at the name this entry was keyed by. Invalid before finalize()
const std::string *Name = nullptr;
/// New name (not in .debug_str). StrOffset is invalid before finalize()
bool NeedsStrOffset = false;
};
using HashList = std::vector<HashData *>;
using BucketList = std::vector<HashList>;
Expand Down Expand Up @@ -170,6 +174,8 @@ class DWARF5AcceleratorTable {
getSecondIndexForEntry(const BOLTDWARF5AccelTableData &Value) const;
/// Uniquify Entries.
void finalize();
/// Append the new names that are not already in .debug_str
void assignStrOffsets();
/// Computes bucket count.
void computeBucketCount();
/// Populate Abbreviations Map.
Expand Down
9 changes: 9 additions & 0 deletions bolt/include/bolt/Core/MCPlusBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -1958,6 +1958,15 @@ class MCPlusBuilder {
return {};
}

/// Materializing \p ConstantData value in the target register of \p Inst
virtual InstructionListType materializeConstant(BinaryContext &BC,
const MCInst &Inst,
StringRef ConstantData,
uint64_t Offset) const {
llvm_unreachable("not implemented");
return {};
}

/// Creates a new unconditional branch instruction in Inst and set its operand
/// to TBB.
virtual void createUncondBranch(MCInst &Inst, const MCSymbol *TBB,
Expand Down
43 changes: 30 additions & 13 deletions bolt/include/bolt/Core/Relocation.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,21 @@ namespace bolt {
/// Relocation class.
class Relocation {
public:
static constexpr uint32_t NoJmpRelocationIndex = (1u << 30) - 1;

Relocation(uint64_t Offset, MCSymbol *Symbol, uint32_t Type, uint64_t Addend,
uint64_t Value, bool IsRELR = false)
: Offset(Offset), Symbol(Symbol), Type(Type), Optional(false),
IsRELR(IsRELR), Addend(Addend), Value(Value) {
uint64_t Value, bool IsRELR = false,
uint32_t JmpRelocationIndex = NoJmpRelocationIndex)
: Offset(Offset), Symbol(Symbol), Addend(Addend), Value(Value),
Type(Type), JmpRelocationIndex(JmpRelocationIndex), Optional(false),
IsRELR(IsRELR) {
assert((isRelative() || !isRELR()) &&
"Only relative relocations can be relr.");
}

Relocation()
: Offset(0), Symbol(0), Type(0), Optional(0), IsRELR(0), Addend(0),
Value(0) {}
: Offset(0), Symbol(0), Addend(0), Value(0), Type(0),
JmpRelocationIndex(NoJmpRelocationIndex), Optional(0), IsRELR(0) {}

static Triple::ArchType Arch; /// set by BinaryContext ctor.

Expand All @@ -57,27 +61,40 @@ class Relocation {
/// The symbol this relocation is referring to.
MCSymbol *Symbol;

/// The offset from the \p Symbol base used to compute the final
/// value of this relocation.
uint64_t Addend;

/// The computed relocation value extracted from the binary file.
/// Used to validate relocation correctness.
uint64_t Value;

/// Relocation type.
uint32_t Type;

private:
/// Original index in DT_JMPREL, or NoJmpRelocationIndex for relocations
/// originating from other relocation tables.
uint32_t JmpRelocationIndex : 30;

/// Relocations added by optimizations can be optional, meaning they can be
/// omitted under certain circumstances.
bool Optional = false;
uint32_t Optional : 1;

/// Track which relocations originate from a relr section. Emit these
/// exclusively into the relr section and do not accidentally promote relative
/// rela entries, because that would require growing the relr section.
bool IsRELR = false;
uint32_t IsRELR : 1;

public:
/// The offset from the \p Symbol base used to compute the final
/// value of this relocation.
uint64_t Addend;
bool isJmpRelocation() const {
return JmpRelocationIndex != NoJmpRelocationIndex;
}

/// The computed relocation value extracted from the binary file.
/// Used to validate relocation correctness.
uint64_t Value;
uint32_t getJmpRelocationIndex() const {
assert(isJmpRelocation() && "not a DT_JMPREL relocation");
return JmpRelocationIndex;
}

/// Return size in bytes of the given relocation \p Type.
static size_t getSizeForType(uint32_t Type);
Expand Down
43 changes: 3 additions & 40 deletions bolt/include/bolt/Passes/LongJmp.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#define BOLT_PASSES_LONGJMP_H

#include "bolt/Passes/BinaryPasses.h"
#include "llvm/ADT/SmallVector.h"

namespace llvm {
namespace bolt {
Expand Down Expand Up @@ -80,46 +81,8 @@ class LongJmpPass : public BinaryFunctionPass {
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);
/// Relax calls and direct unconditional branches using one cluster layout.
void relaxWithClusters(BinaryContext &BC);

/// -- Layout estimation methods --
/// Try to do layout before running the emitter, by looking at BinaryFunctions
Expand Down
19 changes: 13 additions & 6 deletions bolt/include/bolt/Rewrite/RewriteInstance.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@
#include "llvm/Support/Error.h"
#include "llvm/Support/Regex.h"
#include <map>
#include <optional>
#include <set>
#include <unordered_map>
#include <utility>

namespace llvm {

Expand Down Expand Up @@ -241,10 +243,15 @@ class RewriteInstance {
/// Used by non-relocation mode and for patched functions.
void rewriteFunctionsInPlace(raw_fd_ostream &OS);

/// When --use-old-text reuses input file regions, zero the alignment
/// padding after BOLT-written text sections so the output does not retain
/// stale bytes from the input binary.
void zeroPaddingForReusedSections(raw_fd_ostream &OS);
/// Return the input file range [Start, End) that BOLT reuses for new
/// content (like with --use-old-text). Return std::nullopt when no input
/// region is being reused.
std::optional<std::pair<uint64_t, uint64_t>> getReusedInputFileRange() const;

/// When certain input file region is reused (like with --use-old-text),
/// overwrite every byte of that region not covered by newly written content
/// so the output does not retain stale bytes from the input binary.
void zeroStaleBytesInReusedRegion(raw_fd_ostream &OS);

/// Return address of a function in the new binary corresponding to
/// \p OldAddress address in the original binary.
Expand Down Expand Up @@ -543,8 +550,8 @@ class RewriteInstance {
std::optional<uint64_t> PLTRelocationsAddress;
uint64_t PLTRelocationsSize{0};

/// True if relocation of specified type came from .rela.plt
DenseMap<uint64_t, bool> IsJmpRelocation;
/// Number of relocations read from DT_JMPREL.
uint32_t NumJmpRelocations{0};

/// Index of specified symbol in the dynamic symbol table. NOTE Currently it
/// is filled and used only with the relocations-related symbols.
Expand Down
Loading