Skip to content

Conversation

@z1-cciauto
Copy link
Collaborator

No description provided.

d0k and others added 30 commits October 30, 2025 16:01
Both of these fail on our Clang-19 macOS bots.
Clang doesn't have "std::string_view" in the type list.
…es in tests. (llvm#165450)

Instead of invoking sed directly.

Partially reverts llvm#119778 .
When selecting for G_AMDGPU_COPY_SCC_VCC, we use S_CMP_LG_U64 or
S_CMP_LG_U32 for wave64 and wave32 respectively. However, on gfx7 we do
not have the S_CMP_LG_U64 instruction. Work around this issue by using
S_OR_B64 instead.
This PR modifies the definition of `linalg::MapOp` so that it has the
same structure of `linalg::GenericOp` and all other linalg ops. Mainly,
it adds an `out` bbarg for the body of the op. Although the `out` arg is
never used in the body, there doesn't seem to be much benefit in
specializing the op to exclude it. In fact it only makes things more
complicated because it doesn't align with the `GenericOp` structure. For
example, `linalg-generalize-named-ops` avoided converting `linalg.map`
purely because it didn't have the structure to do so. Moreover, although
some fusion patterns are applied explicitly to `GenericOp`, we can
change them to be applied to the base `LinalgOp` which will enable
fusion for any fusion-compatible linalg op, but that requires the op
having a generic structure. So these changes will enable us to use
existing generic transformation patterns on `MapOp` that weren't
possible before. They can either be applied to `MapOp` directly or
applied after converting to `GenericOp`.
)

Add legalization rules for G_ADD, G_UADDO, G_UADDE and their SUB counterparts.
This patch reverts e15025d and 88e15b7 which were temporary measures
until we had figured out the underlying issues. It turns out that recent
OSes updated localization data, removing the need for several Apple-specific
workarounds in the tests.

Fixes llvm#135385
…4408)

Given a `SCEVMulExpr` such as `5 * %m`, `gcdMIVtest` in DA assumes the
value as a multiple of 5 in a mathematical sense. However, this is not
necessarily true if `5 * %m` overflows, especially because an odd number
has an inverse modulo `2^64`. Such incorrect assumptions can lead to
invalid analysis results.
This patch stops unconditionally extracting a constant operand from
`SCEVMulExpr`. Instead, it only allows this when the `SCEVMulExpr` has
the `nsw` flag.
These tests had only ever been run on SVE or SVE+SME systems.
While investigating llvm#138717 I found they failed on an SME only
system.

This happens because before the first stop we try to initialise
SVE registers while outside of streaming mode. Which causes a
SIGILL.

To fix this, require SVE to be present.

I could go in and make these work on SME only, but it's more
complex and I will be adding SME only specific tests in
future anyway.
This is used by a couple compiler-rt tests.

Reviewers: petrhosek, ilovepi

Reviewed By: ilovepi

Pull Request: llvm#165123
One (DWARF-spec compliant) exmample is:
llvm#164372, where we attach a
`DW_AT_bit_size` to `_BitInt` types that can't be exactly described by a
byte-size.

This patch adds support for `DW_AT_bit_size` to `DWARFASTParserClang`
when parsing type tags.

Note, we don't use this bit-size yet, but will do so in follow-up
patches.
This patch does the same changes as D143001 for AArch64.

This PR is part of the work on adding strict FP support in ARM, which
was previously discussed in llvm#137101.
The `--debug-info-correlate` flag was removed in
llvm#165289, but I must have
forgotten this test. Replace with `--profile-correlate=debug-info` to
fix.
We do not have native instructions for direct bfloat comparisons.
However, we can expand bfloat to float, and do float comparison instead.

TODO: handle bfloat comparison for ballot intrinsic on global isel path.

Fixes: SWDEV-563403
…r AMDGPU (llvm#164358)

Introduces the builtins for extended image insts for amdgcn.
This adds a few new features to hdrgen, all meant to facilitate
using it with inputs and outputs that are outside the llvm-libc
source tree.

The new `extra_standards` field is a dictionary to augment the
set of names that can be used in `standards` lists.  The keys are
the identifiers used in YAML ("stdc") and the values are the
pretty names generated in the header comments ("Standard C").
This lets a libc project that's leveraging the llvm-libc sources
along with its own code define new APIs outside the formal and de
facto standards that llvm-libc draws its supported APIs from.

The new `license_text` field is a list of lines of license text
that replaces the standard LLVM license text used at the top of
each generated header.  This lets other projects use hdrgen with
their own inputs to produce generated headers that are not tied
to the LLVM project.

Finally, for any function attributes that are not in a canonical
list known to be provided by __llvm-libc-common.h, an include
will be generated for "llvm-libc-macros/{attribute name}.h",
expecting that file to define the "attribute" name as a macro.

All this can be used immediately by builds that drive hdrgen and
build libc code outside the LLVM CMake build.  Future changes
could add CMake plumbing to facilitate augmenting the LLVM CMake
build of libc with outside sources via overlays and cache files.
…llvm#165347)

This PR switches from using `llvm::sys::fs::make_absolute()` to
`FileManager::makeAbsolutePath()` so that `FileSystemOptions` (i.e. the
`-working-directory` option) and the `VFS`'s CWD have a say in how the
prebuilt module paths are resolved. This matches how the rest of the
compiler treats input files.
…witch (llvm#165724)

In the previous implementation, this would fail for cases like
`TypeSwitch<T*, std::optional<U>>` because `std::nullopt` does not match
`ResultT` exactly and the overload for callable types would be selected.

Add new overloads that support `nullptr` and `std::nullopt`. These can
be added alongside generic callables because we wouldn't want to call
any 'null' function refs anyway.

I selected the `nullptr` and `nullopt` specializations because how often
they appear in the codebase -- currently, you will see lots of code like
`.Default(std::optional<T>())` that can be simplified with this patch.
…ency." (llvm#165688)"

This reverts commit f205be0.

This new select mechanism has exposed the fact that the resources
the Arm Linux bot has can vary a lot. We do limit it to a low number
of parallel tests but in this case, I think it's write performance
somewhere.

Reland the changes since they work elsewhere, and disable lldb-dap
tests on Arm Linux while I fix our buildbot.
…able (llvm#164936)

[llvm#163091](llvm#163091)

Remove unistd.faccessat entrypoint for x86 linux if faccessat2 syscall
is not available. Tested with non existent symbol and exclusion works.
This patch fixes a bug in strftime's return value when the formatted
output exactly fills the buffer, not including the null terminator. The
previous check failed to account for the null terminator in this case,
incorrectly returning the written count instead of 0.
…lvm#164035)

In the case of a partial unswitch, we take the invariant part of an expression consisting of either conjunctions or disjunctions, and hoist it out of the loop, conditioning a branch on it (==the invariant part). We can't correctly calculate the branch probability of this new branch, but can use the probability of the existing branch as a bound. That would preserve block frequencies better than allowing for the default, static (50-50) probability for that branch.

Issue llvm#147390
boomanaiden154 and others added 13 commits October 30, 2025 12:29
There was one test that was using a subshell. This is not supported by
lit's internal shell. Rewrite the test to use the readfile substitution.

Reviewers: alexander-shaposhnikov, fmayer

Reviewed By: alexander-shaposhnikov, fmayer

Pull Request: llvm#165142
There was one test that set an environment variable without using env
and also used a subshell. These are features the internal shell does not
support. Rewrite the test to use readfile/env.

Reviewers: fmayer, MaskRay

Reviewed By: fmayer

Pull Request: llvm#165143
A typo in llvm#165711 caused sanitizer failures (the small buffer was used
for the larger test). Renamed the variables to avoid the mistake in
future.
This test used a subshell which is not supported by lit's internal
shell. Rewrite it to use the readfile substitution.

Reviewers: thurstond, fmayer

Reviewed By: thurstond, fmayer

Pull Request: llvm#165144
There was one test that used subshells to read a file. Replace those
subshells with the readfile substitution.

Reviewers: fmayer, mingmingl-llvm

Reviewed By: mingmingl-llvm, fmayer

Pull Request: llvm#165145
There is one test that uses a subshell to generate a long path name.
Replace it with a python invocation and a readfile substitution. This
helps move compiler-rt over to lit's internal shell.

Reviewers: fmayer, snehasish, teresajohnson

Reviewed By: fmayer, teresajohnson

Pull Request: llvm#165146
…sic block hashes from propeller profile. (llvm#164223)

Adding Matching and Inference Functionality to Propeller. For detailed
information, please refer to the following RFC:
https://discourse.llvm.org/t/rfc-adding-matching-and-inference-functionality-to-propeller/86238.
This is the third PR, which is used to read basic block hashes from the
propeller profile. The associated PRs are:
PR1: llvm#160706
PR2: llvm#162963

co-authors: lifengxiang1025
[[email protected]](mailto:[email protected]); zcfh
[[email protected]](mailto:[email protected])

Co-authored-by: lifengxiang1025 <[email protected]>
Co-authored-by: zcfh <[email protected]>
…ata in PGO analysis map. (llvm#164914)

This PR implements the ELF support for PostLink CFG in PGO analysis map
as discussed in
[RFC](https://discourse.llvm.org/t/rfc-extending-the-pgo-analysis-map-with-propeller-cfg-frequencies/88617/2).

A later PR will implement the Codegen Support.
…TS RMW patterns (llvm#165758)

Failure to fold if the store's chain doesn't directly touch the RMW load
source (we should be using reachesChainWithoutSideEffects to avoid
this).

Failure to fold if the stored value has additional uses (we could update
other uses of the whole stored value to reload after the new narrow
store)
This test was using subshells to setup LD_LIBRARY_PATH properly. Use a
python script and readfile substitutions to preserve the same behavior.

Reviewers: vitalybuka, fmayer, thurstond

Reviewed By: thurstond

Pull Request: llvm#165147
`cindex.py` was missing support for
[isFunctionInlined](https://clang.llvm.org/doxygen/group__CINDEX__TYPES.html#ga963097b9aecabf5dce7554dff18b061d),
this PR add it.

---------

Co-authored-by: Vlad Serebrennikov <[email protected]>
This reverts commit 8761693.

This broke a buildbot. Reverting so I can ensure I'm comitting with the
proper fix given this didn't reporoduce locally on my Linux box.

https://lab.llvm.org/buildbot/#/builders/174/builds/26760
@z1-cciauto
Copy link
Collaborator Author

@ronlieb ronlieb merged commit 8ea443e into amd-staging Oct 30, 2025
16 checks passed
@ronlieb ronlieb deleted the upstream_merge_202510301702 branch October 30, 2025 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.