Joel E. Denny [Fri, 27 May 2022 22:53:19 +0000 (18:53 -0400)]
[OpenACC][OpenMP] Document atomic-in-teams extension
That is, put D126323 in the status doc and explain its relationship to
OpenACC support.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D126547
Philip Reames [Fri, 27 May 2022 22:37:42 +0000 (15:37 -0700)]
[RISCV] Allow PRE of vsetvli involving non-1 LMUL
This is a follow up to address a review comment from D124869. When deciding whether to PRE a vsetvli, we can allow non-LMUL1 vsetvlis.
Differential Revision: https://reviews.llvm.org/D126563
eopXD [Wed, 25 May 2022 03:06:34 +0000 (20:06 -0700)]
[LSR][TTI][PowerPC][SystemZ][X86] Add const-ness to TTI::isLSRCostLess. NFC
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D126350
NAKAMURA Takumi [Fri, 27 May 2022 14:39:52 +0000 (23:39 +0900)]
[bazel] BLAKE3: Adopt aarch64 and x86_64.
FIXME: arm(32) may be applicable here. I haven't tested yet.
Differential Revision: https://reviews.llvm.org/D126543
Martin Storsjö [Fri, 27 May 2022 13:37:43 +0000 (16:37 +0300)]
[lldb] Fix cross compiling on macOS
When cross compiling, a separate nested cmake is spawned, for building
host code generation tools such as lldb-tblgen.
When cross compiling on macOS, the nested native build would trigger
the lldb check for libc++, if testing is enabled (which it is by default).
(Even if `LLDB_INCLUDE_TESTS=OFF` is set on the main build, it has to
be passed separately in `CROSS_TOOLCHAIN_FLAGS_NATIVE` to reach the
nested build.)
Skip this check when building the host tools when cross compiling, as
the user won't try to run tests in that nested build.
(Alternatively, we could consider disabling all the `*_INCLUDE_TESTS`
by default in the nested host tools build.)
Differential Revision: https://reviews.llvm.org/D126557
Craig Topper [Fri, 27 May 2022 21:39:30 +0000 (14:39 -0700)]
[RISCV] Correct load/store alignments in sink-splat-operands.ll. NFC
These should be aligned to the natural alignment of the element.
Probably copy/paste mistake from the i32 tests.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D126567
wren romano [Fri, 27 May 2022 19:42:46 +0000 (12:42 -0700)]
[mlir][sparse] Fixes C++98 warning
The semicolons were introduced in D126105 in order to correct clang-format, but I forgot this file must be compiled as C++98 rather than C++11.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D126561
Philip Reames [Fri, 27 May 2022 19:51:54 +0000 (12:51 -0700)]
[RISCV] Add a vsetvli PRE test involving non-1 LMUL
Craig Topper [Fri, 27 May 2022 20:10:47 +0000 (13:10 -0700)]
[RISCV] Use template version of SignExtend64 for constant extends. NFC
We were inconsistent about which one we used.
Tobias Ribizel [Fri, 27 May 2022 20:06:45 +0000 (13:06 -0700)]
[CMake] Make FindLibEdit.cmake more robust
FindLibEdit uses pkg-config to find the necessary flags, but this may break with cross-compilation,
because the PkgConfig module in CMake doesn't respect the SYSROOT specified in a toolchain file.
Instead of taking the parameters from pkg-config for granted, we check whether our compiler can
actually include and link against the library.
Fixes #55445
Fixes #55671
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D126450
Louis Dionne [Thu, 26 May 2022 15:49:47 +0000 (11:49 -0400)]
[runtimes] Rename various libcpp-has-no-XYZ Lit features to just no-XYZ
Since those features are general properties of the environment, it makes
sense to use them from libc++abi too, and so the name libcpp-has-no-xxx
doesn't make sense.
Differential Revision: https://reviews.llvm.org/D126482
Nikolas Klauser [Mon, 23 May 2022 16:47:52 +0000 (18:47 +0200)]
[libc++][NFC] Rename rand.dis to rand.dist
Reviewed By: ldionne, #libc
Spies: libcxx-commits, mgrang, mstorsjo
Differential Revision: https://reviews.llvm.org/D126221
Craig Topper [Fri, 27 May 2022 19:13:41 +0000 (12:13 -0700)]
[RISCV] Remove unused variables. NFC
Sam Clegg [Fri, 27 May 2022 15:34:31 +0000 (08:34 -0700)]
[lld][WebAssembly] Fix crash on undefined+weak function syms in LTO objects
Symbols from LTO objects don't contain Wasm signatures, but we need a
signature when we create undefined/stub functions for missing weakly
undefined symbols.
Luckily, after LTO, we know that symbols that are not referenced by a
regular object file must not be needed in the final output so there
is no need to generate undefined/stub function for them.
Differential Revision: https://reviews.llvm.org/D126554
Pengxuan Zheng [Thu, 19 May 2022 18:30:57 +0000 (11:30 -0700)]
[llvm-lib] Ignore /LTCG option
"The /LTCG option to LIB specifies that the inputs from cl.exe include object
files generated by using the /GL compiler option."
Based on Microsoft's description
above (https://docs.microsoft.com/en-us/cpp/build/reference/running-lib?view=msvc-170),
there doesn't seem to be anything llvm-lib needs to do to support the flag.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D126000
Craig Topper [Fri, 27 May 2022 17:16:32 +0000 (10:16 -0700)]
[RISCV] Return false from isOffsetFoldingLegal instead of reversing the fold in lowering.
When lowering GlobalAddressNodes, we were removing a non-zero offset and
creating a separate ADD.
It already comes out of SelectionDAGBuilder with a separate ADD. The
ADD was being removed by DAGCombiner.
This patch disables the DAG combine so we don't have to reverse it.
Test changes all look to be instruction order changes. Probably due
to different DAG node ordering.
Differential Revision: https://reviews.llvm.org/D126558
Nicolai Hähnle [Thu, 28 Apr 2022 22:52:44 +0000 (17:52 -0500)]
AMDGPU: Add G_AMDGPU_MAD_64_32 instructions
These generic instructions are trivially selected to
V_MAD_[IU]64_[IU]32 instructions when run on the VALU.
When at least both factors are scalar, it is usually better to execute
some or all of the instruction on the SALU. To this end, we lower the
instruction to simpler instructions that are supported on the SALU
when applying the register bank mapping.
Differential Revision: https://reviews.llvm.org/D124843
Julian Lettner [Fri, 27 May 2022 17:15:18 +0000 (10:15 -0700)]
[TSan][Darwin] Deflake test
The asserted order of THREAD_DESTROY and end of main() is not
guaranteed:
```
7: Hello from pthread
8: THREAD_TERMINATE 0x7e8000104000, self: 0x7e8000104000, name: child thread
9: Done.
10: THREAD_DESTROY 0x7e8000104000, self: 0x7e8000104000, name: child thread
```
Resulting in:
```
error: CHECK: expected string not found in input
// CHECK: Done.
```
Remove checking for "Done." (end of main()) to deflake this test.
Alternatively, we could use `CHECK-DAG`.
rdar://
94036145
Louis Dionne [Thu, 26 May 2022 15:12:45 +0000 (11:12 -0400)]
[runtimes] Officially deprecate the legacy testing configuration system
Add a warning and tweak the release note to explain that the deprecation
targets libc++, libc++abi and libuwnind as well.
Also, as a fly-by, ensure that our CI runs the legacy testing configuration
for libc++, libc++abi and libunwind. This doesn't matter too much since
it's deprecated, but we might as well test it properly.
Differential Revision: https://reviews.llvm.org/D126478
Louis Dionne [Thu, 26 May 2022 19:24:59 +0000 (15:24 -0400)]
[libc++] Add various missing _LIBCPP_HIDE_FROM_ABI
Those were spotted when a project unintentionally started exporting
these symbols from its ABI just by using the libc++ headers.
Differential Revision: https://reviews.llvm.org/D126496
Aart Bik [Fri, 27 May 2022 16:48:50 +0000 (09:48 -0700)]
[OpenMP][mlir] fix broken build
Reviewed By: Mogball
Differential Revision: https://reviews.llvm.org/D126556
Alex Brachet [Fri, 27 May 2022 17:03:32 +0000 (17:03 +0000)]
Revert "[Clang] Extend -gen-reproducer flag"
This reverts commit
684c080108766b4f112f172fed4a49059484614d.
Hans Wennborg [Thu, 19 May 2022 09:06:11 +0000 (11:06 +0200)]
[libc++] Use __libcpp_clz for a tighter __log2i function
While looking at D113413 I noticed that __log2i could perhaps be
improved to be both slightly smaller and faster.
projects/libcxx/benchmarks/sort.libcxx.out --benchmark_filter=BM_Sort_uint32_QuickSortAdversary*
suggests this is performance neutral, but it shaves a few bytes off the
benchmark binary, and even more off a Chromium build.
Differential revision: https://reviews.llvm.org/D125958
Matheus Izvekov [Tue, 24 May 2022 16:21:34 +0000 (18:21 +0200)]
cmake: use llvm dir variables for clang/utils/hmaptool
Install hmaptool using the LLVM specific variables, so
everything goes in the right place in case llvm is included
from a top level CMakeLists.txt.
Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Reviewed By: stephenneuendorffer
Differential Revision: https://reviews.llvm.org/D126308
Derek Schuff [Fri, 27 May 2022 15:23:37 +0000 (08:23 -0700)]
[WebAssembly] Consolidate sectionTypeToString in BinaryFormat [NFC]
Currently there are 2 duplicate implementation, and I want to add
a use in a 3rd place. Combine them in lib/BinaryFormat so they can
be shared.
Also update toString for symbol and reloc types to use StringRef
Differential Revision: https://reviews.llvm.org/D126553
PeixinQiao [Fri, 27 May 2022 16:06:57 +0000 (00:06 +0800)]
[OpenMP] Support operation conversion to LLVM for threadprivate directive
This supports the operation conversion for threadprivate directive. The
support for memref type conversion is not implemented.
Reviewed By: kiranchandramohan, shraiysh
Differential Revision: https://reviews.llvm.org/D124610
Sanjay Patel [Fri, 27 May 2022 15:27:14 +0000 (11:27 -0400)]
[InstCombine] fold multiply by signbit-splat to cmp+select
(ashr i32 X, 31) * C --> (X < 0) ? -C : 0
https://alive2.llvm.org/ce/z/G8u9SS
With a constant operand, this is an improvement in IR
and codegen (where it can be converted to a mask op).
Without a constant operand, we would have to negate
the operand, so that is probably better left to the backend.
This is similar but not the same optimization that is requested
in #55618.
Sanjay Patel [Fri, 27 May 2022 15:07:51 +0000 (11:07 -0400)]
[InstCombine] reduce code duplication; NFC
Egor Zhdan [Tue, 24 May 2022 11:00:50 +0000 (12:00 +0100)]
[Clang][Driver] Fix include paths for `--sysroot /` on Linux
Currently if `--sysroot /` is passed to the Clang driver, the include paths generated by the Clang driver will start with a double slash: `//usr/include/...`.
If VFS is used to inject files into the include paths (for example, the Swift compiler does this), VFS will get confused and the injected files won't be visible.
This change makes sure that the include paths start with a single slash.
Fixes #28283.
Differential Revision: https://reviews.llvm.org/D126289
Alex Brachet [Fri, 27 May 2022 15:49:13 +0000 (15:49 +0000)]
[Clang] Extend -gen-reproducer flag
-gen-reproducer causes crash reproduction to be emitted even
when clang didn't crash, and now can optionally take an argument
of never, on-crash (default), on-error and always.
Differential revision: https://reviews.llvm.org/D120201
Amy Kwan [Thu, 26 May 2022 14:24:12 +0000 (09:24 -0500)]
[PowerPC][AIX] Allow VSX patterns to be 32-bit and 64-bit safe on P8+.
This patch updates two patterns involving `scalar_to_vector` and
`SCALAR_TO_VECTOR_PERMUTED` nodes to be safe for both 64-bit and 32-bit by
pulling the patterns out of the 64-bit specific guard. These patterns are
matched on POWER8 and above.
Differential Revision: https://reviews.llvm.org/D125389
Daniele Vettorel [Fri, 27 May 2022 14:17:29 +0000 (10:17 -0400)]
Add llvm-debuginfod-find tool to Bazel build
Add missing `llvm-debuginfod-find` tool to the Bazel build.
Patch by: vettoreldaniele.
Reviewed By: GMNGeoffrey
Differential Revision: https://reviews.llvm.org/D126489
Balazs Benics [Fri, 27 May 2022 14:05:33 +0000 (16:05 +0200)]
[analyzer] Fix wrong annotation of LazyCompoundVal::getStore
The build bot https://lab.llvm.org/buildbot#builders/5/builds/24183
uncovered a wrong nonnull annotation intoduced by D126198.
Tobias Hieta [Fri, 27 May 2022 14:02:15 +0000 (16:02 +0200)]
[workflow] Don't fail workflow if we already have a PR for an issue
When running /cherry-pick several times you will get an
error when it tries to create a new PR since there already
is one.
This checks if we have PR first.
Fixes #54862
Reviewed By: tstellar
Differential Revision: https://reviews.llvm.org/D123657
Yitzhak Mandelbaum [Wed, 25 May 2022 18:51:13 +0000 (18:51 +0000)]
[clang][dataflow] Improve handling of constructor initializers.
Currently, we assert that `CXXCtorInitializer`s are field initializers. Replace
the assertion with an early return. Otherwise, we crash every time we process a
constructor with a non-field (e.g. base class) initializer.
Differential Revision: https://reviews.llvm.org/D126419
Yitzhak Mandelbaum [Wed, 25 May 2022 17:57:27 +0000 (17:57 +0000)]
[clang][dataflow] Remove private-field filtering from `StorageLocation` creation.
The API for `AggregateStorageLocation` does not allow for missing fields (it asserts). Therefore, it is incorrect to filter out any fields at location-creation time which may be accessed by the code. Currently, we limit filtering to private, base-calss fields on the assumption that those can never be accessed. However, `friend` declarations can invalidate that assumption, thereby breaking our invariants.
This patch removes said field filtering to avoid violating the invariant of "no missing fields" for `AggregateStorageLocation`.
Differential Revision: https://reviews.llvm.org/D126420
Shraiysh Vaishay [Fri, 27 May 2022 12:49:14 +0000 (18:19 +0530)]
[flang][OpenMP][NFC] Cleanup the sections tests
This patch cleans up the sections tests as per the recent effort to
separate integration tests from unit tests.
Reviewed By: kiranchandramohan, peixin
Differential Revision: https://reviews.llvm.org/D126368
Vassil Vassilev [Fri, 27 May 2022 11:16:24 +0000 (11:16 +0000)]
Also remove the empty StoredDeclsList entry from the lookup table
In case where we have removed all declarations for a given declaration name
entry we should remove the whole StoredDeclsMap entry.
This patch improves consistency in the lookup tables and helps cling/clang-repl
error recovery.
Differential revision: https://reviews.llvm.org/D119675
Daniil Dudkin [Fri, 27 May 2022 12:33:02 +0000 (15:33 +0300)]
[mlir][llvm] Fix compiler error on GCC 9
This patch fixes the following compiler error:
error: declaration of ‘mlir::LLVM::cconv::CConv mlir::LLVM::detail::CConvAttrStorage::CConv’ changes meaning of ‘CConv’ [-fpermissive]
CConv as a member variable name was shadowing CConv as an enumeration,
hence the compiler error.
Reviewed By: ftynse, alexbatashev
Differential Revision: https://reviews.llvm.org/D126530
Andrew Ng [Fri, 27 May 2022 11:02:36 +0000 (12:02 +0100)]
[LLD][test] Update `zlib` tests for LLD commit
c78c00dc16
Updates for these tests were missed because I didn't have zlib-dev
installed and thus the tests were unsupported and not run.
Daniil Dudkin [Fri, 27 May 2022 10:45:15 +0000 (13:45 +0300)]
[flang] Support correct continuations for compiler directives
If a line is over 72 characters long, flang's preprocessor cuts it there
and continues on the next line.
For this purpose it uses the standard way of continuing line with & on each line.
However, it doesn't work with long compiler directives, like OpenMP or OpenACC ones.
The line that continues the directive also has to
contain the corresponding sentinel at the beginning.
This change implements the described functionality.
Also, some code was refactored in order to simplify and reuse existing code.
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D126301
Fraser Cormack [Thu, 26 May 2022 14:11:02 +0000 (15:11 +0100)]
[RISCV][NFC] Unify compatibility checks under one function
Split off from D125021.
We were duplicating logic across different phases. Since we want to
ensure a consistency of logic across phases for correctness, this patch
combines our multiple compatibility checks into one function to better
convey this.
Several methods were made const too.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D126472
Groverkss [Fri, 27 May 2022 10:21:40 +0000 (15:51 +0530)]
[MLIR][Presburger] Add intersectDomain/Range to IntegerRelation
This patch adds support for intersection a set with a relation.
Reviewed By: arjunp
Differential Revision: https://reviews.llvm.org/D126328
Anastasia Stulova [Fri, 27 May 2022 10:12:44 +0000 (11:12 +0100)]
[Doc][OpenCL] Misc wording improvements for SPIR-V
Ben Dunbobbin [Fri, 27 May 2022 10:02:04 +0000 (11:02 +0100)]
[llvm-ar][test] add special case of replace converting a regular to a thin archive
Add a regression test for:
https://github.com/llvm/llvm-project/issues/55527
Differential Revision: https://reviews.llvm.org/D125785
Andrew Ng [Thu, 26 May 2022 15:03:09 +0000 (16:03 +0100)]
[LLD][ELF] Drop the string null terminator from the hash in splitStrings
Differential Revision: https://reviews.llvm.org/D126484
River Riddle [Tue, 10 May 2022 17:23:57 +0000 (10:23 -0700)]
[mlir][Tablegen-LSP] Add support for a tracking definitions and references
This essentially builds an index for the parsed records and record values (fields).
This covers quite a few cases, but is limited by the currently lackluster location
tracking in tablegen. A followup will work on plumbing more locations through
tablegen, which should greatly improve what we can do here.
Differential Revision: https://reviews.llvm.org/D125443
River Riddle [Mon, 9 May 2022 22:22:12 +0000 (15:22 -0700)]
[mlir][Tablegen-LSP] Add support for include file link and hover
This allows for following links to include files. This support is effectively
identical to the logic in the PDLL language server, and code is shared as
much as possible.
Differential Revision: https://reviews.llvm.org/D125442
River Riddle [Mon, 9 May 2022 22:05:03 +0000 (15:05 -0700)]
[mlir][Tablegen-LSP] Add support for a compilation database
This provides a format for externally specifying the include directories
for a source file. The format of the tablegen database is exactly the
same as that for PDLL, namely it includes the absolute source file name and
the set of include directories. The database format is shared to simplify
the infra, and also because the format itself is general enough to share. Even
if we desire to expand in the future to contain the actual compilation command,
nothing there is specific enough that we would need two different formats.
As with PDLL, support for generating the database is added to our mlir_tablegen
cmake command.
Differential Revision: https://reviews.llvm.org/D125441
Florian Hahn [Fri, 27 May 2022 09:37:02 +0000 (10:37 +0100)]
[AArch64] Add support for FMA intrinsics to shouldSinkOperands.
If the fma operates on a legal vector type, the indexed variants can be
used, if the second operand is a splat of a valid index.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D126234
Andrew Ng [Wed, 25 May 2022 18:18:18 +0000 (19:18 +0100)]
[Support] Reduce allocations in parallelForEach with move
Differential Revision: https://reviews.llvm.org/D126458
Balazs Benics [Fri, 27 May 2022 09:18:05 +0000 (11:18 +0200)]
Revert "[llvm][clang][bolt][NFC] Use llvm::less_first() when applicable"
This reverts commit
3988bd13988aad72ec979beb2361e8738584926b.
Did not build on this bot:
https://lab.llvm.org/buildbot#builders/215/builds/6372
/usr/include/c++/9/bits/predefined_ops.h:177:11: error: no match for call to
‘(llvm::less_first) (std::pair<long unsigned int, llvm::bolt::BinaryBasicBlock*>&, const std::pair<long unsigned int, std::nullptr_t>&)’
177 | { return bool(_M_comp(*__it, __val)); }
Balazs Benics [Fri, 27 May 2022 09:15:23 +0000 (11:15 +0200)]
[llvm][clang][bolt][NFC] Use llvm::less_first() when applicable
One could reuse this functor instead of rolling out your own version.
There were a couple other cases where the code was similar, but not
quite the same, such as it might have an assertion in the lambda or other
constructs. Thus, I've not touched any of those, as it might change the
behavior in some way.
As per https://discourse.llvm.org/t/submitting-simple-nfc-patches/62640/3?u=steakhal
Chris Lattner
> LLVM intentionally has a “yes, you can apply common sense judgement to
> things” policy when it comes to code review. If you are doing mechanical
> patches (e.g. adopting less_first) that apply to the entire monorepo,
> then you don’t need everyone in the monorepo to sign off on it. Having
> some +1 validation from someone is useful, but you don’t need everyone
> whose code you touch to weigh in.
Differential Revision: https://reviews.llvm.org/D126068
Balazs Benics [Fri, 27 May 2022 09:05:50 +0000 (11:05 +0200)]
[analyzer][NFCi] Annotate major nonnull returning functions
This patch annotates the most important analyzer function APIs.
Also adds a couple of assertions for uncovering any potential issues
earlier in the constructor; in those cases, the member functions were
already dereferencing the members unconditionally anyway.
Measurements showed no performance impact, nor crashes.
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126198
Gabor Marton [Fri, 27 May 2022 09:02:11 +0000 (11:02 +0200)]
[analyzer][NFC] Rename GREngine->CoreEngine, GRExprEngine->ExprEngine in comments and txt files
fixes #115
Balazs Benics [Fri, 27 May 2022 08:54:25 +0000 (10:54 +0200)]
[analyzer][NFC] Remove unused default SVal constructors
Reviewed By: martong, xazax.hun
Differential Revision: https://reviews.llvm.org/D125708
Balazs Benics [Fri, 27 May 2022 08:54:25 +0000 (10:54 +0200)]
[analyzer][NFC] Remove unused friend SVal declarations
Reviewed By: martong, xazax.hun
Differential Revision: https://reviews.llvm.org/D125707
Balazs Benics [Fri, 27 May 2022 08:54:25 +0000 (10:54 +0200)]
[analyzer][NFC] Use idiomatic classof instead of isKind
- Rename `isKind()` to `classof()` to follow the llvm style RTTI.
- Take SVal by-value instead of reference.
- Mark `classof` public.
Reviewed By: martong, xazax.hun
Differential Revision: https://reviews.llvm.org/D125706
Nikolas Klauser [Thu, 26 May 2022 15:10:53 +0000 (17:10 +0200)]
[libc++] Enable ranges_robust_against* and niebloid tests for implemented ranges algorithms
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D126477
Luo, Yuanke [Fri, 27 May 2022 02:54:37 +0000 (10:54 +0800)]
[X86][AMX] Replace LDTILECFG with PLDTILECFGV on auto-config.
There is intrinsic `@llvm.x86.ldtilecfg` which is lowered to LDTILECFG.
This intrinsic is open for user to configure tile registers by
themselves. There is a chance that `@llvm.x86.ldtilecfg` would be mixed
with the new AMX intrinsics which depend on compiler to configure tile
registers. Separate pusedo instruction PLDTILECFGV would avoid
unexpected behavious when `@llvm.x86.ldtilecfg` is mixed with new AMX
intrinsics. Though user should not mix the two programming model,
compiler should avoid crash or UB when they are mixed.
Differential Revision: https://reviews.llvm.org/D126519
LLVM GN Syncbot [Fri, 27 May 2022 08:29:03 +0000 (08:29 +0000)]
[gn build] Port
11e3ad299fee
Nikolas Klauser [Thu, 26 May 2022 14:08:55 +0000 (16:08 +0200)]
[libc++] Implement ranges::is_sorted{, _until}
Reviewed By: Mordante, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D125608
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][docs] Fix typo in checker name
Fixes #55720
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][NFC] Use MemRegion::getRegion()'s return value unconditionally
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126123
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][NFC] Remove unused SVal::hasConjuredSymbol
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126130
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][NFC] Remove unused nonloc::ConcreteInt::evalBinOp
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126129
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][NFC] Inline loc::ConcreteInt::evalBinOp
This patch also refactored some of the enclosing parts.
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126128
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][NFC] Inline ExprEngine::evalMinus
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126125
Balazs Benics [Fri, 27 May 2022 08:07:06 +0000 (10:07 +0200)]
[analyzer][NFC] Inline ExprEngine::evalComplement
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126124
River Riddle [Mon, 16 May 2022 23:52:49 +0000 (16:52 -0700)]
[mlir-vscode] Add support for highlighting pdll and tablegen markdown code blocks
This essentially just piggy backs off of the existing mlir support.
Differential Revision: https://reviews.llvm.org/D125734
Serge Pavlov [Fri, 11 Mar 2022 07:40:44 +0000 (14:40 +0700)]
[GlobalISel] Add G_IS_FPCLASS
Add a generic opcode to represent `llvm.is_fpclass` intrinsic.
Differential Revision: https://reviews.llvm.org/D121454
Alexander Batashev [Fri, 27 May 2022 06:23:27 +0000 (09:23 +0300)]
[mlir][LLVM] Add support for Calling Convention in LLVMFuncOp
This patch adds support for Calling Convention attribute in LLVM
dialect, including enums, custom syntax and import from LLVM IR.
Additionally fix import of dso_local attribute.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D126161
Liqin.Weng [Fri, 27 May 2022 06:27:26 +0000 (06:27 +0000)]
[RISCV] Add test for experimental.vector.reverse
```
void vector_reverse_i64(int *A, int *B, int n) {
#pragma clang loop vectorize_width(4, scalable)
for (int i = n-1; i >= 0; i--)
A[i] = B[i] + 1;
}
```
When option: scalable-vectorization is on (or set #pragma clang loop vectorize_width(elements, scalable)), Reverse Iterators can't loop vectorization as <vscale x elements x elementType>
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D125866
Pavel Samolysov [Thu, 26 May 2022 14:03:08 +0000 (17:03 +0300)]
[libunwind][CMake] Fix name of LIBUNWIND_SUPPORTS_NODEFAULTLIBS_FLAG
The CMake variable LIBUNWIND_SUPPORTS_NODEFAULTLIBS_FLAG has been renamed
into C_SUPPORTS_NODEFAULTLIBS_FLAG because the last one is used in the
confix-ix.cmake file while the variable with the original name is not used
at al.
Differential Revision: https://reviews.llvm.org/D126466
Piggy NL [Thu, 26 May 2022 14:59:49 +0000 (22:59 +0800)]
[demangler][RISCV] Fix for long double
Summary:
The size of long double in RISCV (both RV32 and RV64) is 16 bytes, thus
the mangled_size shouble be 32.
This patch will fix test case
"_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c"
in test_demangle.pass.cpp, which is expected to be invalid but demangler
returned "void test0::h<float>(char (&) [(unsigned int)((sizeof (float))
+ (0x0.000000004001ap-16382L))])" in RISCV environment without this patch.
Reviewed By: urnathan
Differential Revision: https://reviews.llvm.org/D126480
Ping Deng [Fri, 27 May 2022 05:45:17 +0000 (05:45 +0000)]
[SelectionDAG][NFC] Simplify integer promotion in setcc/vp.setcc
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D126516
Siva Chandra Reddy [Tue, 24 May 2022 08:13:11 +0000 (08:13 +0000)]
[libc] Add global stdout and stderr objects.
They are added as entrypoint object targets. The header-gen
infrastructure has been extended to enable handling standard required
global objects. The libc-api-test has also been extended to verify the
global object declarations.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D126329
LLVM GN Syncbot [Fri, 27 May 2022 02:54:55 +0000 (02:54 +0000)]
[gn build] Port
08cc05851872
Rahman Lavaee [Fri, 27 May 2022 02:27:05 +0000 (19:27 -0700)]
Reland "[Propeller] Promote functions with propeller profiles to .text.hot."
This relands commit
4d8d2580c53e130c3c3dd3877384301e3c495554.
The major change here is using 'addUsedIfAvailable<BasicBlockSectionsProfileReader>()` to make sure we don't change the pipeline tests.
Differential Revision: https://reviews.llvm.org/D126518
Chenbing Zheng [Fri, 27 May 2022 02:50:30 +0000 (10:50 +0800)]
[InstCombine] [NFC] precommit tests for bitcast-extelt
Luo, Yuanke [Fri, 27 May 2022 02:35:05 +0000 (10:35 +0800)]
[X86][AMX] Update test case with automation tool.
Hanhan Wang [Fri, 27 May 2022 02:20:36 +0000 (19:20 -0700)]
[mlir][Linalg] Relax vectorization condition to allow transposed output.
Reviewed By: ThomasRaoux, dcaballe
Differential Revision: https://reviews.llvm.org/D126454
Enna1 [Fri, 27 May 2022 01:39:04 +0000 (09:39 +0800)]
Add !nosanitize to FixedMetadataKinds
This patch adds !nosanitize metadata to FixedMetadataKinds.def, !nosanitize indicates that LLVM should not insert any sanitizer instrumentation.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D126294
Rahman Lavaee [Fri, 27 May 2022 01:43:58 +0000 (18:43 -0700)]
Revert "[Propeller] Promote functions with propeller profiles to .text.hot."
This reverts commit
4d8d2580c53e130c3c3dd3877384301e3c495554.
Fangrui Song [Fri, 27 May 2022 01:13:38 +0000 (18:13 -0700)]
[RISCV] Simplify code after D125905
wren romano [Thu, 26 May 2022 19:38:58 +0000 (12:38 -0700)]
[mlir][sparse] Moving some functions around
This is a followup to D126105 to move functions in SparseTensorUtils.cpp to match their locations in SparseTensorUtils.h
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D126106
wren romano [Thu, 26 May 2022 19:31:58 +0000 (12:31 -0700)]
[mlir][sparse] Improving ExecutionEngine/SparseTensorUtils.h
This change makes the public API of SparseTensorUtils.cpp explicit, whereas before the publicity of these functions was only implicit. Implicit publicity is sufficient for mlir-opt to generate calls to these functions, but it's not enough to enable C/C++ code to call them directly in the usual way (i.e., without going through codegen). Thus, leaving the publicity implicit prevents development of other tools (e.g., microbenchmarks).
In addition this change also marks the functions MLIR_CRUNNERUTILS_EXPORT, which is required by the JIT under certain configurations (albeit not for anything in our test suite).
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D126105
Argyrios Kyrtzidis [Fri, 27 May 2022 00:18:32 +0000 (17:18 -0700)]
[test/ClangScanDeps] Add a target triple for `macro-expansions.cpp`
This should fix the `clang-ppc64-aix` builder.
Chelsea Cassanova [Thu, 26 May 2022 23:57:57 +0000 (16:57 -0700)]
[lldb/fuzzer] Moving target fuzzer into separate subdirectory
Moving lldb-target-fuzzer into its own subdirectory for better
organization and modularity.
Differential revision: https://reviews.llvm.org/D126507
Damian Rouson [Thu, 31 Mar 2022 20:55:43 +0000 (13:55 -0700)]
[flang] expand the this_image test coverage
Add a test with a range of this_image() intrinsic function
invocations, including a comprehensive set of standard-conforming
keyword and non-keyword arguments with and without optional
arguments present and with argument positions covering all
possible orderings. Also test that several non-conforming
this_image() invocations generate the correct error messages.
Differential Revision: https://reviews.llvm.org/D123331
Rahman Lavaee [Tue, 24 May 2022 17:54:36 +0000 (10:54 -0700)]
[Propeller] Promote functions with propeller profiles to .text.hot.
Today, text section prefixes (none, .unlikely, .hot, and .unkown) are determined based on PGO profile. However, Propeller may deem a function hot when PGO doesn't. Besides, when `-Wl,-keep-text-section-prefix=true` Propeller cannot enforce a global section ordering as the linker can only reorder sections within each output section (.text, .text.hot, .text.unlikely).
This patch promotes all functions with Propeller profiles (functions listed in the basic-block-sections profile) to .text.hot. The feature is hidden behind the flag `--bbsections-guided-section-prefix` which defaults to `true`.
The new implementation refactors the parsing of basic block sections profile into a new `BasicBlockSectionsProfileReader` analysis pass. This allows us to use the information earlier in `CodeGenPrepare` in order to set the functions text prefix. `BasicBlockSectionsProfileReader` will be used both by `BasicBlockSections` pass and `CodeGenPrepare`.
Differential Revision: https://reviews.llvm.org/D122930
Arthur Eubanks [Thu, 26 May 2022 21:18:58 +0000 (14:18 -0700)]
[NFC][JumpThreading] Remove InsertFreezeWhenUnfoldingSelect pass parameter
All callers pass true.
select-unfold-freeze.ll is now a subset of select.ll so delete it.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D126501
Philip Reames [Thu, 26 May 2022 22:24:41 +0000 (15:24 -0700)]
[RISCV] Add a subtarget feature to enable unaligned scalar loads and stores
A RISCV implementation can choose to implement unaligned load/store support. We currently don't have a way for such a processor to indicate a preference for unaligned load/stores, so add a subtarget feature.
There doesn't appear to be a formal extension for unaligned support. The RISCV Profiles (https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc#rva20u64-profile) docs use the name Zicclsm, but a) that doesn't appear to actually been standardized, and b) isn't quite what we want here anyway due to the perf comment.
Instead, we can follow precedent from other backends and have a feature flag for the existence of misaligned load/stores with sufficient performance that user code should actually use them.
Differential Revision: https://reviews.llvm.org/D126085
Rafael Auler [Sat, 21 May 2022 00:42:58 +0000 (17:42 -0700)]
[BOLT] Fix AND evaluation bug in shrink wrapping
Fix a bug where shrink-wrapping would use wrong stack offsets
because the stack was being aligned with an AND instruction, hence,
making its true offsets only available during runtime (we can't
statically determine where are the stack elements and we must give up
on this case).
Reviewed By: Amir
Differential Revision: https://reviews.llvm.org/D126110
Sam Clegg [Thu, 26 May 2022 21:56:36 +0000 (14:56 -0700)]
[lld][WebAssembly] Update test after
87628f5804e2
Jim Ingham [Wed, 18 May 2022 21:39:03 +0000 (14:39 -0700)]
Store a by name list of signals with their actions in the Target
so that they can be used to prime new Process runs. "process handle"
was also changed to populate the dummy target if there's no selected
target, so that the settings will get copied into new targets.
Differential Revision: https://reviews.llvm.org/D126259
Matthias Braun [Thu, 26 May 2022 21:47:49 +0000 (14:47 -0700)]
Use cmake Python3_EXECUTABLE variable instead of hardcoding
Sam Clegg [Thu, 26 May 2022 21:05:05 +0000 (14:05 -0700)]
[lld][WebAssembly] Require double dash for modern linker flags
This matches the behaviour of the ELF backend (in fact this change
is mostly just copying directly from ELF/Options.td).
Differential Revision: https://reviews.llvm.org/D126500
Fangrui Song [Thu, 26 May 2022 21:41:03 +0000 (14:41 -0700)]
[Driver][test] Change -target i386-unknown-linux-gnu to --target=i386 and remove unused -o %t.o
Use a generic ELF triple to demonstrate that these apply to all ELF OSes.
Also migrate away from the legacy `-target ` spelling.
Sebastian Peryt [Thu, 26 May 2022 21:27:25 +0000 (14:27 -0700)]
[DOC] Improve LangRef description of declare
This patch fixes formatting inside Functions section of declare
by making it consistent with the way how define is written.
Fixes #39844
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D125581