Commit Graph

475458 Commits

Author SHA1 Message Date
annamthomas
9cfc7ff168
[LiveRange] Verify Other LiveRange in Join API (#66809)
The LiveRange::join API takes in two live ranges. We should verify the
LiveRange passed in to the Join API as well.
2023-09-20 13:58:16 -04:00
Fangrui Song
903a7e487b [bazel] Port 4fbb5f9350 2023-09-20 10:22:26 -07:00
Guillot Tony
624c130578 [Clang][C] Fixed a bug where we reject an _Atomic qualified integer in a switch statment
We are currently rejecting an _Atomic qualified integer in a switch statment.
This fixes the issue by doing an Lvalue conversion before trying to match on the type.
Fixes #65557

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D159522
2023-09-20 19:19:02 +02:00
Joseph Huber
3641d18557 [libc][Obvious] Fix incorrect RPC opcode for clearerr
Summary:
This was mistakenly using the opcode for `ferror` which wasn't noticed
because tests using this weren't yet activated. This patch fixes this
mistake.
2023-09-20 11:54:35 -05:00
Alexey Bataev
ebed4692f8 [SLP]Fix a crash when trying to find operand with re-vectorized main
instruction.

Need to check if the operand scalars are vectorized in the a different
vector node, if the main instruction is already gets vectorized in other
vector node.
2023-09-20 09:54:15 -07:00
Oleksandr "Alex" Zinenko
a590ff589c
[mlir] regenerate linalg named ops yaml (#65475)
The Linalg named ops specification went out of sync with the OpDSL
description, presumably due to direct manual modifications of the yaml
file.

Additionally, the unsigned division has been generating the signed
scalar instruction, which is now fixed.
2023-09-20 18:53:29 +02:00
Oleksandr "Alex" Zinenko
4fbb5f9350
[mlir] introduce transform.loop.forall_to_for (#65474)
Add a straightforward sequentialization transform from `scf.forall` to a
nest of `scf.for` in absence of results and expose it as a transform op.
This is helpful in combination with other transform ops, particularly
fusion, that work best on parallel-by-construction `scf.forall` but
later need to target sequential `for` loops.
2023-09-20 18:53:08 +02:00
Nicolas Vasilache
f557986d0e
[mlir] Bazel fixes for 1b8b556443 (#66929) 2023-09-20 18:52:41 +02:00
Aart Bik
3e4a8c2c7d
[mlir][sparse] remove most bufferization.alloc_tensor ops from sparse (#66847)
The only ones left need actual deprecation in bufferization module.
2023-09-20 09:51:08 -07:00
Brad Smith
a009fa79a4
[Driver] Some improvements for path handling on NetBSD (#66863)
- Make use of concat macro with various paths
- Replace usage of = with SysRoot
2023-09-20 12:50:37 -04:00
Sirish Pande
cc3491fd45
[SelectionDAG] [NFC] Add pre-commit test for PR66701. (#66796)
[SelectionDAG] [NFC] Add pre-commit test for PR66701.

Co-authored-by: Sirish Pande <sirish.pande@amd.com>
2023-09-20 11:37:18 -05:00
David Green
46a1908c26 [AArch64] Add some tests for setcc known bits fold. NFC 2023-09-20 17:36:01 +01:00
Vladislav Dzhidzhoev
b8e9450acb Cleanup fallback NOT checks 2023-09-20 18:22:54 +02:00
Vladislav Dzhidzhoev
fb8f59156f [AArch64][GlobalISel] Adopt dup(load) -> LD1R patterns from SelectionDAG
Follow-up of #65630.
2023-09-20 18:22:54 +02:00
Alex Voicu
de018f5ca4
[clang][CodeGen] The eh_typeid_for intrinsic needs special care too (#65699)
This change is symmetric with the one reviewed in
<https://reviews.llvm.org/D157452> and handles the exception handling
specific intrinsic, which slipped through the cracks, in the same way,
by inserting an address-space cast iff RTTI is in a non-default AS.
2023-09-20 17:12:19 +01:00
Fangrui Song
0de0b6dded
[ELF] Postpone "unable to move location counter backward" error (#66854)
The size of .ARM.exidx may shrink across `assignAddress` calls. It is
possible
that the initial iteration has a larger location counter, causing
`__code_size =
__code_end - .; osec : { . += __code_size; }` to report an error, while
the error would
have been suppressed for subsequent `assignAddress` iterations.

Other sections like .relr.dyn may change sizes across `assignAddress`
calls as
well. However, their initial size is zero, so it is difficiult to
trigger a
similar error.

Similar to https://reviews.llvm.org/D152170, postpone the error
reporting.
Fix #66836. While here, add more information to the error message.
2023-09-20 09:06:45 -07:00
Scott Linder
434907e474
[NFC][AsmPrinter] Refactor FrameIndexExprs as a std::set (#66433)
This avoids the need for a mutable member to implement deferred sorting,
and some bespoke code to maintain a SmallVector as a set.

The performance impact seems to be negligible in some small tests, and
so seems acceptable to greatly simplify the code.

An old FIXME and accompanying workaround are dropped. It is ostensibly
dead-code within the current codebase.
2023-09-20 12:05:05 -04:00
Fangrui Song
309d1c43bd [ELF][test] Add a test to demonstrate #66836 2023-09-20 09:04:41 -07:00
Simon Pilgrim
ad762f2a9f [X86] Regenerate pr39098.ll 2023-09-20 16:58:00 +01:00
Simon Pilgrim
2ec697b4c7 [AMDGPU] Regenerate always-uniform.ll 2023-09-20 16:58:00 +01:00
Slava Zakharin
69d9ad1cee
[flang][hlfir] Fixed cleanup code placement indeterminism in OrderedAssignments. (#66811)
I had to remove test3() case in 73086dab9e
to fix the buildbots. This patch brings it back with proper fix.
2023-09-20 08:34:11 -07:00
Natalie Chouinard
47a377d5e0 [SPIRV] Fix OpConstant float and double printing
Print OpConstant floats as formatted decimal floating points, with
special case exceptions to print infinity and NaN as hexfloats.

This change follows from the fixes in
https://github.com/llvm/llvm-project/pull/66686 to correct how
constant values are printed generally.

Differential Revision: https://reviews.llvm.org/D159376
2023-09-20 15:26:41 +00:00
Nico Weber
2ed813ff26 [gn] Add dummy build file for VETests
sync_source_lists_from_cmake.py checks that every unittest in CMake
also exists in the GN build. 4f330b7f75 added VETests, but the GN
build doesn't include the VE target. So add a dummy target for this
to placate the check.
2023-09-20 11:08:36 -04:00
David Spickett
fdc265be26 [lldb][AArch64] Invalidate cached VG value before reconfiguring SVE registers
This fixes 46b961f36b.

Prior to the SME changes the steps were:
* Invalidate all registers.
* Update value of VG and use that to reconfigure the registers.
* Invalidate all registers again.

With the changes for SME I removed the initial invalidate thinking
that it didn't make sense to do if we were going to invalidate them
all anyway after reconfiguring.

Well the reason it made sense was that it forced us to get the
latest value of vg which we needed to reconfigure properly.

Not doing so caused a test failure on our Graviton bot which has SVE
(https://lab.llvm.org/buildbot/#/builders/96/builds/45722). It was
flaky and looping it locally would always fail within a few minutes.
Presumably it was using an invalid value of vg, which caused some offsets
to be calculated incorrectly.

To fix this I've invalided vg in AArch64Reconfigure just before we read
it. This is the same as the fix I have in review for SME's svg register.

Pushing this directly to fix the ongoing test failure.
2023-09-20 16:05:34 +01:00
Nicolas Vasilache
1b8b556443
[mlir][Vector] Add fastmath flags to vector.reduction (#66905)
This revision pipes the fastmath attribute support through the
vector.reduction op. This seemingly simple first step already requires
quite some genuflexions, file and builder reorganization. In the
process, retire the boolean reassoc flag deep in the LLVM dialect
builders and just use the fastmath attribute.

During conversions, templated builders for predicated intrinsics are
partially cleaned up. In the future, to finalize the cleanups, one
should consider adding fastmath to the VPIntrinsic ops.
2023-09-20 16:57:20 +02:00
Fraser Cormack
ebefe83c09 [NFC] Fix spelling 'constanst' -> 'constants' 2023-09-20 15:33:03 +01:00
Joe Nash
2c0f2b510c
[AMDGPU] Convert tests rotr.ll and rotl.ll to be auto-generated (#66828)
and add GFX11 coverage. NFC
2023-09-20 10:32:04 -04:00
Hans Wennborg
700f683f9d Revert "[clang] Don't inherit dllimport/dllexport to exclude_from_explicit_instantiation members during explicit instantiation (#65961)"
This uncovered a problem with virtual methods and
exclude_from_explicit_instantiation, see
https://github.com/llvm/llvm-project/issues/66909

Reverting until that's fixed.

> This is a continuation of https://reviews.llvm.org/D155713
>
> Fixes https://github.com/llvm/llvm-project/issues/40363

This reverts commit 84216d1735.
2023-09-20 16:31:12 +02:00
Walter Erquinigo
96b1784ac8
[lldb-vscode] Use auto summaries whenever variables don't have a summary (#66551)
Auto summaries were only being used when non-pointer/reference variables
didn't have values nor summaries. Greg pointed out that it should be
better to simply use auto summaries when the variable doesn't have a
summary of its own, regardless of other conditions.

This led to code simplification and correct visualization of auto
summaries for pointer/reference types, as seen in this screenshot.

<img width="310" alt="Screenshot 2023-09-19 at 7 04 55 PM"
src="https://github.com/llvm/llvm-project/assets/1613874/d356d579-13f2-487b-ae3a-f3443dce778f">
2023-09-20 10:23:41 -04:00
Alex Bradbury
feb5c5779c [VE] Add TargetParser to CMakeLists.txt for VE unittest
This fixes the -DBUILD_SHARED_LIBS=True build, which broke after #66730.
2023-09-20 15:22:10 +01:00
Luís Marques
40d4837037
Warn on align directive with non-zero fill value in virtual sections (#66792)
This patch warns when an align directive with a non-zero fill value is
used in a virtual section. The fill value is also set to zero,
preventing an assertion in `MCAssembler::writeSectionData` for the case
of `MCFragment::FT_Align` from tripping.
2023-09-20 15:17:50 +01:00
Benjamin Maxwell
2f11ce5579
[mlir][VectorOps] Extend vector.constant_mask to support 'all true' scalable dims (#66638)
This extends `vector.constant_mask` so that mask dim sizes that
correspond to a scalable dimension are treated as if they're implicitly
multiplied by vscale. Currently this is limited to mask dim sizes of 0
or the size of the dim/vscale. This allows constant masks to represent
all true and all false scalable masks (and some variations):

```
// All true scalable mask
%mask = vector.constant_mask [8] : vector<[8]xi1>

// All false scalable mask
%mask = vector.constant_mask [0] : vector<[8]xi1>

// First two scalable rows
%mask = vector.constant_mask [2,4] : vector<4x[4]xi1>
```
2023-09-20 14:54:42 +01:00
Louis Dionne
e3b166229f [libc++] Sort available features before printing them
This makes it easier to compare the features available in two adjacent
runs of lit.
2023-09-20 09:53:07 -04:00
Simon Pilgrim
27d4f229ad [X86] X86DAGToDAGISel::matchIndexRecursively - replace hard coded recursion limit with SelectionDAG::MaxRecursionDepth. NFCI. 2023-09-20 14:52:01 +01:00
Matt Devereau
d297399b35 [AArch64][SME] Enable TPIDR2 lazy-save for za_preserved
This change makes callees with the __arm_preserves_za
type attribute comply with the dormant state requirements
when it's caller has the __arm_shared_za type attribute.
Several external SME functions also do not need to lazy
save.

5e67092434/aapcs64/aapcs64.rst (L1381)

Differential Revision: https://reviews.llvm.org/D159186
2023-09-20 13:34:41 +00:00
Louis Dionne
257eb74524
[libc++] Simplify how the global stream tests are written (#66842)
Instead of relying on Bash, use the builtin Lit commands whenever
possible. The motivation is to stop running %t.exe behind Bash, which
breaks on macOS 13.5 with SIP enabled because DYLD_LIBRARY_PATH isn't
forwarded to the underlying process when running through a protected
process.

For more details, see [1].

[1]: https://developer.apple.com/library/archive/documentation/Security/Conceptual/System_Integrity_Protection_Guide/RuntimeProtections/RuntimeProtections.html
2023-09-20 09:33:16 -04:00
Natalie Chouinard
f7bfa583b7
[SPIR-V] Fix 64-bit integer literal printing (#66686)
Previously, the SPIR-V instruction printer was always printing the first
operand of an `OpConstant`'s literal value as one of the fixed operands.
This is incorrect for 64-bit values, where the first operand is actually
the value's lower-order word and should be combined with the following
higher-order word before printing.

This change fixes that issue by waiting to print the last fixed operand
of `OpConstant` instructions until the variadic operands are ready to be
printed, then using `NumFixedOps - 1` as the starting operand index for
the literal value operands.

Depends on D156049
2023-09-20 09:31:14 -04:00
Abhinav271828
c1b997464b
[MLIR][Presburger] Template Matrix to allow MPInt and Fraction; use IntMatrix for integer matrices (#66897)
Matrix has been templated to Matrix (for MPInt and Fraction) with
explicit instantiation for both these types.
IntMatrix, inheriting from Matrix<MPInt>, has been created to allow for
integer-only methods.
makeMatrix has been duplicated to makeIntMatrix and makeFracMatrix.

This was already landed previously but was reverted in
98c994c8e2 due to build failure. This
fixes the failure.
2023-09-20 14:29:33 +01:00
martinboehme
ed65ced22a
[clang][dataflow] Identify post-visit state changes in the HTML logger. (#66746)
Previously, post-visit state changes were indistinguishable from
ordinary
iterations, which could give a confusing picture of how many iterations
a block
needs to converge.

Now, post-visit state changes are marked with "post-visit" instead of an
iteration number:


![screenshot](https://github.com/llvm/llvm-project/assets/29098113/5e9553d6-dfaa-45d3-8ea4-e623a14ee4c5))
2023-09-20 15:18:57 +02:00
Freddy Ye
cf1d2e4f94
[X86] Fix an assembler bug of CMPCCXADD. (#66748) 2023-09-20 21:01:07 +08:00
Freddy Ye
632d13ce84
[X86] Align other variants to use void * as 512 variants. (#66310)
For *_stream_* series intrinsics
2023-09-20 20:59:25 +08:00
Martin Erhart
65341b09b0
[mlir][bufferization][NFC] Move memref specific implementation of AllocationOpInterface to memref dialect directory (#66637)
Follow-up on #65578
2023-09-20 14:49:52 +02:00
Nikita Popov
e88a64f7ab [Docs] Update ExceptionHandling example (NFC)
Fix some syntax errors and use opaque pointers.
2023-09-20 14:36:52 +02:00
Timm Bäder
765b38fbf1 [clang][Interp][NFC] Small code refactoring 2023-09-20 14:33:46 +02:00
Luke Lau
450dfab8c3
[RISCV] Add tests where bin ops of splats could be scalarized. NFC (#65747)
This adds tests for fixed and scalable vectors where we have a binary op
on two splats that could be scalarized. Normally this would be
scalarized in the middle-end by VectorCombine, but as noted in
https://reviews.llvm.org/D159190, this pattern can crop up during
CodeGen afterwards.

Note that a combine already exists for this, but on RISC-V currently it
only works on scalable vectors where the element type == XLEN. See
#65068 and #65072
2023-09-20 13:23:56 +01:00
Martin Erhart
ba727ac219
[mlir][bufferization][scf] Implement BufferDeallocationOpInterface for scf.reduce.return (#66886)
This is necessary to run the new buffer deallocation pipeline as part of
the sparse compiler pipeline.
2023-09-20 14:19:13 +02:00
Nikita Popov
57a554800b [SROA] Don't shrink volatile load past end
For volatile atomic, this may result in a verifier errors, if the
new alloca type is not legal for atomic accesses.

I've opted to disable this special case for volatile accesses in
general, as changing the size of the volatile access seems
dubious in any case.

Fixes https://github.com/llvm/llvm-project/issues/64721.
2023-09-20 14:12:31 +02:00
Juan Manuel MARTINEZ CAAMAÑO
24f437f31e [NFC][AMDGPU] Remove redundant hasSideEffects=1 2023-09-20 14:02:04 +02:00
Juan Manuel MARTINEZ CAAMAÑO
356494c36e [NFC][AMDGPU] Perform a single lookup in map in SIInsertWaitcnts::isPreheaderToFlush 2023-09-20 14:02:04 +02:00
Kazushi Marukawa
4f330b7f75
[VE] Add unittest for intrinsics (#66730)
Add unittest for VE intrinsics instructions.
2023-09-20 20:56:35 +09:00