platform/upstream/llvm.git
20 months ago[clang-format] PackConstructorInitializers support PCIS_OnlyNextLine
Backl1ght [Mon, 6 Feb 2023 10:47:11 +0000 (18:47 +0800)]
[clang-format] PackConstructorInitializers support PCIS_OnlyNextLine

fixes https://github.com/llvm/llvm-project/issues/60241

Differential Revision: https://reviews.llvm.org/D143091

20 months ago[clang][NFC] Fix a documentation typo
Timm Bäder [Mon, 6 Feb 2023 11:36:25 +0000 (12:36 +0100)]
[clang][NFC] Fix a documentation typo

20 months ago[LoongArch] Add baseline tests for optimizations that merge offsets into instructions
gonglingqin [Thu, 2 Feb 2023 02:10:35 +0000 (10:10 +0800)]
[LoongArch] Add baseline tests for optimizations that merge offsets into instructions

20 months ago[LV] Also check interleaving only in select-min-index.ll
Florian Hahn [Mon, 6 Feb 2023 11:30:14 +0000 (11:30 +0000)]
[LV] Also check interleaving only in select-min-index.ll

The new combination exposed a crash in earlier versions of
D132063.

20 months ago[mlir][llvm] Add missing license header (NFC)
Christian Ulmann [Mon, 6 Feb 2023 11:14:13 +0000 (12:14 +0100)]
[mlir][llvm] Add missing license header (NFC)

This commit adds a missing license header that was forgotten in
https://reviews.llvm.org/D143064.

20 months ago[mlir][MemRef] Add required address space cast when lowering alloc to LLVM
Markus Böck [Sun, 5 Feb 2023 13:58:06 +0000 (14:58 +0100)]
[mlir][MemRef] Add required address space cast when lowering alloc to LLVM

alloc uses either `malloc` or a plugable allocation function for allocating the required memory. Both of these functions always return a `llvm.ptr<i8>`, aka a pointer in the default address space. When allocating for a memref in a different memory space however, no address space cast is created, leading to invalid LLVM IR being generated.

This is currently not caught by the verifier since the pointer to the memory is always bitcast which currently lacks a verifier disallowing address space casts. Translating to actual LLVM IR would cause the verifier to go off, since bitcast cannot translate from one address space to another: https://godbolt.org/z/3a1z97rc9

This patch fixes that issue by generating an address space cast if the address space of the allocation function does not match the address space of the resulting memref.

Not sure whether this is actually a real life problem. I found this issue while converting the pass to using opaque pointers which gets rid of all the bitcasts and hence caused type errors without the address space cast.

Differential Revision: https://reviews.llvm.org/D143341

20 months agoLazyly initialize uncommon toolchain detector
serge-sans-paille [Thu, 26 Jan 2023 07:41:14 +0000 (08:41 +0100)]
Lazyly initialize uncommon toolchain detector

Cuda and rocm toolchain detectors are currently run unconditionally,
while their result may not be used at all. Make their initialization
lazy so that the discovery code is not run in common cases.

Differential Revision: https://reviews.llvm.org/D142606

20 months ago[ARM][AArch64] Regenerate hadd tests. NFC
David Green [Mon, 6 Feb 2023 10:54:18 +0000 (10:54 +0000)]
[ARM][AArch64] Regenerate hadd tests. NFC

This just runs the existing tests through opt -O1, which helps canonicalizing
the code and adds additional flags which can be useful for matching.

20 months ago[flang][NFC] Move IntrinsicCall to Optimizer/Builder/ 6/6
Tom Eccles [Wed, 1 Feb 2023 15:41:29 +0000 (15:41 +0000)]
[flang][NFC] Move IntrinsicCall to Optimizer/Builder/ 6/6

This will allow IntrinsicCall to be used in passes to implement hlfir
transformational intrinsic operations.

Differential Revision: https://reviews.llvm.org/D143084

20 months ago[flang][NFC] Move intrinsic name mangling to IntrinsicCall 5/6
Tom Eccles [Wed, 1 Feb 2023 15:29:01 +0000 (15:29 +0000)]
[flang][NFC] Move intrinsic name mangling to IntrinsicCall 5/6

This removes another dependency of IntrinsicCall upon flang/lib/Lower:
making it possible to move IntrinsicCall into flang/lib/Optimizer.

Differential Revision: https://reviews.llvm.org/D143083

20 months ago[flang][NFC] remove duplicate fir::toInt definition 4/6
Tom Eccles [Wed, 1 Feb 2023 15:22:14 +0000 (15:22 +0000)]
[flang][NFC] remove duplicate fir::toInt definition 4/6

Differential Revision: https://reviews.llvm.org/D143082

20 months ago[flang][NFC] Move runtime helpers used by intrinsics to lib/Optimizer 3/6
Tom Eccles [Wed, 1 Feb 2023 15:14:11 +0000 (15:14 +0000)]
[flang][NFC] Move runtime helpers used by intrinsics to lib/Optimizer 3/6

This will allow IntrinsicCall to be moved into lib/Optimizer later.

Differential Revision: https://reviews.llvm.org/D143081

20 months ago[flang][NFC] remove spurious dependency from IntrinsicCall 2/6
Tom Eccles [Wed, 1 Feb 2023 13:55:36 +0000 (13:55 +0000)]
[flang][NFC] remove spurious dependency from IntrinsicCall 2/6

Differential Revision: https://reviews.llvm.org/D143080

20 months ago[flang][NFC] remove stmtCtx genIntrinsicCall 1/6
Tom Eccles [Wed, 1 Feb 2023 11:54:36 +0000 (11:54 +0000)]
[flang][NFC] remove stmtCtx genIntrinsicCall 1/6

This removes IntrinsicCall's dependency upon StatementContext, which
will make it easier to move IntrinsicCall into flang/lib/Optimizer, for
use in passes.

Differential Revision: https://reviews.llvm.org/D143079

20 months ago[TLI] SimplifyMultipleUseDemandedBits - remove insert_subvector(undef, x, 0) fold
Simon Pilgrim [Mon, 6 Feb 2023 09:55:03 +0000 (09:55 +0000)]
[TLI] SimplifyMultipleUseDemandedBits - remove insert_subvector(undef, x, 0) fold

SimplifyMultipleUseDemandedBits shouldn't be creating general nodes on the fly, it should mainly just peek through them (although we do currently allow creation of new bitcasts and constant folding).

This is mostly a win - by avoiding new nodes we avoid a lot of hasOneUse limitations inside x86 shuffle combining - the main regressions I've noticed are where we've ended up with multiple insert_subvector(undef, x, 0) nodes, widening x to different vector widths - that should hopefully be improved when we remove the last of the vector widening from combineX86ShufflesRecursively for Issue #45319

20 months ago[libc] Fix pthread argument for scudo integration tests when using GCC
David Spickett [Fri, 3 Feb 2023 11:06:34 +0000 (11:06 +0000)]
[libc] Fix pthread argument for scudo integration tests when using GCC

This adds "-pthreads" which appears to be a clang only
alias for "-pthread" (all the drivers check for both).

Use "-pthread" instead to be compatible with gcc.

Otherwise you get:
FAILED: bin/libc-gwp-asan-uaf-should-crash
: && /usr/bin/g++-11 <...> -pthreads <...> projects/libc/test/integration/scudo/liblibc_for_scudo_integration_test.a && :
g++-11: error: unrecognized command-line option ‘-pthreads’; did you mean ‘-pthread’?

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D143258

20 months ago[mlir][tensor][bufferize] tensor.empty does not define the result tensor contents
Matthias Springer [Mon, 6 Feb 2023 09:19:22 +0000 (10:19 +0100)]
[mlir][tensor][bufferize] tensor.empty does not define the result tensor contents

This is encoded in the `BufferizableOpInterface` via `resultBufferizesToMemoryWrite = false`.

Differential Revision: https://reviews.llvm.org/D143181

20 months ago[Instcombine] precommit tests for icmp with intrinsic look through trunc; NFC
chenglin.bi [Mon, 6 Feb 2023 09:23:02 +0000 (17:23 +0800)]
[Instcombine] precommit tests for icmp with intrinsic look through trunc; NFC

20 months ago[mlir][llvm] Drop opaque ptr test in LLVM IR import.
Tobias Gysi [Mon, 6 Feb 2023 09:13:02 +0000 (10:13 +0100)]
[mlir][llvm] Drop opaque ptr test in LLVM IR import.

After switching all LLVM IR import tests to opaque pointers
the specialized opaque pointer test file is redundant.

Reviewed By: Dinistro

Differential Revision: https://reviews.llvm.org/D143370

20 months ago[Modules] Recreate file manager for ftime-trace when compiling a module
Chuanqi Xu [Mon, 6 Feb 2023 09:11:22 +0000 (17:11 +0800)]
[Modules] Recreate file manager for ftime-trace when compiling a module

Close https://github.com/llvm/llvm-project/issues/60544.

The root cause for the issue is that when we compile a module unit, the
file manager (and proprocessor and source manager) are owned by AST
instead of the compilaton instance. So the file manager may be invalid
when we want to create a time-report file for -ftime-trace when we are
compiling a module unit.

This patch tries to recreate the file manager for -ftime-trace if we
find the file manager is not valid.

20 months ago[InstCombine] precommit tests for icmp with bool range; NFC
chenglin.bi [Mon, 6 Feb 2023 09:16:25 +0000 (17:16 +0800)]
[InstCombine] precommit tests for icmp with bool range; NFC

20 months ago[NFC][OpenMP][libomptarget] Fix format in PluginInterface header
Kevin Sala [Mon, 6 Feb 2023 09:12:55 +0000 (10:12 +0100)]
[NFC][OpenMP][libomptarget] Fix format in PluginInterface header

20 months ago[RISCV][NFC] Update debug message for XTHeadVdot
Philipp Tomsich [Sat, 4 Feb 2023 16:59:32 +0000 (17:59 +0100)]
[RISCV][NFC] Update debug message for XTHeadVdot

As we prepare the tree to add more vendor-defined extensions that are
originating with T-Head, the debug message announcing the XTheadVdot
decoder namespace should refer to XTHeadVdot instead of all T-Head
custom extensions.

20 months ago[mlir][llvm] Fix bug in constant import from LLVM IR.
Tobias Gysi [Mon, 6 Feb 2023 09:01:27 +0000 (10:01 +0100)]
[mlir][llvm] Fix bug in constant import from LLVM IR.

The revision addresses a bug during constant expression traversal
when importing LLVM IR. A constant expression may have cyclic
dependencies, for example, when a constant is initialized with its
address. This revision extends the constant expression traversal
to detect cyclic dependencies and adds a test to verify this
case is handled properly.

Reviewed By: Dinistro

Differential Revision: https://reviews.llvm.org/D143152

20 months ago[OpenMP][libomptarget] Notify the plugins regarding new mapping/unmappings
Kevin Sala [Wed, 25 Jan 2023 00:04:07 +0000 (01:04 +0100)]
[OpenMP][libomptarget] Notify the plugins regarding new mapping/unmappings

The NextGen plugins use the information regarding new mapping/unmappings to
lock/unlock the corresponding host buffer and speed up the host-device memory
transfers involving those buffers. The locking/unlocking is disabled by default
and can be enabled by the LIBOMPTARGET_LOCK_MAPPED_HOST_BUFFERS envar. The
envar accepts boolean values (on/off) and a special option:
  - off:       Do not lock mapped host buffers (default).
  - on:        Lock mapped host buffers automatically, but do not report lock
               failures if the plugin fails to lock them.
  - mandatory: Lock mapped host buffers automatically and treat locking failures
               in the plugins as fatal errors. This option may be useful for
               debugging purposes.

Differential Revision: https://reviews.llvm.org/D142514

20 months ago[NFC] Inline variable
Guillaume Chatelet [Mon, 6 Feb 2023 09:03:55 +0000 (09:03 +0000)]
[NFC] Inline variable

20 months ago[clangd] Semantic highlighting for constrained-parameter
Nathan Ridge [Mon, 30 Jan 2023 08:09:00 +0000 (03:09 -0500)]
[clangd] Semantic highlighting for constrained-parameter

Differential Revision: https://reviews.llvm.org/D142871

20 months ago[Release] Increase test-release.sh verbosity
Rainer Orth [Mon, 6 Feb 2023 08:30:36 +0000 (09:30 +0100)]
[Release] Increase test-release.sh verbosity

`test-release.sh` is too silent in some cases:

- Only the build proper is run verbosely, but `check-all` is not.
- `lit` is run without `-v`, so in case of failures one cannot see what's
actually wrong.

This patch fixes both issues, running all `${MAKE}` invocations with
`$Verbose` (except for `${MAKE} install` where it would only add noise),
and running `lit` with `-v`.

Tested on `x86_64-pc-linux-gnu` and `arm64-apple-darwin21.6`.

Differential Revision: https://reviews.llvm.org/D143249

20 months ago[flang][hlfir] Lower asInquired intrinsic arguments
Jean Perier [Mon, 6 Feb 2023 07:53:57 +0000 (08:53 +0100)]
[flang][hlfir] Lower asInquired intrinsic arguments

Differential Revision: https://reviews.llvm.org/D143272

20 months ago[flang][hlfir] Turn fir.char<1> results into hlfir.expr<fir.char<1>>
Jean Perier [Mon, 6 Feb 2023 07:51:56 +0000 (08:51 +0100)]
[flang][hlfir] Turn fir.char<1> results into hlfir.expr<fir.char<1>>

This gets rid of a special case with CHAR() intrinsic and BIND(C) results.
I tested this has no impact on the LLVM assembly when LLVM opt -01 or
more is run.
See comment in the patch for more details.

Differential Revision: https://reviews.llvm.org/D143270

20 months ago[RISCV] Use uint32_t intead of uint64_t for instruction fields in RISCVDisassembler...
Craig Topper [Mon, 6 Feb 2023 07:12:22 +0000 (23:12 -0800)]
[RISCV] Use uint32_t intead of uint64_t for instruction fields in RISCVDisassembler.cpp. NFC

The tablegen generated code is templated based on the type of Insn
passed to decodeInstruction which is currently uint32_t. All of the
fields extracted will this type.

20 months ago[RISCV] Simplify some code in RISCVDisassembler. NFC
Craig Topper [Mon, 6 Feb 2023 06:42:57 +0000 (22:42 -0800)]
[RISCV] Simplify some code in RISCVDisassembler. NFC

Create X0 register directly instead of passing 0 to DecodeGPRRegisterClass.

20 months agoAMDGPU: Mark control flow intrinsics non-duplicable
Ruiling Song [Thu, 2 Feb 2023 05:59:59 +0000 (13:59 +0800)]
AMDGPU: Mark control flow intrinsics non-duplicable

This is used to help get simplified CFG for divergent regions as well as
get better code generation in some cases.

For example, with below IR:
```
define amdgpu_kernel void @test() {
bb:
  br label %bb1

bb1:
  %tmp = phi i32 [ 0, %bb ], [ %tmp5, %bb4 ]
  %tid = call i32 @llvm.amdgcn.workitem.id.x()
  %cnd = icmp eq i32 %tid, 0
  br i1 %cnd, label %bb4, label %bb2

bb2:
  %tmp3 = add nsw i32 %tmp, 1
  br label %bb4

bb4:
  %tmp5 = phi i32 [ %tmp3, %bb2 ], [ %tmp, %bb1 ]
  store volatile i32 %tmp5, ptr addrspace(1) undef
  br label %bb1
}
```

We got below assembly before the change:
```
  v_mov_b32_e32 v1, 0
  v_cmp_eq_u32_e32 vcc, 0, v0
  s_branch .LBB0_2
.LBB0_1:                                ; %bb4
                                        ;   in Loop: Header=BB0_2 Depth=1
  s_mov_b32 s2, -1
  s_mov_b32 s3, 0xf000
  buffer_store_dword v1, off, s[0:3], 0
  s_waitcnt vmcnt(0)
.LBB0_2:                                ; %bb
                                        ; =>This Inner Loop Header: Depth=1
  s_and_saveexec_b64 s[0:1], vcc
  s_xor_b64 s[0:1], exec, s[0:1]
                                        ; kill: def $sgpr0_sgpr1 killed $sgpr0_sgpr1 killed $exec
  s_cbranch_execnz .LBB0_1
; %bb.3:                                ; %bb2
                                        ;   in Loop: Header=BB0_2 Depth=1
  s_or_b64 exec, exec, s[0:1]
  s_waitcnt expcnt(0)
  v_add_i32_e64 v1, s[0:1], 1, v1
  s_branch .LBB0_1
```

After the change:
```
  s_mov_b32 s0, 0
  v_cmp_eq_u32_e32 vcc, 0, v0
  s_mov_b32 s2, -1
  s_mov_b32 s3, 0xf000
  v_mov_b32_e32 v0, s0
  s_branch .LBB0_2
.LBB0_1:                                ; %bb4
                                        ;   in Loop: Header=BB0_2 Depth=1
  buffer_store_dword v0, off, s[0:3], 0
  s_waitcnt vmcnt(0)
.LBB0_2:                                ; %bb1
                                        ; =>This Inner Loop Header: Depth=1
  s_and_saveexec_b64 s[0:1], vcc
  s_cbranch_execnz .LBB0_1
; %bb.3:                                ; %bb2
                                        ;   in Loop: Header=BB0_2 Depth=1
  s_or_b64 exec, exec, s[0:1]
  s_waitcnt expcnt(0)
  v_add_i32_e64 v0, s[0:1], 1, v0
  s_branch .LBB0_1
```

We are using one less VGPR, one less s_xor_, and better LICM with one
additional branch after the change. Please note the experiment
was done with reverting the workaround D139780, as it will stop the
tail-duplication completely for this case.

Reviewed by: arsenm

Differential Revision: https://reviews.llvm.org/D118250

20 months ago[mlir] Use mlir::TypedValue to avoid compiler bug in MSVC.
Adrian Kuegel [Mon, 6 Feb 2023 07:02:28 +0000 (08:02 +0100)]
[mlir] Use mlir::TypedValue to avoid compiler bug in MSVC.

20 months agoRevert "[lldb] Fix warning about unhandled enum value `WasmExternRef` (NFC)."
Kazu Hirata [Mon, 6 Feb 2023 06:45:46 +0000 (22:45 -0800)]
Revert "[lldb] Fix warning about unhandled enum value `WasmExternRef` (NFC)."

This reverts commit b27e4f72213e78cacf0ce5bfd127261ec0b9309b.

bccf5999d38f14552f449618c1d72d18613f4285 necessitates this revert.

20 months agoRevert "[clang][WebAssembly] Initial support for reference type externref in clang"
Vitaly Buka [Mon, 6 Feb 2023 05:26:19 +0000 (21:26 -0800)]
Revert "[clang][WebAssembly] Initial support for reference type externref in clang"

Very likely breaks stage 3 of msan build bot.
Good: 764c88a50ac76a2df2d051a0eb5badc6867aabb6 https://lab.llvm.org/buildbot/#/builders/74/builds/17058
Looks unrelated: 48b5a06dfcab12cf093a1a3df42cb5b684e2be4c
Bad: 48b5a06dfcab12cf093a1a3df42cb5b684e2be4c https://lab.llvm.org/buildbot/#/builders/74/builds/17059

This reverts commit eb66833d19573df97034a81279eda31b8d19815b.

20 months ago[X86] Add RMPQUERY to SNP instructions
Ganesh Gopalasubramanian [Mon, 6 Feb 2023 04:16:12 +0000 (09:46 +0530)]
[X86] Add RMPQUERY to SNP instructions

Add RMPQUERY to the list of SNP instructions.
Tech Documentation: https://www.amd.com/system/files/TechDocs/24594.pdf

Reviewed By: RKSimon, craig.topper

Differential Revision: https://reviews.llvm.org/D141458

20 months ago[bootstrap build] Add libc-hdrgen as a build dep for libc bootstrap build.
Siva Chandra Reddy [Tue, 10 Jan 2023 08:01:51 +0000 (08:01 +0000)]
[bootstrap build] Add libc-hdrgen as a build dep for libc bootstrap build.

With this change, libc-hdrgen is built like a host build tool like clang and used
to build libc for the target.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D141460

20 months ago[RISCV] Use decodeSImmNonZeroOperand for simm6nonzero and decodeUImmNonZeroOperand...
Craig Topper [Mon, 6 Feb 2023 01:36:03 +0000 (17:36 -0800)]
[RISCV] Use decodeSImmNonZeroOperand for simm6nonzero and decodeUImmNonZeroOperand for uimmlog2xlennonzero.

20 months ago[RISCV] Default to -fsanitize=shadow-call-stack for Fuchsia
Roland McGrath [Mon, 6 Feb 2023 02:15:10 +0000 (18:15 -0800)]
[RISCV] Default to -fsanitize=shadow-call-stack for Fuchsia

The ShadowCallStack is the preferred and default ABI for Fuchsia.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D143357

20 months agoRevert "[CMake] Support runtimes targets without specifying triple"
Petr Hosek [Mon, 6 Feb 2023 02:47:31 +0000 (02:47 +0000)]
Revert "[CMake] Support runtimes targets without specifying triple"

This reverts commit e6975c4ced27fe93945393603df79557aeb23d83 since it
broke the bootstrapping build on Windows.

20 months ago[RISCV] Default to -ffixed-x18 for Fuchsia
Roland McGrath [Mon, 6 Feb 2023 02:29:55 +0000 (18:29 -0800)]
[RISCV] Default to -ffixed-x18 for Fuchsia

Fuchsia's ABI always reserves the x18 (s2) register for the
ShadowCallStack ABI, even when -fsanitize=shadow-call-stack is
not enabled.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D143355

20 months ago[RISCV] Use OS-specific stack-guard ABI for Fuchsia
Roland McGrath [Mon, 6 Feb 2023 02:09:20 +0000 (18:09 -0800)]
[RISCV] Use OS-specific stack-guard ABI for Fuchsia

Fuchsia provides a slot relative to tp for the stack-guard value,
which is cheaper to materialize than the default GOT load.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D143353

20 months ago[RISCV] clang-format #include. NFC
Fangrui Song [Mon, 6 Feb 2023 02:26:07 +0000 (18:26 -0800)]
[RISCV] clang-format #include. NFC

20 months ago[clang-format] Recognize Verilog non-blocking assignment
sstwcw [Mon, 6 Feb 2023 00:57:03 +0000 (00:57 +0000)]
[clang-format] Recognize Verilog non-blocking assignment

Reviewed By: HazardyKnusperkeks, owenpan

Differential Revision: https://reviews.llvm.org/D142891

20 months ago[docs] Replace deprecated -target with --target=
Fangrui Song [Mon, 6 Feb 2023 00:34:22 +0000 (16:34 -0800)]
[docs] Replace deprecated -target with --target=

20 months ago[flang] Fix driver option tests after 90094ab8
Rahul Kayaith [Sun, 5 Feb 2023 23:57:50 +0000 (18:57 -0500)]
[flang] Fix driver option tests after 90094ab8

20 months ago[clang-format] Fix inconsistent annotation of operator&
David Turner [Sun, 5 Feb 2023 21:19:11 +0000 (13:19 -0800)]
[clang-format] Fix inconsistent annotation of operator&

Token annotator incorrectly annotates operator& as a reference type in
situations like Boost serialization archives:
https://www.boost.org/doc/libs/1_81_0/libs/serialization/doc/tutorial.html

Add annotation rules for standalone and chained operator& instances while
preserving behavior for reference declarations at class scope. Add tests to
validate annotation and formatting behavior.

Differential Revision: https://reviews.llvm.org/D141959

20 months ago[ARM] Remove FlattenVectorShuffle and add PerformVQDMULHCombine.
David Green [Sun, 5 Feb 2023 20:59:49 +0000 (20:59 +0000)]
[ARM] Remove FlattenVectorShuffle and add PerformVQDMULHCombine.

This removes the FlattenVectorShuffle that folds shuffles through certain
binops. This is now handled by generic DAG combines for all but ARMISD::VQDMULH
where a PerformVQDMULHCombine is added to compensate. It pushes identical
shuffles down through the operation, in a similar way to the other combines in
DAG.

20 months ago[RISCV] Fix bug where C_ADDI_HINT_IMM_ZERO was incorrectly disassembled as C_ADDI.
Craig Topper [Sun, 5 Feb 2023 20:31:36 +0000 (12:31 -0800)]
[RISCV] Fix bug where C_ADDI_HINT_IMM_ZERO was incorrectly disassembled as C_ADDI.

And was then printed as 'mv'.

20 months ago[AMDGPU] Fix liveness in the SIOptimizeExecMaskingPreRA.cpp
Stanislav Mekhanoshin [Fri, 3 Feb 2023 23:21:31 +0000 (15:21 -0800)]
[AMDGPU] Fix liveness in the SIOptimizeExecMaskingPreRA.cpp

If a condition register def happens past the newly created use
we do not properly update LIS. It has two problems:

1) We do not extend defining segment to the end of its block
   marking it a live-out (this is regression after
   https://reviews.llvm.org/rG09d38dd7704a52e8ad2d5f8f39aaeccf107f4c56)

2) We do not extend use segment to the beginning of the use block
   marking it a live-in.

Fixes: SWDEV-379563

Differential Revision: https://reviews.llvm.org/D143302

20 months ago[X86] combineX86ShufflesRecursively - peek through free extract_subvector nodes
Simon Pilgrim [Sun, 5 Feb 2023 20:16:32 +0000 (20:16 +0000)]
[X86] combineX86ShufflesRecursively - peek through free extract_subvector nodes

If we're shuffling an op that is extracted from the lowest subvector of a larger vector then we should try to peek through as much as possible without exceeding the root size

Another step towards removing the widenSubVector call from combineX86ShufflesRecursively (Issue #45319)

20 months ago[SLP] Use allConstant helper. NFCI.
Simon Pilgrim [Sun, 5 Feb 2023 19:21:40 +0000 (19:21 +0000)]
[SLP] Use allConstant helper. NFCI.

20 months ago[AArch64] Unconditionally use DW_EH_PE_indirect|DW_EH_PE_pcrel personality/lsda/ttype...
Fangrui Song [Sun, 5 Feb 2023 18:46:43 +0000 (10:46 -0800)]
[AArch64] Unconditionally use DW_EH_PE_indirect|DW_EH_PE_pcrel personality/lsda/ttype encodings

For -fno-pic, without DW_EH_PE_indirect, the personality routine pointer in a
CIE needs an R_AARCH64_ABS64 relocation. In common configurations that
`__gcc_personality_v0` is defined in a shared object, this will lead to a
discouraged canonical PLT entry, or, if `ld.lld -z notext` (betwen D122459 and
D143136), a dynamic R_AARCH64_ABS64 relocation with an incorrect offset:
https://github.com/llvm/llvm-project/issues/60392

Since GCC uses DW_EH_PE_indirect for -fno-pic code (the behavior hasn't changed
since the initial port in 2012), let's follow suit by simplifying the code.
(
For tiny and small code models, we use DW_EH_PE_sdata8 instead of GCC's
DW_EH_PE_sdata4. This is a deliberate choice to support personality-.eh_frame
offset > 2GiB. This is unneeded for small code model since "Max text segment
size < 2GiB" but making `-fno-pic -mcmodel={tiny,small}` different seems
unnecessary: the scenarios that uses both -fno-pic and C++ exceptions have been
increasingly rare now, so there is little advantage optimizing for the little
size saving with code complexity.
)

---

Two clang/test/Interpreter tests would fail without 6747fc07d1aa94e22622e278e5a02ba70675ac9b
([ORC] Use JITLink as the default linker for LLJIT on Linux/arm64.)

Reviewed By: MatzeB

Differential Revision: https://reviews.llvm.org/D143039

20 months ago[Driver] Add -mllvm= as an alias for -mllvm
Fangrui Song [Sun, 5 Feb 2023 18:29:58 +0000 (10:29 -0800)]
[Driver] Add -mllvm= as an alias for -mllvm

Similar to D131455 (-Xclang=). As well as making it convenient for some build
systems, this allows `-Xarch_device '-mllvm=--inline-threshold=100'` (and
`-Xarch_host`; so we don't need to allow space separators which are uncommon in
driver code).

Bear in mind that -mllvm options are unstable and should be avoided if possible.

Reviewed By: jhuber6, yaxunl

Differential Revision: https://reviews.llvm.org/D143325

20 months agoDAG: Fix broken lowering of is.fplcass fcZero with DAZ
Matt Arsenault [Tue, 31 Jan 2023 18:23:56 +0000 (14:23 -0400)]
DAG: Fix broken lowering of is.fplcass fcZero with DAZ

is.fpclass x, fcZero is not equivalent to fcmp with 0 if
denormals are treated as 0. It would be equivalent to fcZero|fcSubnormal
which can be done separately; this is the minimal correctness fix.

The same optimization was not ported to the GlobalISel version.

20 months agoInstCombine: Fold is.fpclass (fabs x), mask -> is.fpclass x, (fabs mask)
Matt Arsenault [Sun, 11 Dec 2022 21:43:46 +0000 (16:43 -0500)]
InstCombine: Fold is.fpclass (fabs x), mask -> is.fpclass x, (fabs mask)

20 months agoInstCombine: Fold is.fpclass (fneg x) into the test mask
Matt Arsenault [Sun, 11 Dec 2022 20:23:26 +0000 (15:23 -0500)]
InstCombine: Fold is.fpclass (fneg x) into the test mask

20 months agoInstCombine: Fold out is_fpclass inf checks from test mask for known finite sources
Matt Arsenault [Thu, 17 Nov 2022 04:51:40 +0000 (20:51 -0800)]
InstCombine: Fold out is_fpclass inf checks from test mask for known finite sources

Make the partner transform already done for nnan sources.

20 months ago[X86] combineINSERT_SUBVECTOR - fold (insert_subvector X, (insert_subvector undef...
Simon Pilgrim [Sun, 5 Feb 2023 13:07:20 +0000 (13:07 +0000)]
[X86] combineINSERT_SUBVECTOR - fold (insert_subvector X, (insert_subvector undef, Y, 0), Idx) -> (insert_subvector X, Y, Idx)

Helps some shuffle combines that do a poor job of peeking through (insert_subvector undef, Y, 0) vector widening patterns

20 months agoInstCombine: Perform basic isnan combines on llvm.is.fpclass
Matt Arsenault [Fri, 11 Nov 2022 00:15:34 +0000 (16:15 -0800)]
InstCombine: Perform basic isnan combines on llvm.is.fpclass

is.fpclass(x, qnan|snan) -> fcmp uno x, 0.0
is.fpclass(nnan x, qnan|snan|other) -> is.fpclass(x, other)

Start porting the existing combines from llvm.amdgcn.class to the
generic intrinsic. Start with the ones which aren't dependent on the
FP mode.

20 months ago[SVE][Builtins] Lower X forms of binop arithmetic builtins to dedicated intrinsics.
Paul Walker [Sun, 15 Jan 2023 15:21:20 +0000 (15:21 +0000)]
[SVE][Builtins] Lower X forms of binop arithmetic builtins to dedicated intrinsics.

This patch changes the lowering for the following builtins to emit
calls to the new aarch64.sve.###.u intrinsics.
  svabd_x
  svabd_n_x
  svadd_x
  svadd_n_x
  svasr_x
  svasr_n_x
  svdiv_x
  svdiv_n_x
  svdivr_x
  svdivr_n_x
  svlsl_x
  svlsl_n_x
  svlsr_x
  svlsr_n_x
  svmax_x
  svmax_n_x
  svmin_x
  svmin_n_x
  svmul_x
  svmul_n_x
  svmulh_x
  svmulh_n_x
  svsub_x
  svsub_n_x
  svsubr_x
  svsubr_n_x

Depends on D141938

Differential Revision: https://reviews.llvm.org/D141939

20 months agoLangRef: Clarify behavior of llvm.is.fpclass with "denormal-fp-math"
Matt Arsenault [Tue, 6 Dec 2022 14:16:27 +0000 (09:16 -0500)]
LangRef: Clarify behavior of llvm.is.fpclass with "denormal-fp-math"

This does not read canonicalized values, which matches the behavior of
the basic DAG expansion using integer operations. There is a buggy
expansion using FP-operations if legal which needs to be adjusted to
account for this. We need to be aware of the denormal mode to switch
between is.fpclass calls and fcmp.

There's no real spec for denormal handling anywhere, but I believe
this is the most harmonious way to deal with the question considering
the requirement to not quiet input signaling nans.

This matches the behavior of MSVC's _fpclass and AMDGPU's
v_cmp_class_f32. fpclassify currently does not use this, and has
inconsistent behavior for denormals under DAZ on different platforms
(i.e. clang and gcc report FP_ZERO return FP_ZERO for a denormal under
DAZ, MSVC reports FP_SUBNORMAL).

20 months agoIROutliner: Fix another assert with non-0 alloca addrspaces
Matt Arsenault [Thu, 5 Jan 2023 16:00:35 +0000 (11:00 -0500)]
IROutliner: Fix another assert with non-0 alloca addrspaces

Code is inserting an addrspacecast it shouldn't be, but
that's a separate CodeExtractor bug.

This also stops caring about typed pointers.

20 months ago[DAG] Add visitABD optimizations
David Green [Sun, 5 Feb 2023 10:28:54 +0000 (10:28 +0000)]
[DAG] Add visitABD optimizations

This adds basic a visitABD to optimize ABDS and ABDU nodes, similar to the
existing visitAVG method.

The fold I was initially interested in was folding shuffles though the binop.
This also:
- Marks ABDS and ABDU as commutative binops (https://alive2.llvm.org/ce/z/oCDogb
  and https://alive2.llvm.org/ce/z/7zrs86).
- Add reassociative folds.
- Add constant folding using max(x,y)-min(x,y)
- Canonicalizes constants to the RHS
- Folds abds x, 0 -> abs(x) (https://alive2.llvm.org/ce/z/4ZEibv)
- Folds abdu x, 0 -> x (https://alive2.llvm.org/ce/z/J_rKqx)
- Folds abd x, undef -> 0 (https://alive2.llvm.org/ce/z/NV6Nsv and
  https://alive2.llvm.org/ce/z/vs92hu).

Differential Revision: https://reviews.llvm.org/D143193

20 months ago[ORC] Drop Comdat when discarding IR symbol
Jonas Hahnfeld [Tue, 24 Jan 2023 09:54:55 +0000 (10:54 +0100)]
[ORC] Drop Comdat when discarding IR symbol

According to the IR verifier, "Declaration[s] may not be in a Comdat!"

This is a re-commit of 76b3f0b4d5a0b8c54147c4c73a30892bbca76467 and
87d7838202267a011639fcbf97263556ccf091dc with updates to the test:
 * Force emission of the extra-module, to trigger the bug after D138264,
   by providing a second symbol @g, and making the comdat nodeduplicate.
   (Technically only one is needed, but two should be safer.)
 * Name the comdat $f to avoid failure on Windows:
   LLVM ERROR: Associative COMDAT symbol 'c' does not exist.
 * Mark the test as UNSUPPORTED on macOS, MachO doesn't support COMDATs.

Differential Revision: https://reviews.llvm.org/D142443

20 months ago[AArch64] AArch64ExpandImm.cpp - fix MSVC "32-bit shift implicitly converted to 64...
Simon Pilgrim [Sun, 5 Feb 2023 09:38:15 +0000 (09:38 +0000)]
[AArch64] AArch64ExpandImm.cpp - fix MSVC "32-bit shift implicitly converted to 64 bits" warning. NFC.

20 months agoAMDGPU: Ensure flat loads are broken into dword in functions
Matt Arsenault [Thu, 26 Jan 2023 00:46:44 +0000 (20:46 -0400)]
AMDGPU: Ensure flat loads are broken into dword in functions

We were assuming we could rely on the flat scratch init detection
to imply if there are possible flat addressed stack objects, which
doesn't work outside of a kernel. We should have a way to prove
if a given flat access can't access the stack.

We could use a not-stack parameter attribute to avoid
these splits.

Make the minimally correct change for GlobalISel; I'll address
this better in my larger patch to rewrite load and store legalization.

Fixes: SWDEV-218237

20 months ago[ORC] Use JITLink as the default linker for LLJIT on Linux/arm64.
Lang Hames [Sun, 5 Feb 2023 03:36:40 +0000 (03:36 +0000)]
[ORC] Use JITLink as the default linker for LLJIT on Linux/arm64.

Also updates the OrcCAPIsTest unit test to enable the C API tests on Linux.

20 months agoTeach the AArch64 backend to materialize immediates using a pair of ORR-immediate
Owen Anderson [Wed, 4 Jan 2023 06:23:31 +0000 (23:23 -0700)]
Teach the AArch64 backend to materialize immediates using a pair of ORR-immediate
instructions.

Credit to czwarich for figuring out the algorithm to test for this.

Re-applied with fix for ubsan error on out-of-range shift.

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D140952

20 months agoRevert "Teach the AArch64 backend to materialize immediates using a pair of ORR-immed...
Owen Anderson [Sun, 5 Feb 2023 04:13:31 +0000 (22:13 -0600)]
Revert "Teach the AArch64 backend to materialize immediates using a pair of ORR-immediate"

This reverts commit 8d433a0ae55ac25ba0a77d733e1ee5e23d1eb9f7 due to test failures on
CodeGen/AArch64/GlobalISel/store-merging.ll

20 months ago[CMake] Process components and install targets separately
Petr Hosek [Sun, 5 Feb 2023 02:43:54 +0000 (02:43 +0000)]
[CMake] Process components and install targets separately

This addresses issue introduced accidentally in D117263.

20 months agoTeach the AArch64 backend to materialize immediates using a pair of ORR-immediate
Owen Anderson [Wed, 4 Jan 2023 06:23:31 +0000 (23:23 -0700)]
Teach the AArch64 backend to materialize immediates using a pair of ORR-immediate
instructions.

Credit to czwarich for figuring out the algorithm to test for this.

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D140952

20 months ago[RISCV] Move all isel cases for ISD::ConstantFP into RISCVDAGToDAGISel::Select.
Craig Topper [Sun, 5 Feb 2023 01:31:37 +0000 (17:31 -0800)]
[RISCV] Move all isel cases for ISD::ConstantFP into RISCVDAGToDAGISel::Select.

After D142953, non-zero cases were handled in RISCVDAGToDAGISel::Select
and zeros were handled with isel patterns. The zeros cases are
sufficiently similar to zero that we might as well handle them all
together. We already needed to detect the cases to skip out to
tablegen.

20 months ago[RISCV] Fix crash splatting f64 -0.0 into a vector on RV32 after D142953.
Craig Topper [Sat, 4 Feb 2023 21:35:58 +0000 (13:35 -0800)]
[RISCV] Fix crash splatting f64 -0.0 into a vector on RV32 after D142953.

For RV32, we now use scalar fcvt of x0, scalar fneg, splat scalar fp to vector.
For RV64, we use li of 1, slli by 63, splat GPR to vector.

20 months ago[RISCV] Make selectImm return SDValue instead of SDNode*.
Craig Topper [Sat, 4 Feb 2023 21:14:51 +0000 (13:14 -0800)]
[RISCV] Make selectImm return SDValue instead of SDNode*.

This avoids multiple places needing to convert it to SDValue. It's
simpler to convert it to SDNode * in the places that need it.

20 months ago[RISCV] Replace condition that should alwasy be true with an assert. NFC
Craig Topper [Sat, 4 Feb 2023 21:01:21 +0000 (13:01 -0800)]
[RISCV] Replace condition that should alwasy be true with an assert. NFC

20 months ago[RISCV] Use MVT enum directly instead of converting to bit width. NFC
Craig Topper [Sat, 4 Feb 2023 20:50:02 +0000 (12:50 -0800)]
[RISCV] Use MVT enum directly instead of converting to bit width. NFC

20 months ago[RISCV] Remove fimmneg0 patterns that were replaced by D142953.
Craig Topper [Sat, 4 Feb 2023 20:38:19 +0000 (12:38 -0800)]
[RISCV] Remove fimmneg0 patterns that were replaced by D142953.

20 months ago[libc++][NFC] Rename _LIBCPP_EXPLICIT_AFTER_CXX11 to _LIBCPP_EXPLICIT_SINCE_CXX14
Nikolas Klauser [Thu, 2 Feb 2023 11:12:28 +0000 (12:12 +0100)]
[libc++][NFC] Rename _LIBCPP_EXPLICIT_AFTER_CXX11 to _LIBCPP_EXPLICIT_SINCE_CXX14

We renamed the `_LIBCPP_CONSTEXPR_` a while ago. This matches the change for `_LIBCPP_EXPLICIT_`.

Reviewed By: Mordante, #libc

Spies: libcxx-commits

Differential Revision: https://reviews.llvm.org/D143165

20 months ago[libc++][NFC] Rename _LIBCPP_NO_RTTI to _LIBCPP_HAS_NO_RTTI
Nikolas Klauser [Thu, 2 Feb 2023 11:06:35 +0000 (12:06 +0100)]
[libc++][NFC] Rename _LIBCPP_NO_RTTI to _LIBCPP_HAS_NO_RTTI

Other macros that disable parts of the library are named `_LIBCPP_HAS_NO_WHATEVER`.

Reviewed By: ldionne, Mordante, #libc

Spies: libcxx-commits

Differential Revision: https://reviews.llvm.org/D143164

20 months ago[CMake] Support runtimes targets without specifying triple
Petr Hosek [Wed, 30 Jun 2021 06:34:18 +0000 (23:34 -0700)]
[CMake] Support runtimes targets without specifying triple

Currently, for BUILTIN_TARGETS and RUNTIME_TARGETS you can either use
the special "default" value, or a target triple.

For the "default" value, we don't set any target triple and passthrough
a subset of CMake variables into the subbuild. This is typically used
on Darwin where we build universal binaries and a single target triple
therefore isn't sufficient.

For the target triple value, you can set arbitrary CMake variables
through RUNTIMES_<target>_<variable>, but we always set target triple
to <target>. This gives more flexibility, because we can precisely
control what variables are set in the subbuild, but is unsuitable for
platforms like Darwin.

To address this, we would like to introduce a third option which is
similar to the second option, except we won't set target triple in
the subbuild (you can always do so yourself by setting the appropriate
CMake variable, e.g. RUNTIMES_<name>_CMAKE_C_COMPILER_TARGET=<triple>).

This change is a first step in that direction, by eliminating the support
of target triples from builtin_register_target and runtime_register_target
helper functions.

Differential Revision: https://reviews.llvm.org/D117263

20 months agocmake: Enable 64bit off_t on 32bit glibc systems
Khem Raj [Sat, 4 Feb 2023 21:54:41 +0000 (13:54 -0800)]
cmake: Enable 64bit off_t on 32bit glibc systems

Pass -D_FILE_OFFSET_BITS=64 to compiler flags on 32bit glibc based
systems. This will make sure that 64bit versions of LFS functions are
used e.g. seek will behave same as lseek64. Also revert [1] partially
because this added a cmake test to detect lseek64 but then forgot to
pass the needed macro to actual compile, this test was incomplete too
since libc implementations like musl has 64bit off_t by default on 32bit
systems and does not bundle[2] -D_LARGEFILE64_SOURCE under -D_GNU_SOURCE
like glibc, which means the compile now fails on musl because the cmake
check passes but we do not have _LARGEFILE64_SOURCE defined. Using the
*64 function was transitional anyways so use -D_FILE_OFFSET_BITS=64
instead

[1] https://github.com/llvm/llvm-project/commit/8db7e5e4eed4c4e697dc3164f2c9351d8c3e942b
[2] https://git.musl-libc.org/cgit/musl/commit/?id=25e6fee27f4a293728dd15b659170e7b9c7db9bc

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D139752

20 months ago[clang-linker-wrapper] Fix build after MapVector change
Fangrui Song [Sat, 4 Feb 2023 20:54:26 +0000 (12:54 -0800)]
[clang-linker-wrapper] Fix build after MapVector change

20 months ago[DAG] visitFREEZE - handle case where the folded node merges with another existing...
Simon Pilgrim [Sat, 4 Feb 2023 20:53:42 +0000 (20:53 +0000)]
[DAG] visitFREEZE - handle case where the folded node merges with another existing node

Fixes #60413

20 months ago[LV] Add users for loads to make tests more robust.
Florian Hahn [Sat, 4 Feb 2023 20:42:50 +0000 (20:42 +0000)]
[LV] Add users for loads to make tests more robust.

Update a few tests to add users to loads to avoid them being optimized
out by future changes. In cases the unused loads didn't matter for the
test, remove them.

20 months agoOffloadBinary: Switch to MapVector<StringRef, StringRef> to stabilize iteration order
Fangrui Song [Sat, 4 Feb 2023 20:34:55 +0000 (12:34 -0800)]
OffloadBinary: Switch to MapVector<StringRef, StringRef> to stabilize iteration order

D122069 incorrectly uses StringMap iteration order
(https://llvm.org/docs/ProgrammersManual.html#llvm-adt-stringmap-h).
Switch to MapVector.

20 months agoRevert "[ORC] Drop Comdat when discarding IR symbol"
Jonas Hahnfeld [Sat, 4 Feb 2023 20:24:44 +0000 (21:24 +0100)]
Revert "[ORC] Drop Comdat when discarding IR symbol"

A number of AArch64 bots report errors in clang-repl, for example
https://lab.llvm.org/buildbot/#/builders/197/builds/3920

This reverts commit 87d7838202267a011639fcbf97263556ccf091dc.

20 months ago[lld] fix comment typos to cycle bots
Nico Weber [Sat, 4 Feb 2023 20:23:24 +0000 (15:23 -0500)]
[lld] fix comment typos to cycle bots

20 months ago[mlgo] Bump the unsupported versions for interactive tests to 3.8
Mircea Trofin [Sat, 4 Feb 2023 20:15:48 +0000 (12:15 -0800)]
[mlgo] Bump the unsupported versions for interactive tests to 3.8

e006c7dfa79a already covered the regalloc one.

20 months ago[sanitizer] Simplify with GET_CALLER_PC_BP. NFC
Fangrui Song [Sat, 4 Feb 2023 19:30:14 +0000 (11:30 -0800)]
[sanitizer] Simplify with GET_CALLER_PC_BP. NFC

20 months ago[AArch64] Add ABD combine tests. NFC
David Green [Sat, 4 Feb 2023 19:18:50 +0000 (19:18 +0000)]
[AArch64] Add ABD combine tests. NFC

20 months ago[X86] combinePredicateReduction - pull out repeated DAG.getContext() calls. NFC.
Simon Pilgrim [Sat, 4 Feb 2023 18:31:20 +0000 (18:31 +0000)]
[X86] combinePredicateReduction - pull out repeated DAG.getContext() calls. NFC.

20 months agoRevert "[Sanitizers] Fix read buffer overrun in scanning loader commands"
Douglas Yung [Sat, 4 Feb 2023 18:18:58 +0000 (10:18 -0800)]
Revert "[Sanitizers] Fix read buffer overrun in scanning loader commands"

This reverts commit abbd4da2043856f443e3d1c8d2c7627cac93a6ac.

This change is breaking many bots including:
- http://45.33.8.238/linux/98629/step_10.txt
- https://buildkite.com/llvm-project/llvm-main/builds/6461#01861c4f-9d9c-4781-88f7-d6ccddcb4b06/919-8848
- https://lab.llvm.org/buildbot/#/builders/94/builds/13196
- https://lab.llvm.org/buildbot/#/builders/45/builds/10633
- https://lab.llvm.org/buildbot/#/builders/247/builds/1238
- https://lab.llvm.org/buildbot/#/builders/70/builds/33424
- https://lab.llvm.org/buildbot/#/builders/168/builds/11693
- https://lab.llvm.org/buildbot/#/builders/74/builds/17006
- https://lab.llvm.org/buildbot/#/builders/85/builds/14120

20 months ago[LV] Add initial tests for sinking loads past other instructions.
Florian Hahn [Sat, 4 Feb 2023 18:18:17 +0000 (18:18 +0000)]
[LV] Add initial tests for sinking loads past other instructions.

Extend test coverage for sinking loads that use fixed order recurrences.

20 months ago[compiler-rt] Fix FORTIFY_SOURCE -> _FORTIFY_SOURCE reference (NFC)
Sam James [Sat, 4 Feb 2023 18:04:54 +0000 (18:04 +0000)]
[compiler-rt] Fix FORTIFY_SOURCE -> _FORTIFY_SOURCE reference (NFC)

As pointed out by maskray.

Fixes: 8ab762557fb057af1a3015211ee116a975027e78

20 months ago[compiler-rt] Disable default config files for tests
Sam James [Sat, 4 Feb 2023 18:04:05 +0000 (18:04 +0000)]
[compiler-rt] Disable default config files for tests

Without this, if hardening measures like FORTIFY_SOURCE are are in
/etc/clang/*.cfg, many sanitizer tests will die before the sanitizer
can trap the problem being tested, because e.g. the _chk variants
of common functions will abort first.

This gets the number of failing tests down from 42->3 for me (and the
remaining 3 are unrelated).

See: 52ce6776cf98e993c6ec04ae54b52e1354fff917
See: 136f77805fd89cd30e69b3d1204fbf7efedd9a12
Closes: https://github.com/llvm/llvm-project/issues/60394

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D143322

20 months ago[TableGen] Error.h - remove quotes to silence clang-tidy llvm-namespace-comment warning
Simon Pilgrim [Sat, 4 Feb 2023 17:31:52 +0000 (17:31 +0000)]
[TableGen] Error.h - remove quotes to silence clang-tidy llvm-namespace-comment warning

20 months ago[ADT] STLFunctionalExtras.h - fix llvm-include-order clang-tidy warning
Simon Pilgrim [Sat, 4 Feb 2023 17:30:14 +0000 (17:30 +0000)]
[ADT] STLFunctionalExtras.h - fix llvm-include-order clang-tidy warning

20 months ago[AArch64][GlobalISel] Selection for i8 buildvectors
David Green [Sat, 4 Feb 2023 16:11:29 +0000 (16:11 +0000)]
[AArch64][GlobalISel] Selection for i8 buildvectors

Legalization for i8 buildvectors is available (as in
615695de27e417d6b444cd983e6f636373afc8c9), but selection
would fail due to i8 types not being handled. This adds
basic support like other type sizes.

Differential Revision: https://reviews.llvm.org/D143002