platform/upstream/llvm.git
16 months ago[X86] combineExtractVectorElt - call hasOneUse() as late as possible. NFCI.
Simon Pilgrim [Sun, 2 Apr 2023 16:43:16 +0000 (17:43 +0100)]
[X86] combineExtractVectorElt - call hasOneUse() as late as possible. NFCI.

MMX conversion is very unlikely, so check the value types first, and make the more expensive hasOneUse() call as late as possible.

16 months ago[clang-tidy] Fix findNextTokenSkippingComments & rangeContainsExpansionsOrDirectives
Piotr Zegar [Sun, 2 Apr 2023 15:49:27 +0000 (15:49 +0000)]
[clang-tidy] Fix findNextTokenSkippingComments & rangeContainsExpansionsOrDirectives

findNextTokenSkippingComments is actually a endless loop,
implementing it correctly.
rangeContainsExpansionsOrDirectives were skiping every second
token, if there were no whitespaces bettwen tokens.

Reviewed By: carlosgalvezp

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

16 months agoRevert D147231 "[libc] Adds string and TestLogger classes, use them in LibcTest"
Guillaume Chatelet [Sun, 2 Apr 2023 16:02:00 +0000 (16:02 +0000)]
Revert D147231 "[libc] Adds string and TestLogger classes, use them in LibcTest"

Does not build with gcc.
This reverts commit fc5ae0a7a45bdb5251f3dad3fc07047f987ca447.

16 months ago[RISCV] Lower fixed length interleaved accesses via vssegN/vlsegN
Luke Lau [Wed, 1 Mar 2023 18:25:48 +0000 (18:25 +0000)]
[RISCV] Lower fixed length interleaved accesses via vssegN/vlsegN

This enables the interleaved access pass on O1 and above, and causes
interleaving/deinterleaving shuffles of fixed length vectors with
stores/loads to be lowered into vssegN/vlsegN.

We need to be careful and make sure that we only lower vsseg/vlseg
whenever we know the fixed vector type will fit within the minimum vlen,
and that the interleaving factor is supported for the given LMUL.

Reviewed By: craig.topper

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

16 months ago[mlir][StorageUniquer] Fix build with LLVM_ENABLE_THREADS=OFF
Alexandre Ganea [Sun, 2 Apr 2023 15:38:58 +0000 (11:38 -0400)]
[mlir][StorageUniquer] Fix build with LLVM_ENABLE_THREADS=OFF

16 months ago[compiler-rt] Avoid double-prefixing aliases with __USER_LABEL_PREFIX__
Sergei Barannikov [Sun, 2 Apr 2023 15:33:27 +0000 (18:33 +0300)]
[compiler-rt] Avoid double-prefixing aliases with __USER_LABEL_PREFIX__

The prefix is added by DECLARE_SYMBOL_VISIBILITY. Calling SYMBOL_NAME
resulted in adding the prefix twice.

Reviewed By: dim

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

16 months ago[libc] Adds string and TestLogger classes, use them in LibcTest
Guillaume Chatelet [Thu, 30 Mar 2023 13:13:27 +0000 (13:13 +0000)]
[libc] Adds string and TestLogger classes, use them in LibcTest

This is an implementation of https://discourse.llvm.org/t/rfc-running-libc-unit-tests-as-integration-tests/69461.

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

16 months ago[DAG] canCreateUndefOrPoison - add ISD::INSERT_VECTOR_ELT handling
Simon Pilgrim [Sun, 2 Apr 2023 15:28:20 +0000 (16:28 +0100)]
[DAG] canCreateUndefOrPoison - add ISD::INSERT_VECTOR_ELT handling

If the inserted element index is guaranteed to be inbounds then a ISD::INSERT_VECTOR_ELT will not create poison/undef.

16 months ago[X86] Add test case showing failure to fold freeze through a ISD::INSERT_VECTOR_ELT...
Simon Pilgrim [Sun, 2 Apr 2023 15:03:14 +0000 (16:03 +0100)]
[X86] Add test case showing failure to fold freeze through a ISD::INSERT_VECTOR_ELT node

16 months ago[libc] Fix missing include for pthread tests
Guillaume Chatelet [Sun, 2 Apr 2023 15:06:15 +0000 (15:06 +0000)]
[libc] Fix missing include for pthread tests

16 months agoRevert "[RISCV] Lower fixed length interleaved accesses via vssegN/vlsegN"
Luke Lau [Sun, 2 Apr 2023 14:56:02 +0000 (15:56 +0100)]
Revert "[RISCV] Lower fixed length interleaved accesses via vssegN/vlsegN"

This reverts commit b95913e8c3a3521b85d689a358e620d89a4e83de.

16 months ago[libc] Use string_view for write_to_stderr
Guillaume Chatelet [Sat, 1 Apr 2023 11:30:34 +0000 (11:30 +0000)]
[libc] Use string_view for write_to_stderr

This patch makes use of `cpp::string_view` instead of `const char*` for `write_to_stderr`. This helps sending non null-terminated buffers such as a single character, `cpp::string_view` or `cpp::string`.
It also fizes the gpu version that had several bugs (See https://reviews.llvm.org/D145913#4236641).

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

16 months ago[RISCV] Lower fixed length interleaved accesses via vssegN/vlsegN
Luke Lau [Wed, 1 Mar 2023 18:25:48 +0000 (18:25 +0000)]
[RISCV] Lower fixed length interleaved accesses via vssegN/vlsegN

This enables the interleaved access pass on O1 and above, and causes
interleaving/deinterleaving shuffles of fixed length vectors with
stores/loads to be lowered into vssegN/vlsegN.

We need to be careful and make sure that we only lower vsseg/vlseg
whenever we know the fixed vector type will fit within the minimum vlen,
and that the interleaving factor is supported for the given LMUL.

Reviewed By: craig.topper

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

16 months ago[LoongArch] Optimize multiplication with immediates
Ben Shi [Sun, 2 Apr 2023 05:06:11 +0000 (13:06 +0800)]
[LoongArch] Optimize multiplication with immediates

Optimize multiplication with some specific immediates to
a pair of `alsl`.

Reviewed By: SixWeining, xen0n

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

16 months ago[LoongArch][NFC] Add tests of multiplication with immediates
Ben Shi [Sun, 2 Apr 2023 04:35:43 +0000 (12:35 +0800)]
[LoongArch][NFC] Add tests of multiplication with immediates

Reviewed By: xen0n, SixWeining

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

16 months ago[HIP] Supports env var HIP_PATH
Yaxun (Sam) Liu [Mon, 6 Mar 2023 15:52:47 +0000 (10:52 -0500)]
[HIP] Supports env var HIP_PATH

Currently HIP toolchain recognize env var ROCM_PATH and option --rocm-path
but only recognize --hip-path.

Some package management tools e.g. Spack relies on env var HIP_PATH to
be able to load different version of HIP dynamically.
(https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/hip/package.py#L446)
Therefore add support of env var HIP_PATH.

Reviewed by: Artem Belevich, Fangrui Song

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

16 months ago[HIP] clang should pass `-mno-amdgpu-ieee` to -cc1
Yaxun (Sam) Liu [Thu, 9 Mar 2023 20:41:54 +0000 (15:41 -0500)]
[HIP] clang should pass `-mno-amdgpu-ieee` to -cc1

Reviewed by: Artem Belevich

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

16 months ago[Loads] Support SCEVAddExpr as start for pointer AddRec.
Florian Hahn [Sun, 2 Apr 2023 11:33:43 +0000 (12:33 +0100)]
[Loads] Support SCEVAddExpr as start for pointer AddRec.

Extend handling to support `%base + offset` as start for AddRecs in
isDereferenceableAndAlignedInLoop. This is done by adjusting AccessSize
by the offset and effectively checking if the full object starting from
%base to %base + offset + access-size is dereferenceable.

Reviewed By: nikic

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

16 months agoStop modifying trailing return types.
Richard Smith [Sun, 2 Apr 2023 08:11:30 +0000 (01:11 -0700)]
Stop modifying trailing return types.

This change reverts the functional change from D144626 but retains its
test. Instead of dealing with the possibility that a trailing requires
clause might have been rewritten into some other incorrect form, just
stop rewriting it.

No functionality changes intended.

Reviewed By: erichkeane, ChuanqiXu

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

16 months ago[mlir][flang] Fix -Wunused-result after D146785 (NFC)
Jie Fu [Sun, 2 Apr 2023 08:30:33 +0000 (16:30 +0800)]
[mlir][flang] Fix -Wunused-result after D146785 (NFC)

/data/llvm-project/mlir/examples/toy/Ch4/toyc.cpp:119:5: error: ignoring return value of function declared with 'nodiscard' attribute [-Werror,-Wunused-result]
    applyPassManagerCLOptions(pm);
    ^~~~~~~~~~~~~~~~~~~~~~~~~ ~~
1 error generated.

/data/llvm-project/flang/lib/Frontend/FrontendActions.cpp:669:3: error: ignoring return value of function declared with 'nodiscard' attribute [-Werror,-Wunused-result]
  mlir::applyPassManagerCLOptions(pm);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
1 error generated.

16 months ago[asan][test][win] Make report_after_syminitialize test less brittle
Alvin Wong [Sat, 1 Apr 2023 18:16:07 +0000 (02:16 +0800)]
[asan][test][win] Make report_after_syminitialize test less brittle

Instead of relying on one of the two commands failing on MinGW target,
just use the `%if` conditional substitution feature from lit, which is
much less brittle.

Amends 5888a47914f44ffaf102fcb7afd3500706fe753f

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

16 months ago[LoopInterchange] Add GEP with 3 indices test for pr57148
Joshua Cao [Sun, 2 Apr 2023 07:19:49 +0000 (00:19 -0700)]
[LoopInterchange] Add GEP with 3 indices test for pr57148

Motivated by https://reviews.llvm.org/D147117. Need a test with
BackedgeTakenCount=False and a 3 index GEP.

16 months ago[mlir] Catch the case using ir print without disabling multithread
Kai Sasaki [Sun, 2 Apr 2023 06:39:27 +0000 (15:39 +0900)]
[mlir] Catch the case using ir print without disabling multithread

-mlir-print-ir-module-scope option cannot be used without disabling multithread for pass manager. For the usability, we can throw a validation error in mlir-opt instead of assertion failure.

Issue: https://github.com/llvm/llvm-project/issues/61578

Reviewed By: mehdi_amini

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

16 months ago[M68k] Add support for lowering atomic fence
Min-Yih Hsu [Mon, 27 Mar 2023 17:27:27 +0000 (10:27 -0700)]
[M68k] Add support for lowering atomic fence

Ideally we want to lower ATOMIC_FENCE into `__sync_synchronize`.
However, libgcc doesn't implement that builtin as GCC simply generates an
inline assembly barrier whenever there needs to be a fence.

We use a similar way to lower ATOMIC_FENCE.

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

16 months ago[clang-format][NFC] Refactor unit tests for "LambdaBodyIndentation: OuterScope"
Jon Phillips [Sun, 2 Apr 2023 02:21:41 +0000 (19:21 -0700)]
[clang-format][NFC] Refactor unit tests for "LambdaBodyIndentation: OuterScope"

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

16 months ago[RISCV] Add special case for i32 uaddo X, -1 on RV64.
Craig Topper [Sun, 2 Apr 2023 01:53:19 +0000 (18:53 -0700)]
[RISCV] Add special case for i32 uaddo X, -1 on RV64.

uaddo X, -1 over flows if X is non-zero.

Matches what we do i32 uaddo X, -1 on RV32.

Fixes #61891.

16 months ago[RISCV] Add i32 uaddo X, -1 test case. NFC
Craig Topper [Sun, 2 Apr 2023 01:49:30 +0000 (18:49 -0700)]
[RISCV] Add i32 uaddo X, -1 test case. NFC

16 months ago[TableGen] Move some vectors into place instead of copying them.
Craig Topper [Sat, 1 Apr 2023 22:40:53 +0000 (15:40 -0700)]
[TableGen] Move some vectors into place instead of copying them.

16 months ago[Clang][AST] Fix __has_unique_object_representations computation for unnamed bitfields.
Roy Jacobson [Sat, 11 Mar 2023 16:39:33 +0000 (18:39 +0200)]
[Clang][AST] Fix __has_unique_object_representations computation for unnamed bitfields.

As pointed out in https://github.com/llvm/llvm-project/issues/61336, objects with
unnamed bitfields aren't be uniquely representable.

Reviewed By: shafik, Endill

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

16 months ago[flang][docs] Document module name extension
Peter Klausler [Sat, 1 Apr 2023 21:05:06 +0000 (14:05 -0700)]
[flang][docs] Document module name extension

Add an entry to the Extensions document describing how we
don't care about conflicts between module names and non-global
items.  (This is a case where it would be a nontrivial amount
of work to catch an "error" that is only a standard conformance
issue, not anything that would prevent a program from working.)

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

16 months ago[flang] Fix checks for USE-associated UDDTIO & their character argument kinds
Peter Klausler [Tue, 28 Mar 2023 20:38:44 +0000 (13:38 -0700)]
[flang] Fix checks for USE-associated UDDTIO & their character argument kinds

Call GetUltimate() before checking a user-defined derived type I/O specific
procedure so that the checks work on a USE-associated procedure.  And
require their character arguments to have the default CHARACTER kind.

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

16 months ago[X86] vector-compare-any_of.ll - add AVX1OR2 check-prefix and make AVX a common check...
Simon Pilgrim [Sat, 1 Apr 2023 20:53:03 +0000 (21:53 +0100)]
[X86] vector-compare-any_of.ll - add AVX1OR2 check-prefix and make AVX a common check-prefix

16 months ago[X86] combinePTESTCC - fold TESTC(X,~X) -> TESTC(X,-1)
Simon Pilgrim [Sat, 1 Apr 2023 19:28:25 +0000 (20:28 +0100)]
[X86] combinePTESTCC - fold TESTC(X,~X) -> TESTC(X,-1)

Partial fix for Issue #59998

16 months ago[X86] Add test showing failure to fold testc(X,~X) -> testc(X,-1)
Simon Pilgrim [Sat, 1 Apr 2023 19:19:27 +0000 (20:19 +0100)]
[X86] Add test showing failure to fold testc(X,~X) -> testc(X,-1)

16 months ago[clang-tidy] Disable misc-definitions-in-headers for declarations in anonymous namespaces
Carlos Galvez [Sat, 1 Apr 2023 15:14:22 +0000 (15:14 +0000)]
[clang-tidy] Disable misc-definitions-in-headers for declarations in anonymous namespaces

Anonymous namespaces are another way of providing internal linkage,
and the check already ignores other cases of internal linkage in
headers, via "static" or "const".

Anonymous namespaces in headers are definitely a source of pitfalls,
but it's not the responsibility of this check to cover that. Instead,
google-build-namespaces will specifically warn about this issue.

Fixes https://github.com/llvm/llvm-project/issues/61471

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

16 months ago[X86] combineSetCCMOVMSK - fold PTEST(XOR(X,Y),XOR(X,Y)) instead of PTEST(SUB(X,Y...
Simon Pilgrim [Sat, 1 Apr 2023 17:45:53 +0000 (18:45 +0100)]
[X86] combineSetCCMOVMSK - fold PTEST(XOR(X,Y),XOR(X,Y)) instead of PTEST(SUB(X,Y),SUB(X,Y))

Consistently use the PTEST(XOR(X,Y),XOR(X,Y)) pattern for all-vector comparisons

16 months ago[clang-format] Handle Verilog struct literals
sstwcw [Sat, 1 Apr 2023 17:10:06 +0000 (17:10 +0000)]
[clang-format] Handle Verilog struct literals

Previously `isVerilogIdentifier` was mistaking the apostrophe used in
struct literals as an identifier.  It is fixed.

Reviewed By: HazardyKnusperkeks, owenpan

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

16 months ago[clang-format] Handle enum in Verilog
sstwcw [Sat, 1 Apr 2023 17:08:31 +0000 (17:08 +0000)]
[clang-format] Handle enum in Verilog

Verilog has enum just like C.

Reviewed By: HazardyKnusperkeks, owenpan, MyDeveloperDay

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

16 months ago[asan][test] Fix tests or mark XFAIL for MinGW target
Alvin Wong [Tue, 28 Mar 2023 09:03:10 +0000 (17:03 +0800)]
[asan][test] Fix tests or mark XFAIL for MinGW target

After this change, `check-asan-dynamic` should pass on x86_64 MinGW
target, using the llvm-mingw toolchain.

The following is a list of issues fixed:

* `asan_str_test.cpp`: Exclude unintercepted functions on MinGW.
* `asan_test.cpp`: Work around regex limitation of gtest on Windows,
  which only affects MinGW target because `long double` has different
  size to `double`.
* `TestCases/Windows/report_after_syminitialize.cpp`: Added  build
  command specifically for MinGW.
* Other tests: Mark XFAIL for various reasons. Some of them need
  further investigation.

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

16 months ago[asan][test] Fix `TestCases/alloca_*` ptr-to-long cast on Windows
Alvin Wong [Thu, 30 Mar 2023 11:21:56 +0000 (19:21 +0800)]
[asan][test] Fix `TestCases/alloca_*` ptr-to-long cast on Windows

64-bit Windows uses 32-bit long so these casts fail to compile with the
error "cast from pointer to smaller type". Change to instead use
uintptr_t like other tests.

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

16 months ago[compiler-rt][asan][test] Fix lit test config on MinGW
Alvin Wong [Mon, 27 Mar 2023 14:48:17 +0000 (22:48 +0800)]
[compiler-rt][asan][test] Fix lit test config on MinGW

MinGW is GCC-like and does not support clang-cl, so clean up the lit cfg
to reflect that. Also mark all Windows test cases using clang-cl as
UNSUPPORTED for now. We should probably adapt most of these test cases
to use the GCC-like clang driver, but that will be for later.

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

16 months ago[X86] LowerVectorAllEqual - handle i64 comparisons on 32-bit targets
Simon Pilgrim [Sat, 1 Apr 2023 16:16:31 +0000 (17:16 +0100)]
[X86] LowerVectorAllEqual - handle i64 comparisons on 32-bit targets

16 months ago[llvm][TextAPI] only compare deployment version for InterfaceFile.
Cyndy Ishida [Sat, 1 Apr 2023 15:28:48 +0000 (08:28 -0700)]
[llvm][TextAPI] only compare deployment version for InterfaceFile.

16 months ago[X86] MatchVectorAllEqualTest - support for sub-128-bit vector icmp(and/or(extract...
Simon Pilgrim [Sat, 1 Apr 2023 15:37:28 +0000 (16:37 +0100)]
[X86] MatchVectorAllEqualTest - support for sub-128-bit vector icmp(and/or(extract(X,0),extract(X,1)),-1/0) reduction patterns

LowerVectorAllEqual already has full support for this

16 months ago[X86] MatchVectorAllEqualTest - add support for icmp(and(extract(X,0),extract(X,1...
Simon Pilgrim [Sat, 1 Apr 2023 15:29:54 +0000 (16:29 +0100)]
[X86] MatchVectorAllEqualTest - add support for icmp(and(extract(X,0),extract(X,1)),-1) allof reduction patterns

16 months ago[X86] Add vector-reduce-and-scalar.ll to test and(extract(v,0),extract(v,1)) style...
Simon Pilgrim [Sat, 1 Apr 2023 15:09:52 +0000 (16:09 +0100)]
[X86] Add vector-reduce-and-scalar.ll to test and(extract(v,0),extract(v,1)) style reduction patterns

16 months agoRevert "AMDGPU: Created a subclass for the return address operand in the tail call...
Aaron Ballman [Sat, 1 Apr 2023 14:49:59 +0000 (10:49 -0400)]
Revert "AMDGPU: Created a subclass for the return address operand in the tail call return instruction"

This reverts commit 7a98934fadc3581ff024a77dc696b62f1a538ad5.

This appears to have broken several bots, including:
https://lab.llvm.org/buildbot/#/builders/42/builds/9472

16 months ago[X86] MatchVectorAllEqualTest - add support for icmp(reduce_and(X),-1) allof reductio...
Simon Pilgrim [Sat, 1 Apr 2023 14:38:38 +0000 (15:38 +0100)]
[X86] MatchVectorAllEqualTest - add support for icmp(reduce_and(X),-1) allof reduction patterns

Also, improve codegen in LowerVectorAllEqual for X == -1 cases to reduce over sized vector using a AND reduction

16 months ago[X86] Add AVX1OR2 common check-prefix to vector-reduce-and-cmp.ll and vector-reduce...
Simon Pilgrim [Sat, 1 Apr 2023 14:19:56 +0000 (15:19 +0100)]
[X86] Add AVX1OR2 common check-prefix to vector-reduce-and-cmp.ll and vector-reduce-or-cmp.ll

16 months ago[clang-format] Don't format typename template parameters as expression
Emilia Dreamer [Sat, 1 Apr 2023 13:51:10 +0000 (16:51 +0300)]
[clang-format] Don't format typename template parameters as expression

bb4f6c4dca98a47054117708015bb2724256ee83 made it so that template
parameter defaults are seen akin to assignments and formatted as
expressions, however, the patch did this for all template parameters,
even for `typename` template parameters.

This patch formats `typename` and `class` template parameters as types.

Fixes https://github.com/llvm/llvm-project/issues/61841

Reviewed By: HazardyKnusperkeks, owenpan, MyDeveloperDay

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

16 months ago[X86] Add AVX512F test coverage to vector-reduce-and-cmp.ll and vector-reduce-or...
Simon Pilgrim [Sat, 1 Apr 2023 13:28:41 +0000 (14:28 +0100)]
[X86] Add AVX512F test coverage to vector-reduce-and-cmp.ll and vector-reduce-or-cmp.ll

16 months ago[X86] vector-reduce-and-cmp.ll - and reductions should compare against -1 not 0 for...
Simon Pilgrim [Sat, 1 Apr 2023 12:58:14 +0000 (13:58 +0100)]
[X86] vector-reduce-and-cmp.ll - and reductions should compare against -1 not 0 for allof style comparisons

Fix tests so we actually test what was intended to complement vector-reduce-or-cmp.ll - this was a copy+paste typo from the vector-reduce-or-cmp.ll file (where we should compare against 0) - comparing reduce_and against 0 doesn't tell us much (other than no common set bits).

16 months ago[compiler-rt] Quote multiple warning flags in check_cxx_compiler_flag invocation
Sergei Barannikov [Sat, 1 Apr 2023 11:23:55 +0000 (14:23 +0300)]
[compiler-rt] Quote multiple warning flags in check_cxx_compiler_flag invocation

Without this all checks fail because CMake passes the flags
like this:
`... -nodefaultlibs   -D-Warray-bounds -Werror -std=c++17 ...`
Note the `-D` before the `-W`.

Reviewed By: ahatanak

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

16 months ago[PhaseOrdering] Add test case for Issue #61061
Simon Pilgrim [Sat, 1 Apr 2023 12:27:11 +0000 (13:27 +0100)]
[PhaseOrdering] Add test case for Issue #61061

16 months ago[LoongArch] Optimize multiplication with immediates
Ben Shi [Sat, 1 Apr 2023 02:42:09 +0000 (10:42 +0800)]
[LoongArch] Optimize multiplication with immediates

Optimize multiplication with some specific immediates to
a pair of `alsl`.

Reviewed By: xen0n, SixWeining

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

16 months ago[LoongArch][NFC] Add tests of multiplication with immediates (for D147305)
Ben Shi [Fri, 31 Mar 2023 04:02:28 +0000 (12:02 +0800)]
[LoongArch][NFC] Add tests of multiplication with immediates (for D147305)

Reviewed By: SixWeining

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

16 months ago[X86] Refactor MatchVectorAllZeroTest -> MatchVectorAllEqualTest
Simon Pilgrim [Sat, 1 Apr 2023 10:08:13 +0000 (11:08 +0100)]
[X86] Refactor MatchVectorAllZeroTest -> MatchVectorAllEqualTest

Refactor MatchVectorAllZeroTest to work with allof/anyof/noneof comparisons with -1 as well as 0, and use it handle icmp(bitcast(icmp_eq(X,Y)),-1) reduction patterns.

We're still missing test coverage for other other reduction types, so have kept these limited to icmp X,0 for now.

16 months ago[asan] Fix Darwin runtimes compilation
Shoaib Meenai [Sat, 1 Apr 2023 09:22:17 +0000 (02:22 -0700)]
[asan] Fix Darwin runtimes compilation

It was failing because of size_t being unknown. I was going to just pull
in stddef.h, but the callback using size_t is only used for Linux and
NetBSD, so limit its definition to those platforms as well.

16 months ago[libc++][spaceship[NFC] P1614R2 `operator<=>` moves misplaced tests to correct location
Hristo Hristov [Sun, 26 Mar 2023 09:00:18 +0000 (12:00 +0300)]
[libc++][spaceship[NFC] P1614R2 `operator<=>` moves misplaced tests to correct location

P1614R2:

- Moved misplaced tests from `libcxx/test/libcxx` to `libcxx/test/std`
- Updated status page `SpaceshipProjects.csv`: `operator<=>` implementation status

Related docs:

- https://eel.is/c++draft/
- https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html

Reviewed By: #libc, philnik

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

16 months ago[Windows SEH] Fix catch+return crash for Windows -EHa
Phoebe Wang [Sat, 1 Apr 2023 06:20:01 +0000 (14:20 +0800)]
[Windows SEH] Fix catch+return crash for Windows -EHa

This change also turns on -fasync-exceptions by default under -EHa
option due to the backend patch merged.

Reviewed By: LuoYuanke

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

16 months ago[Scalar] Use SmallPtrSet::contains (NFC)
Kazu Hirata [Sat, 1 Apr 2023 06:50:17 +0000 (23:50 -0700)]
[Scalar] Use SmallPtrSet::contains (NFC)

16 months ago[TableGen] Simplify some code. NFC
Craig Topper [Sat, 1 Apr 2023 06:35:43 +0000 (23:35 -0700)]
[TableGen] Simplify some code. NFC

This code was creating 1 entry or 0 entry std::array to pass to
to ArrayRef arguments. ArrayRef has a constructor from a single
object and we can use std::nullopt for an empty ArrayRef.

16 months ago[TableGen] Reduce code duplication. NFC
Craig Topper [Sat, 1 Apr 2023 05:54:10 +0000 (22:54 -0700)]
[TableGen] Reduce code duplication. NFC

16 months ago[BOLT][NFC] Simplify code using std::optional
Yi Kong [Fri, 31 Mar 2023 08:07:47 +0000 (16:07 +0800)]
[BOLT][NFC] Simplify code using std::optional

Use std::optional instead of tracking if it is the first profile seen.

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

16 months ago[RISCV][NFC] Simplify PatFrag mul_const_oneuse
Ben Shi [Fri, 31 Mar 2023 09:59:31 +0000 (17:59 +0800)]
[RISCV][NFC] Simplify PatFrag mul_const_oneuse

Reviewed By: craig.topper

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

16 months agoasan_memory_profile: Fix for deadlock in memory profiler code.
Sanjeet Karan Singh [Sat, 1 Apr 2023 03:36:34 +0000 (20:36 -0700)]
asan_memory_profile: Fix for deadlock in memory profiler code.

Wrapping stopTheWorld in dl_iterate_phdr acquire dl_load lock before
calling the function. Acquiring dl_load, allocator and thread registry
locks before calling stopTheWorld ensures no other threads are holding
that locks, we can safely suspend them and reenter in tracer thread.
LockStuffAndStopTheWorld's logic here is same as lsan's implementation
of this function.

Reviewed By: vitalybuka

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

16 months ago[ORC][MachO] __objc_imageinfo isn't a MachO "object platform section".
Lang Hames [Sat, 1 Apr 2023 03:31:16 +0000 (20:31 -0700)]
[ORC][MachO] __objc_imageinfo isn't a MachO "object platform section".

Commit 2666231d173 fixed a typo ("__objc_image_info" was corrected to
"__objc_imageinfo"), but this has exposed a bug where we were adding this
section to the list of platform sections to register with the ORC runtime.
The ORC runtime's MachO "object platform section" code doesn't recognize
this section (it's handled elsewhere) and errors out on it.

The solution is simply to remove __objc_imageinfo from the list of sections
to register in MachOPlatform::PlatformPlugin::registerObjectPlatformSections.

16 months ago[ORC] Prefer SectionRange::getRange convenience method.
Lang Hames [Sat, 1 Apr 2023 02:27:01 +0000 (19:27 -0700)]
[ORC] Prefer SectionRange::getRange convenience method.

16 months ago[ORC] Remove more unnecessary ExecutorAddr::getValue calls.
Lang Hames [Sat, 1 Apr 2023 01:56:20 +0000 (18:56 -0700)]
[ORC] Remove more unnecessary ExecutorAddr::getValue calls.

16 months ago[ORC] Remove redundant ExecutorAddr temporaries.
Lang Hames [Sat, 1 Apr 2023 00:51:01 +0000 (17:51 -0700)]
[ORC] Remove redundant ExecutorAddr temporaries.

Most ORC APIs work with ExecutorAddr by default since 8b1771bd9f3, so we don't
need to wrap these values in ExecutorAddr(...) calls any more.

16 months ago[FuzzMutate] introduce vector operations, select and fneg into InstInjectorStrategy
Peter Rong [Tue, 13 Dec 2022 00:33:19 +0000 (16:33 -0800)]
[FuzzMutate] introduce vector operations, select and fneg into InstInjectorStrategy

Reviewed By: arsenm

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

16 months ago[OHOS] Remove redundant IsIntegratedAssemblerDefault. NFC
Brad Smith [Sat, 1 Apr 2023 00:21:12 +0000 (20:21 -0400)]
[OHOS] Remove redundant IsIntegratedAssemblerDefault. NFC

It is already enabled.

16 months ago[clang-format] Add MinDigits suboptions to IntegerLiteralSeparator
Owen Pan [Wed, 29 Mar 2023 04:59:05 +0000 (21:59 -0700)]
[clang-format] Add MinDigits suboptions to IntegerLiteralSeparator

Closes #61209.

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

16 months ago[ORC] Simplify some ExecutorAddr uses by removing getValue and formatv.
Lang Hames [Sat, 1 Apr 2023 00:07:19 +0000 (17:07 -0700)]
[ORC] Simplify some ExecutorAddr uses by removing getValue and formatv.

16 months ago[gn] Port a52054cfa29d more
Nico Weber [Sat, 1 Apr 2023 00:10:48 +0000 (20:10 -0400)]
[gn] Port a52054cfa29d more

16 months ago[gn] Port a52054cfa29d
Nico Weber [Sat, 1 Apr 2023 00:08:26 +0000 (20:08 -0400)]
[gn] Port a52054cfa29d

16 months ago[llvm][TextAPI] compare deployment versions for equality check
Cyndy Ishida [Fri, 31 Mar 2023 23:20:40 +0000 (16:20 -0700)]
[llvm][TextAPI] compare deployment versions for equality check

16 months ago[flang] IO condition specfier control flow
V Donaldson [Fri, 31 Mar 2023 16:36:16 +0000 (09:36 -0700)]
[flang] IO condition specfier control flow

Execution of a statement such as

read(internal,*,err=666,iostat=stat) k

that terminates with an END or EOR condition must not take the ERR branch.

16 months ago[dsymutil] Disable 'auto' verification as the default
Jonas Devlieghere [Fri, 31 Mar 2023 23:27:04 +0000 (16:27 -0700)]
[dsymutil] Disable 'auto' verification as the default

Don't make 'auto' verification the default when assertions or expensive
checks are enabled while I investigate the test failures on the bots.

16 months ago[llvm-mc] Fix line_end_with_space.test
Aiden Grossman [Fri, 31 Mar 2023 23:22:15 +0000 (23:22 +0000)]
[llvm-mc] Fix line_end_with_space.test

Currently, this test doesn't test what it was originally intended to
(that lvm-mc doesn't crash when disassembling a line that ends with a
space). This patch readds the space to the input so that this
functionality is actually tested and adds a comment describing what the
test does. The space seems to have been inadvertently removed in
c8d578311473fceb50579906658b0c017ef5b193 and then never added back
in.

Reviewed By: MaskRay

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

16 months ago[clang-format] Don't misannotate left squares as lambda introducers
Owen Pan [Fri, 31 Mar 2023 03:16:52 +0000 (20:16 -0700)]
[clang-format] Don't misannotate left squares as lambda introducers

A left square can start a lambda only if it's not preceded by an
identifier other than return and co-wait/co-yield/co-return.

Fixes #54245.
Fixes #61786.

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

16 months ago[clang] Set ShowInSystemHeader for module-build and module-import remarks
Dave Lee [Thu, 8 Dec 2022 18:31:16 +0000 (10:31 -0800)]
[clang] Set ShowInSystemHeader for module-build and module-import remarks

Without this change, the use of `-Rmodule-build` and `-Rmodule-import` only
produces diagnostics for modules built or imported by non-system code.

For example, if a project source file requires the Foundation module to be
built, then `-Rmodule-build` will show a single diagnostic for Foundation, but
not in turn for any of Foundation's (direct or indirect) dependencies. This is
because the locations of those transitive module builds are initiated from
system headers, which are ignored by default. When wanting to observe module
building/importing, the system modules can represent a significant amount of
module diagnostics, and I think should be shown by default when
`-Rmodule-build` and `-Rmodule-import` are specified.

I noticed some other remarks use `ShowInSystemHeader`.

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

16 months ago[mlir][sparse] support sparse bufferization.alloc_tensor with copy argument.
Peiming Liu [Fri, 31 Mar 2023 21:17:57 +0000 (21:17 +0000)]
[mlir][sparse] support sparse bufferization.alloc_tensor with copy argument.

Reviewed By: aartbik

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

16 months ago[M68k] Add AssemblerPredicate to existing `AtLeast680x0` predicates
Min-Yih Hsu [Fri, 31 Mar 2023 21:46:39 +0000 (14:46 -0700)]
[M68k] Add AssemblerPredicate to existing `AtLeast680x0` predicates

And refactor how `AtLeast680x0` are defined. This is essentially NFC.

16 months ago[debugserver] Fix ARM64 logs
Alex Langford [Fri, 31 Mar 2023 21:42:49 +0000 (14:42 -0700)]
[debugserver] Fix ARM64 logs

DNBArchImplARM64.cpp had a ton of logs referring to DNBArchMachARM and
one log referring to DNBArchMachX86_64. I've changed these all to ARM64.

16 months ago[dsymutil] Remove spurious newline in warning
Jonas Devlieghere [Fri, 31 Mar 2023 21:23:56 +0000 (14:23 -0700)]
[dsymutil] Remove spurious newline in warning

Remove spurious newline at the end of the warning about not being able
to open a binary.

16 months ago[SLP]Fix PR61835: Assertion `I->use_empty() && "trying to erase
Alexey Bataev [Fri, 31 Mar 2023 19:29:45 +0000 (12:29 -0700)]
[SLP]Fix PR61835: Assertion `I->use_empty() && "trying to erase
instruction with users."' failed.

If the externally used scalar is part of the tree and is replaced by
extractelement instruction, need to add generated extractelement
instruction to the list of the ExternallyUsedValues to avoid deletion
during vectorization.

16 months ago[mlir][spirv] Add OpExtension "SPV_INTEL_bfloat16_conversion"
Md Abdullah Shahneous Bari [Fri, 31 Mar 2023 21:02:25 +0000 (14:02 -0700)]
[mlir][spirv] Add OpExtension "SPV_INTEL_bfloat16_conversion"

Add Intel-specific "SPV_INTEL_bfloat16_conversion" extension and
capability (Bfloat16ConversionINTEL), and
two ops (OpConvertFToBF16INTEL, OpConvertBF16ToFINTEL)
that are introduced by this extension.
These ops allow BF16 to Float conversion and vice-versa.

Reference Specification:
https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/INTEL/SPV_INTEL_bfloat16_conversion.asciidoc

Reviewed By: antiagainst

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

16 months ago[LV] Improve test added in 74dee4791a2.
Florian Hahn [Fri, 31 Mar 2023 20:50:39 +0000 (21:50 +0100)]
[LV] Improve test added in 74dee4791a2.

Adjust test so it triggers a case missed in the original version
of D147260.

16 months ago[lldb] Move ObjectFileJIT to lldbExpression
Alex Langford [Tue, 28 Mar 2023 21:00:13 +0000 (14:00 -0700)]
[lldb] Move ObjectFileJIT to lldbExpression

In the spirit of not having lldbExpression rely on plugins, this move
makes the most sense. ObjectFileJIT is not really a "plugin" in the
sense that without it, expression evaluation doesn't work at all. This
is different than something like ObjectFileELF where lldb can still
technically debug non-ELF targets without it. For that reason, moving
ObjectFileJIT into Expression where it will be used in conjunction with
IRExecutionUnit makes the most sense.

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

16 months ago[AutoFDO]Merge called target in body samples when flattening profiles
Mingming Liu [Fri, 31 Mar 2023 04:55:41 +0000 (21:55 -0700)]
[AutoFDO]Merge called target in body samples when flattening profiles

- Body samples could have call targets, merge them as well.

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

16 months ago[LV] Add test with predicated load where EltSize % Align != 0.
Florian Hahn [Fri, 31 Mar 2023 20:15:13 +0000 (21:15 +0100)]
[LV] Add test with predicated load where EltSize % Align != 0.

16 months ago[RISCV] Add named constants for rounding mode to tablegen. NFC
Craig Topper [Fri, 31 Mar 2023 20:08:10 +0000 (13:08 -0700)]
[RISCV] Add named constants for rounding mode to tablegen. NFC

Instead of hardcoding the values, uses name constants to improve
readability.

Reviewed By: asb

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

16 months ago[RISCV] Collapse loadfp32imm/loadfp64imm/loadfp16imm to a single Operand in tablegen
Craig Topper [Fri, 31 Mar 2023 20:06:26 +0000 (13:06 -0700)]
[RISCV] Collapse loadfp32imm/loadfp64imm/loadfp16imm to a single Operand in tablegen

They were identical except for the type passed to Operand, but
I don't think that type is used for anything with the way its
being used today.

16 months ago[X86] vector-reduce-and-bool.ll - add AVX1OR2 check-prefix and make AVX a common...
Simon Pilgrim [Fri, 31 Mar 2023 20:09:57 +0000 (21:09 +0100)]
[X86] vector-reduce-and-bool.ll - add AVX1OR2 check-prefix and make AVX a common check-prefix

16 months ago[X86] vector-compare-all_of.ll - add AVX1OR2 check-prefix and make AVX a common check...
Simon Pilgrim [Fri, 31 Mar 2023 19:54:22 +0000 (20:54 +0100)]
[X86] vector-compare-all_of.ll - add AVX1OR2 check-prefix and make AVX a common check-prefix

16 months ago[OpenMP] Add CMake option to disable `libarcher` support
Joseph Huber [Fri, 31 Mar 2023 17:26:56 +0000 (12:26 -0500)]
[OpenMP] Add CMake option to disable `libarcher` support

The support for `libarcher` can sometimes cause problems when running
tests or building. We want an option to turn this off when we are not
directly testing `libarcher`.

Reviewed By: jplehr

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

16 months ago{tests] Rerun autogen to reduce a diff [nfc]
Philip Reames [Fri, 31 Mar 2023 19:41:21 +0000 (12:41 -0700)]
{tests] Rerun autogen to reduce a diff [nfc]

16 months ago[libc][Obvious] Add a missing dep and fix an incorrect dep.
Siva Chandra Reddy [Fri, 31 Mar 2023 19:36:18 +0000 (19:36 +0000)]
[libc][Obvious] Add a missing dep and fix an incorrect dep.

16 months ago[RISCV] Fix Zfa fceil/ffloor codegen bugs
Jun Sha (Joshua) [Fri, 31 Mar 2023 19:15:05 +0000 (12:15 -0700)]
[RISCV] Fix Zfa fceil/ffloor codegen bugs

D143982 confused ceil and floor. Ceil should use fround instructions with 'rup' and floor should use 'rdn'.

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