Commit Graph

542294 Commits

Author SHA1 Message Date
Andrew Rogers
3574560b6b [llvm] annotate remaining Support and ADT library interfaces for DLL export (#145354)
## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the remaining LLVM Support
and ADT interfaces that were missed in, or modified since, previous
patches. The annotations currently have no meaningful impact on the LLVM
build; however, they are a prerequisite to support an LLVM Windows DLL
(shared library) build.

## Background

This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

## Overview

The bulk of these changes were generated automatically using the
[Interface Definition Scanner (IDS)](https://github.com/compnerd/ids)
tool, followed formatting with `git clang-format`.

The following manual adjustments were also applied after running IDS:
- Annotate the private method `IEEEFloat::addOrSubtractSignificand` with
`LLVM_ABI` because it is used by a unit test friend class.
- Annotate several `friend` function declarations with `LLVM_ABI_FRIEND`
since the corresponding function declarations are annotated with
`LLVM_ABI` (required by MSVC).

## Validation

Local builds and tests to validate cross-platform compatibility. This
included llvm, clang, and lldb on the following configurations:

- Windows with MSVC
- Windows with Clang
- Linux with GCC
- Linux with Clang
- Darwin with Clang
2025-06-24 16:17:34 -07:00
Andrew Rogers
5ae00a7ce2 [llvm] annotate remaining Telemetry and ToolDrivers interfaces for DLL export (#145369)
## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the remaining Telemetry and
ToolDrivers interfaces that were missed in, or modified since, previous
patches. The annotations currently have no meaningful impact on the LLVM
build; however, they are a prerequisite to support an LLVM Windows DLL
(shared library) build.

## Background

This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

## Overview

The bulk of these changes were generated automatically using the
[Interface Definition Scanner (IDS)](https://github.com/compnerd/ids)
tool, followed formatting with `git clang-format`.

The following manual adjustments were also applied after running IDS:
- Add `#include "llvm/Support/Compiler.h"` to files where it was not
automatically added by IDS because there were no pre-existing include
statements.
- Add default ctor and delete the copy ctor and copy assignment operator
in the `Telemetry::Manager` class. This is required because the class is
now annotated with `LLVM_ABI` and cannot otherwise be fully instantiated
for export.

## Validation

Local builds and tests to validate cross-platform compatibility. This
included llvm, clang, and lldb on the following configurations:

- Windows with MSVC
- Windows with Clang
- Linux with GCC
- Linux with Clang
- Darwin with Clang
2025-06-24 16:16:47 -07:00
Andrew Rogers
c84d620d4d [llvm] annotate WindowsDriver and WIndowsManifest interfaces for DLL export (#145567)
## Purpose
This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the WindowsDriver and
WindowsManifest interfaces. The annotations currently have no meaningful
impact on the LLVM build; however, they are a prerequisite to support an
LLVM Windows DLL (shared library) build.

## Background
This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

## Overview
These changes were generated automatically using the [Interface
Definition Scanner (IDS)](https://github.com/compnerd/ids) tool,
followed formatting with `git clang-format`.

## Validation
Local builds and tests to validate cross-platform compatibility. This
included llvm, clang, and lldb on the following configurations:

- Windows with MSVC
- Windows with Clang
- Linux with GCC
- Linux with Clang
- Darwin with Clang
2025-06-24 16:15:49 -07:00
Benjamin Maxwell
f37d944152 [AArch64][SME] Use reportFatalUsageError rather than assert (NFC) (#145491)
Fixes #144351
2025-06-25 00:08:36 +01:00
Thurston Dang
5eb5f0d876 Revert "[msan] Automatically print shadow for failing outlined checks" (#145611)
Reverts llvm/llvm-project#145107

Reason: buildbot breakage
(https://lab.llvm.org/buildbot/#/builders/51/builds/18512)
2025-06-24 15:53:19 -07:00
Stanislav Mekhanoshin
d06c2efd67 [AMDGPU] Support v_lshl_add_u64 in gfx1250 (#145591)
It also brings in some DPP changes needed to define it.
2025-06-24 15:49:01 -07:00
Qiongsi Wu
51d1385cdf [clang Dependency Scanning] Enhance File Caching Diagnostics (#144105)
`DependencyScanningFileSystemSharedCache` can currently report
out-of-date negatively stat cached paths. This PR enhances the reporting
with two modifications.

1. The reported path are now null terminated char arrays instead of
`StringRef`s. This way the API's user can avoid copying `StringRef`s to
other containers because the char arrays can be used directly.
2. The API now reports out-of-date cache entry due to file size changes.
Specifically, we check each file's cached size against the size of the
same file on the underlying FS. If the sizes are different, diagnostics
will be reported.

rdar://152247357
2025-06-24 15:48:39 -07:00
Craig Topper
48a21e6915 [RISCV] Fix a correctness issue in optimizeCondBranch. Prevent optimizing compare with x0. NFC (#145440)
We were incorrectly changing -1 to 0 for unsigned compares in case 1.
The comment incorrectly said UINT64_MAX is bigger than INT64_MAX, but
we were doing a signed compare and UINT64_MAX is smaller than INT64_MAX
in signed space.

Prevent changing 0 constants since we can use x0. The test cases
for these are contrived to use addi rd, x0, 0. We're more likely
to have a COPY from x0 which we already don't optimize for other
reasons.

Check if registers are virtual before calling hasOneUse. The use count
for physical registers is meaningless.
2025-06-24 15:45:06 -07:00
Craig Topper
9702d37062 [RISCV] Support scalable vector vp.reverse/splice with Zvfhmin/Zvfbfmin. (#145588) 2025-06-24 15:40:24 -07:00
qxy11
9e3bb5bb91 Reland "[lldb] Add count for number of DWO files loaded in statistics #144424" (#145572)
This relands changes in #144424 for adding a count of DWO files
parsed/loaded and the total number of DWO files.

The previous PR was reverted in #145494 due to the newly added unit
tests failing on Windows and MacOS CIs since these platforms don't
support DWO. This change add an additional
`@add_test_categories(["dwo"])` to the new tests to
[skip](cd46354dbd/lldb/packages/Python/lldbsuite/test/test_categories.py (L56))
these tests on Windows/MacOS.

Original PR: #144424

### Testing
Ran unit tests
```
$ bin/lldb-dotest -p TestStats.py llvm-project/lldb/test/API/commands/statistics/basic/
----------------------------------------------------------------------
Ran 24 tests in 211.391s

OK (skipped=3)
```
2025-06-24 15:25:23 -07:00
Jun Wang
46d33b6102 [AMDGPU][MC] Allow dpp in v_pk_fmac_f16 for GFX9 and GFX10 (#144782)
Allows dpp in v_pk_fmac_f16 for GFX9, and both dpp and dpp8 for GFX10.
2025-06-24 15:14:00 -07:00
Thurston Dang
1b71ea411a [msan] Automatically print shadow for failing outlined checks (#145107)
A commonly used aid for debugging MSan reports is `__msan_print_shadow()`, which requires manual app code annotations (typically of the variable in the UUM report or nearby). This is in contrast to ASan, which automatically prints out the shadow map when a check fails.

This patch changes MSan to print the shadow that failed an outlined check (checks are outlined per function after the `-msan-instrumentation-with-call-threshold` is exceeded) if verbosity >= 1. Note that we do not print out the shadow map of "neighboring" variables because this is technically infeasible; see "Caveat" below.

This patch can be easier to use than `__msan_print_shadow()` because this does not require manual app code annotations. Additionally, due to optimizations, `__msan_print_shadow()` calls can sometimes spuriously affect whether a variable is initialized.

As a side effect, this patch also enables outlined checks for arbitrary-sized shadows (vs. the current hardcoded handlers for {1,2,4,8}-byte shadows).

Caveat: the shadow does not necessarily correspond to an individual user variable, because MSan instrumentation may combine and/or truncate multiple shadows prior to emitting a check that the mangled shadow is zero (e.g., `convertShadowToScalar()`, `handleSSEVectorConvertIntrinsic()`, `materializeInstructionChecks()`). OTOH it is arguably a strength that this feature emit the shadow that directly matters for the MSan check, but which cannot be obtained using the MSan API.
2025-06-24 15:09:44 -07:00
Steven Wu
a93eb14e85 [LTO][Legacy] Add new C APIs to query undefined symbols in assembly (#145413)
Add new APIs to legacy LTO C API to surface undefined symbols that
parsed from assembly. This information is needed by thin LTO to figure
out the symbols not to dead strip, while such information is
automatically forwarded in full LTO already. Linker needs to fetch the
information and adds the undefs from assembly to MustPreserveSymbols
list just like treating undefs from a non-LTO object file.

Resolves: https://github.com/llvm/llvm-project/issues/29340
2025-06-24 15:01:29 -07:00
sivadeilra
0a3c5c42a1 Add support for Windows Secure Hot-Patching (redo) (#145565)
(This is a re-do of #138972, which had a minor warning in `Clang.cpp`.)

This PR adds some of the support needed for Windows hot-patching.

Windows implements a form of hot-patching. This allows patches to be
applied to Windows apps, drivers, and the kernel, without rebooting or
restarting any of these components. Hot-patching is a complex technology
and requires coordination between the OS, compilers, linkers, and
additional tools.

This PR adds support to Clang and LLVM for part of the hot-patching
process. It enables LLVM to generate the required code changes and to
generate CodeView symbols which identify hot-patched functions. The PR
provides new command-line arguments to Clang which allow developers to
identify the list of functions that need to be hot-patched. This PR also
allows LLVM to directly receive the list of functions to be modified, so
that language front-ends which have not yet been modified (such as Rust)
can still make use of hot-patching.

This PR:

* Adds a `MarkedForWindowsHotPatching` LLVM function attribute. This
attribute indicates that a function should be _hot-patched_. This
generates a new CodeView symbol, `S_HOTPATCHFUNC`, which identifies any
function that has been hot-patched. This attribute also causes accesses
to global variables to be indirected through a `_ref_*` global variable.
This allows hot-patched functions to access the correct version of a
global variable; the hot-patched code needs to access the variable in
the _original_ image, not the patch image.
* Adds a `AllowDirectAccessInHotPatchFunction` LLVM attribute. This
attribute may be placed on global variable declarations. It indicates
that the variable may be safely accessed without the `_ref_*`
indirection.
* Adds two Clang command-line parameters: `-fms-hotpatch-functions-file`
and `-fms-hotpatch-functions-list`. The `-file` flag may point to a text
file, which contains a list of functions to be hot-patched (one function
name per line). The `-list` flag simply directly identifies functions to
be patched, using a comma-separated list. These two command-line
parameters may also be combined; the final set of functions to be
hot-patched is the union of the two sets.
* Adds similar LLVM command-line parameters:
`--ms-hotpatch-functions-file` and `--ms-hotpatch-functions-list`.
* Adds integration tests for both LLVM and Clang.
* Adds support for dumping the new `S_HOTPATCHFUNC` CodeView symbol.

Although the flags are redundant between Clang and LLVM, this allows
additional languages (such as Rust) to take advantage of hot-patching
support before they have been modified to generate the required
attributes.

Credit to @dpaoliello, who wrote the original form of this patch.
2025-06-24 14:56:55 -07:00
Changpeng Fang
ebdd5a04f5 AMDGPU: Add checks to verify that gfx1250 no longer supports vimage instructions (#145602)
These vimage instructios are guarded by HasImageInsts, and the related code is already in the main.
2025-06-24 14:50:46 -07:00
Jonas Devlieghere
7e3af67631 [lldb] Add more tests MCP protocol types
Add unit testing for the different message types.
2025-06-24 14:36:04 -07:00
joaosaffran
770d0b028a [DirectX] Fix order of v2::DescriptorRange (#145555)
As pointed in #145438, the order of elements in `v2::DescriptorRange` is
wrong according to the root signature file format. This changes the
order and updates the code and test to continue to pass.

Closes: #145438

---------

Co-authored-by: joaosaffran <joao.saffran@microsoft.com>
2025-06-24 14:27:58 -07:00
Changpeng Fang
fe8a26263a AMDGPU: Remove Formatted MUBUF instructions from gfx1250 support (#145590) 2025-06-24 14:17:13 -07:00
Jonas Devlieghere
aa3c5d0297 Revert "[lldb][RISCV] fix LR/SC atomic sequence handling in lldb-server" (#145597)
Reverts llvm/llvm-project#127505 because
`riscv/step/TestSoftwareStep.py` is failing on the bots.
2025-06-24 14:04:58 -07:00
Florian Hahn
830b2c842e [LV] Replace redundant ExtractLastElement of reduction result (NFC).
Replace redundant ExtractLastElement VPInstructions early. This is NFC,
as the VPInstruction computing the final result is vector-to-scalar,
producing a single scalar already. This enables follow-up changes to
model more aspects of reductions directly in VPlan.
2025-06-24 21:48:58 +01:00
Krzysztof Parzyszek
3a71884ab1 [flang][OpenMP] Map device pointers on host device as well (#145562)
Given a TARGET DATA construct with USE_DEVICE_PTR(x) and IF(FALSE), the
compiler will crash if `x` was used in the body. The cause of the crash
is that the MLIR->LLVM codegen tries to look up the translated value of
x, but one had not been mapped.

Given an IF clause, the translation will generate an if-then-else
construct, with the "else" block corresponding to the false condition,
i.e. the host device playing the role of the target device. In that
block, still process the USE_DEVICE_ADDR/USE_DEVICE_PTR clauses, which
will cause the translation mappings to be created.

Fixes https://github.com/llvm/llvm-project/issues/145558
2025-06-24 15:38:23 -05:00
Chinmay Deshpande
3413aa83f3 Revert "[AMDGPU] Implement IR variant of isFMAFasterThanFMulAndFAdd (… (#145580)
…#121465)"

This reverts commit 211bcf67aa.
2025-06-24 16:10:27 -04:00
Jaden Angella
e615544e2b [mlir][EmitC] Add pass to wrap a func in class (#141158)
Goal: Enable using C++ classes to AOT compile models for MLGO.

This commit introduces a transformation pass that converts standalone
`emitc.func` operations into `emitc.class `structures to support
class-based C++ code generation for MLGO.

Transformation details:
- Wrap `emitc.func @func_name` into `emitc.class @Myfunc_nameClass`
- Converts function arguments to class fields with preserved attributes
- Transforms function body into an `execute()` method with no arguments
- Replaces argument references with `get_field` operations

Before: emitc.func @Model(%arg0, %arg1, %arg2) with direct argument
access
After: emitc.class with fields and execute() method using get_field
operations

This enables generating C++ classes that can be instantiated and
executed as self-contained model objects for AOT compilation workflows.
2025-06-24 13:07:22 -07:00
Princeton Ferro
e1cd450c8f [NVPTX] fold movs into loads and stores (#144581)
Fold movs into loads and stores by increasing the number of return
values or operands. For example:

```
L: v2f16,ch = Load [p]
e0 = extractelt L, 0
e1 = extractelt L, 1
consume(e0, e1)
```

...becomes...

```
L: f16,f16,ch = LoadV2 [p]
consume(L:0, L:1)
```
2025-06-24 16:02:13 -04:00
Florian Hahn
3187d4da24 [Verifier] Add additional tests for dereferenceable assumptions. 2025-06-24 20:45:21 +01:00
Florian Hahn
c3e25e7fc4 [VPlan] Add VPInst::getNumOperandsForOpcode, use to verify in ctor (NFC) (#142284)
Add a new getNumOperandsForOpcode helper to determine the number of
operands from the opcode. For now, it is used to verify the number
operands at VPInstruction construction.

It returns -1 for a few opcodes where the number of operands cannot be
determined (GEP, Switch, PHI, Call).

This can also be used in a follow-up to determine if a VPInstruction is
masked based on the number of arguments.

PR: https://github.com/llvm/llvm-project/pull/142284
2025-06-24 20:39:35 +01:00
Jonas Devlieghere
b171ebbfff [lldb] Defend against infinite recursion in GetClassDescriptor (#145396)
We defend against a direct cycle where a base class ValueObject is its
own parent, but not against a longer base cycle. This cycle requires
that some value's Type includes a base class, and that base class is in
a class hierarchy that cycles back to the original base class.

I wrote a test case that creates a cycle in the class hierarchy by
dynamically overwriting the superclass of an object, but I can't
reproduce the crash. I can't think of any other way to make a real
object that behaves that way. Maybe is a type system problem in making
up the type for whatever type we're trying to ingest here.

While unsatisfying, without a reproducer this is the best we can do for
now.

rdar://140293233
2025-06-24 12:28:40 -07:00
Ivan Tadeu Ferreira Antunes Filho
2b5141189f [bazel] Add missing comma to BUILD.bazel (#145573) 2025-06-24 15:19:36 -04:00
Stanislav Mekhanoshin
fe0568389d [AMDGPU] Require aligned VGPRs for gfx1250 (#145561) 2025-06-24 12:16:01 -07:00
Robert Imschweiler
f624ba2d9d [OpenMP][clang] 6.0: parsing/sema for num_threads 'strict' modifier (#145490)
Implement parsing and semantic analysis support for the optional
'strict' modifier of the num_threads clause. This modifier has been
introduced in OpenMP 6.0, section 12.1.2.

Note: this is basically 1:1 https://reviews.llvm.org/D138328.
2025-06-24 21:12:40 +02:00
Max191
4d21da002a [mlir] Return vectorized values instead of replacing (#144158)
Updates the linalg::vectorize function to return a
`FailureOr<VectorizationResult>` containing the values to replace the
original operation, instead of directly replacing the original
operation. This aligns better with the style of transforms used with the
TilingInterface, and gives more control to users over the lowering,
since it allows for additional transformation of the IR before
replacement.

There was already a `VectorizationResult` defined, which was used for
the internal vectorize implementation using `CustomVectorizationHook`s,
so the old struct is renamed to `VectorizationHookResult`.

Note for integration: The replacement of the original operation is now
the responsibility of the caller, so wherever `linalg::vectorize` is
used, the caller must also do
`rewriter.replaceOp(vectorizeResults->replacements)`.

---------

Signed-off-by: Max Dawkins <max.dawkins@gmail.com>
2025-06-24 12:06:41 -07:00
Andres-Salamanca
280f60ed6d [CIR] Fix NYI AAPCS bit-fields by skipping unsupported case (#145560)
This PR addresses the error mentioned in
https://github.com/llvm/llvm-project/pull/145067#issuecomment-3001104015,
which occurs on ARM when handling an unsupported bit-field case. The
patch removes the error and replaces it with an assert, marking the
missing feature.
2025-06-24 12:03:17 -07:00
Changpeng Fang
ce4d214947 AMDGPU: Remove MTBUF instructions from gfx1250 support (#145563) 2025-06-24 11:59:13 -07:00
SingleAccretion
cd46354dbd [WebAssembly] Enable a limited amount of stackification for debug code (#136510)
This change is a step towards fixing one long-standing problem with
LLVM's debug WASM codegen: excessive use of locals. One local for each
temporary value in IR (roughly speaking).

This has a lot of problems:
1) It makes it easy to hit engine limitations of 50K locals with certain
code patterns and large functions.
2) It makes for larger binaries that are slower to load and slower to
compile to native code.
3) It makes certain compilation strategies (spill all WASM locals to
stack, for example) for debug code excessively expensive and makes debug
WASM code either run very slow, or be less debuggable.
4) It slows down LLVM itself.

This change addresses these partially by running a limited version of
the stackification pass for unoptimized code, one that gets rid of the
most 'obviously' unnecessary locals.

Care needs to be taken to not impact LLVM's ability to produce high
quality debug variable locations with this pass. To that end:
1) We only allow stackification when it doesn't require moving any
instructions.
2) We disable stackification of any locals that are used in
DEBUG_VALUEs, or as a frame base.
I have verified on a moderately large example that the baseline and the
diff produce the same kinds (local/global/stack) of locations, and the
only differences are due to the shifting of instruction offsets, with
many local.[get|set]s not being present anymore.

Even with this quite conservative approach, the results are pretty good:
1) 30% reduction in raw code size, up to 10x reduction in the number of
locals for select large methods (~1000 => ~100).
2) ~10% reduction in instructions retired for an "llc -O0" run on a
moderately sized input.
2025-06-24 11:40:47 -07:00
Ivan Tadeu Ferreira Antunes Filho
de569ad6b8 [bazel] Add //mlir:IR to Support for #144897 (#145569)
PR https://github.com/llvm/llvm-project/pull/144897 added #include
"mlir/IR/Visitors.h" to mlir/include/mlir/Support/StateStack.h. This
change fixes the build file.
2025-06-24 14:40:10 -04:00
Craig Topper
5ff6c8e843 [RISCV] Add Zvfh scalable vector vp.splice tests. NFC 2025-06-24 11:36:51 -07:00
Erick Velez
b8ea65025d [clang-doc] document global variables (#145070)
Visit and map VarDecls to document variables declared in namespace scope.
2025-06-24 11:36:31 -07:00
Baranov Victor
de2ec228c0 [analyzer] Fix crash when modelling 'getline' function in checkers (#145229)
Fixes #144884
2025-06-24 20:18:15 +02:00
Dave Bartolomeo
9e33cb22f9 Fix pragma-comment.c test failing on false match (#145455)
Sometimes the forbidden text `foo` or `bar` could appear in the Clang
version string metadata. Treating the version string as a `CHECK-LABEL:`
prevents this.

Fixes #145453
2025-06-24 14:11:20 -04:00
p-x9
52fee553a5 [DWARF] Fix redundant DW_AT_ prefix in HANDLE_DW_AT definition for INTEL_other_endian (#145336)
The prefix 'DW_AT_' is automatically added by macro expansion in
consumers of Dwarf.def. Having it explicitly in the macro argument
results in duplicated naming such as DW_AT_DW_AT_INTEL_other_endian.
2025-06-24 11:05:36 -07:00
Ivan Tadeu Ferreira Antunes Filho
ffdfe94a2b [bazel] Add //mlir:DialectUtils to TestTransforms for #145376 (#145557)
PR https://github.com/llvm/llvm-project/pull/145376 added #include
"mlir/Dialect/Utils/StaticValueUtils.h" to
mlir/test/lib/Transforms/TestTransformsOps.cpp . This change fixes the
build file.
2025-06-24 14:01:49 -04:00
Ashley Coleman
21423c7fdc [DirectX] Make firstbithigh intrinsic use first arg as overload type (#145401)
Sibling to https://github.com/llvm/llvm-project/pull/145350 part of
https://github.com/llvm/llvm-project/issues/144966

firstbituhigh and firstbitshigh should use the first arg for overloads
instead of the return type since the return is always i32
2025-06-24 12:00:21 -06:00
Louis Dionne
52b27c2bd6 [libc++] Refactor basic_filebuf::overflow() (#144793)
Refactor the function to streamline the logic so it matches the
specification in [filebuf.virtuals] more closely. In particular, avoid
modifying the put area pointers when we loop around after a partial
codecvt conversion.

Note that we're technically not up-to-spec in this implementation, since
the Standard says that we shouldn't try more than once after a partial
codecvt conversion. However, this refactoring attempts not to change any
functionality.
2025-06-24 13:58:49 -04:00
Dave Lee
23b0564800 [lldb] Fix AppleObjCDeclVendor for classes which have no methods (#145452)
Fix the rare case where an ObjC class has ivars but no methods. The fix is to not early
return when a class has no method list.
2025-06-24 10:58:06 -07:00
Hui
0b8f3cc6b7 [libc++] Fix no-localisation CI failure on <complex> (#145213) 2025-06-24 13:56:17 -04:00
Andy Kaylor
90828e00a0 [CIR] Restore the underscore in dso_local (#145551)
The CIR handling of `dso_local` for globals was upstreamed without the
underscore, making it inconsistent with the incubator and LLVM IR. This
change restores the underscore.
2025-06-24 10:44:15 -07:00
Tom Eccles
8f7f48a97e [flang][OpenMP][NFC] remove globals with mlir::StateStack (#144898)
Idea suggested by @skatrak
2025-06-24 18:30:37 +01:00
Lucas Ramirez
c74ed8a0d3 [AMDGPU][Scheduler] Support for rematerializing SGPRs and AGPRs (#140036)
This adds the ability to rematerialize SGPRs and AGPRs to the
scheduler's `PreRARematStage`, which can currently only rematerialize
ArchVGPRs. This also fixes a small potential issue in the stage where,
in case of spilling, the target occupancy could be set to a lower than
expected value when the function had either one of the "amdgpu-num-sgpr"
or "amdgpu-num-vgpr" attributes set.
2025-06-24 19:30:27 +02:00
Samira Bakon
09b43a5a86 [clang][dataflow] Expose simple access to child StorageLocation presence. (#145520)
`getChild` does not offer this knowledge, and a map lookup is
significantly cheaper than iteration over `children()`.
2025-06-24 13:29:40 -04:00
Mahesh-Attarde
2b938769c6 [X86][CodeGen] Add Scheduling Model for LNL-P (#139446)
With this patch, we introduce scheduling model for Lunarlake P-core.
This Scheduling model is generated by tool developed by Intel Engineer
@HaohaiWen
Available here https://github.com/HaohaiWen/schedtool

Data Sources:
- Intel SDM
https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
- Alderlake Scheduling Model and Uops-info table for unchanged entries
from previous generations.
2025-06-24 19:28:07 +02:00