LLVM/project 14192adclang/lib/AST Expr.cpp, clang/lib/Sema SemaDecl.cpp

[clang][Sema] Fix ObjC file-scope literal diagnostic (#209688)

A non-constant ObjC collection literal used as a file-scope initializer
should get the targeted err_objc_literal_nonconstant_at_file_scope
pointing at the offending element. CheckForConstantInitializer instead
inspected the wrapped Init/Culprit, so under -fobjc-arc, for id-typed
variables, or with parentheses it skipped the per-element loop and fell
back to the generic "initializer element is not a compile-time constant"
on the whole @{...}/@[...] -- or blamed the wrong element (e.g. a valid
string key rather than the non-constant value).

Unwrap the culprit with IgnoreParenImpCasts and drive classification and
per-element reporting off it, mirroring BuildObjC{Array,Dictionary}Literal
(unwrap before each isa<>; keys must be string literals, values/elements
constant object literals). Also treat CK_ARCReclaimReturnedObject as
transparent in Expr::isConstantInitializer so ARC-wrapped literals are
recognized and the reported culprit is the literal itself.

Add objc-constant-literal-dict-key-restrictions.m (macOS no-ARC, iOS ARC,

    [2 lines not shown]
DeltaFile
+145-0clang/test/SemaObjC/objc-constant-literal-dict-key-restrictions.m
+32-13clang/lib/Sema/SemaDecl.cpp
+1-0clang/lib/AST/Expr.cpp
+178-133 files

LLVM/project a7fa385clang/test/CodeGenOpenCL builtins-amdgcn-raw-buffer-atomic-max.cl builtins-amdgcn-gfx13.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing atomic-fmin-fmax-global to gfx13 feature map (#213119)

fillAMDGCNFeatureMap omitted atomic-fmin-fmax-global-f32 and
atomic-fmin-fmax-global-f64 for gfx1310/gfx13-generic, so clang wrongly
rejected the raw_ptr_buffer_atomic_f{min,max}_f{32,64} builtins on those
targets even though the backend enables the features. Add them to the
gfx13 case.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+122-0llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-ptr-atomics.ll
+116-0llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-ptr-atomics.ll
+54-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+2-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+1-0clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-atomic-max.cl
+295-05 files

LLVM/project b9046d7llvm/lib/Target/AMDGPU GCNHazardRecognizer.cpp, llvm/test/CodeGen/AMDGPU coexec-scheduler.ll wmma-nop-hoisting.mir

[AMDGPU] Allow independent WMMA to resolve WMMA coexecution hazards

When counting the wait states that separate a WMMA from a later dependent
instruction, every VALU in between is credited with one wait state. An
intervening XDL WMMA clears the hazard.
DeltaFile
+75-0llvm/test/CodeGen/AMDGPU/wmma-coexecution-valu-hazards.mir
+7-2llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+0-6llvm/test/CodeGen/AMDGPU/wmma-nop-hoisting.mir
+0-3llvm/test/CodeGen/AMDGPU/coexec-scheduler.ll
+82-114 files

LLVM/project 7953762llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 avoid-ld4.ll

[AArch64] Avoid factor-4 deinterleaved loads feeding uitofp (#210894)

Avoid generating ld4 when all values produced by the deinterleaved load
are fed into uitofp. Keeping the loads separate allows the backend to
optimize them into shifts and masks.
DeltaFile
+141-0llvm/test/CodeGen/AArch64/avoid-ld4.ll
+30-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+171-02 files

LLVM/project 5b1539cllvm/test/CodeGen/AArch64/GlobalISel prelegalizer-combiner-narrow-binop-feeding-add.mir prelegalizercombiner-trivial-arith.mir

[AArch64][GlobalISel] Update prelegalize tests with concrete types. NFC (#213199)
DeltaFile
+790-790llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-load-or-pattern.mir
+339-339llvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-hoist-same-hands.mir
+205-205llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-icmp-to-true-false-known-bits.mir
+187-187llvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-trivial-arith.mir
+187-187llvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-prop-extends-phi.mir
+166-166llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-narrow-binop-feeding-add.mir
+1,874-1,87431 files not shown
+3,692-3,69237 files

LLVM/project afd4c46llvm/lib/Target/AArch64 AArch64ISelDAGToDAG.cpp AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-vector-interleave.ll sve-structured-store-memoperands.ll

[AArch64] Preserve store memoperand (#210936)
DeltaFile
+199-0llvm/test/CodeGen/AArch64/sve-structured-store-memoperands.ll
+22-3llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+4-0llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+1-1llvm/test/CodeGen/AArch64/sve-vector-interleave.ll
+226-44 files

LLVM/project cee7b71llvm/lib/Target/Sparc SparcISelLowering.cpp, llvm/test/CodeGen/SPARC reserved-regs-named.ll

[SPARC] Accept named register aliases (#212838)

Handle r0-r31, sp, fp and the optional '%' prefix in llvm.read_register
and llvm.write_register.
DeltaFile
+94-0llvm/test/CodeGen/SPARC/reserved-regs-named.ll
+37-10llvm/lib/Target/Sparc/SparcISelLowering.cpp
+131-102 files

LLVM/project 13a1fcbclang/test/CodeGenOpenCL builtins-amdgcn-raw-buffer-atomic-max.cl builtins-amdgcn-gfx13.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing atomic-fmin-fmax-global to gfx13 feature map

fillAMDGCNFeatureMap omitted atomic-fmin-fmax-global-f32 and
atomic-fmin-fmax-global-f64 for gfx1310/gfx13-generic, so clang wrongly
rejected the raw_ptr_buffer_atomic_f{min,max}_f{32,64} builtins on those
targets even though the backend enables the features. Add them to the
gfx13 case.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+122-0llvm/test/CodeGen/AMDGPU/fp-min-max-buffer-ptr-atomics.ll
+116-0llvm/test/CodeGen/AMDGPU/fp64-min-max-buffer-ptr-atomics.ll
+54-0clang/test/CodeGenOpenCL/builtins-amdgcn-gfx13.cl
+2-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+1-0clang/test/CodeGenOpenCL/builtins-amdgcn-raw-buffer-atomic-max.cl
+295-05 files

LLVM/project b52233bllvm/lib/Target/ARM ARMAsmPrinter.cpp ARMTargetMachine.cpp, llvm/test/CodeGen/ARM float-abi-module-flag.ll

ARM: Read float ABI from the "float-abi" module flag

Use the value from the module flag if present, otherwise
fall back on the legacy TargetOptions field until that is
removed.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+43-0llvm/test/CodeGen/ARM/float-abi-module-flag.ll
+10-1llvm/lib/Target/ARM/ARMTargetMachine.cpp
+6-1llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+59-23 files

LLVM/project 7fc8376clang/test/CodeGenOpenCL builtins-amdgcn-global-load-store.cl, llvm/lib/TargetParser AMDGPUTargetParser.cpp

AMDGPU: Add missing flat-global-insts to gfx13 frontend feature map (#213121)
DeltaFile
+3,291-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+358-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.store.b128.ll
+1-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+1-0clang/test/CodeGenOpenCL/builtins-amdgcn-global-load-store.cl
+3,651-04 files

LLVM/project 8b18215llvm/lib/Target/ARM ARMISelLowering.cpp ARMTargetMachine.h, llvm/unittests/Target/ARM MachineInstrTest.cpp

ARM: Thread float ABI through ARMSubtarget (NFC) (#212931)
DeltaFile
+12-6llvm/unittests/Target/ARM/MachineInstrTest.cpp
+11-3llvm/lib/Target/ARM/ARMTargetMachine.cpp
+11-1llvm/lib/Target/ARM/ARMSubtarget.h
+4-3llvm/lib/Target/ARM/ARMSubtarget.cpp
+0-6llvm/lib/Target/ARM/ARMTargetMachine.h
+2-3llvm/lib/Target/ARM/ARMISelLowering.cpp
+40-223 files not shown
+45-279 files

LLVM/project c57b2b6llvm/include/llvm/CodeGen SelectionDAG.h, llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp SelectionDAG.cpp

DAG: Use poison in getLoad/getStore for offsets (#212066)
DeltaFile
+36-20llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+11-10llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+7-7llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
+6-6llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_isel.ll.expected
+12-0llvm/include/llvm/CodeGen/SelectionDAG.h
+4-4llvm/test/CodeGen/X86/merge-store-partially-alias-loads.ll
+76-473 files not shown
+80-519 files

LLVM/project 503e7f6llvm/include module.modulemap

Module Build Fix: Add NVPTXTargetParser.def as a header (#213194)

Fixes module build `-DLLVM_ENABLE_MODULES=ON` in
https://ci.swift.org/job/llvm.org/job/clang-stage2-Rthinlto/job/main/457
by adding missing header for `NVPTXTargetParser.def`.

rdar://183685761
DeltaFile
+1-0llvm/include/module.modulemap
+1-01 files

LLVM/project 1ddfb94clang/docs ReleaseNotes.md, clang/lib/Sema SemaChecking.cpp

[Sema] Fix crash in __builtin_dump_struct with -Werror -Wformat-pedantic (#212377)

`DiagnosticErrorTrap::hasErrorOccurred()` treats warnings promoted to
errors by `-Werror` as real errors, causing `BuiltinDumpStructGenerator`
to bail out before building the `PseudoObjectExpr` wrapper. CodeGen then
encounters the untransformed `CallExpr` with a placeholder builtin type
and hits `llvm_unreachable` in `CodeGenTypes::ConvertType`.
Use `hasUnrecoverableErrorOccurred()` instead, which ignores `-Werror`
promoted warnings and only bails on genuine compilation errors.

Fixes #211943
DeltaFile
+13-0clang/test/CodeGenCXX/GH211943.cpp
+3-3clang/lib/Sema/SemaChecking.cpp
+2-0clang/docs/ReleaseNotes.md
+18-33 files

LLVM/project 531f8afllvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.h SLPTreeVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes SLPTreeVec.cpp BottomUpVec.cpp

[NFC] Rename BottomUpVec to SLPTreeVec
DeltaFile
+0-791llvm/test/Transforms/SandboxVectorizer/bottomup_basic.ll
+791-0llvm/test/Transforms/SandboxVectorizer/slp_tree_basic.ll
+0-554llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+553-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/SLPTreeVec.cpp
+110-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SLPTreeVec.h
+0-109llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h
+1,454-1,45425 files not shown
+1,573-1,57331 files

LLVM/project 08bfd2eclang/utils/perf-training perf-helper.py

[clang] perf_helper.py ignore clang warning/note when parsing cc1 command  (#212401)

Parsing cc1 command fails in `perf_helper` when `clang: note:` or
`clang: warning:` due to driver warnings. As an example, harmless macOS
sdk mismatch and `-Wunused-command-line-argument`.
DeltaFile
+3-0clang/utils/perf-training/perf-helper.py
+3-01 files

LLVM/project c5c8318llvm/test/CodeGen/AMDGPU merge-tbuffer-gfx12.mir merge-tbuffer-gfx10.mir

Remove dummy function
DeltaFile
+189-332llvm/test/CodeGen/AMDGPU/merge-tbuffer-gfx11.mir
+127-232llvm/test/CodeGen/AMDGPU/merge-tbuffer-gfx9.mir
+127-231llvm/test/CodeGen/AMDGPU/merge-tbuffer-gfx12.mir
+127-231llvm/test/CodeGen/AMDGPU/merge-tbuffer-gfx10.mir
+570-1,0264 files

LLVM/project 4311bccllvm/lib/Target/NVPTX NVPTXUtilities.h NVPTXUtilities.cpp

[NVPTX] Move NVPTXAsmPrinter and NVPTXDAGToDAGISel out of headers (NFC) (#213162)

Both headers were only included by their own `.cpp` file, so move the
class definitions into anonymous namespaces there and delete the
headers.

`getFromTypeWidthForLoad` was the only thing `NVPTXISelLowering.cpp`
needed from the ISel class, so it moves to `NVPTXUtilities` as a free
function.
DeltaFile
+0-319llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
+270-2llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
+0-127llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h
+107-11llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+11-1llvm/lib/Target/NVPTX/NVPTXUtilities.cpp
+6-2llvm/lib/Target/NVPTX/NVPTXUtilities.h
+394-4621 files not shown
+395-4647 files

LLVM/project 151b53dlld/ELF Driver.cpp Config.h, lld/test/ELF aarch64-thunk-sort.s

[ELF] Remove -z sort-thunks (#213074)

The option was added by #211721 (sort forward thunks by descending
destination to prevent convergence failures) as a temporary opt-out.
Tests have been migrated to the default order.
DeltaFile
+2-5lld/test/ELF/aarch64-thunk-sort.s
+1-1lld/ELF/Relocations.cpp
+0-1lld/ELF/Driver.cpp
+0-1lld/ELF/Config.h
+3-84 files

LLVM/project ca55492llvm/lib/Transforms/Instrumentation MemorySanitizer.cpp, llvm/test/Instrumentation/MemorySanitizer/AArch64 arm64-vcvt_f32_su32.ll arm64-vcvt.ll

Reland "[msan] Apply handleGenericVectorConvertIntrinsic() to fptrunc/fpext" (#213161)

Reverts llvm/llvm-project#204221 i.e., reapplies
https://github.com/llvm/llvm-project/pull/204197. The original patch was
reverted was due to a buildbot failure in vararg_shadow.cpp that relied
on undefined behavior as well as an unwarranted assumption that the
shadow is preserved when round-tripping from float->double->float. The
UB cases have been disabled in
https://github.com/llvm/llvm-project/pull/204246.

Original commit message:

The current instrumentation uses handleShadowOr(), which effectively
truncates or zero-extends the shadows for fptrunc/fpext respectively;
this is overly lax because floating-point has both mantissa and exponent
components (e.g., if the mantissa is initialized but the exponent is
uninitialized, an fptrunc might end up with a fully initialized shadow,
which is incorrect; conversely, if a floating-point value is fully
uninitialized, we want the fpext'ed shadow to be fully uninitialized,

    [9 lines not shown]
DeltaFile
+14-13llvm/test/Instrumentation/MemorySanitizer/i386/vararg_shadow.ll
+14-13llvm/test/Instrumentation/MemorySanitizer/X86/vararg_shadow.ll
+15-6llvm/test/Instrumentation/MemorySanitizer/X86/f16c-intrinsics-upgrade.ll
+10-8llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt.ll
+8-4llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt_f32_su32.ll
+9-3llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+70-471 files not shown
+72-487 files

LLVM/project 88329c4llvm/include/llvm/ADT SetVector.h, llvm/lib/Transforms/IPO Attributor.cpp

[ADT] Introduce SetVector::reserve (NFC) (#209951)

This patch introduces SetVector::reserve to allocate capacity in the
underlying containers.

We also adopt SetVector::reserve across Attributor.cpp where the exact
number of unique functions being inserted is known ahead of time.

Assisted-by: Antigravity
DeltaFile
+6-0llvm/include/llvm/ADT/SetVector.h
+3-0llvm/lib/Transforms/IPO/Attributor.cpp
+9-02 files

LLVM/project 8b04cf3llvm/lib/Target/AMDGPU SIInstructions.td SIISelLowering.cpp

[AMDGPU] Rename packed 64-bit features to include SingleSGPR. NFCI. (#212891)
DeltaFile
+9-9llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+12-6llvm/lib/Target/AMDGPU/AMDGPU.td
+8-8llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+4-4llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+2-2llvm/lib/Target/AMDGPU/SIInstructions.td
+2-2llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+37-313 files not shown
+43-339 files

LLVM/project 5e90b7bllvm/lib/CodeGen/AsmPrinter DwarfCompileUnit.cpp, llvm/test/DebugInfo/X86 DW_AT_LLVM_stmt_seq_split_dwarf.ll

[DebugInfo] Make DW_AT_LLVM_stmt_seq work with split DWARF (#213128)

Before this change, we would end up with a relocation in the dwo, which
would then result in an error.
DeltaFile
+22-0llvm/test/DebugInfo/X86/DW_AT_LLVM_stmt_seq_split_dwarf.ll
+9-3llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+31-32 files

LLVM/project 71e0359llvm/include/llvm/ExecutionEngine/Orc/RTBridge Calls.h, llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS Calls.h

[ORC] Generalize RTBridge callers over signature types. (#213179)

Recast the RTBridge callers as templates parameterized on the call
signature, so future executor accessors can be added as thin
declarations rather than hand-written classes.

rt::Caller<RetT(ArgTs...)> is the runtime-agnostic caller interface for
a given signature, providing the asynchronous and synchronous call
operators and the associated result types. rt::MainCaller is now an
alias for rt::Caller<int64_t(ArrayRef<std::string>)>.

rt::sps::Caller<BaseT, SPSSigT, CIName> implements any such interface by
invoking an executor-side SPS wrapper in the runtime's controller
interface, deducing the argument and result types from BaseT. A concrete
caller is a typedef supplying the interface, its SPS signature, and the
CI entry-point name; see rt::sps::MainCaller.

MainCaller's observable behavior is unchanged (the existing
SPSCallersTest still passes). The out-of-line destructor anchor in
OrcRTBridge.cpp is dropped, as the templated base now provides an inline
defaulted destructor.
DeltaFile
+69-33llvm/include/llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h
+43-22llvm/include/llvm/ExecutionEngine/Orc/RTBridge/Calls.h
+0-2llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
+112-573 files

LLVM/project b4d2b2flibcxx/include/__algorithm pstl.h, libcxx/include/__pstl/backends default.h

[libc++][pstl] Implementation of parallel std::lexicographical_compare() based on std::mismatch() (#212366)

This PR adds an implementation of parallel
`std::lexicographical_compare()` based on parallel `std::mismatch()`.

The implementation is close to a one-liner:
```c++
auto __res = _Mismatch()(__policy, __first1, __last1, __first2, __last2, [&](_Ref1 __lhs, _Ref2 __rhs) {
  return !__comp(__lhs, __rhs) && !__comp(__rhs, __lhs);
});
```

Included tests check that:
- Semantics of the iterator-only version is correct.
- Semantics of the predicated version is correct.
- The functions correctly SFINAE out when the first argument is not an
execution policy.
- The `noexcept` policy is followed.
- The `nodiscard` policy is followed.

    [2 lines not shown]
DeltaFile
+214-0libcxx/test/std/algorithms/alg.sorting/alg.lex.comparison/pstl.lexicographical_compare_comp.pass.cpp
+178-0libcxx/test/std/algorithms/alg.sorting/alg.lex.comparison/pstl.lexicographical_compare.pass.cpp
+50-0libcxx/include/__algorithm/pstl.h
+30-1libcxx/include/__pstl/backends/default.h
+16-0libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp
+11-0libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
+499-12 files not shown
+510-18 files

LLVM/project 2e3f4efllvm/lib/Target/SPIRV SPIRVPostLegalizer.cpp SPIRVLegalizerInfo.cpp, llvm/test/CodeGen/SPIRV/legalization matrix-wide-vector-shader.ll

[SPIRV] Legalize Cast Instructions for Matrix Types (#212619)

fixes #186864

This is a more limited fix. that doesn't require us to change the whole
legalization strategy for SPIR-V.

To get the last fix to work it looks like I would have to have changed
every global opcode to no longer use power of 2 based legalization.

This change with power of 2 fixed the transpose case in the offload
testsuite when we do the conversion of bools to i32s before we call
transpose.

There remains an issue when a i1 makes it into a transpose intrinsic.
That said I can only trigger that case via llvmir and not HLSL so will
move on for now.
DeltaFile
+222-0llvm/test/CodeGen/SPIRV/legalization/matrix-wide-vector-shader.ll
+15-6llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp
+6-1llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
+243-73 files

LLVM/project d9278adlldb/include/lldb/Core BugReporter.h, lldb/source/Commands CommandObjectDiagnostics.cpp

[lldb] Ask the reporter what happened in a bug report (#213173)

A diagnostics bundle records the state of the debugger, never what the
user was doing or what they expected instead, so reports arrive with a
generic title and no description of the problem. Pre-fill the report
with the questions only the person filing it can answer, and print a
checklist when the bundle is written so an incomplete report doesn't get
shared as-is.

rdar://183356348
DeltaFile
+18-0lldb/source/Core/BugReporter.cpp
+9-2lldb/source/Plugins/BugReporter/GitHub/GitHubReporter.cpp
+6-0lldb/include/lldb/Core/BugReporter.h
+3-0lldb/test/Shell/Diagnostics/TestReport.test
+3-0lldb/source/Commands/CommandObjectDiagnostics.cpp
+1-0lldb/source/Core/CMakeLists.txt
+40-26 files

LLVM/project 0142992clang/test/Driver/flang runtimes.f90 multiple-inputs-mixed.f90

Reapply "[NFC][clang][Driver] Add tests for --driver-mode=flang" (#211724)

This reapplies #207658.

Some targets do not support flang_rt or clang_rt.
It seems difficult to create a blocklist, so the tests are now
configured to explicitly specify the known-working targets.
The specified targets are extracted from tests in flang/test/Driver.

-----
The original commit message:
This patch intends to clarify the current behaviors, not to state the
expected/desirable behaviors.
DeltaFile
+22-0clang/test/Driver/flang/multiple-inputs-mixed.f90
+13-0clang/test/Driver/flang/runtimes.f90
+35-02 files

LLVM/project 0879c10compiler-rt/lib/builtins CMakeLists.txt, libc/shared/builtins trunctfxf2.h

[compiler-rt][builtins] libc-backed floating-point extend/trunct builtins (#209984)

Add libc-backed floating-point extend/truncate builtins

Part of #197824
DeltaFile
+96-0libc/src/__support/builtins/CMakeLists.txt
+83-0libc/src/__support/builtins/fpconvert_helper.h
+29-21compiler-rt/lib/builtins/CMakeLists.txt
+40-0libc/src/__support/builtins/extendxftf2.h
+40-0libc/src/__support/builtins/trunctfxf2.h
+37-0libc/shared/builtins/trunctfxf2.h
+325-2124 files not shown
+994-2130 files

LLVM/project 53e16d7clang/include/clang/CIR CIRDataLayoutSpec.h, clang/include/clang/CIR/Dialect/IR CIRAttrs.td

[CIR] Pointer and vptr width from a CIR-native data-layout entry (#204185)

PointerType and VPtrType have hard-coded sizes and alignments of 64/8
bits. On targets with 32-bit pointers (e.g., nvptx, spirv32), this trips
the record layout builder. Any record containing a pointer hit the
insertPadding assertion (offset >= size)
because the pointer was sized at 8 bytes while the following field was
placed at the AST-mandated 4-byte offset.

 ### Changes:
- CIRGenerator: attaches a CIR-native cir.ptr data-layout entry at
module setup, storing {size-in-bits, abi-align-in-bits} read
  from the target DataLayout (only for the default address space).
- CIRTypes: PointerType reads its size/alignment from that entry
(falling back to 64/8 when absent); VPtrType routes through a cir.ptr so
it picks up the same width.
- LowerToLLVM: strips the cir.ptr entry during CIR→LLVM lowering, since
cir.ptr has no meaning in LLVM IR.
- Unit test: checking 4-byte pointer/vptr layout on nvptx, verified
across CIR, CIR→LLVM.
DeltaFile
+111-14clang/lib/CIR/Dialect/IR/CIRTypes.cpp
+58-0clang/test/CIR/IR/pointer-data-layout.cir
+54-0clang/test/CIR/CodeGen/pointer-width-32bit.cpp
+49-0clang/lib/CIR/CodeGen/CIRDataLayoutSpec.cpp
+46-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+34-0clang/include/clang/CIR/CIRDataLayoutSpec.h
+352-147 files not shown
+421-2813 files