LLVM/project b7e358fllvm/test/CodeGen/AMDGPU llvm.exp10.f64.ll llvm.exp.f64.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-fdiv.mir legalize-fexp.mir

[GlobalISel] Fold bitcasts of constants in CSEMIRBuilder (#214588)

After moving to extended LLT, we've started seeing a pattern of
`G_BITCAST(G_CONSTANT ...)` and `G_BITCAST(G_FCONSTANT ...)` being
emitted due to float types now being distinct from integer types. This
prevented certain optimization from detecting constants and led to worse
results.
This patch folds this pattern in CSEMIRBuilder.
DeltaFile
+105-117llvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll
+90-96llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fexp.mir
+46-0llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
+14-18llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
+14-18llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
+16-16llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fdiv.mir
+285-2654 files not shown
+330-29310 files

LLVM/project 45f1b25libc/src/__support freetrie.cpp freetrie.h, libc/src/__support/macros hardening.h

[libc] introduce hardening mode and add heap integrity check as example (#210373)

This PR originates from #205382. 

Heap sanitization helps us to proactively detect UAF and DF. According
to the discussion in #205382, we separate this feature out from
hardening concerns.

Together in this patch:

1. We introduce `LIBC_HARDENING_MODE` similar to `libcxx`'s counterpart.
2. Introduce `_LIBC_ASSERT(COND, MSG)` as an always-on assertion macro
and forward original `LIBC_ASSERT` to it under debug mode.

Side note: I notice that LSB actually say that assert failure needs to
**abort** the program. We need to fix that. `abort` allows reentrancy
(recursive assertion failure) but current pure-header-library style
makes cyclic dependency unavoidable. This should be cleaned up later.
Opened as https://github.com/llvm/llvm-project/issues/211348.

Assisted-by: Gemini powered automation tools (human-in-the-loop).
DeltaFile
+71-28libc/src/__support/libc_assert.h
+50-0libc/test/src/__support/freelist_heap_death_test.cpp
+36-0libc/src/__support/macros/hardening.h
+19-1libc/src/__support/freetrie.cpp
+20-0libc/src/__support/freetrie.h
+16-0libc/test/src/__support/freelist_heap_test.cpp
+212-2910 files not shown
+277-2916 files

LLVM/project 95efd1alldb/source/Plugins/LanguageRuntime/CPlusPlus CPPLanguageRuntime.h ItaniumABIRuntime.cpp

[lldb] Allow multiple ABI runtimes for C++
DeltaFile
+36-16lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
+22-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.h
+21-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.cpp
+8-6lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.h
+5-2lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
+3-2lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h
+95-266 files

LLVM/project 111b530lldb/source/Plugins/LanguageRuntime/CPlusPlus CommonABIRuntime.h CommonABIRuntime.cpp

fix: define empty functions in the header
DeltaFile
+0-21lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.cpp
+9-5lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.h
+9-262 files

LLVM/project 3de3c57lldb/source/Plugins/LanguageRuntime/CPlusPlus ItaniumABIRuntime.h CommonABIRuntime.h

[lldb] Move dynamic type cache to common ABI runtime
DeltaFile
+0-16lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
+16-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.cpp
+11-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.h
+0-9lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.h
+27-254 files

LLVM/project 6f02d15lldb/source/Plugins/LanguageRuntime/CPlusPlus CMakeLists.txt ItaniumABIRuntime.h

[lldb] Extract type lookup by name from Itanium ABI (#212013)

This adds the `CommonABIRuntime` as a base for all C++ ABIs and moves
`LookupTypeByName` into it, so it can be reused.
DeltaFile
+97-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.cpp
+10-85lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
+35-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommonABIRuntime.h
+2-4lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.h
+1-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CMakeLists.txt
+145-895 files

LLVM/project 01e6268libsycl/tools/sycl-ls CMakeLists.txt

[libsycl] Fix sycl-ls build on Windows (#214583)

`cl` seems to have exceptions enabled by default and works fine, but
`clang-cl` doesn't, so it errors about `try` being used even though
exceptions are disabled.
I found this trying to enable our Windows CI buildbot.

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
DeltaFile
+3-0libsycl/tools/sycl-ls/CMakeLists.txt
+3-01 files

LLVM/project 3d06c44llvm/test/tools/llvm-objcopy/ELF binary-output-target.test

[llvm-objcopy] Fix AMDGPU arch checks in tests

ELFObjectFile.h getArch() for EM_AMDGPU returns Triple::UnknownArch
when e_flags & EF_AMDGPU_MACH is 0 (no GPU target specified). Only
when a MACH flag in the AMDGCN range is present does it return
Triple::amdgpu.

- cross-arch-headers.test: restore EF_AMDGPU_MACH_AMDGCN_GFX900 flag
  on the input ELF so that after format conversion the output correctly
  reports Arch: amdgpu.

- binary-output-target.test: expect Arch: unknown since converting
  from raw binary input (-I binary) produces an ELF with e_flags=0
  (no MACH flags), giving UnknownArch. This is correct behavior.
DeltaFile
+1-1llvm/test/tools/llvm-objcopy/ELF/binary-output-target.test
+1-11 files

LLVM/project e1ecc64llvm/docs/CommandGuide llvm-objcopy.rst

[llvm-objcopy] Add elf64-amdgpu to supported formats in command guide

Update the llvm-objcopy command guide's "Supported formats" section to
include elf64-amdgpu, added in the preceding commit.
DeltaFile
+1-0llvm/docs/CommandGuide/llvm-objcopy.rst
+1-01 files

LLVM/project 79f1263llvm/test/tools/llvm-objcopy/ELF binary-output-target.test cross-arch-headers.test

[llvm-objcopy] Address reviewer feedback on AMDGPU test cleanups

- Remove unused -DMACHINE yaml2obj template variable in cross-arch-headers.test,
  hardcode Machine: EM_NONE directly in the YAML instead
- Remove unused Flags: [[FLAGS=<none>]] template variable in cross-arch-headers.test
- Add comment in binary-output-target.test explaining that Arch: unknown is
  intentional when converting from binary (e_flags=0, no EF_AMDGPU_MACH set)
DeltaFile
+2-3llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+2-0llvm/test/tools/llvm-objcopy/ELF/binary-output-target.test
+4-32 files

LLVM/project ce93e57llvm/test/tools/llvm-objcopy/ELF cross-arch-headers.test, llvm/tools/llvm-objcopy ObjcopyOptions.cpp

[AMDGPU] Add AMDGPU support for llvm-objcopy

Co-authored-by: Aakanksha Patil <paakan at amd.com>
DeltaFile
+11-2llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+2-0llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
+13-22 files

LLVM/project c304cdbllvm/test/tools/llvm-objcopy/ELF cross-arch-headers.test

[llvm-objcopy] Fix AMDGPU arch string in test: amdgpu not amdgcn

llvm-readobj reports 'Arch: amdgpu' for EM_AMDGPU ELF files
(the generic AMDGPU ELF format used by elf64-amdgpu). The test
was incorrectly expecting 'amdgcn', which is the AMDGCN-specific
arch string used by ROCm HSA code objects.
DeltaFile
+1-1llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+1-11 files

LLVM/project 9e4929cllvm/test/tools/llvm-objcopy/ELF cross-arch-headers.test

[llvm-objcopy] Address review feedback for AMDGPU test in cross-arch-headers

Per reviewer feedback, use the existing non-AMDGPU input (%t.o, EM_NONE)
to test conversion to elf64-amdgpu. This properly demonstrates that
--output-format changes the machine type, consistent with all other cases
in this test file.

The output reports Arch: unknown because converting from a non-AMDGPU ELF
produces e_flags=0 (no EF_AMDGPU_MACH set); added a comment explaining
this. Flag control is a separate concern for a follow-on PR.
DeltaFile
+5-3llvm/test/tools/llvm-objcopy/ELF/cross-arch-headers.test
+5-31 files

LLVM/project b72ec74llvm/test/tools/llvm-objcopy/ELF binary-output-target.test

[llvm-objcopy] Add AMDGPU case to binary-output-target.test

Add test coverage for converting binary input to elf64-amdgpu format,
verifying the output has the correct format string, arch (amdgpu),
and machine type (EM_AMDGPU 0xE0). Follows the same pattern as all
other architectures in this test file.
DeltaFile
+6-0llvm/test/tools/llvm-objcopy/ELF/binary-output-target.test
+6-01 files

LLVM/project e8f8ca5llvm/docs LangRef.md, llvm/lib/CodeGen/SelectionDAG LegalizeFloatTypes.cpp LegalizeDAG.cpp

[ConstantTime] Apply review fixes for llvm.ct.select core

- Verifier: reject aggregate types instead of crashing ISel; add test.
- Fix scalable-vector expansion crash when the element type is not a
  legal scalar; add RVV test.
- LangRef: document poison/undef, noundef, permitted folds, and FMF
  behavior; rewrite Syntax/Overview.
- Deduplicate CT_SELECT type-legalizer handlers into the SELECT paths.
- Misc: FP int-twin assert, dead null check, in-place memory blend,
  flag-free PromoteNode, GlobalISel fallback test, comment cleanups.
DeltaFile
+117-0llvm/test/CodeGen/RISCV/ctselect-fallback-scalable.ll
+70-45llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+56-34llvm/docs/LangRef.md
+24-24llvm/test/CodeGen/X86/ctselect.ll
+35-0llvm/test/CodeGen/RISCV/ctselect-fallback-gisel.ll
+10-24llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+312-12711 files not shown
+369-18917 files

LLVM/project fc6ab3ellvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp LegalizeDAG.cpp, llvm/test/CodeGen/RISCV ctselect-fallback.ll

[ConstantTime] Fix CT_SELECT expansion to preserve constant-time guarantees

Create CT_SELECT nodes for scalar types regardless of target support, so
they survive DAGCombiner (visitCT_SELECT is conservative). Expand to
AND/OR/XOR during operation legalization after SETCC is lowered, preventing
the sext(setcc)->select fold chain that converts constant-time patterns
into data-dependent conditional moves (e.g. movn/movz on MIPS).

The mask uses SUB(0, AND(Cond, 1)) instead of SIGN_EXTEND because type
legalization already promoted i1 to the SetCC result type, making
SIGN_EXTEND a no-op for same-width types.
DeltaFile
+144-115llvm/test/CodeGen/X86/ctselect.ll
+10-12llvm/test/CodeGen/RISCV/ctselect-fallback.ll
+12-8llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+13-3llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+179-1384 files

LLVM/project 34b445ellvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeFloatTypes.cpp, llvm/test/CodeGen/RISCV ctselect-fallback.ll

[ConstantTime] Changed CTSELECT instances to CT_SELECT
DeltaFile
+14-14llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+11-11llvm/test/CodeGen/X86/ctselect.ll
+9-9llvm/test/CodeGen/RISCV/ctselect-fallback.ll
+7-7llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+6-6llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+6-6llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+53-5313 files not shown
+75-8019 files

LLVM/project 730c249llvm/docs LangRef.md, llvm/include/llvm/IR Intrinsics.td

[ConstantTime] Address reviewer feedback for llvm.ct.select core

Model llvm.ct.select as IntrInaccessibleMemOnly so the call stays pinned
without pessimizing alias analysis. Make CT_SELECT flagless (drop the
getCTSelect flags parameter, dead flag propagation, and
setFlags-after-getNode) and assert its condition is scalar. Blend the FP
memory fallback at the widest legal integer width with ext-load and
trunc-store tails instead of illegal i8 chunks. Restore the LangRef
section dropped in the rebase onto the Markdown docs migration and note
RISC-V Zkt/Zvkt. Apply review style fixes and regenerate affected tests.
DeltaFile
+113-113llvm/test/CodeGen/RISCV/ctselect-fallback.ll
+125-0llvm/docs/LangRef.md
+27-68llvm/test/CodeGen/X86/ctselect.ll
+39-27llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+16-19llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+8-2llvm/include/llvm/IR/Intrinsics.td
+328-2298 files not shown
+349-24714 files

LLVM/project 0554102llvm/include/llvm/CodeGen ISDOpcodes.h, llvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp

[ConstantTime] Reword comments and LangRef doc
DeltaFile
+0-7llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+5-2llvm/include/llvm/CodeGen/ISDOpcodes.h
+5-92 files

LLVM/project 17974f9llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp SelectionDAGBuilder.cpp, llvm/test/CodeGen/RISCV ctselect-fallback.ll

[ConstantTime] Move ct.select lowering to legalizer; misc fixes

- LegalizeDAG owns CT_SELECT lowering: scalar-mask+splat for vectors
  (avoids illegal vNi1), memory-blend for FP types lacking a legal
  same-size integer (f64 on i386 no-SSE, fp128, x86_fp80)
- Add InstSimplify folds for constant cond and identical arms
- Extend X86 tests to half/bfloat/fp128/x86_fp80; nounwind cleanup
- Preserve flags through legalizer; reuse SDTSelect
DeltaFile
+1,513-549llvm/test/CodeGen/X86/ctselect.ll
+143-65llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+12-111llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+102-0llvm/test/Transforms/InstSimplify/ct-select.ll
+44-30llvm/test/CodeGen/RISCV/ctselect-fallback.ll
+4-13llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+1,818-7685 files not shown
+1,838-78011 files

LLVM/project ff2bc54llvm/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp DAGCombiner.cpp, llvm/test/CodeGen/RISCV ctselect-fallback.ll

[ConstantTime][LLVM] Add llvm.ct.select intrinsic with generic SelectionDAG lowering

[LLVM][CodeGen]  Improve CTSELECT fallback lowering and target support modeling (#179395)

This pull request refactors and improves the **fallback handling** of
constant-time select (CTSELECT) in LLVM’s code generation
infrastructure. The changes clarify semantics, simplify
target-capability checks, and improve the correctness and
maintainability of fallback lowering, without changing the intended
constant-time guarantees.

- **CTSELECT semantics**
- Clarified documentation for the `CTSELECT` node to explicitly describe
its operands and its role as the lowering target for the constant-time
select intrinsic.

- **TargetLowering cleanup**
  - Removed CTSELECT-specific entries from `SelectSupportKind`.
- Introduced a dedicated `isCtSelectSupported(EVT)` hook to cleanly

    [23 lines not shown]
DeltaFile
+1,509-0llvm/test/CodeGen/X86/ctselect.ll
+754-0llvm/test/CodeGen/RISCV/ctselect-fallback.ll
+106-0llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+76-2llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+74-0llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+20-0llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+2,539-214 files not shown
+2,623-720 files

LLVM/project 83229d4.github/workflows libc-fullbuild-tests.yml, libc/cmake/caches armv8m.main-none-eabihf.cmake

[libc] armv8m hard float build check (#214090)

Our premerge checks were testing the softfp build for armv8m. Adding
also a hard float ABI check for this target to increase build check
coverage.

Assisted-by: Gemini
DeltaFile
+8-1.github/workflows/libc-fullbuild-tests.yml
+8-0libc/cmake/caches/armv8m.main-none-eabihf.cmake
+16-12 files

LLVM/project cb43aacclang Maintainers.md

[Clang] [Docs] Update my entries to use my company email and github account (#214787)
DeltaFile
+6-6clang/Maintainers.md
+6-61 files

LLVM/project d9accd3clang/include/clang/AST StmtOpenMP.h, clang/lib/AST StmtOpenMP.cpp

[clang][OpenMP] Split OMPOrderedDirective into two classes

Now that OMPD_ordered has been replaced with two variants, split
the OMPOrderedDirective class into two classes, one for each
variant.
DeltaFile
+77-71clang/lib/CodeGen/CGStmtOpenMP.cpp
+65-13clang/include/clang/AST/StmtOpenMP.h
+24-18clang/lib/AST/StmtOpenMP.cpp
+12-5clang/lib/Serialization/ASTReaderStmt.cpp
+14-3clang/lib/Sema/TreeTransform.h
+13-3clang/tools/libclang/CIndex.cpp
+205-11314 files not shown
+279-13720 files

LLVM/project ddecd7cclang/lib/Parse ParseOpenMP.cpp, flang/lib/Parser openmp-parsers.cpp

[OpenMP] Delete now unused OMPD_ordered

It has been replaced by OMPD_ordered_standalone and
OMPD_ordered_blockassoc.
DeltaFile
+0-13llvm/include/llvm/Frontend/OpenMP/OMP.td
+1-2llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp
+1-2flang/lib/Semantics/check-omp-structure.cpp
+1-2flang/lib/Parser/openmp-parsers.cpp
+1-1llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+1-1clang/lib/Parse/ParseOpenMP.cpp
+5-216 files

LLVM/project 6716e31lldb/test/API/functionalities/process_save_core_minidump/partial_read TestProcessSaveCoreMinidumpPartialRead.py, lldb/test/API/functionalities/process_save_core_minidump/size_mismatch TestProcessSaveCoreMinidumpSizeMismatch.py

[lldb][minidump] Skip the new minidump tests on ARM (#214766)

Apparently, the new tests introduced by #212641 and #212861 use features
not supported on ARM.

Example:
```
FAIL: test_save_core_range_with_unreadable_tail_dwarf (TestProcessSaveCoreMinidumpPartialRead.ProcessSaveCoreMinidumpPartialReadTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File ".../lldbtest.py", line 2171, in test_method
    return attrvalue(self)
  File ".../TestProcessSaveCoreMinidumpPartialRead.py", line 78, in test_save_core_range_with_unreadable_tail
    self.assertSuccess(process.SaveCore(options))
  File ".../lldbtest.py", line 3045, in assertSuccess
    self.fail(self._formatMessage(msg, "'{}' is not success".format(error)))
AssertionError: 'architecture arm not supported.' is not success
Config=arm-/home/tcwg-buildbot/worker/lldb-arm-ubuntu/build/bin/clang
```
DeltaFile
+1-0lldb/test/API/functionalities/process_save_core_minidump/size_mismatch/TestProcessSaveCoreMinidumpSizeMismatch.py
+1-0lldb/test/API/functionalities/process_save_core_minidump/partial_read/TestProcessSaveCoreMinidumpPartialRead.py
+2-02 files

LLVM/project 0fdfc2dllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.fdot2.f32.bf16.ll

[AMDGPU][GISel] RegBankLegalize rule for amdgcn_fdot2_f32_bf16 (#214326)
DeltaFile
+644-197llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll
+3-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+647-1982 files

LLVM/project 6a13c4eclang/include/clang/AST StmtOpenMP.h

format
DeltaFile
+2-3clang/include/clang/AST/StmtOpenMP.h
+2-31 files

LLVM/project 320d264llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/unittests/CodeGen SelectionDAGNodeConstructionTest.cpp

[DAG] added ISD::FMINIMUM/FMAXIMUM cases in isIdentityElement (#210169)

Fixed #209248

Implemented analogous to existing FMINNUM/FMAXNUM cases
DeltaFile
+24-0llvm/unittests/CodeGen/SelectionDAGNodeConstructionTest.cpp
+9-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+33-02 files

LLVM/project 6d42475clang/lib/Parse ParseOpenMP.cpp

Update function name in all places
DeltaFile
+2-2clang/lib/Parse/ParseOpenMP.cpp
+2-21 files