LLVM/project d131e00clang/test/CodeGen ubsan-aggregate-null-align-bounds.c

Strengthen handler-call-only checks against extra handler calls
DeltaFile
+8-0clang/test/CodeGen/ubsan-aggregate-null-align-bounds.c
+8-01 files

LLVM/project 54ce8fcllvm/test/CodeGen/AMDGPU fptrunc.ll

[AMDGPU][NFC] Pre-commit test for fabs/fneg fold into fptrunc source modifiers (#204666)
DeltaFile
+1,191-0llvm/test/CodeGen/AMDGPU/fptrunc.ll
+1,191-01 files

LLVM/project 17308a9orc-rt/lib/executor Session.cpp, orc-rt/unittests SessionTest.cpp

[orc-rt] Fix assertion, add fail-to-connect unit test. (#204720)

If a ControllerAccess object's connect method calls notifyDisconnected
then by the time we return to Connect we may have completed the detach,
in which case TargetState will be None, and CurrentState will be >=
Detached. This case was not covered by the assert after the return from
connect, leading to assertions when connect failed.

This commit relaxes the assertion to include the case above, and adds a
unit test to cover it.
DeltaFile
+25-3orc-rt/unittests/SessionTest.cpp
+4-4orc-rt/lib/executor/Session.cpp
+29-72 files

LLVM/project 4da60b8llvm/lib/Transforms/Utils LowerCommentStringPass.cpp

[NFC] LowerCommentStringPass: remove unused #include (#204719)

This pass was added in a64928f267f3aeeb3571bfc7de92c432126d74e9 but does
not actually use PassBuilder
DeltaFile
+0-1llvm/lib/Transforms/Utils/LowerCommentStringPass.cpp
+0-11 files

LLVM/project 4a1d8bbllvm/test/CodeGen/AMDGPU llvm.amdgcn.load.async.to.lds.ll llvm.amdgcn.load.to.lds.ll

[AMDGPU][NFC]: Pre-commit load.async.to.lds.ll test (#204695)
DeltaFile
+117-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.async.to.lds.ll
+0-37llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.to.lds.ll
+117-372 files

LLVM/project 9fc458allvm/lib/Target/BPF BPFAsmPrinter.cpp, llvm/test/CodeGen/BPF jump_table_func_ptr_array.ll

[BPF] Fix erroneous removal of non-jump-table globals (#204594)

Jump tables are supported only for cpu v4. After lowering them into
.jumptables entries, BPFAsmPrinter::doFinalization() removes the private
constant arrays that backed the jump tables. But the below 'for' loop is
actually a no-op.

    for (unsigned i = 1, e = CA->getNumOperands(); i != e; ++i) {
      if (!dyn_cast<BlockAddress>(CA->getOperand(i)))
        continue;
    }
    Targets.push_back(&Global);

With current implementation, 'Global' will be added to 'Targets' and
later in doFinalization(), 'Global' will be removed. But it is possible
in 'Global' there exists non BlockAddress which are used in later code.
This will cause the problem like:
  error: Undefined temporary symbol .L__const.select_fn.fns


    [24 lines not shown]
DeltaFile
+41-0llvm/test/CodeGen/BPF/jump_table_func_ptr_array.ll
+3-4llvm/lib/Target/BPF/BPFAsmPrinter.cpp
+44-42 files

LLVM/project cc16c2cclang/bindings/xml comment-xml-schema.rng, clang/test/Index comment-xml-schema.c

[clang] Add concepts to XML comment schema, add tests (#202774)
DeltaFile
+36-0clang/bindings/xml/comment-xml-schema.rng
+12-0clang/test/Index/Inputs/CommentXML/valid-concept-02.xml
+6-0clang/test/Index/comment-xml-schema.c
+5-0clang/test/Index/Inputs/CommentXML/valid-concept-01.xml
+4-0clang/test/Index/Inputs/CommentXML/invalid-concept-01.xml
+63-05 files

LLVM/project 5a02a6dllvm/test/CodeGen/X86 atomic-load-store.ll

[X86] Add aligned atomic vector load tests wider than 128 bits (NFC) (#204495)

These >128-bit loads are expanded to __atomic_load libcalls regardless
of alignment, since x86 caps atomic ops at 128 bits.

Store version: https://github.com/llvm/llvm-project/pull/202537
DeltaFile
+360-0llvm/test/CodeGen/X86/atomic-load-store.ll
+360-01 files

LLVM/project 58f086dllvm/include/llvm/CodeGen BasicTTIImpl.h, llvm/test/Transforms/RelLookupTableConverter unnamed_addr.ll

Disable RelLookupTableConverter on AArch64 (#204669)

We're seeing miscompiles due to relative offsets overflowing 2GB.
AArch64 allows text + data to span up to 4GB in the small code model:
https://github.com/ARM-software/abi-aa/blob/main/sysvabi64/sysvabi64.rst#code-models.

We could also use 64-bit offsets, but I'll leave that for the futute.

Assisted-by: Gemini
DeltaFile
+47-0llvm/test/Transforms/RelLookupTableConverter/AArch64/no_relative_lookup_table.ll
+0-40llvm/test/Transforms/RelLookupTableConverter/unnamed_addr.ll
+4-3llvm/include/llvm/CodeGen/BasicTTIImpl.h
+51-433 files

LLVM/project a64928fclang/lib/CodeGen CodeGenModule.cpp, clang/lib/Parse ParsePragma.cpp

[PowerPC][AIX] Support #pragma comment copyright for AIX (#178184)

This change supports **pragma comment copyright**.
Signature: `#pragma comment (copyright, "token_sequence")`

- The token_sequence is included in the generated executable and loaded
into memory when the program is run.
- copyright `comment` directive can appear only once in a translation
unit.

Implementation :

- Frontend (Clang): Parses `#pragma comment (copyright, "string")` for
AIX targets and emits :
- Emit weak_odr hidden hash-named global variables (e.g.,
`__loadtime_comment_str_<hash>`)
- Place strings in `__loadtime_comment` section and mark with
`!loadtime_comment` metadata
    - Add to `llvm.compiler.used` to prevent early elimination

    [38 lines not shown]
DeltaFile
+113-0llvm/lib/Transforms/Utils/LowerCommentStringPass.cpp
+92-0clang/test/Preprocessor/pragma-comment.c
+63-0clang/lib/CodeGen/CodeGenModule.cpp
+39-0llvm/test/Analysis/ModuleSummaryAnalysis/implicit-ref-edges.ll
+38-0llvm/test/Transforms/LowerCommentString/lower-comment-string.ll
+33-4clang/lib/Parse/ParsePragma.cpp
+378-429 files not shown
+639-1035 files

LLVM/project 2bedccfllvm/include/llvm/IR Value.h, llvm/lib/IR Value.cpp

Address review comments

Created using spr 1.3.6-beta.1
DeltaFile
+27-13llvm/lib/Transforms/Scalar/JumpThreading.cpp
+29-1llvm/test/Transforms/JumpThreading/ptrauth.ll
+10-0llvm/lib/IR/Value.cpp
+5-0llvm/include/llvm/IR/Value.h
+71-144 files

LLVM/project 1fc592a.github/workflows spirv-tests.yml

workflows/spirv-tests: Pin container image reference (#199479)

I pinned the image to the version that was used in the last successful
workflow run.

https://github.com/llvm/llvm-project/security/code-scanning/1807
https://docs.zizmor.sh/audits/#unpinned-images
DeltaFile
+1-1.github/workflows/spirv-tests.yml
+1-11 files

LLVM/project 9e60858llvm/lib/Target/AArch64 AArch64InstrFormats.td AArch64SystemOperands.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

fixup! Convert PSB to use PSBHint for consistency
DeltaFile
+65-97llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+44-66llvm/lib/Target/AArch64/AArch64InstrFormats.td
+31-78llvm/lib/Target/AArch64/AArch64SystemOperands.td
+23-33llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+19-26llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
+9-18llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
+191-3182 files not shown
+198-3278 files

LLVM/project 15fa0c7lldb/unittests/Host HostTest.cpp

[lldb][test] Wait on the exit-status future in HostTest (#204704)

libc++ marks `std::future::get()` as` `[[nodiscard]]`. The cleanup
lambda only needs to block until the child is reaped, not read the
status. Use `wait()` to avoid the `-Wunused-result` warning.
DeltaFile
+1-1lldb/unittests/Host/HostTest.cpp
+1-11 files

LLVM/project d1c5cf2compiler-rt/test/fuzzer fork.test fork_corpus_groups.test

[Fuzzer] Bump rss_limit again (#204701)

These tests are still somewhat flaky, even after
3e11b3be3b86d4e72e73e610fb15fe431169f16e, so bump the limit again.

See

https://github.com/llvm/llvm-project/pull/203450#issuecomment-4737237866
for info on failures.
DeltaFile
+1-1compiler-rt/test/fuzzer/fork.test
+1-1compiler-rt/test/fuzzer/fork_corpus_groups.test
+2-22 files

LLVM/project 304c5a6offload/plugins-nextgen/common/src RPC.cpp

[Offload] Flush pending RPC ports when tearing down a device (#204681)

The RPC client can push asynchronous work and then quit. These can be
lost if the kernel returns and is torn down before the RPC server gets
to run to check it. To handle this, we just manually flush the interface
once when we tear the device down. The interface is lock-free so this
should be safe even if the other thread is working through it as well.
DeltaFile
+14-0offload/plugins-nextgen/common/src/RPC.cpp
+14-01 files

LLVM/project 7f63067lldb/include/lldb/Host Editline.h, lldb/source/Host/common Editline.cpp

[lldb] Apply pending terminal resize before repainting the prompt (#203045)

Editline defers ApplyTerminalSizeChange() (el_resize plus refreshing the
cached terminal dimensions) to its read loop on the main thread, but
Refresh() and PrintAsync() repaint the prompt synchronously from the
resize notification on the signal thread, ahead of that apply. The
repaint therefore used the dimensions cached before the resize. Apply
any pending resize first via a shared helper. The output stream lock
already serializes these paths, and it is a no-op when nothing is
pending.

Editline keeps querying its own size (el_resize/EL_GETTC) rather than
using the dimensions the driver reports: el_resize must update libedit's
internal line-wrapping model regardless (libedit exposes no way to set
it), and editline's cursor arithmetic must use the same width libedit
wraps at. EL_GETTC reads back exactly that value, so the two cannot
diverge, while sourcing the width from the driver's separate ioctl
could.
DeltaFile
+35-0lldb/unittests/Editline/EditlineTest.cpp
+8-2lldb/source/Host/common/Editline.cpp
+6-0lldb/include/lldb/Host/Editline.h
+49-23 files

LLVM/project 8b31455llvm/lib/Target/AArch64 AArch64SystemOperands.td AArch64InstrInfo.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

fixup! Address PR comments
DeltaFile
+24-48llvm/lib/Target/AArch64/AArch64SystemOperands.td
+25-23llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+15-23llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+15-8llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
+5-13llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
+9-8llvm/lib/Target/AArch64/AArch64InstrInfo.td
+93-1234 files not shown
+107-13610 files

LLVM/project 55c159bllvm/test/MC/AArch64 armv9.7a-memsys.s basic-a64-instructions.s

fixup! Add testcases for all missing HINTs
DeltaFile
+13-1llvm/test/MC/AArch64/armv9.7a-memsys.s
+12-0llvm/test/MC/AArch64/basic-a64-instructions.s
+9-1llvm/test/MC/AArch64/armv9.6a-pcdphint.s
+8-0llvm/test/MC/AArch64/armv8.4a-trace.s
+6-0llvm/test/MC/AArch64/armv9.5a-pauthlr.s
+3-0llvm/test/MC/AArch64/armv8.2a-statistical-profiling.s
+51-22 files not shown
+56-28 files

LLVM/project 0e39ad3llvm/lib/Target/AArch64 AArch64InstrFormats.td AArch64InstrInfo.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

[AArch64][llvm] Some instructions should be `HINT` aliases (NFC)

Implement the following instructions as a `HINT` alias instead of a
dedicated instruction in separate classes:
  * `stshh`
  * `stcph`
  * `shuh`
  * `tsb`

Updated all their helper methods too, and updated the `stshh` pseudo
expansion for the intrinsic to emit `HINT #0x30 | policy`.

Code in AArch64AsmPrinter::emitInstruction identified an initial BTI using a
broad bitmask on the HINT immediate, which also matched shuh/stcph (50..52)
This could move the patchable entry label after a non-BTI instruction.
Replaced it with an exact BTI check using the BTI HINT range (32..63) and
AArch64BTIHint::lookupBTIByEncoding(Imm ^ 32).

A following change will remove duplicated code and simplify.

    [2 lines not shown]
DeltaFile
+86-0llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+41-40llvm/lib/Target/AArch64/AArch64InstrFormats.td
+22-3llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
+5-14llvm/lib/Target/AArch64/AArch64InstrInfo.td
+5-10llvm/lib/Target/AArch64/AArch64SystemOperands.td
+4-2llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+163-692 files not shown
+170-708 files

LLVM/project ac0db45llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp, llvm/lib/Target/AArch64/MCTargetDesc AArch64InstPrinter.cpp AArch64InstPrinter.h

[AArch64][llvm] Deduplicate hint alias parsing code (NFC)

The code which handles instructions that are aliased in the `HINT`
encoding space is very similar and repetitive.

Move common code into templated functions, so that it's consistent and
simpler, whilst still remaining readable.

This also means any future instructions added in the `HINT` space will
be simpler to implement. Net removal of ~53 lines of code.
DeltaFile
+92-144llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+23-31llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
+7-0llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h
+122-1753 files

LLVM/project d0734dfclang/test/Driver rocm-detect.hip hip-runtime-libs-linux.hip, clang/test/InstallAPI forwarded-search-paths.test extra-exclude-headers.test

`cp -r` replaces symlinks, update to `cp -R` (#201463)

`cp -r` translates to `cp -RL` on at least FreeBSD and macOS. `-L`
replaces symlinks with flat directories which effectively breaks Apple
style bundles like frameworks. Switch to `-R` so that the symlinks don't
get broken.
DeltaFile
+6-6clang/test/Driver/rocm-detect.hip
+2-2llvm/utils/docker/build_docker_image.sh
+2-2clang/test/InstallAPI/forwarded-search-paths.test
+2-2clang/test/InstallAPI/extra-exclude-headers.test
+2-2clang/test/InstallAPI/directory-scanning-frameworks.test
+2-2clang/test/Driver/hip-runtime-libs-linux.hip
+16-1639 files not shown
+56-5645 files

LLVM/project 81da9ccllvm/test/CodeGen/AMDGPU rem_i128.ll div_v2i128.ll

[AMDGPU] Use explicit carry nodes for i64 wide integer lowering

This PR switches widened i64 add/sub lowering to use explicit UADDO/USUBO carry
nodes instead of glue-based carry chains.
DeltaFile
+1,255-1,278llvm/test/CodeGen/AMDGPU/rem_i128.ll
+950-975llvm/test/CodeGen/AMDGPU/div_v2i128.ll
+758-780llvm/test/CodeGen/AMDGPU/div_i128.ll
+460-514llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system.ll
+226-250llvm/test/CodeGen/AMDGPU/flat_atomics_i64.ll
+192-216llvm/test/CodeGen/AMDGPU/flat_atomics_i64_system_noprivate.ll
+3,841-4,01317 files not shown
+4,661-4,74523 files

LLVM/project e0da44boffload/libomptarget device.cpp, offload/plugins-nextgen/common/include RecordReplay.h PluginInterface.h

Rename to LIBOMPTARGET_RECORD_REPORT_FILENAME
DeltaFile
+10-11openmp/docs/design/Runtimes.rst
+5-5offload/plugins-nextgen/common/include/RecordReplay.h
+4-4offload/plugins-nextgen/common/src/RecordReplay.cpp
+3-3offload/plugins-nextgen/common/include/PluginInterface.h
+3-3offload/libomptarget/device.cpp
+2-2offload/plugins-nextgen/common/src/PluginInterface.cpp
+27-281 files not shown
+28-297 files

LLVM/project 040a641clang/test/CodeGenHLSL/builtins ddy.hlsl ddx.hlsl

[HLSL] Correct SPIRV CHECKs in derivative tests (#176609)

The LABEL CHECKS intended to correspond to the CHECK-SPIRV directives
were misformed such that they had no effect. Given the similarity of the
output for SPIRV and DXIL, I've replaced them with common checks using
variables to match the parts that differ.
DeltaFile
+18-42clang/test/CodeGenHLSL/builtins/ddy.hlsl
+18-42clang/test/CodeGenHLSL/builtins/ddx.hlsl
+10-34clang/test/CodeGenHLSL/builtins/ddy-fine.hlsl
+10-34clang/test/CodeGenHLSL/builtins/ddy-coarse.hlsl
+10-34clang/test/CodeGenHLSL/builtins/ddx-fine.hlsl
+10-34clang/test/CodeGenHLSL/builtins/ddx-coarse.hlsl
+76-2204 files not shown
+92-26010 files

LLVM/project 59d60d0lldb/test/API/commands/frame/diagnose/inheritance main.cpp, lldb/test/API/functionalities/plugins/python_os_plugin TestPythonOSPlugin.py main.c

[lldb][test] Avoid a 3-argument main in test inferiors (#204656)

On WebAssembly clang only wires a 0- or 2-argument main to the program
entry point: EmitMainVoidAlias emits the __main_void alias for a
no-argument main, and the 2-argument form is mangled to
__main_argc_argv.

A 3-argument main(argc, argv, envp) matches neither, so main is never
connected to the entry point and is left as an undefined-weak stub whose
body is `unreachable`. The affected inferiors trap with "Exception:
unreachable" before reaching main (even when run outside the debugger)
so any test using them fails on wasm.

Drop the unused third parameter, and where the environment is actually
iterated read it from `environ` instead. The inferiors now run on
WebAssembly and behave identically on other platforms.
DeltaFile
+20-15lldb/test/API/python_api/target/main.c
+9-10lldb/test/API/lang/cpp/unique-types/main.cpp
+8-5lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
+8-3lldb/test/API/tools/lldb-dap/launch/main.c
+5-6lldb/test/API/functionalities/plugins/python_os_plugin/main.c
+4-6lldb/test/API/commands/frame/diagnose/inheritance/main.cpp
+54-454 files not shown
+61-5510 files

LLVM/project e651355clang/include/clang/Frontend CompilerInvocation.h FrontendOptions.h, clang/include/clang/ScalableStaticAnalysisFramework/Frontend SSAFOptions.h

Revert "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions" (#204686)

Reverts llvm/llvm-project#204621

Broke a Windows bot:
https://github.com/llvm/llvm-project/pull/204621#issuecomment-4746295964
https://lab.llvm.org/buildbot/#/builders/46/builds/36811
```
FAILED: ... project\clang\lib\Frontend\CompilerInvocation.cpp
tools\clang\include\clang/Options/Options.inc(9974): error C2065: 'SSAFOpts': undeclared identifier
tools\clang\include\clang/Options/Options.inc(9975): note: see reference to function template instantiation 'auto GenerateSSAFArgs::<lambda_fd4588547196dccacaf54a707a47a2b4>::operator ()<T>(const T &) const' being compiled
        with
        [
            T=std::vector<std::string,std::allocator<std::string>>
        ]
```
DeltaFile
+26-27clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
+0-52clang/include/clang/ScalableStaticAnalysisFramework/Frontend/SSAFOptions.h
+1-31clang/lib/Frontend/CompilerInvocation.cpp
+12-13clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
+7-18clang/include/clang/Frontend/CompilerInvocation.h
+23-1clang/include/clang/Frontend/FrontendOptions.h
+69-1423 files not shown
+75-1569 files

LLVM/project a9e444allvm/lib/Transforms/Vectorize VPlanTransforms.cpp LoopVectorizationPlanner.h, llvm/test/Transforms/LoopVectorize/VPlan widen_mem_idioms.ll scalarize-irregular-type-memops.ll

[VPlan] Split `makeMemOpWideningDecisions` into subpasses (#182593)

The idea is to have handling of strided memory operations (either from
https://github.com/llvm/llvm-project/pull/147297 or for VPlan-based
multiversioning for unit-strided accesses) done after some mandatory
processing has been performed (e.g., some types **must** be scalarized)
but before legacy CM's decision to widen (gather/scatter) or scalarize
has been committed.

And in longer term, we can uplift all other memory widening decision to
be done here directly at VPlan level. I expect this structure would also
be beneficial for that.

Changes behavior in the presence of
`-force-target-supports-gather-scatter-ops` option, but it's probably
right to scalarize irregular types regardless of that option.

---------

Co-authored-by: Luke Lau <luke at igalia.com>
Co-authored-by: Florian Hahn <flo at fhahn.com>
DeltaFile
+178-0llvm/test/Transforms/LoopVectorize/VPlan/widen_mem_idioms.ll
+138-0llvm/test/Transforms/LoopVectorize/VPlan/scalarize-irregular-type-memops.ll
+69-28llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+10-0llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+0-10llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+5-1llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-before-after-all.ll
+400-396 files

LLVM/project f5e018bclang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage UnsafeBufferUsageExtractor.cpp

fix clang-format
DeltaFile
+1-1clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
+1-11 files

LLVM/project 7eef82dclang/include/clang/Frontend CompilerInvocation.h FrontendOptions.h, clang/include/clang/ScalableStaticAnalysisFramework/Frontend SSAFOptions.h

[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions (#204621)

This class will help keeping SSAF options apart from generic
FrontendOptions. It is inspired by AnalyzerOptions.

This way all of these SSAF (and future) options will be at a centralized place.
In preparation of rdar://179151023

Co-authored-by: Claude Opus 4.7 <noreply at anthropic.com>
DeltaFile
+27-26clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
+52-0clang/include/clang/ScalableStaticAnalysisFramework/Frontend/SSAFOptions.h
+31-1clang/lib/Frontend/CompilerInvocation.cpp
+13-12clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
+18-7clang/include/clang/Frontend/CompilerInvocation.h
+1-23clang/include/clang/Frontend/FrontendOptions.h
+142-693 files not shown
+156-759 files