Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Feb 8, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Feb 8, 2025
arsenm and others added 29 commits November 13, 2025 10:17
This patch is a follow up on #167532, which refactored these method's
code into the relevant `printOperation()` functions but did not remove
them.
… C/C++ (#167735)

The variable-category 'allocatable' is explicitly noted as applying only
to Fortran. If specified in C/C++ it should generate an error. NOTE:
Issue will be filed against OpenMP 6.0 specification that restriction is
missing from 'default' clause section.

From the OpenMP 6.0 specification:
  Section 7.5.1 default Clause
    Semantics, under Fortran only, L18-19, pg. 223
The allocatable variable-category specifies variables with the
ALLOCATABLE
    attribute.

  Section 7.9.9 defaultmap Clause
    Semantics, under Fortran only, L9-10, pg. 292
The allocatable variable-category specifies variables with the
ALLOCATABLE
    attribute.

    Restrictions, C/C++
      L1, pg. 293
      The specified variable-category must not be allocatable.
…ranch (#166625)

GitHub's Update Branch button is a helpful tool for quickly updating a
PR before merging, but it might also be important to point out that it
creates a merge commit without additional prompting, which may or may
not be desired behavior for a given LLVM contributor.

Opened on the suggestion of @lamb-j
…167889)

The casts are currently no-op because `MCRegUnit` is a typedef'ed to
`unsigned`, but this will change soon enough and explicit cast will be
required.
)

Refactor the XCnt optimization checks so that they can be checked when
applying a pre-existing waitcnt. This removes unnecessary xcnt waits
when taking a loop backedge.
In preparation for porting to the NewPM.

Reviewers: kazutakahirata, arsenm

Reviewed By: kazutakahirata, arsenm

Pull Request: #167910
AMDGPU: Really use AV classes by default for vector classes

Update getRegClassFor to use AV classes in place of VGPRs for
gfx90a-gfx950. There are a handful of regressions. Most are
enabling unprofitable rematerialization which reduce register
count by 1 but add an unnecessary instruction.
The bug [1] this is working around was fixed in SWIG 4.1. The workaround
uses functions and constants that are not part of the limited API, which
I'm trying to eliminate to make LLDB compatible with the Python Limited
C API [2].

[1] swig/swig#1640
[2] #151617
…FC) (#167931)

The methods will help reduce the number of static_casts after changing
MCRegUnit to a strong typedef.
This change follows the pattern of
315dfe5 by making strtofloat also
accept wchar_t* strings
(in addition to regular char*). It uses overloads from wctype_utils or
specialized functions to ensure comparison with literal characters (or
literal strings) pick char or wchar_t variants based on the argument
type.

The wcstof implementation is added, with unit test cases copied from
strtof test suite.
…#166679)

With this change DiffUpdater can update expected files even if both
files are created by split-files, if one of them ends with ".expected".
This is useful when a file is created and then modified during the test.
This patch adds initial version of `FortranObjectViewOpInterface`
that helps walking def-use chains containing "pass-through"
operations (like `fir.convert`, etc.). The new interface is used
in FIR AliasAnalysis to demonstrate potential usage (I know we have
such walks elsewhere in Flang, but I am only changing FIR AliasAnalysis
in this patch).

This is an NFC change. I noticed that if I remove followBoxData
code there are no failing LIT tests, but I decided to keep it
in order to keep the change looking more like NFC.

This change is a follow-up on the discussion in #164020:
it is unclear if the `FortranObjectViewOpInterface` methods and their
usage, as in this patch, apply to the ViewLike operations that
use the core MLIR `ViewLikeOpInterface`. So this patch is the path
towards simplifying Flang code while also enabling a future discussion
about having such an interface in core MLIR.
This can absorb redundant loads when forming vector load. Can be used to
fix the situation created by VectorCombine. See:
https://discourse.llvm.org/t/what-is-the-purpose-of-vectorizeloadinsert-in-the-vectorcombine-pass/88532
Simplify the lowering by using the barrier op from NVVM updated in
#167036
Prefacing PR #167742 (stacked above this), noticed that running UTC made some changes unrelated to the aforementioned PR. Factoring them out here.
…65565)

The [Google style guide] now allows (and recommends) writing TODOs with
the following format:

```cpp
// TODO: bug reference - details about what needs to be done.
```

With this change the checker accepts the new style and suggests in in
the fix-it hint. The previous style is still accepted.

[Google style guide]:
https://google.github.io/styleguide/cppguide.html#TODO_Comments
#167932)

DynamicLibraryTests has a workaround for AIX that calls
export_executable_symbols after add_llvm_unittest, instead of just
passing the `EXPORT_SYMBOLS` switch. At this point, the
default_gtest(_main) libraries is added to the linked library set.
However, default_gtest(_main) are ALIAS libraries. This PR replaces the
ALIAS libraries with the ALIASED_TARGET before passing it to
extract_symbols.py.

Fixes failure of the clang-ppc64-aix buildbot after #164794.
Biasing towards the native `sqrt`​ not returning NaN.  


Issue #147390
LU-JOHN and others added 30 commits November 15, 2025 09:21
…168128)

When shrinking and/or to bitset* remove leftover implicit scc def.
bitset* instructions do not set scc.

Signed-off-by: John Lu <[email protected]>
The section headers present in the DBI stream got lost when using
`pdb2yaml` and `yaml2pdb`.

They are a list of COFF section headers. The
`llvm::object::coff_section` didn't have a YAML mapping, so I added one
in llvm-pdbutil. The mapping for COFF sections in ObjectYAML includes
the section data itself, so we can't use it here.

Creation of the section map and headers in yaml2pdb is done like in LLD:
https://github.com/llvm/llvm-project/blob/438a18c1e105ca04e624239644195e48b28b5099/lld/COFF/PDB.cpp#L1695-L1703
This adds additional test coverage for folding FCMP uno
(#166823)
Identified with bugprone-unused-local-non-trivial-variable.
Identified with llvm-use-ranges.
Identified with readability-delete-null-pointer.
NumElts is alreadyof type int.

Identified with readability-redundant-casting.
This patch is limited to single-word replacements to fix spelling
and/or grammar to ease the review process.  Punctuation and markdown
fixes are specifically excluded.
Simplifies some tests which no do not need to pass TC, and future
changes will require to always have a trip count available.
Found this issue #167958 when adding these tests, thanks for the quick
fix @clementval.
Serialize throw Doxygen comments for exceptions. Accepts both \throw and
\throws.
…#168223)

Makes it so that a NamedSequenceOp can be directly applied to a Module,
via a method `apply(...)`.
Without this patch, DenseMapBase::moveFrom() moves buckets and leaves
the moved-from object in a zombie state.  This patch teaches
moveFrom() to call kill() so that the move-from object is in a known
good state.  This brings moveFrom()'s behavior in line with standard
C++ move semantics.

kill() is implemented so that it takes the fast path in the destructor
-- both destroyAll() and deallocateBuckets().
Identified with llvm-use-ranges.
callOperatorDecl is already of type FunctionDecl *.

Identified with readability-redundant-casting.
I found that in some performance scenarios, such as under O2, this pr can be helpful for a series of loading global variables.
…filter (#168226)

The CIBestPractices.rst document uses `releases/*` as the branch name
filter for push events. The actual release branch names match the
pattern `release/*`.
Forward declare a couple of classes for simplicity, remove some unused
headers, clean up a comment.

Tested with check-all.
Add a new builtin function __builtin_bswapg. It works on any integral
types that has a multiple of 16 bits as well as a single byte.

Closes #160266
…Mem2Reg (#168066)

This patch adds `ub` as a dependent dialect to `memref`, and uses
`ub.poison` as the default value in `AllocaOp::getDefaultValue` for the
mem2reg pass.

This aligns the behavior of `mem2reg` with LLVM, where loading a value
before having a value should be poison.

---------

Signed-off-by: Fabian Mora <[email protected]>
…EPENDENCE_MASK (#168221)

TargetConstant nodes don't match TableGen ImmLeaf patterns during
instruction selection. When this zero constant flows into the AArch64
CCMP formation code, the machine verifier hits an assertion in expensive
checks.

Fixes: #168227
Replace the assert checking if CurrentLinkI is a CmpInst with a pattern
matching check in the if condition. This uses VPlan-level pattern matching
instead of inspecting the underlying instruction type.
This patch groups public functions, including the constructors, the
destructor, and the copy/move assignment operators.
llvm::all_of already returns bool.

Identified with readability-redundant-casting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment