16776 Commits

Author SHA1 Message Date
Sam Elliott
164505d348
[NFC][AsmMatcher] Add Commented Name for FeatureBitsets (#190688) 2026-04-06 18:17:13 -07:00
Nico Weber
3b0221090c
[gn] fix mistake from 88f6b181b6ab2 (#190601) 2026-04-06 07:23:07 -04:00
Alan Li
5e0efc0f1d
Reland "[GlobalISel][LLT] Introduce FPInfo for LLT (Enable bfloat, ppc128float and others in GlobalISel) (#155107)" (#188502)
This is a reland of https://github.com/llvm/llvm-project/pull/155107
along with a fix for old gcc builds.

This patch is reverted in
https://github.com/llvm/llvm-project/pull/188344 due to compilation
failures described in
https://github.com/llvm/llvm-project/pull/155107#issuecomment-4121292756

The fix to old gcc builds is to remove `constexpr` modifiers in the
original patch in 0721d8e7768c011b8cf2d4d223ca6eca3392b1f9
2026-04-04 05:57:13 -07:00
Peter Collingbourne
18268ebc76
gn build: Port 7b2aa02a33df
Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190419
2026-04-03 15:29:52 -07:00
Peter Collingbourne
a7aa857e9b
gn build: Port d08ebbe8eba1
Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190418
2026-04-03 15:29:25 -07:00
Min-Yih Hsu
55bcc05a72
[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.
2026-04-03 14:59:14 -07:00
Arthur Eubanks
88f6b181b6
[gn build] Port commits (#190392)
0cecacd971a5
2cff995e91c3
34ec1870ae46
54e5803d0231
64b728128df3
76ed0ad3577e
d95292f67b48
2026-04-03 12:29:38 -07:00
Peter Collingbourne
935f21e1d5
gn build: Port d8e9e0af1cb6
Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190290
2026-04-02 17:13:02 -07:00
Peter Collingbourne
f20b40ef97
gn build: Port f63d33da0a51 more
Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/190289
2026-04-02 17:08:29 -07:00
Rahul Joshi
99786f20ee
[LLVM][Intrinsics] Refactor IITDescriptor (#190011)
The main change is to eliminate the use of "Argument" terminology when
dealing with overloaded types since overloaded types can be either
argument or return values, and some additional renaming for clarity.

1. Rename `Tys` argument to various intrinsic APIs to `OverloadTys` to
better reflect its meaning.
2. Rename `IITDescriptorKind::Argument` to
`IITDescriptorKind::Overloaded` to better convey that it's an overloaded
type. Removed "Argument" suffix for other kinds for dependent types.
3. Rename `ArgKind` to `AnyKind`, `getArgumentNumber` to
`getOverloadIndex`, `getArgumentKind` to `getOverloadKind`,
`getRefArgNumber` to `getRefOverloadIndex`, and `IIT_ARG` to `IIT_ANY`.
4. Rename `IIT_ANYPTR` (used to represent a pointer qualified with
address space) to `IIT_PTR_AS` to clearly distinguish it from
`llvm_anyptr_ty`
5. Change the packing of [ref overload index & overload index] for
`VecOfAnyPtrsToElt` to pack the overload index into the lower bits, so
we can use the `getOverloadIndex` function to get the overload index.
2026-04-02 06:19:01 -07:00
Balázs Benics
803d1d6609
[clang][ssaf] Implement JSON format for CallGraph summary (#189681)
rdar://170258016
2026-04-02 12:14:46 +01:00
Gabriel Baraldi
5e0a06b34d
Move ExpandMemCmp and MergeIcmp to the middle end (#77370)
Moving these into the middle-end pipeline will allow for additional
optimization of the expansion result, such as CSE of redundant loads
(c.f. https://godbolt.org/z/bEna4Md9r). For now, we conservatively place
the passes at the end of the middle-end pipeline, so we mostly don't
benefit from additional optimizations yet. The pipeline position will be
moved in a future change.

This builds on work done by legrosbuffle in
https://reviews.llvm.org/D60318.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:57:00 +02:00
Victor Chernyakin
5d393aee10
[clang-tidy][NFC] Remove the ObjCModuleTest.cpp unit test (#185832)
These unit tests only duplicate the tests in
`clang-tools-extra/test/clang-tidy/checkers/objc/forbidden-subclassing.m`.
2026-04-01 07:19:42 -07:00
Balázs Benics
d08ebbe8eb
[clang][ssaf] Add CallGraph summary and extractor (#188753)
rdar://170258016
2026-03-31 14:03:02 +01:00
Feng Zou
e1aef5ed5f
[X86][APX] Remove NF entries in X86CompressEVEXTable (#189308)
NF (No-Flags) instructions should not compress to non-NF instructions,
as this would incorrectly modify flags behavior. The compression table
is only intended for encoding optimizations that preserve semantics.

This removes the incorrect NF entries that could have led to
miscompilation if the compression logic were applied.
2026-03-31 09:30:49 +08:00
LLVM GN Syncbot
e09b5895d2 [gn build] Port 032f36bdbc73 2026-03-30 06:20:04 +00:00
LLVM GN Syncbot
ac2dce0bf3 [gn build] Port 75eae603ff90 2026-03-30 04:27:05 +00:00
LLVM GN Syncbot
191a9a911c [gn build] Port c0bd2f9084d7 2026-03-28 21:31:51 +00:00
LLVM GN Syncbot
0067d92d53 [gn build] Port f8416c864353 2026-03-27 12:21:03 +00:00
LLVM GN Syncbot
f59191aa24 [gn build] Port dc1411163170 2026-03-27 12:21:02 +00:00
Nico Weber
5a403150b4 [gn] port c1ea10a854dcbb (clangd-remap) 2026-03-27 08:20:53 -04:00
Nikita Popov
dfefc03769
[lit] Explicitly unset timer to free thread stack (#188717)
Currently the virtual address space usage of lit fluctuates wildly, with
peak usage exceeding 4GB, which results in subsequent thread spawning
errors on 32-bit systems.

The cause of this is a circular reference in TimeoutHelper._timer (via the
callback), which causes the 8MB thread stack to not be immediately
reclaimed when the timer is cancelled.

We can avoid this by explicitly unsetting the timer.
2026-03-26 16:57:41 +01:00
Nico Weber
249a3d19dd [gn build] Port 28318d5db86f 2026-03-26 11:08:39 -04:00
Nico Weber
a5cd44f4f7 [gn] port 25904ac91554 2026-03-26 11:08:36 -04:00
Nico Weber
f08f7ecc7a [gn] "port" 80831832e03f 2026-03-26 11:07:22 -04:00
Aiden Grossman
d7a39cc97e
[Utils] Add ability to configure git-llvm-push from .gitconfig (#187398)
This lets someone set git config options at whatever scope (per-repo,
global, etc.) for the options that they care about. This provides
similar functionality to just wrapping the script in a shell script with
one's desired options without the need to do that.

We need to be careful about how when we get the flags and how to execute
the git command to get the flags. For now, we do this before normal
argument parsing and fail silently to avoid printing output if someone
passes something like --quiet through the git config. This means options
like --verbose and --dry-run don't work for this specific command, but I
think that is a reasonable tradeoff.
2026-03-25 17:10:50 -07:00
Nick Begg
b7d8831f8c
[lit] dealloc ApplyResult objects as they're waited on (#188642)
In _wait_for(), all async tasks are waited for. However, the objects
are held in the async_result list until the function calls complete.
This leads to about 3.6gig mem usage on my system when running
check-llvm, even though these objects aren't needed after the ar.get()
call.

Dealloc them as we go instead.

Addresses #188641
2026-03-26 00:07:34 +00:00
Nico Weber
b6ef20edc3 [gn] port 0eb8f018a1c8 2026-03-25 19:53:33 -04:00
Nico Weber
0000e52e2a [gn] port 731bcb5a1c774 (tblgen aarch64 builtins) 2026-03-25 11:52:09 -04:00
Nico Weber
902b89b946 [gn] fix typo in 627f6aa1cd930e6a 2026-03-25 10:46:55 -04:00
Nico Weber
627f6aa1cd [gn build] Port daec3b9fb6e2 (clang hlsl header tblgen) 2026-03-25 10:22:43 -04:00
Jakub Kuderski
9c6054d29d
[lldb][ADT] Fix LLDB/GDB formatters for PointerUnion after recactoring (#188483)
In #188242, we replaced `PointerUnion`'s `PointerIntPair` storage with
`PunnedPointer<void*>`. The old formatters relied on the PIP synthetic
provider (LLDB) / `get_pointer_int_pair helper` (GDB) which no longer
work.

Instead, read raw bytes from `PunnedPointer` and compute the active tag
from template argument type alignments -- the same fixed-width encoding
the C++ implementation uses. When template arg enumeration is truncated
(e.g., function-local types in GDB), the formatters fall back to showing
a tag-stripped `void*` instead of silently misdecoding.

Alternatives that didn't work out:
- Adding a C++ helper (`getActiveMemberIdx`) callable from Python: gets
optimized out even with `__attribute__((used, noinline))`, and
expression evaluation fails for synthetic children.
- Using `isa`/`dyn_cast` checks from Python: requires expression
evaluation, which does not work for local types or synthetic children
without a frame context.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 10:16:01 -04:00
Nico Weber
857a40547c [gn] port a5a7f6266ef05 2026-03-25 09:35:42 -04:00
Mehdi Amini
6a045c29a9
Revert "[GlobalISel][LLT] Introduce FPInfo for LLT (Enable bfloat, ppc128float and others in GlobalISel) (#155107)" (#188344)
This reverts commit b1aa6a45060bb9f89efded9e694503d6b4626a4a and commit
ce44d63e0d14039f1e8f68e6b7c4672457cabd4e.

This fails the build with some older gcc:

llvm/include/llvm/CodeGenTypes/LowLevelType.h:501:35: error: call to
non-constexpr function ‘static llvm::LLT llvm::LLT::integer(unsigned
int)’
     return integer(getSizeInBits());
                                   ^
2026-03-24 21:40:36 +00:00
Denis.G
b1aa6a4506
[GlobalISel][LLT] Introduce FPInfo for LLT (Enable bfloat, ppc128float and others in GlobalISel) (#155107)
Added extra information in LLT to support ambiguous fp types during
GlobalISel. Original idea by @tgymnich

Main differences from https://github.com/llvm/llvm-project/pull/122503
are:
* Do not deprecate LLT::scalar
* Allow targets to enable/disable IR translation with extenden LLT via
`TargetOption::EnableGlobalISelExtendedLLT` (disabled by default)
* `IRTranslator` use `TargetLoweringInfo` for appropriate `LLT`
generation.
* For this reason added flag in GlobalISelMatchTable` to allow switch
between legacy and new extended LLT names
* Revert using stubs like `LLT::float32` for float types as they are
real now. Added `TODO` for such cases.

Also MIRParser now may parse new type indentifiers.

---------

Co-authored-by: Tim Gymnich <tim@gymni.ch>
Co-authored-by: Ryan Cowan <ryan.cowan@arm.com>
2026-03-24 08:40:39 -04:00
David Spickett
f243d8656b
[llvm][utils] Handle Issue/PR authors having no display name set (#186094)
user.login is the account name and user.name is an optional display name
(often their full name). I got an email generated from a colleague's PR
that said:
```
Author: None (<their username>)
```

As they hadn't set user.name in their account. Which isn't a problem,
but it would be neater if we didn't print None.

So I've added a helper function to handle that. If the user has set
both, the output is as it was before, if the user has not, we just show
the login name.

The login name can apparently be None too. In that case we'll print
"None" for it. This does not seem to be a common case though, and I'm
not sure printing anything else would be any more useful.
2026-03-24 09:54:09 +00:00
Arthur Eubanks
53e3ed82f6
[gn build] Port commits (#188129)
f7d5e593d38a
b2edc0a3f8a5
3e4efe3ed4a2
2026-03-23 14:15:46 -07:00
Nico Weber
651482267d [gn] port a2c0c436999 2026-03-22 15:13:03 -04:00
Nico Weber
0e7a8ac6c1 [gn build] Port c6ba0e00161e 2026-03-22 15:13:03 -04:00
Nico Weber
c58f32215d [gn build] Port 78729251fbb2 2026-03-22 15:13:03 -04:00
Nico Weber
2be28d65fb [gn] "port" 0ec9f7ebbdf72a94
Just use an empty list always.
2026-03-21 16:48:38 -04:00
Alex MacLean
0d251db0f1
[NVPTX] Split NVVM annotation query helpers out of NVPTXUtilities (NFC) (#187349) 2026-03-20 08:36:04 -07:00
Nico Weber
d339d0053c [gn] port a021a93e5320d8 2026-03-20 10:50:10 -04:00
Nico Weber
17d2890e7e [gn] port 7bf871c39f739 2026-03-20 10:50:10 -04:00
Nico Weber
9ab77fa8da [gn] port aa3465793a250
Exposed by 8ccda467e100.
2026-03-20 10:02:23 -04:00
Oliver Old
689afb5ecd
Windows release build: Add checksum verification for downloaded source archives (#187113)
Add checksum verification for libxml2, zlib, and zstd source archives
via `cmake -E *sum` and `cmake -E compare_files` commands.

This also adds the following minor changes:
* Factor out libxml2 version into variable.
* Check `tar` return code.
2026-03-20 09:25:56 +01:00
Nico Weber
3991dcbbd5 [gn] port 81e8a1e59ee28e54 2026-03-19 19:23:54 -04:00
Nico Weber
8ccda467e1 [gn] port 02451f54d642ae
Also remove dependency on TargetsToBuild, which was apparently never
needed.
2026-03-19 19:22:07 -04:00
Nico Weber
8771fd92f6 [gn build] Port d18a784d4106 2026-03-19 19:15:25 -04:00
Nico Weber
7a544217fe [gn build] Port b17db271d030 2026-03-19 19:15:24 -04:00