LLVM/project 463f6cblibc/src/signal/linux signal_utils.h, libc/src/stdlib/linux abort_utils.h abort.cpp

[libc] update abort implementation and lift it for internal usage (#189756)
DeltaFile
+89-0libc/test/integration/src/stdlib/abort_test.cpp
+56-2libc/src/signal/linux/signal_utils.h
+54-0libc/src/stdlib/linux/abort_utils.h
+23-0libc/test/integration/src/stdlib/CMakeLists.txt
+2-17libc/src/stdlib/linux/abort.cpp
+13-2libc/src/stdlib/linux/CMakeLists.txt
+237-214 files not shown
+243-2210 files

LLVM/project 18268ebllvm/utils/gn/secondary/llvm/lib/Frontend/OpenMP BUILD.gn

gn build: Port 7b2aa02a33df



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190419
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/lib/Frontend/OpenMP/BUILD.gn
+1-01 files

LLVM/project a7aa857llvm/utils/gn/secondary/clang/tools/clang-ssaf-format BUILD.gn, llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker BUILD.gn

gn build: Port d08ebbe8eba1



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190418
DeltaFile
+1-0llvm/utils/gn/secondary/clang/tools/clang-ssaf-format/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/tools/clang-ssaf-linker/BUILD.gn
+2-02 files

LLVM/project 5c355efclang/test/CodeGenCXX pfp-load-store.cpp

Remove unnecessary -O1 from clang command.

It is generally inappropriate to pass -O flags to IRGen tests because
it makes them sensitive to optimizer behavior. #186548 makes a change to
optimizer behavior that would cause this test to fail without this change.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190417
DeltaFile
+1-1clang/test/CodeGenCXX/pfp-load-store.cpp
+1-11 files

LLVM/project 7fbe70cclang/test/CodeGenCXX pfp-load-store.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.6-beta.1
DeltaFile
+1-1clang/test/CodeGenCXX/pfp-load-store.cpp
+1-11 files

LLVM/project 4430c7dllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 vec3-base.ll

Address comment

Created using spr 1.3.7
DeltaFile
+57-11llvm/test/Transforms/SLPVectorizer/X86/vec3-base.ll
+1-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+58-122 files

LLVM/project 99b0537llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Fix formatting

Created using spr 1.3.7
DeltaFile
+1-2llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-21 files

LLVM/project 0160822llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 slp-fma-loss.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+135-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+39-92llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
+14-15llvm/test/Transforms/SLPVectorizer/X86/extractelement-multi-register-use.ll
+9-14llvm/test/Transforms/SLPVectorizer/X86/entry-no-bundle-but-extra-use-on-vec.ll
+6-13llvm/test/Transforms/SLPVectorizer/X86/c-ray.ll
+7-7llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
+210-1414 files not shown
+230-16210 files

LLVM/project 52568a5lldb/source/Core ModuleList.cpp, lldb/test/Shell/Platform/AutoLoad/Darwin dsym-python-script-name-warnings.test

[lldb] Keep the existing behavior for untrusted dSYMs (#190407)

This patch does two thing:

- It reverts to the previous behavior of warning for untrusted dSYMs.
- It includes whether a dSYM is trusted or untrusted in the warning
output.

My reasoning is that there's no tooling for automatically signing dSYMs
and therefore we shouldn't change the behavior until this is more
common. The inclusion of whether the dSYM is signed or not is the first
step towards advertising the existence of the feature.

This now also means the release note I added in #189444 is correct
(again).
DeltaFile
+13-7lldb/source/Core/ModuleList.cpp
+1-1lldb/test/Shell/Platform/AutoLoad/Darwin/dsym-python-script-name-warnings.test
+14-82 files

LLVM/project beb8b67llvm/lib/Target/RISCV RISCVInsertVSETVLI.cpp RISCVInstrPredicates.td, llvm/test/CodeGen/RISCV/rvv expandload.ll fixed-vectors-shuffle-int-interleave.ll

[RISCV] Allow coalesceVSETVLIs to move an LI if it allows a vsetvli to be mutated. (#190287)

If the AVL is provided by an LI, move it earlier if it allows us to
mutate the prior vsetvli.

Assisted-by: Claude Sonnet 4.5
DeltaFile
+3,666-5,073llvm/test/CodeGen/RISCV/rvv/expandload.ll
+32-6llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+13-22llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-int-interleave.ll
+6-9llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-fp-interleave.ll
+6-9llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
+9-0llvm/lib/Target/RISCV/RISCVInstrPredicates.td
+3,732-5,11915 files not shown
+3,752-5,15521 files

LLVM/project 3f37512clang/include/clang/Basic Diagnostic.h, clang/unittests/Basic DiagnosticTest.cpp

[DiagnosticInfo] Allow std::string_view in DiagnosticBuilder operator<<. (#190374)

After a68ae7b0cc0922b79114aabe8cf1ec8dc68524d7, calling `<<` with a
`std::string_view` gives:

```
clang/include/clang/Basic/Diagnostic.h:1319:8: error: use of overloaded operator '<<' is ambiguous (with operand types 'const StreamingDiagnostic' and 'const std::string_view')
 1319 |     DB << V;
      |     ~~ ^  ~
```
DeltaFile
+37-17clang/unittests/Basic/DiagnosticTest.cpp
+7-0clang/include/clang/Basic/Diagnostic.h
+44-172 files

LLVM/project 55bcc05llvm/utils create_template_mca_tests.py

[utils][MCA] Add a helper script to create input-file-based tests (#190074)

This is a helper script to create llvm-mca tests that follow the style
described in #173926 . That is, instead of putting both the input
instructions and CHECK lines in the same file, we consolidate all input
(files) into a single place, read by their `.test` files counterpart to
check the per-processor results.

The script added by this patch will enumerate each (`.s`) input files
and create the corresponding `.test` file, parameterized by the provided
`--triple` and `--cpu` options. Users also have the option to exclude
certain input files or add additional `llvm-mca` / `FileCheck`
arguments.
DeltaFile
+85-0llvm/utils/create_template_mca_tests.py
+85-01 files

LLVM/project 26e1df2llvm/unittests/Support raw_socket_stream_test.cpp

[llvm][SupportTests] Fix a race condition in temporary socket construction (#190404)

createUniquePath doesn't make an exclusive lock on the filename until
the socket is created, and thus the removal step in these tests was
creating a TOCTOU race. Instead, arrange for the file to be cleaned up
*after* we're done with it.

rdar://142847430
DeltaFile
+5-12llvm/unittests/Support/raw_socket_stream_test.cpp
+5-121 files

LLVM/project 7111a81clang/lib/Driver Driver.cpp, clang/test/Driver hip-toolchain-no-rdc.hip

clang: Stop assuming one toolchain covers all GPUArchs

Previously there was a vector of toolchains, but a number of
places assumed there was only a single toolchain. I'm also not
sure how you were supposed to identify which toolchain to use from
this array. Make this parallel to the stored GpuArches. For
the fat binary cases, we still need to pick a toolchain so that
still just picks the first one; it probably should use
the most neutral available triple.

This also doesn't feel like a complete fix. The various Actions
all contain a reference to an OffloadingToolChain, which seems
to frequently be missing and isn't set at construction time.
DeltaFile
+27-23clang/lib/Driver/Driver.cpp
+1-1clang/test/Driver/hip-toolchain-no-rdc.hip
+28-242 files

LLVM/project 36e781cclang/lib/Driver Driver.cpp

clang: Remove dead null toolchain check (#190402)
DeltaFile
+0-2clang/lib/Driver/Driver.cpp
+0-21 files

LLVM/project 64987a9clang-tools-extra/clang-doc Representation.h

[clang-doc] Enforce arena allocated types are trivially destructible (#190049)

We can enforce at compile-time that the types we want to place in the
arenas are always safe to allocate there.
DeltaFile
+26-0clang-tools-extra/clang-doc/Representation.h
+26-01 files

LLVM/project c7824acllvm/lib/CodeGen/SelectionDAG TargetLowering.cpp

[TargetLowering] Remove stale comment. NFC (#190275)

Missed removing in #188653
DeltaFile
+1-2llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+1-21 files

LLVM/project 6f68e58offload/plugins-nextgen/amdgpu/src rtl.cpp

offload: Parse triple using to identify amdgcn-amd-amdhsa (#190319)

Avoid hardcoding the exact triple.
DeltaFile
+15-4offload/plugins-nextgen/amdgpu/src/rtl.cpp
+15-41 files

LLVM/project 77e32a7flang/lib/Semantics check-cuda.cpp, flang/test/Semantics cuf09.cuf

[flang][cuda] Avoid false semantic error on unified array component (#190389)
DeltaFile
+30-0flang/lib/Semantics/check-cuda.cpp
+21-3flang/test/Semantics/cuf09.cuf
+51-32 files

LLVM/project 1cc0aacclang-tools-extra/clang-doc Representation.cpp Representation.h, clang-tools-extra/clang-doc/tool ClangDocMain.cpp

[clang-doc] Merge data into persistent memory

We have a need for persistent memory for the final info. Since each
group processes a single USR at a time, every USR is only ever processed by
a single thread from the thread pool. This means that we can keep per
thread persistent storage for all the info. There is significant
duplicated data between all the serialized records, so we can just merge
the final/unique items into the persistent arena, and clear out the
scratch/transient arena as we process each record in the bitcode.

The patch adds some APIs to help with managing the data, merging, and
allocation of data in the correct arena. It also safely merges and deep
copies data from the transient arenas into persistent storage that is
never reset until the program completes.

This patch reduces memory by another % over the previous patches,
bringing the total savings over the baseline to 57%. Runtime performance
and benchmarks stay mostly flat with modest improvements.


    [31 lines not shown]
DeltaFile
+134-10clang-tools-extra/clang-doc/Representation.cpp
+25-25clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+7-0clang-tools-extra/clang-doc/Representation.h
+166-353 files

LLVM/project 479a4ccclang-tools-extra/clang-doc BitcodeReader.cpp Serialize.cpp, clang-tools-extra/unittests/clang-doc SerializeTest.cpp MergeTest.cpp

[clang-doc] Move Info types into arenas

Info types used to own significant chunks of data. As we move these into
local arenas, these types must be trivially destructible, to avoid
leaking resources when the arena is reset. Unfortunaly, there isn't a
good way to transition all the data types one at a time, since most of
them are tied together in some way. Further, as they're now allocated in
the arenas, they often cannot be treated the same way, and even the
aliases and interfaces put in pLace to simplify the transition cannot
cover the full range of changes required.

We also use some SFINAE tricks to avoid adding boilerplate for helper
APIs, we'd otherwise ahve to support

Though it introduces some additional churn, we also try to keep tests
from using arena allocation as much as possible, since this is not
required to test the implementation of the library. As much of the test
code needed to be rewritten anyway, we take the opportunity to
transition now.

    [41 lines not shown]
DeltaFile
+419-187clang-tools-extra/clang-doc/BitcodeReader.cpp
+246-189clang-tools-extra/unittests/clang-doc/SerializeTest.cpp
+196-129clang-tools-extra/unittests/clang-doc/MergeTest.cpp
+176-80clang-tools-extra/unittests/clang-doc/ClangDocTest.cpp
+137-75clang-tools-extra/clang-doc/Serialize.cpp
+71-41clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
+1,245-70114 files not shown
+1,649-94320 files

LLVM/project 4e7cddfclang-tools-extra/clang-doc Generators.h MDMustacheGenerator.cpp, clang-tools-extra/clang-doc/benchmarks ClangDocBenchmark.cpp

[clang-doc] Move non-arena allocated types off the OwnedPtr alias

Some types should not be using this alias, which was over applied to
APIs that wont participate in arena style allocation. This patch
restores them to their correct spelling.
DeltaFile
+7-7clang-tools-extra/clang-doc/Generators.h
+4-4clang-tools-extra/clang-doc/MDMustacheGenerator.cpp
+4-4clang-tools-extra/clang-doc/ClangDoc.cpp
+3-3clang-tools-extra/clang-doc/HTMLGenerator.cpp
+2-2clang-tools-extra/clang-doc/benchmarks/ClangDocBenchmark.cpp
+1-1clang-tools-extra/clang-doc/Generators.cpp
+21-211 files not shown
+22-227 files

LLVM/project c5271efclang-tools-extra/clang-doc Representation.h

[clang-doc] Enforce arena allocated types are trivially destructible

We can enforce at compile-time that the types we want to place in the
arenas are always safe to allocate there.
DeltaFile
+26-0clang-tools-extra/clang-doc/Representation.h
+26-01 files

LLVM/project ddf6eebclang-tools-extra/clang-doc BitcodeReader.cpp BitcodeReader.h

[clang-doc] Simplify parsing and reading bitcode blocks

Much of the logic int he readBlock implementation is boilerplate, and is
repeated for each implementation/specialization. This will become much
worse as we introduce new custom block reading logic as we migrate
towards arena allocation. In preparation for that, we're introducing the
change in logic now, which should make later refactoring much more
straightforward.
DeltaFile
+103-120clang-tools-extra/clang-doc/BitcodeReader.cpp
+5-0clang-tools-extra/clang-doc/BitcodeReader.h
+1-1clang-tools-extra/clang-doc/Representation.h
+109-1213 files

LLVM/project c1cfa88clang-tools-extra/clang-doc Representation.cpp

[clang-doc] Consolidate merging logic

As we migrate things in the arena, this logic may get more complex.
Factoring it out now, will give clear extension points to make this
easier to manage.
DeltaFile
+10-9clang-tools-extra/clang-doc/Representation.cpp
+10-91 files

LLVM/project 7805b6cclang-tools-extra/clang-doc BitcodeReader.cpp Serialize.cpp, clang-tools-extra/unittests/clang-doc MDGeneratorTest.cpp BitcodeTest.cpp

[clang-doc] Make CommentInfo arena allocated

This patch move the CommentInfo type into the arena. It updates block
handling to collect child info types and serialize the array in one
shot.

We also clean up the test code to avoid using the arenas in the tests.
This has the upside of making the test more hermetic, and avoids churn
in the related code as the allocation API interfaces evolve.

Performance and memory usage regress slightly. This is somewhat expected
as we do not yet aggressively release short term memory during merge
operations. Future patches will reclaim this overhead.

| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 998.5s | 1010.5s | +9.8% | +1.2% |
| Memory | 86.0G | 43.8G | 47.8G | -44.4% | +9.2% |


    [26 lines not shown]
DeltaFile
+124-94clang-tools-extra/unittests/clang-doc/MDGeneratorTest.cpp
+70-111clang-tools-extra/unittests/clang-doc/BitcodeTest.cpp
+66-103clang-tools-extra/unittests/clang-doc/YAMLGeneratorTest.cpp
+15-30clang-tools-extra/unittests/clang-doc/MergeTest.cpp
+17-9clang-tools-extra/clang-doc/BitcodeReader.cpp
+15-5clang-tools-extra/clang-doc/Serialize.cpp
+307-3526 files not shown
+345-37012 files

LLVM/project 9f29f54clang-tools-extra/clang-doc Representation.cpp Representation.h

[clang-doc] Support deep copy between arenas for merging

Upcoming changes to the merge step will necessitate that we clear the
transient arenas and merge new items into the persistent arena. However
there are some challenges with that, as the existing types typically
don't want to be copied. We introduce some new APIs to simplify that
task and ensure we don't accidentally leak memory.

On the performance front, we reclaim about 2% of the overhead, bringing
the cumulative overhead from the series of patches down to about 7% over
the baseline.

| Metric | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Time | 920.5s | 1014.5s | 991.5s | +7.7% | -2.3% |
| Memory | 86.0G | 39.9G | 40.0G | -53.4% | +0.3% |

| Benchmark | Baseline | Prev | This | Culm% | Seq% |
| :--- | :--- | :--- | :--- | :--- | :--- |

    [28 lines not shown]
DeltaFile
+140-21clang-tools-extra/clang-doc/Representation.cpp
+30-0clang-tools-extra/clang-doc/Representation.h
+170-212 files

LLVM/project 9471fabclang/lib/CodeGen CGCall.cpp, clang/test/CodeGen struct-passing.c

[clang] Fix issues with const/pure on varargs function. (#190252)

There are two related issues here. On the declaration/definition side,
we need to make sure the markings are conservative. Then on the caller
side, we need to make sure we don't access parameters that don't exist.

Fixes #187535.
DeltaFile
+34-5clang/test/CodeGen/struct-passing.c
+13-1clang/lib/CodeGen/CGCall.cpp
+47-62 files

LLVM/project c061f33llvm/test/CodeGen/ARM cmp-to-cmn.ll

[ARM] Add new test that will demonstrate the cmn node in the ARM backend (NFC) (#179282)

No code changes yet, but this is going to change once the cmn node lands
in the backend.
DeltaFile
+478-0llvm/test/CodeGen/ARM/cmp-to-cmn.ll
+478-01 files

LLVM/project 88dabccclang/lib/Driver Driver.cpp

clang: Remove dead null toolchain check
DeltaFile
+0-2clang/lib/Driver/Driver.cpp
+0-21 files