platform/upstream/llvm.git
14 months ago[RISCV] Teach performCombineVMergeAndVOps to handle instructions FMA instructions.
Craig Topper [Tue, 30 May 2023 02:44:43 +0000 (19:44 -0700)]
[RISCV] Teach performCombineVMergeAndVOps to handle instructions FMA instructions.

Previously we only handled instructions with merge ops that were
also masked. This patch supports instructions with merge ops that
aren't masked, like FMA.

I'm only folding into a TU vmerge for now. Supporting TA vmerge
shouldn't be much more work, but we need to make sure we get the
policy operand for the result correct. And of course we need more
tests.

Reviewed By: fakepaper56, frasercrmck

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

14 months ago[RISCV] Fix unmasked vp_abs select.
Jianjian GUAN [Mon, 29 May 2023 09:27:36 +0000 (17:27 +0800)]
[RISCV] Fix unmasked vp_abs select.

Make unmasked vp_abs select to umasked instructions.

Reviewed By: fakepaper56

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

14 months ago[mlir][spirv][complex] Support convert complex.constant
Lei Zhang [Tue, 30 May 2023 00:54:22 +0000 (17:54 -0700)]
[mlir][spirv][complex] Support convert complex.constant

Reviewed By: kuhar

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

14 months ago[mlir][complex] Canonicalize re/im(neg(create))
Lei Zhang [Mon, 29 May 2023 20:17:28 +0000 (13:17 -0700)]
[mlir][complex] Canonicalize re/im(neg(create))

When can just convert this to arith.negf.

Reviewed By: kuhar

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

14 months ago[gn] Port 9f6250f more
Nico Weber [Tue, 30 May 2023 00:24:25 +0000 (20:24 -0400)]
[gn] Port 9f6250f more

Follow-up to da54bd230a.
* Add dep to _cg and _sema targets only to CodeGen and Sema,
  like with the other Basic clang_tablegen()s
* Make tablegen_headers depend on arm_sme_draft_spec_subject_to_change
  so that the header gets installed

14 months agoMLIR/Cuda: Add the appropriate "HINTS" on CMake find_library and mark these REQUIRED
Mehdi Amini [Mon, 29 May 2023 08:38:44 +0000 (01:38 -0700)]
MLIR/Cuda: Add the appropriate "HINTS" on CMake find_library and mark these REQUIRED

The cmake logic to find cuda paths exposes some paths to search for the cuda
library, we need to propagate this through the call for find_library.
This was already done for cuSparse but not for cuda.

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

14 months ago[libc++] Add missing _LIBCPP_HIDE_FROM_ABI macro on constructor
Louis Dionne [Mon, 29 May 2023 21:24:15 +0000 (14:24 -0700)]
[libc++] Add missing _LIBCPP_HIDE_FROM_ABI macro on constructor

14 months ago[clangd] Remove unused variable IsBroadcasting
Kazu Hirata [Mon, 29 May 2023 21:17:03 +0000 (14:17 -0700)]
[clangd] Remove unused variable IsBroadcasting

The variable was introduced without a use by:

  commit 2bebc3d0602b407b3f351e782940959da5808f97
  Author: Sam McCall <sam.mccall@gmail.com>
  Date:   Tue Nov 20 10:56:03 2018 +0000

14 months ago[cland] Remove unused declaration getCurrentPreamble
Kazu Hirata [Mon, 29 May 2023 21:17:01 +0000 (14:17 -0700)]
[cland] Remove unused declaration getCurrentPreamble

The corresponding function definition was removed by:

  commit 2214b9076f1d3a4784820c4479e2417685e5c980
  Author: Kadir Cetinkaya <kadircet@google.com>
  Date:   Thu Apr 2 10:53:23 2020 +0200

14 months ago[RISCV][test] Expand bfloat.ll tests to include i16 bitcasts and load/store
Alex Bradbury [Mon, 29 May 2023 20:38:26 +0000 (21:38 +0100)]
[RISCV][test] Expand bfloat.ll tests to include i16 bitcasts and load/store

Pre-commit new tests used in D151663.

14 months ago[ConstraintElim] Add extra tests for and operand implying other op.
Florian Hahn [Mon, 29 May 2023 20:04:59 +0000 (21:04 +0100)]
[ConstraintElim] Add extra tests for and operand implying other op.

Extend test coverage for and conditions where the first operand implies
the second. The update includes the select form of AND and a few cases
where one of the AND operands gets simplified before solving.

14 months ago[clang-tidy] Update UnusedReturnValueCheck types
Roy Jacobson [Mon, 29 May 2023 19:57:39 +0000 (22:57 +0300)]
[clang-tidy] Update UnusedReturnValueCheck types

Update the types for UnusedReturnValueCheck after D151383.

1. Add std::errc, std:error_condition
2. Remove `absl::Status` - it's marked as `[[nodiscard]]` anyway so it's redundant (and might create double warnings) to check it.

Reviewed By: PiotrZSL

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

14 months ago[compiler-rt] [test] [asan] Fix Windows tests in i386 mode after StripFunctionName...
Martin Storsjö [Mon, 29 May 2023 19:49:34 +0000 (22:49 +0300)]
[compiler-rt] [test] [asan] Fix Windows tests in i386 mode after StripFunctionName() improvements

This applies the same fix as a32a16311050fbccc03638b197910dc1415f60ab
to a testcase which isn't executed in x86_64 mode.

14 months ago[libc++] Use the new .gen tests to implement __verbose_abort tests
Louis Dionne [Mon, 22 May 2023 19:47:00 +0000 (12:47 -0700)]
[libc++] Use the new .gen tests to implement __verbose_abort tests

This reduces the amount of boilerplate that we need to generate
for each commit. It also resolves a problem where the modular CI
would run extremely slow on this test because we'd define a macro
before including the standard library, defeating the module cache.

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

14 months ago[Analysis] Remove unused function stripIntegerCast
Kazu Hirata [Mon, 29 May 2023 19:19:14 +0000 (12:19 -0700)]
[Analysis] Remove unused function stripIntegerCast

The last use was removed by:

  commit d5b840131223f2ffef4e48ca769ad1eb7bb1869a
  Author: Philip Reames <preames@rivosinc.com>
  Date:   Thu May 11 08:10:49 2023 -0700

14 months ago[Analysis] Remove unused declarations visitEHBeginCatch and visitEHEndCatch
Kazu Hirata [Mon, 29 May 2023 19:19:13 +0000 (12:19 -0700)]
[Analysis] Remove unused declarations visitEHBeginCatch and visitEHEndCatch

The corresponding function definitions were removed by:

  commit 14e773500e036de57ed0ca4af6fddc1f8b6767d8
  Author: Reid Kleckner <rnk@google.com>
  Date:   Fri Oct 9 23:34:53 2015 +0000

14 months ago[Coroutines] Remove unused variable AsyncFuncTy
Kazu Hirata [Mon, 29 May 2023 18:56:53 +0000 (11:56 -0700)]
[Coroutines] Remove unused variable AsyncFuncTy

The last use was removed by:

  commit e760ec2a01fba0d90e2fea33cf99b75baa2c2a1c
  Author: Arnold Schwaighofer <aschwaighofer@apple.com>
  Date:   Thu Feb 11 08:25:31 2021 -0800

14 months ago[bugpoint] Remove unused declaration debugPassMiscompilation
Kazu Hirata [Mon, 29 May 2023 18:56:52 +0000 (11:56 -0700)]
[bugpoint] Remove unused declaration debugPassMiscompilation

The declaration seems to have been unused for at least 15 years.

14 months ago[Vectorize] Remove unused declaration requiresTooManyRuntimeChecks
Kazu Hirata [Mon, 29 May 2023 18:56:50 +0000 (11:56 -0700)]
[Vectorize] Remove unused declaration requiresTooManyRuntimeChecks

The corresponding function definition was removed by:

  commit 644a965c1efef68f22d9495e4cefbb599c214788
  Author: Florian Hahn <flo@fhahn.com>
  Date:   Mon Jul 4 15:10:48 2022 +0100

14 months ago[gn build] (manually) port 9f6250f
Zequan Wu [Mon, 29 May 2023 18:51:08 +0000 (14:51 -0400)]
[gn build] (manually) port 9f6250f

14 months ago[LV] Remove dead CHECK lines after 280656eae95a9cbf.
Florian Hahn [Mon, 29 May 2023 18:23:51 +0000 (19:23 +0100)]
[LV] Remove dead CHECK lines after 280656eae95a9cbf.

Those check lines were left over after adding new run lines in
280656eae95a9cbf.

14 months ago[ExecutionEngine] Remove unused declaration recordRuntimeRegistrationFunctions
Kazu Hirata [Mon, 29 May 2023 18:01:56 +0000 (11:01 -0700)]
[ExecutionEngine] Remove unused declaration recordRuntimeRegistrationFunctions

The declaration was added without a corresponding function definition
by:

  commit 217fd59cc5849f1afdbb8a74807a80b23f2da227
  Author: Lang Hames <lhames@gmail.com>
  Date:   Thu Jan 12 23:17:46 2023 -0800

14 months ago[ExecutionEngine] Remove unused declaration defineNonExistent
Kazu Hirata [Mon, 29 May 2023 18:01:54 +0000 (11:01 -0700)]
[ExecutionEngine] Remove unused declaration defineNonExistent

The declaration was added without a corresponding function definition
by:

  commit cb84e4827e43921659e75509dfb42ebf56c50502
  Author: Lang Hames <lhames@gmail.com>
  Date:   Wed Mar 25 13:07:00 2020 -0700

14 months ago[DebugInfo] Remove unused declaration getFirstFunctionInfoAddress
Kazu Hirata [Mon, 29 May 2023 18:01:53 +0000 (11:01 -0700)]
[DebugInfo] Remove unused declaration getFirstFunctionInfoAddress

The declaration was added without a corresponding function definition
by:

  commit d8e077e2caebc1415fb7af1714dd436adf99b6bf
  Author: Greg Clayton <gclayton@fb.com>
  Date:   Mon Mar 6 15:57:17 2023 -0800

14 months ago[AArch64] Remove unused declaration tryParseMRSSystemRegister
Kazu Hirata [Mon, 29 May 2023 17:53:46 +0000 (10:53 -0700)]
[AArch64] Remove unused declaration tryParseMRSSystemRegister

The corresponding definition was removed by:

  commit e8b4166accfa03b9693bea34e53eb384f4b99198
  Author: Bradley Smith <bradley.smith@arm.com>
  Date:   Wed Apr 9 14:43:06 2014 +0000

14 months ago[AArch64] Remove unused declaration legalizeShuffleVector
Kazu Hirata [Mon, 29 May 2023 17:53:45 +0000 (10:53 -0700)]
[AArch64] Remove unused declaration legalizeShuffleVector

The declaration was added without a corresponding function definition
by:

  commit 4c52fb1a5ee20846627d16e38f5dec08c08f8884
  Author: Vladislav Dzhidzhoev <vdzhidzhoev@accesssoftek.com>
  Date:   Mon Aug 15 21:51:13 2022 +0300

14 months ago[AArch64] Remove unused declaration LowerSCALAR_TO_VECTOR
Kazu Hirata [Mon, 29 May 2023 17:53:43 +0000 (10:53 -0700)]
[AArch64] Remove unused declaration LowerSCALAR_TO_VECTOR

The corresponding function definition was removed by:

  commit 85d6a16c46616336c52792e7a490e70ea8b6461e
  Author: Tim Northover <tnorthover@apple.com>
  Date:   Fri Apr 4 09:03:09 2014 +0000

14 months ago[lld] Allow input files from compatible architectures on EC targets.
Jacek Caban [Wed, 5 Apr 2023 21:03:15 +0000 (23:03 +0200)]
[lld] Allow input files from compatible architectures on EC targets.

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

14 months ago[lld] Use correct machine type in ARM64EC COFF headers.
Jacek Caban [Tue, 21 Mar 2023 19:01:22 +0000 (20:01 +0100)]
[lld] Use correct machine type in ARM64EC COFF headers.

This adds very minimal support for ARM64EC/ARM64X targets,
just enough for interesting test cases. Next patches in the
series extend llvm-objdump and llvm-readobj to provide
better tests. Those will also be useful for testing further
ARM64EC LLD support.

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

14 months agoRevert "Revert "Host: generalise `GetXcodeSDKPath`""
Saleem Abdulrasool [Mon, 29 May 2023 16:35:19 +0000 (09:35 -0700)]
Revert "Revert "Host: generalise `GetXcodeSDKPath`""

This reverts commit c46d9af26cefb0b24646d3235b75ae7a1b8548d4.

Rename the variable to avoid `-Wchanges-meaning` warning.  Although, it
might be better to squelch the warning as it is of low value IMO.

14 months agoRevert "[llvm-debuginfod][NFC] Switch to OptTable"
Alex Brachet [Mon, 29 May 2023 16:31:04 +0000 (16:31 +0000)]
Revert "[llvm-debuginfod][NFC] Switch to OptTable"

This reverts commit 1610627d2b42c0daf8cc20649c50ddad222f001b.

14 months ago[mlir][llvm] Add rounding intrinsics
Lukas Sommer [Mon, 29 May 2023 15:58:50 +0000 (17:58 +0200)]
[mlir][llvm] Add rounding intrinsics

Add some of the missing libm rounding intrinsics to the LLVM dialect:
* `llvm.rint`
* `llvm.nearbyint`
* `llvm.lround`
* `llvm.llround`
* `llvm.lrint`
* `llvm.llrint`

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

14 months ago[AMDGPU][AsmParser][NFC] Refine parsing of NamedOperandU32 operands.
Ivan Kosarev [Mon, 29 May 2023 15:37:13 +0000 (16:37 +0100)]
[AMDGPU][AsmParser][NFC] Refine parsing of NamedOperandU32 operands.

Eliminates the need for the custom code in parseCustomOperand().

Part of <https://github.com/llvm/llvm-project/issues/62629>.

Reviewed By: dp

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

14 months ago[LSV] Return same bitwidth from getConstantOffset.
Justin Lebar [Mon, 29 May 2023 05:17:20 +0000 (22:17 -0700)]
[LSV] Return same bitwidth from getConstantOffset.

Previously, getConstantOffset could return an APInt with a different
bitwidth than the input pointers.  For example, we might be loading an
opaque 64-bit pointer, but stripAndAccumulateInBoundsConstantOffsets
might give a 32-bit offset.

This was OK in most cases because in gatherChains, we casted the APInt
back to the original ASPtrBits.

But it was not OK when considering selects.  We'd call getConstantOffset
twice and compare the resulting APInt's, which might not have the same
bit width.

This fixes that.  Now getConstantOffset always returns offsets with the
correct width, so we don't need the hack of casting it in gatherChains,
and it works correctly when we're handling selects.

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

14 months ago[MLIR] Add output argument to affineParallelize utility
Uday Bondhugula [Mon, 29 May 2023 03:22:40 +0000 (08:52 +0530)]
[MLIR] Add output argument to affineParallelize utility

Add output argument to affineParallelize utility. NFC.

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

14 months ago[X86] X86FixupVectorConstantsPass - attempt to replace full width fp vector constant...
Simon Pilgrim [Sat, 27 May 2023 16:59:19 +0000 (17:59 +0100)]
[X86] X86FixupVectorConstantsPass - attempt to replace full width fp vector constant loads with broadcasts on AVX+ targets

lowerBuildVectorAsBroadcast will not broadcast splat constants in all cases, resulting in a lot of situations where a full width vector load that has failed to fold but is loading splat constant values could use a broadcast load instruction just as cheaply, and save constant pool space.

NOTE: SSE3 targets can use MOVDDUP but not all SSE era CPUs can perform this as cheaply as a vector load, we will need to add scheduler model checks if we want to pursue this.

14 months ago[LLDB] Add XFAIL on AArch64/Windows to TestNamespace.py
Muhammad Omair Javaid [Mon, 29 May 2023 14:53:23 +0000 (18:53 +0400)]
[LLDB] Add XFAIL on AArch64/Windows to TestNamespace.py

14 months agoRevert "[ValueTracking][InstCombine] Add a new API to allow to ignore poison generati...
Florian Hahn [Mon, 29 May 2023 14:44:35 +0000 (15:44 +0100)]
Revert "[ValueTracking][InstCombine] Add a new API to allow to ignore poison generating flags or metadatas when implying poison"

This reverts commit 754f3ae65518331b7175d7a9b4a124523ebe6eac.

Unfortunately the change can cause regressions due to dropping flags
from instructions (like nuw,nsw,inbounds), prevent further optimizations
depending on those flags.

A simple example is the IR below, where `inbounds` is dropped with the
patch and the phase-ordering test added in 7c91d82ab912fae8b.

    define i1 @test(ptr %base, i64 noundef %len, ptr %p2) {
    bb:
      %gep = getelementptr inbounds i32, ptr %base, i64 %len
      %c.1 = icmp uge ptr %p2, %base
      %c.2 = icmp ult ptr %p2, %gep
      %select = select i1 %c.1, i1 %c.2, i1 false
      ret i1 %select
    }

For more discussion, see D149404.

14 months agoRevert "[LLDB] Add/Remove xfail for some API tests on Windows"
tcwg [Mon, 29 May 2023 12:57:26 +0000 (13:57 +0100)]
Revert "[LLDB] Add/Remove xfail for some API tests on Windows"

This reverts commit 6ea1a0d4fc3823de143a288df2059b48dc01cf72.

It again marks XFAIL LLDB tests failing after
c384fcd3ea1dad782eaaea89b32fc33c0c3528b8

14 months ago[LLDB] Fix TestVarPath.py for AArch64 Windows
Muhammad Omair Javaid [Mon, 29 May 2023 12:14:51 +0000 (16:14 +0400)]
[LLDB] Fix TestVarPath.py for AArch64 Windows

Since 44bb442 LLDB TestVarPath.py crashes on AArch64 Windows.
GetValueForVariablePath function seems to be triggering the crash.
This patch disable parts of this test causing the crash.

Bug reported upstream:
https://github.com/llvm/llvm-project/issues/62983

14 months ago[SelectionDAG] Implement soft FP legalisation for bf16 FP_EXTEND and BF16_TO_FP
Alex Bradbury [Mon, 29 May 2023 09:32:28 +0000 (10:32 +0100)]
[SelectionDAG] Implement soft FP legalisation for bf16 FP_EXTEND and BF16_TO_FP

As discussed in D151436, it's safe to do this as a simple shift (as is
done in LegalizeDAG.cpp) rather than needing a libcall. The added test
cases for RISC-V previously just triggered an assertion.

Codegen for bfloat_to_double will be slightly improved by D151434.

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

14 months agoRevert "[flang][runtime] Support all non-ASCII characters in temporary path on Windows"
Muhammad Omair Javaid [Mon, 29 May 2023 08:20:58 +0000 (12:20 +0400)]
Revert "[flang][runtime] Support all non-ASCII characters in temporary path on Windows"

This reverts commit fd0d846633b05e1d0072754aea7f3985be36c0dc.

It seems to have broken various flang unit tests on AArch64 Windows platform.

https://lab.llvm.org/buildbot/#/builders/65/builds/9856
https://lab.llvm.org/buildbot/#/builders/120/builds/4883

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

14 months ago[LLDB] Remove XFAIL on Windows decorator XPASSes
Muhammad Omair Javaid [Mon, 29 May 2023 08:12:16 +0000 (12:12 +0400)]
[LLDB] Remove XFAIL on Windows decorator XPASSes

Following tests are now passing on LLDB AArch64 Windows buildbot:
  lldb-api :: commands/expression/deleting-implicit-copy-constructor/TestDeletingImplicitCopyConstructor.py
  lldb-api :: functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
  lldb-api :: lang/cpp/constructors/TestCppConstructors.py
  lldb-api :: lang/cpp/namespace/TestNamespace.py
  lldb-api :: lang/cpp/this_class_type_mixing/TestThisClassTypeMixing.py

https://lab.llvm.org/buildbot/#/builders/219/builds/3012

This patch removes XFAIL decorator from all of the above.

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

14 months ago[clang] Restrict Inline Builtin to non-static, non-odr linkage
serge-sans-paille [Wed, 19 Apr 2023 14:15:17 +0000 (16:15 +0200)]
[clang] Restrict Inline Builtin to non-static, non-odr linkage

Inline builtins have a very special behavior compared to other
functions, it's better if we keep them restricted to a minimal set of
functions.

Add a linkage check which prevents considering ODR definitions as inline
builtins.

Fix #62958

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

14 months ago[NFC][TableGen] Remove dead code.
Luo, Yuanke [Mon, 29 May 2023 02:24:13 +0000 (10:24 +0800)]
[NFC][TableGen] Remove dead code.

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

14 months ago[MemCpyOpt] remove byval from memcpy size crtical test(NFC)
khei4 [Mon, 29 May 2023 06:38:51 +0000 (15:38 +0900)]
[MemCpyOpt] remove byval from memcpy size crtical test(NFC)
Differential Revision: https://reviews.llvm.org/D151626
Reviewed By: nikic

14 months ago[CodeGen] Use llvm::LLVMContext::MD_nontemporal (NFC)
Kazu Hirata [Mon, 29 May 2023 07:41:51 +0000 (00:41 -0700)]
[CodeGen] Use llvm::LLVMContext::MD_nontemporal (NFC)

14 months ago[emacs] Highlight 'nocapture' keyword as an attribute
Noah Goldstein [Mon, 29 May 2023 07:15:07 +0000 (02:15 -0500)]
[emacs] Highlight 'nocapture' keyword as an attribute

Seems natural to highlight 'nocapture' along with other attributes
like 'nonnull', 'noundef', etc..

Reviewed By: nikic

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

14 months ago[lsan] Don't use InternalMmapVectorNoCtor as local var
Vitaly Buka [Mon, 29 May 2023 06:33:47 +0000 (23:33 -0700)]
[lsan] Don't use InternalMmapVectorNoCtor as local var

14 months ago[lsan] Iterate MemoryMappingLayout once
Vitaly Buka [Mon, 29 May 2023 06:01:45 +0000 (23:01 -0700)]
[lsan] Iterate MemoryMappingLayout once

Iterating many time can be very expensive.

14 months ago[libc++][spaceship] Implement `operator<=>` for `multiset` and `set`
Hristo Hristov [Mon, 22 May 2023 20:33:45 +0000 (23:33 +0300)]
[libc++][spaceship] Implement `operator<=>` for `multiset` and `set`

Implements parts of P1614R2

Implemented `operator<=>` for `multiset` and `set`

Reviewed By: #libc, Mordante

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

14 months ago[LICM] Reassociate & hoist sub expressions
Max Kazantsev [Mon, 29 May 2023 05:05:50 +0000 (12:05 +0700)]
[LICM] Reassociate & hoist sub expressions

LICM could reassociate mixed variant/invariant comparison/arithmetic operations
and hoist invariant parts out of loop if it can prove that they can be computed
without overflow. Motivating example here:
```
  INV1 - VAR1 < INV2
```
can be turned into
```
  VAR > INV1 - INV2
```
if we can prove no-signed-overflow here. Then `INV1 - INV2` can be computed
out of loop, so we save one arithmetic operation in-loop.

Reviewed By: skatkov
Differential Revision: https://reviews.llvm.org/D148001

14 months ago[NFC][lsan] Change Mac root regions scan
Vitaly Buka [Mon, 29 May 2023 05:25:53 +0000 (22:25 -0700)]
[NFC][lsan] Change Mac root regions scan

14 months ago[bazel] Port for 9f6250f591057e68c0bda564716b6918b8e39a84.
Haojian Wu [Mon, 29 May 2023 05:18:41 +0000 (07:18 +0200)]
[bazel] Port for 9f6250f591057e68c0bda564716b6918b8e39a84.

14 months ago[NFC][lsan] Add CHECKs for root regions
Vitaly Buka [Mon, 29 May 2023 05:09:09 +0000 (22:09 -0700)]
[NFC][lsan] Add CHECKs for root regions

14 months ago[NFC][lsan] Make mutex static
Vitaly Buka [Mon, 29 May 2023 04:50:08 +0000 (21:50 -0700)]
[NFC][lsan] Make mutex static

14 months ago[NFC][lsan] Rename RootRegion and replace size with end
Vitaly Buka [Mon, 29 May 2023 04:20:01 +0000 (21:20 -0700)]
[NFC][lsan] Rename RootRegion and replace size with end

14 months ago[NFC][CLANG] Fix issue with dereference null return value in EvaluateBuiltinClassifyT...
Manna, Soumi [Mon, 29 May 2023 03:08:54 +0000 (20:08 -0700)]
[NFC][CLANG] Fix issue with dereference null return value in EvaluateBuiltinClassifyType()

This patch uses cast instead of dyn_cast which will assert if the type doesn't match.

Reviewed By: erichkeane

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

14 months agouse ref to avoid copy in range for-loop
Wang, Xin10 [Mon, 29 May 2023 02:23:32 +0000 (22:23 -0400)]
use ref to avoid copy in range for-loop

Use big obj copy in range for-loop will call copy constructor every time,
which can be avoided by use ref instead.

Reviewed By: skan

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

14 months ago[NFC][DAGISel] Remove dead code.
Luo, Yuanke [Mon, 29 May 2023 01:55:47 +0000 (09:55 +0800)]
[NFC][DAGISel] Remove dead code.

14 months ago[lld] Partially revert "Always emit symbol table when dwarf section exists in COFF"
Haohai Wen [Mon, 29 May 2023 01:22:20 +0000 (09:22 +0800)]
[lld] Partially revert "Always emit symbol table when dwarf section exists in COFF"

This reverts part of commit 44363f2ff2736e4edf4a260f442b513ceac661fc.

Fixup for NO symbol table test has been reserved.

Reviewed By: wxiao3

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

14 months ago[X86][NFC] Fix a bug after D150436 and update some comments
Wang, Xin10 [Mon, 29 May 2023 01:09:08 +0000 (21:09 -0400)]
[X86][NFC] Fix a bug after D150436 and update some comments

D150436 changed the order for INC*r, but unintentionally remove 'isConvertibleToThreeAddress = 1' for INC*r_alt.
This patch also update wrong comment X86InstrArithmetic.td, and move class ITy to InstrInfo.td for it's a general class.

Reviewed By: skan

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

14 months ago[Clang][AArch64][SME] Add vector load/store (ld1/st1) intrinsics
Bryan Chan [Mon, 15 May 2023 04:54:45 +0000 (00:54 -0400)]
[Clang][AArch64][SME] Add vector load/store (ld1/st1) intrinsics

This patch adds support for the following SME ACLE intrinsics (as defined
in https://arm-software.github.io/acle/main/acle.html):

  - svld1_hor_za8      // also for _za16, _za32, _za64 and _za128
  - svld1_hor_vnum_za8 // also for _za16, _za32, _za64 and _za128
  - svld1_ver_za8      // also for _za16, _za32, _za64 and _za128
  - svld1_ver_vnum_za8 // also for _za16, _za32, _za64 and _za128
  - svst1_hor_za8      // also for _za16, _za32, _za64 and _za128
  - svst1_hor_vnum_za8 // also for _za16, _za32, _za64 and _za128
  - svst1_ver_za8      // also for _za16, _za32, _za64 and _za128
  - svst1_ver_vnum_za8 // also for _za16, _za32, _za64 and _za128

SveEmitter.cpp is extended to generate arm_sme.h (currently named
arm_sme_draft_spec_subject_to_change.h) and other SME definitions from
arm_sme.td, which is modeled after arm_sve.td. Common TableGen definitions
are moved into arm_sve_sme_incl.td.

Co-authored-by: Sagar Kulkarni <sagar.kulkarni1@huawei.com>
Reviewed By: sdesmalen, kmclaughlin

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

14 months ago[NFC][sanitizer] Micro optimize push_back()
Vitaly Buka [Mon, 29 May 2023 00:53:54 +0000 (17:53 -0700)]
[NFC][sanitizer] Micro optimize push_back()

14 months ago[MLIR] NFC. JitRunner - use range-based for
Uday Bondhugula [Sat, 27 May 2023 10:48:57 +0000 (16:18 +0530)]
[MLIR] NFC. JitRunner - use range-based for

Address clang-tidy warning in JitRunner.cpp. Use range-based for.

14 months agoFix fold of 0-result 0-trip-count `affine.for`
Vinayaka Bandishti [Sun, 28 May 2023 20:23:31 +0000 (01:53 +0530)]
Fix fold of 0-result 0-trip-count `affine.for`

Folding 0-result ops is tricky. An 0-trip-count `affine.for` that does
not return any results is not erased at the end of its usual fold
method. Attempting fold it to only results in an infinite loop of folds
on the same op. Fix this by attempting for fold away only those
`affine.for` ops that return a non-zero number of results.

Reviewed By: bondhugula

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

14 months ago[Bitcode] Modernize PerRecordStats (NFC)
Kazu Hirata [Sun, 28 May 2023 20:13:14 +0000 (13:13 -0700)]
[Bitcode] Modernize PerRecordStats (NFC)

14 months agoFix typos in documentation
Kazu Hirata [Sun, 28 May 2023 20:13:12 +0000 (13:13 -0700)]
Fix typos in documentation

14 months ago[clang][c++20][NFC] `ComparisonCategoryType` - updated comment, removed `std:*_equality`
Hristo Hristov [Sun, 28 May 2023 08:57:32 +0000 (11:57 +0300)]
[clang][c++20][NFC] `ComparisonCategoryType` - updated comment, removed `std:*_equality`

`weak_equality` and `strong_equality` are removed from the standard:
- https://wg21.link/P1959R0
- https://eel.is/c++draft/cmp.categories.pre

Reviewed By: rsmith

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

14 months ago[CodeGen] Remove unused declaration getOrCreateRelativeStub
Kazu Hirata [Sun, 28 May 2023 19:11:28 +0000 (12:11 -0700)]
[CodeGen] Remove unused declaration getOrCreateRelativeStub

The corresponding function definition was removed by:

  commit cf8ff75bade763b054476321dcb82dcb2e7744c7
  Author: Leonard Chan <leonardchan@google.com>
  Date:   Tue Jul 14 14:56:38 2020 -0700

14 months ago[Serialization] Remove unused declaration ReadExplicitTemplateArgumentList
Kazu Hirata [Sun, 28 May 2023 19:11:26 +0000 (12:11 -0700)]
[Serialization] Remove unused declaration ReadExplicitTemplateArgumentList

The function was renamed to ReadTemplateKWAndArgsInfo, but the
original declaration remained:

  commit 7945c981b974f58c021762e77f13cd4859ac447b
  Author: Abramo Bagnara <abramo.bagnara@gmail.com>
  Date:   Fri Jan 27 09:46:47 2012 +0000

14 months ago[Driver] Remove unused declaration AddStaticDeviceLibsPostLinking
Kazu Hirata [Sun, 28 May 2023 19:11:24 +0000 (12:11 -0700)]
[Driver] Remove unused declaration AddStaticDeviceLibsPostLinking

The corresponding function definition was removed by:

  commit 6f96dadb7a5b1593a0b6348539f66f7e945f2561
  Author: Joseph Huber <jhuber6@vols.utk.edu>
  Date:   Mon Jan 23 07:13:33 2023 -0600

14 months ago[LV] Add check line with VF=4 to uniformity test.
Florian Hahn [Sun, 28 May 2023 19:01:03 +0000 (20:01 +0100)]
[LV] Add check line with VF=4 to uniformity test.

Extend test coverage for D148841.

14 months ago[ARM] Allow D-reg copies to use VMOVD with fpregs64
David Green [Sun, 28 May 2023 18:12:45 +0000 (19:12 +0100)]
[ARM] Allow D-reg copies to use VMOVD with fpregs64

This instruction should be available with MVE, where we have D regs, not
requiring the full FP64 target feature.

14 months ago[Hexagon] Explicitly make vector subregs have unknown size and offset
Krzysztof Parzyszek [Fri, 26 May 2023 20:29:13 +0000 (13:29 -0700)]
[Hexagon] Explicitly make vector subregs have unknown size and offset

Vector length depends on the HVX mode, so make the size and offset unknown
instead using values for some specific mode.

14 months ago[LSV] Fix the ContextInst for computeKnownBits.
Justin Lebar [Sun, 28 May 2023 14:53:04 +0000 (07:53 -0700)]
[LSV] Fix the ContextInst for computeKnownBits.

Previously we used the later of GEPA or GEPB.  This is hacky because
really we should be using the later of the two load/store instructions
being considered.  But also it's flat-out incorrect, because GEPA and
GEPB might be in different BBs, in which case we cannot ask which one
comes last (assertion failure,
https://reviews.llvm.org/D149893#4378332).

Fixed, now we use the correct context instruction.

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

14 months ago[clang][NFC] Update latest released Clang versions in make_cxx_dr_status
Vlad Serebrennikov [Sun, 28 May 2023 12:58:14 +0000 (15:58 +0300)]
[clang][NFC] Update latest released Clang versions in make_cxx_dr_status

This changes a handful of recently implemented DRs from "unreleased" to "full" styling in cxx_dr_status.html

14 months ago[clang][HeaderSearch] Fix implicit module when using header maps
Ivan Murashko [Sun, 28 May 2023 10:47:29 +0000 (11:47 +0100)]
[clang][HeaderSearch] Fix implicit module when using header maps

Previously, if a header was found via in a header map, and not just remapped.
we wouldn't also find the module it maps to when using implicit modules (for
module maps that were explicitly loaded).

This diff just updates these code paths to also locate the owning module via
`findUsableModuleForHeader`.

Reviewed By: benlangmuir

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

14 months ago[libcxx] [test] Fix the new alloc tests for Windows
Martin Storsjö [Wed, 24 May 2023 07:45:51 +0000 (07:45 +0000)]
[libcxx] [test] Fix the new alloc tests for Windows

Use ASSERT_WITH_OPERATOR_NEW_FALLBACKS where relevant to waive
the known cases where operator new isn't overridden as expected,
in MinGW DLL configurations.

Clarify the reason for why the fallback in
new.delete.array/new.size_align_nothrow.replace.indirect doesn't
work as expected, which can be considered a vcruntime bug.

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

14 months ago[clang-repl] Fix REPL_EXTERNAL_VISIBILITY and building libclang-cpp.dll for MinGW...
Martin Storsjö [Fri, 26 May 2023 22:09:39 +0000 (22:09 +0000)]
[clang-repl] Fix REPL_EXTERNAL_VISIBILITY and building libclang-cpp.dll for MinGW configurations

This fixes two issues that are observed after
5111286f06e1e10f24745007a45a830760f1790c:

For builds with GCC with LLVM_LINK_LLVM_DYLIB=ON, we previously got
build errors, as libclang-cpp.dll suddenly only contained the
functions that were marked dllexport via REPL_EXTERNAL_VISIBILITY,
instead of all symbols as expected.

For MinGW builds with Clang, building previously succeeded (as it
used either the __attribute__((visibility("default"))) annotation or
nothing at all), and the functions were exported from libclang-cpp.dll
if that was built, but the unit test failed (as neither of those cases
made the functions exported from an EXE).

Don't use the visibility attributes on MinGW targets for these purposes;
setting default visibility only makes a difference if building with
e.g. -fvisibility=hidden, but it doesn't make the symbols exported
from an EXE.

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

14 months ago[Clang][RISCV] Reduce boilerplate under RVVEmitter::createHeader. NFC
eopXD [Sun, 28 May 2023 08:29:36 +0000 (01:29 -0700)]
[Clang][RISCV] Reduce boilerplate under RVVEmitter::createHeader. NFC

Signed-off by: eop Chen <eop.chen@sifive.com>

14 months ago[ModuleInliner] Remove an inapplicable comment
Kazu Hirata [Sun, 28 May 2023 05:26:37 +0000 (22:26 -0700)]
[ModuleInliner] Remove an inapplicable comment

The module inliner has its own logic in deciding the order in which
call sites are inlined, so the comment is inapplicable.

14 months ago[StaticAnalyzer] Remove unused declaration handleLVectorSplat
Kazu Hirata [Sat, 27 May 2023 21:53:54 +0000 (14:53 -0700)]
[StaticAnalyzer] Remove unused declaration handleLVectorSplat

The corresponding function definition was removed by:

  commit 55662b24a4755680e4fd34dc22a3dd555fdb1291
  Author: Balazs Benics <balazs.benics@sigmatechnology.se>
  Date:   Thu Jul 1 10:54:28 2021 +0200

14 months ago[StaticAnalyzer] Remove unused declaration findDirectConstructorForCurrentCFGElement
Kazu Hirata [Sat, 27 May 2023 21:53:53 +0000 (14:53 -0700)]
[StaticAnalyzer] Remove unused declaration findDirectConstructorForCurrentCFGElement

The corresponding definition was removed by:

  commit a84374dc0e4e756a92191dd55efca43165e3977d
  Author: Artem Dergachev <artem.dergachev@gmail.com>
  Date:   Thu Jun 14 01:40:49 2018 +0000

14 months ago[StaticAnalyzer] Remove unused declaration evalLoadCommon
Kazu Hirata [Sat, 27 May 2023 21:53:51 +0000 (14:53 -0700)]
[StaticAnalyzer] Remove unused declaration evalLoadCommon

The corresponding function definition was removed by:

  commit e0fb481cc57f5a9fb4908ab0a871c49d7ee61382
  Author: Artem Dergachev <artem.dergachev@gmail.com>
  Date:   Fri May 4 23:01:10 2018 +0000

14 months ago[mlir][sparse][gpu] fix merge conflict
Aart Bik [Sat, 27 May 2023 20:38:36 +0000 (13:38 -0700)]
[mlir][sparse][gpu] fix merge conflict

Reviewed By: K-Wu

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

14 months ago[mlir][bazel] Port for 660f714, third attempt
Eugene Burmako [Sat, 27 May 2023 20:25:36 +0000 (13:25 -0700)]
[mlir][bazel] Port for 660f714, third attempt

Reviewed By: aartbik

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

14 months ago[mlir][gpu][sparse] adding cusparse sddmm support
Kun Wu [Wed, 24 May 2023 02:21:55 +0000 (02:21 +0000)]
[mlir][gpu][sparse] adding cusparse sddmm support

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

14 months ago[MLIR] Reformat the Bazel build
Eugene Burmako [Fri, 26 May 2023 21:16:47 +0000 (14:16 -0700)]
[MLIR] Reformat the Bazel build

This patch normalizes formatting of the the root BUILD.bazel file by: 1) adjusting indentation a little bit, 2) alphabetically ordering dependencies. These small deviations were introduced by some yesterday's patches:
  * https://reviews.llvm.org/D151104
  * https://reviews.llvm.org/D151346
  * https://reviews.llvm.org/rG16fe2b37365c00b0c6d0ed22c2e6521f2d5de01a
  * https://reviews.llvm.org/rG4d1cd1d8caab13d6b76ce6fc4ff76a01a7931c34

Reviewed By: aartbik

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

14 months ago[ConstraintElimination] Add tests with incrementing pointer IV.
Florian Hahn [Sat, 27 May 2023 19:47:57 +0000 (20:47 +0100)]
[ConstraintElimination] Add tests with incrementing pointer IV.

Add initial set of tests for improved loop phi handling.

14 months ago[gn build] Port ddeab07ca632
LLVM GN Syncbot [Sat, 27 May 2023 19:23:49 +0000 (19:23 +0000)]
[gn build] Port ddeab07ca632

14 months ago[gn] port b22965df1304
Nico Weber [Sat, 27 May 2023 19:23:26 +0000 (15:23 -0400)]
[gn] port b22965df1304

14 months ago[Analysis] Remove unused declaration getCurrentLVarDefinition
Kazu Hirata [Sat, 27 May 2023 17:45:18 +0000 (10:45 -0700)]
[Analysis] Remove unused declaration getCurrentLVarDefinition

The declaration was added without a corresponding function definition
by:

  commit ae497deddfd9c631380bc622fa3e184531c2600a
  Author: DeLesley Hutchins <delesley@google.com>
  Date:   Sat Apr 19 00:35:54 2014 +0000

14 months ago[Serialization] Remove unused declaration SLocCursorForID
Kazu Hirata [Sat, 27 May 2023 17:45:16 +0000 (10:45 -0700)]
[Serialization] Remove unused declaration SLocCursorForID

The corresponding function body was removed by:

  commit 925296b4c2cbb358c34323dfcffbea6d59eb9c1e
  Author: Douglas Gregor <dgregor@apple.com>
  Date:   Tue Jul 19 16:10:42 2011 +0000

14 months ago[AST] Remove unused function removeLocalCVRQualifiers
Kazu Hirata [Sat, 27 May 2023 17:29:23 +0000 (10:29 -0700)]
[AST] Remove unused function removeLocalCVRQualifiers

The last use was removed by:

  commit 0eb06cb3aa2700508c20da28f22ff91e7b82a436
  Author: Roy Jacobson <roi.jacobson1@gmail.com>
  Date:   Tue Mar 14 21:25:54 2023 +0200

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

14 months ago[Bitcode] Modernize PerBlockIDStats (NFC)
Kazu Hirata [Sat, 27 May 2023 17:29:21 +0000 (10:29 -0700)]
[Bitcode] Modernize PerBlockIDStats (NFC)

14 months ago[polly] Fix typos in documentation
Kazu Hirata [Sat, 27 May 2023 17:29:20 +0000 (10:29 -0700)]
[polly] Fix typos in documentation

14 months ago[Hexagon] Use scalar evolution to calculate pointer difference in HVC
Krzysztof Parzyszek [Fri, 26 May 2023 16:20:12 +0000 (09:20 -0700)]
[Hexagon] Use scalar evolution to calculate pointer difference in HVC

14 months ago[CGP] Disable default copy ctor and copy assignment operator for InstructionRemover
Bing1 Yu [Fri, 26 May 2023 08:48:39 +0000 (16:48 +0800)]
[CGP] Disable default copy ctor and copy assignment operator for InstructionRemover

class InstructionRemover manages resources such as dynamically allocated memory, it's generally a good practice to either implement a custom copy constructor or disable the default one.

Reviewed By: pengfei

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

14 months ago[NFC][CLANG] Fix nullptr dereference issue in CodeGenModule::GetConstantArrayFromStri...
Manna, Soumi [Sat, 27 May 2023 14:15:24 +0000 (07:15 -0700)]
[NFC][CLANG] Fix nullptr dereference issue in CodeGenModule::GetConstantArrayFromStringLiteral()

This patch adds an assert.

Reviewed By: erichkeane

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