Chuanqi Xu [Mon, 13 Feb 2023 03:01:24 +0000 (11:01 +0800)]
Recommit [C++20] [Modules] [ClangScanDeps] Allow clang-scan-deps to without specified compilation database in P1689 (3/4)
In a private chat with @ben.boeckel , we get in consensus it would be
great for cmake if the invocation of clang-scan-deps can get rid of
compilation database. Due to the compilation database can't do very well
for the files which are not existed yet. @ben.boeckel may have more
context to add here.
This patch should be innocent for others usages.
Reviewed By: jansvoboda11
Differential Revision: https://reviews.llvm.org/D137534
Chuanqi Xu [Fri, 10 Feb 2023 02:26:35 +0000 (10:26 +0800)]
Recommit [C++20] [Modules] [ClangScanDeps] Add ClangScanDeps support for C++20 Named Modules in P1689 format (2/4)
Close https://github.com/llvm/llvm-project/issues/51792
Close https://github.com/llvm/llvm-project/issues/56770
This patch adds ClangScanDeps support for C++20 Named Modules in P1689
format. We can find the P1689 format at:
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html.
After we land the patch, we're able to compile C++20 Named
Modules with CMake! And although P1689 is written by kitware people,
other build systems should be able to use the format to compile C++20
Named Modules too.
TODO: Support header units in P1689 Format.
TODO2: Support C++20 Modules in the full dependency format of
ClangScanDeps. We also want to support C++20 Modules and clang modules
together according to
https://discourse.llvm.org/t/how-should-we-support-dependency-scanner-for-c-20-modules/66027.
But P1689 format cares about C++20 Modules only for now. So let's focus
on C++ Modules and P1689 format. And look at the full dependency format
later.
I'll add the ReleaseNotes and Documentations after the patch get landed.
Reviewed By: jansvoboda11
Differential Revision: https://reviews.llvm.org/D137527
Peter Klausler [Sun, 5 Feb 2023 01:55:45 +0000 (17:55 -0800)]
[flang] Handle forward references to modules
When a USE of a module precedes its definition in the same source
file, ensure that the module is processed by name resolution before
the USE statement. This prevents the risk of the USE statement using
an obsolete module file that is later overwritten during the same
compilation.
Differential Revision: https://reviews.llvm.org/D143799
Phoebe Wang [Sun, 12 Feb 2023 14:55:27 +0000 (22:55 +0800)]
[X86][FP16] Add tests to show suboptimal codegen, NFC
Peter Klausler [Sat, 4 Feb 2023 01:19:55 +0000 (17:19 -0800)]
[flang] Warn on overflow folding DIM()
The intrinsic function DIM can overflow when its second argument
is negative. Detect this case for real and integer arguments and
emit a warning when necessary.
Differential Revision: https://reviews.llvm.org/D143798
Peter Klausler [Fri, 3 Feb 2023 00:50:09 +0000 (16:50 -0800)]
[flang] Catch misuse of a procedure designator as an output item
f18 was diagnosing the misuse of a procedure pointer as an output item,
but not the more general case of a procedure designator other than
a pointer.
Differential Revision: https://reviews.llvm.org/D143780
LLVM GN Syncbot [Sun, 12 Feb 2023 22:51:56 +0000 (22:51 +0000)]
[gn build] Port
2a06757a200c
Adrian Vogelsgesang [Thu, 4 Aug 2022 22:21:27 +0000 (15:21 -0700)]
[libc++][spaceship] Implement `lexicographical_compare_three_way`
The implementation makes use of the freedom added by LWG 3410. We have
two variants of this algorithm:
* a fast path for random access iterators: This fast path computes the
maximum number of loop iterations up-front and does not compare the
iterators against their limits on every loop iteration.
* A basic implementation for all other iterators: This implementation
compares the iterators against their limits in every loop iteration.
However, it still takes advantage of the freedom added by LWG 3410 to
avoid unnecessary additional iterator comparisons, as originally
specified by P1614R2.
https://godbolt.org/z/7xbMEen5e shows the benefit of the fast path:
The hot loop generated of `lexicographical_compare_three_way3` is
more tight than for `lexicographical_compare_three_way1`. The added
benchmark illustrates how this leads to a 30% - 50% performance
improvement on integer vectors.
Implements part of P1614R2 "The Mothership has Landed"
Fixes LWG 3410 and LWG 3350
Differential Revision: https://reviews.llvm.org/D131395
Florian Hahn [Sun, 12 Feb 2023 22:35:14 +0000 (22:35 +0000)]
[LV] Update recipe builder functions to pass VPlan directly (NFC).
Passing VPlanPtr requires a dereference of std::unique_ptr on each
access, which is unnecessary. Just pass the plan by reference.
Kiran Chandramohan [Sun, 12 Feb 2023 21:59:05 +0000 (21:59 +0000)]
[Flang][OpenMP][NFC] Remove usage of else after return
Kazu Hirata [Sun, 12 Feb 2023 21:39:18 +0000 (13:39 -0800)]
[Support] Use llvm::popcount (NFC)
This should fix builds on Windows.
Lang Hames [Sun, 12 Feb 2023 20:34:20 +0000 (12:34 -0800)]
[ORC] Add MachOPlatform::Create overload -- Pass ORC runtime as def generator.
The existing Create method took a path to the ORC runtime and created a
StaticLibraryDefinitionGenerator for it. The new overload takes a
std::unique_ptr<DefinitionGenerator> directly instead. This provides more
flexibility when constructing MachOPlatforms. E.g. The runtime archive can be
embedded in a special section in the ORC controller executable or library,
rather than being on-disk.
Peter Klausler [Thu, 2 Feb 2023 22:26:01 +0000 (14:26 -0800)]
[flang] Fix crash on SELECT RANK
In some circumstances, such as in compile-time array shape analysis,
clients of the utility function ResolveAssociations() don't really
want it to drill all of the way down to an assumed-rank dummy argument.
Add a variation, ResolveAssociationsExceptSelectRank(), that
will return a specific rank case's AssocEntity symbol instead.
This fixes a crash in subscript validation checking that stemmed from
deducing an incorrect number of lower and upper bound expressions
from a specific rank case association entity.
Differential Revision: https://reviews.llvm.org/D143778
Kazu Hirata [Sun, 12 Feb 2023 20:11:51 +0000 (12:11 -0800)]
[llvm] Deprecate llvm::count{Leading,Trailing}{Zeros,Ones} and llvm::countPopulation
llvm/include/llvm/ADT/bit.h now has equivalent functions
forward-ported from C++20.
Differential Revision: https://reviews.llvm.org/D143837
Adrian Vogelsgesang [Sun, 12 Feb 2023 20:05:38 +0000 (12:05 -0800)]
[libc++][NFC] Fix formatting in ranges status page
Peter Klausler [Thu, 2 Feb 2023 20:11:01 +0000 (12:11 -0800)]
[flang] Warn about construct names that are not distinct in the inclusive scope
f18 implements BLOCK scoping for construct names, like most but not all Fortran
compilers, but in the 2018 standard such names are defined to be local identifiers
whose scope is the inclusive scope -- i.e., the subprogram or main program.
Detect usage that depends on this extension and emit a portability warning.
Differential Revision: https://reviews.llvm.org/D143776
Jonas Devlieghere [Sun, 12 Feb 2023 18:55:39 +0000 (10:55 -0800)]
[lldb] Add the ability to provide a message to a progress event update
Consider the following example as motivation. Say you have to load
symbols for 3 dynamic libraries: `libFoo`, `libBar` and `libBaz`.
Currently, there are two ways to report process for this operation:
1. As 3 separate progress instances. In this case you create a progress
instance with the message "Loading symbols: libFoo", "Loading
symbols: libBar", and "Loading symbols: libBaz" respectively. Each
progress event gets a unique ID and therefore cannot be correlated
by the consumer.
2. As 1 progress instance with 3 units of work. The title would be
"Loading symbols" and you call Progress::Increment for each of the
libraries. The 3 progress events share the same ID and can easily be
correlated, however, in the current design, there's no way to
include the name of the libraries.
The second approach is preferred when the amount of work is known in
advance, because determinate progress can be reported (i.e. x out of y
operations completed). An additional benefit is that the progress
consumer can decide to ignore certain progress updates by their ID if
they are deemed to noisy, which isn't trivial for the first approach due
to the use of different progress IDs.
This patch adds the ability to add a message (detail) to a progress
event update. For the example described above, progress can now be
displayed as shown:
[1/3] Loading symbols: libFoo
[2/3] Loading symbols: libBar
[3/3] Loading symbols: libBaz
Differential revision: https://reviews.llvm.org/D143690
Simon Pilgrim [Sun, 12 Feb 2023 18:26:22 +0000 (18:26 +0000)]
[X86] combineConcatVectorOps - concatenate 512-bit VPERMILPS nodes.
Simon Pilgrim [Sun, 12 Feb 2023 18:13:52 +0000 (18:13 +0000)]
[X86] Add some basic matrix multiplication test coverage
Based off the IR generated from matrix_type / -fenable-matrix - including 2x2, 3x3, 4x4 and 8x8 matrices
Kiran Chandramohan [Sun, 12 Feb 2023 16:57:36 +0000 (16:57 +0000)]
[Flang][OpenMP][NFC] Correct a few instances of variable naming
In lowering code Flang follows the MLIR coding guideline of using
camelBack for variables names. Correct a few instances that were
not following this guideline.
David Green [Sun, 12 Feb 2023 16:52:38 +0000 (16:52 +0000)]
[AArch64] Regenerate and extend zip1 tests. NFC
This cleans up the existing tests and adds some extra cases that can be lowered
to zip instructions.
Simon Pilgrim [Sun, 12 Feb 2023 16:42:22 +0000 (16:42 +0000)]
BlockFrequencyInfoImpl.cpp - add missing closing namespace comment. NFC
Fixes clang-tidy llvm-namespace-comment warning
Simon Pilgrim [Sun, 12 Feb 2023 16:40:47 +0000 (16:40 +0000)]
BlockFrequencyInfoImpl.h - use auto* for pointer types. NFC.
Silence clang-tidy llvm-qualified-auto warnings
Simon Pilgrim [Sun, 12 Feb 2023 16:37:29 +0000 (16:37 +0000)]
BlockFrequency.h - add missing closing namespace comment. NFC
Fixes clang-tidy llvm-namespace-comment warning
Valentin Clement [Sun, 12 Feb 2023 15:57:24 +0000 (16:57 +0100)]
[flang] Support polymorphic inputs for the TRANSPOSE intrinsic
Force TRANSPOSE with polymorphic inputs through the runtime call
and carry the polymorphic type information from the matrix to
the result.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/D143709
Simon Pilgrim [Sun, 12 Feb 2023 15:23:38 +0000 (15:23 +0000)]
[X86] combinePredicateReduction - attempt to fold subvector all_of(icmp_eq()) / any_of(icmp_ne()) to integers
Noticed while working on Issue #59867 and Issue #53419 - there's still more to do here, but for "all vector" comparisons, we should try to cast to a scalar integer for sub-128bit types
Corentin Jabot [Sat, 11 Feb 2023 16:54:23 +0000 (08:54 -0800)]
[Clang] Add the list of approved (Issaquah) C++ papers to the status page
Simon Pilgrim [Sun, 12 Feb 2023 14:57:11 +0000 (14:57 +0000)]
DemandedBits.cpp - use auto* when initializing from cast<>. NFC.
Silence clang-tidy warnings
Simon Pilgrim [Sun, 12 Feb 2023 14:55:03 +0000 (14:55 +0000)]
RegisterPressure.h - consistently initialize all pointer fields. NFC.
Silence static analyser warning - we're initializing some fields but not others.
Simon Pilgrim [Sun, 12 Feb 2023 14:46:02 +0000 (14:46 +0000)]
Revert rG23cb32c6d5bda0919cc1ef129917ceb2dbf1b1b8 "[X86] combineX86ShufflesRecursively - treat ISD::TRUNCATE as faux shuffle"
This is causing a miscompile - waiting on a regression test from @bkramer
Martin Storsjö [Sun, 12 Feb 2023 13:54:01 +0000 (15:54 +0200)]
Revert "[AArch64] Reassociate sub(x, add(m1, m2)) to sub(sub(x, m1), m2)"
This reverts commit
c52255d26a23df6ecf09f60ca3e3615467f16bbe.
That commit caused certain files (in ffmpeg, libvpx and libaom) to hang
while compiling, see https://reviews.llvm.org/D143143 for repro.
Sanjay Patel [Sun, 12 Feb 2023 11:56:43 +0000 (06:56 -0500)]
[InstCombine] canonicalize cmp+select as smin/smax
(V == SMIN) ? SMIN+1 : V --> smax(V, SMIN+1)
(V == SMAX) ? SMAX-1 : V --> smin(V, SMAX-1)
https://alive2.llvm.org/ce/z/d5bqjy
Follow-up for the unsigned variants added with:
86b4d8645fc1b866
issue #60374
Sanjay Patel [Sat, 11 Feb 2023 14:26:18 +0000 (09:26 -0500)]
[InstCombine] add tests for disguised smin/smax; NFC
Adapted from the existing umin/umax tests.
Benjamin Kramer [Sun, 12 Feb 2023 12:03:54 +0000 (13:03 +0100)]
[bazel][libc] Add a few more missing dependency that show up when parsing headers
NAKAMURA Takumi [Sun, 12 Feb 2023 03:41:55 +0000 (12:41 +0900)]
llvm-tblgen: Apply IWYU in some files
NAKAMURA Takumi [Sun, 12 Feb 2023 03:03:40 +0000 (12:03 +0900)]
CodeGenTarget.cpp: Reformat.
NAKAMURA Takumi [Fri, 20 Jan 2023 22:33:24 +0000 (07:33 +0900)]
LLVMFuzzerCLI: [CMake] Prune the last PARTIAL_SOURCES_INTENDED to cover all sources.
NAKAMURA Takumi [Mon, 17 May 2021 15:01:30 +0000 (00:01 +0900)]
LLVMProcessSources.cmake: Improve PARTIAL_SOURCES_INTENDED.
The last non-partial-specified target can collect and check source files.
Case A:
llvm_add_library(foo PARTIAL_SOURCES_INTENDED ...)
llvm_add_library(bar PARTIAL_SOURCES_INTENDED ...)
llvm_add_library(baz ...)
baz checks source files in foo, bar, and baz.
Case B:
llvm_add_library(hoge PARTIAL_SOURCES_INTENDED ...)
llvm_add_library(fuga PARTIAL_SOURCES_INTENDED ...)
llvm_add_library(piyo PARTIAL_SOURCES_INTENDED ...)
llvm_check_source_file_list() # Explicitly checks sources in hoge, fuga, and piyo.
Differential Revision: https://reviews.llvm.org/D142256
Michael Buch [Sun, 12 Feb 2023 01:49:07 +0000 (01:49 +0000)]
Reland "[lldb][DWARFASTParserClang] Attach linkage name to ctors/dtors if missing"
This relands the commit previously reverted in
`
d2cc2c5610ffa78736aa99512bc85a85417efb0a` due to failures on Linux
when debugging split-debug-info enabled executables.
The problem was we called `SymbolFileDWARF::FindFunctions` directly
instead of `Module::FindFunctions` which resulted in a nullptr
dereference because the backing `SymbolFileDWARFDwo` didn't have
an index attached to it. The relanded version calls `Module::FindFunctions`
instead.
Differential Revision: https://reviews.llvm.org/D143652
Kriti Gupta [Sun, 12 Feb 2023 10:12:25 +0000 (10:12 +0000)]
[test] Remove occurences of br undef in Transform/Util tests [NFC]
Differential Revision: https://reviews.llvm.org/D143770
NAKAMURA Takumi [Sun, 12 Feb 2023 09:36:11 +0000 (18:36 +0900)]
Revert "[C++20] [Modules] [ClangScanDeps] Add ClangScanDeps support for C++20 Named Modules in P1689 format (2/4)"
This reverts commit
de17c665e3f995c7f5a0e453461ce3a1b8aec196.
See also D137527
NAKAMURA Takumi [Sun, 12 Feb 2023 09:35:40 +0000 (18:35 +0900)]
Revert "[C++20] [Modules] [ClangScanDeps] Allow clang-scan-deps to without specified compilation database in P1689 (3/4)"
This reverts commit
591fdcde921334b2d502779006d7c168307a2106.
See also D137527
NAKAMURA Takumi [Sun, 12 Feb 2023 09:34:29 +0000 (18:34 +0900)]
Revert "[ClangScanDeps] Add UNSUPPORTED: system-windows to test P1689.cppm"
This reverts commit
79a3803bb2ccdd852436cd1653017a1159a12157.
See also D137527
Hsiangkai Wang [Sat, 11 Feb 2023 15:08:00 +0000 (15:08 +0000)]
[docs] Make consistent between MLIR tutorial doc and example code
In MLIR tutorial example code, use `Pure` to remove the side-effects of
operations. Update the document to be consistent with the example code.
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D143814
Hsiangkai Wang [Sat, 11 Feb 2023 15:17:35 +0000 (15:17 +0000)]
[AArch64] Consider tiny code model in emitLoadFromConstantPool.
We should be able to use load(literal) to access constant pool under
the tiny code model.
Reviewed By: aemerson
Differential Revision: https://reviews.llvm.org/D132536
Amir Ayupov [Sun, 12 Feb 2023 05:10:27 +0000 (21:10 -0800)]
[Clang][perf-training] Remove trailing whitespace in perf-helper
Kazu Hirata [Sun, 12 Feb 2023 01:53:01 +0000 (17:53 -0800)]
[AArch64] Use llvm::countr_{zero,one} (NFC)
Lang Hames [Sun, 12 Feb 2023 00:52:33 +0000 (16:52 -0800)]
[JITLink] Don't initialize local ArrayRefs with initializer lists.
This can lead to use-after-free errors (see e.g.
https://lab.llvm.org/buildbot/#/builders/168/builds/11848).
Craig Topper [Sun, 12 Feb 2023 00:51:07 +0000 (16:51 -0800)]
[RISCV] Remove dead code from RISCVDAGToDAGISel::selectVSETVLI. NFC
vsetvli no longer has side effects so we don't need code for
handling INSTRINSIC_W_CHAIN.
Mircea Trofin [Sat, 11 Feb 2023 16:01:06 +0000 (08:01 -0800)]
Specify target triple for bb-prefix-dump.ll
Differential Revision: https://reviews.llvm.org/D143815
Lang Hames [Sat, 11 Feb 2023 21:11:02 +0000 (13:11 -0800)]
[JITLink] Add explicit conversion to silence warnings / errors on bots.
Commit
10b5fec2563 uses a char -1 value, which triggers narrowing conversion
warnings / errors on some platforms (see e.g.
https://lab.llvm.org/buildbot/#/builders/36/builds/30312). Adding an explicit
conversion should fix this.
Hui [Sat, 11 Feb 2023 20:41:43 +0000 (20:41 +0000)]
[libcxx][ranges] mark new join view tests unsupported without experimental flag
Differential Revision: https://reviews.llvm.org/D143828
Craig Topper [Sat, 11 Feb 2023 20:30:32 +0000 (12:30 -0800)]
[RISCV] Fix mistake in comment. NFC
Lang Hames [Sat, 11 Feb 2023 19:58:25 +0000 (11:58 -0800)]
[JITLink][ORC] Add LinkGraph::allocateCString method.
Renames the existing allocateString method to allocateContent and adds a pair of
allocateCString methods.
The previous allocateString method did not include a null-terminator. It behaved
the same as allocateContent except with a Twine input, rather than an
ArrayRef<char>. Renaming allocateString to allocateBuffer (overloading the
existing method) makes this clearer.
The new allocateCString methods allocate the given content plus a
null-terminator character, and return a buffer covering both the string and
null-terminator. This makes them suitable for creating c-string content for
jitlink::Blocks.
Existing users of the old allocateString method have been updated to use the
new allocateContent overload.
Hui [Sun, 5 Feb 2023 19:31:30 +0000 (19:31 +0000)]
[libc++] fix `shared_ptr`'s incorrect constraints
Fix several bugs:
1. https://llvm.org/PR60258
The conversion constructors' constraint `__compatible_with` incorrectly allow array types conversion to scalar types
2. https://llvm.org/PR53368
The constructor that takes `unique_ptr` are not suffiently constrained.
3. The constructors that take raw pointers incorretly use `__compatible_with`. They have different constraints
Differential Revision: https://reviews.llvm.org/D143346
Simon Pilgrim [Sat, 11 Feb 2023 19:16:01 +0000 (19:16 +0000)]
[X86] combineX86ShufflesRecursively - treat ISD::TRUNCATE as faux shuffle
getFauxShuffleMask can't handle ISD::TRUNCATE itself as it can't handle inputs that are larger than the output
Another step towards removing combineX86ShuffleChainWithExtract
Nikolas Klauser [Fri, 10 Feb 2023 15:25:40 +0000 (16:25 +0100)]
[libc++] Enable radability-identifier-naming for local variables and fix any problems
Fixes #60658
Reviewed By: Mordante, #libc
Spies: aheejin, sstefan1, libcxx-commits
Differential Revision: https://reviews.llvm.org/D143737
LLVM GN Syncbot [Sat, 11 Feb 2023 18:52:12 +0000 (18:52 +0000)]
[gn build] Port
3d4e9d5eb0f7
Lang Hames [Sat, 11 Feb 2023 06:27:44 +0000 (22:27 -0800)]
[JITLink] Add a predicate to test for C-string blocks.
Lang Hames [Sat, 11 Feb 2023 06:12:11 +0000 (22:12 -0800)]
[ORC] Move ORC-specific object format details into OrcShared.
This allows these details to be shared with JITLink, which is allowed to
depend on the OrcShared library (but not on OrcJIT).
NAKAMURA Takumi [Sat, 11 Feb 2023 18:29:48 +0000 (03:29 +0900)]
llvm/utils/TableGen/CodeGenIntrinsics.h: Fix a comment line (since 2006!)
Louis Dionne [Sat, 11 Feb 2023 18:16:30 +0000 (10:16 -0800)]
[libc++][NFC] Reorganize the std::pair constructor tests to be more consistently named
This makes it much easier to figure out what is and what isn't
implemented.
NAKAMURA Takumi [Sat, 11 Feb 2023 18:01:10 +0000 (03:01 +0900)]
LLVMTableGenGlobalISel: Provide `INTERFACE_INCLUDE_DIRECTORIES`
Its user may include its headers as `GlobalISel/*.h`
Louis Dionne [Sat, 11 Feb 2023 17:41:56 +0000 (09:41 -0800)]
[libc++][NFC] Change some std::pair tests from .compile.fail.cpp to .verify.cpp
Those tests are arguably not great anyways, but it's better to have
then as .verify tests than compile failure tests, which are too brittle.
Nikolas Klauser [Sat, 11 Feb 2023 10:54:55 +0000 (11:54 +0100)]
[libc++] Remove _LIBCPP_CONSTEVAL
All supported compilers support `consteval`, so there is no more need for the macro.
Reviewed By: ldionne, Mordante, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D143489
Louis Dionne [Sat, 11 Feb 2023 17:25:16 +0000 (09:25 -0800)]
[libc++][NFC] Fix leftover #endif comments
Louis Dionne [Sat, 11 Feb 2023 17:20:20 +0000 (09:20 -0800)]
[libc++][NFC] Use using instead of typedef in pair.h
Louis Dionne [Sat, 11 Feb 2023 17:18:03 +0000 (09:18 -0800)]
[libc++][NFC] Always define __non_trivially_copyable_base in pair.h
Only the actual inheritance needs to be guarded.
Louis Dionne [Sat, 11 Feb 2023 17:17:14 +0000 (09:17 -0800)]
[libc++][NFC] Use std:: instead of _VSTD:: in pair.h
Louis Dionne [Sat, 11 Feb 2023 17:15:57 +0000 (09:15 -0800)]
[libc++][NFC] Use >= 23 instead of > 20 in pair.h
Louis Dionne [Sat, 11 Feb 2023 16:44:19 +0000 (08:44 -0800)]
[libc++][NFC] Use std:: instead of _VSTD:: in construct_at.h
Tue Ly [Sat, 11 Feb 2023 15:47:42 +0000 (10:47 -0500)]
[libc] Update dependency for __support_fputil_nearest_integer in bazel overlay.
Hui [Sat, 4 Feb 2023 17:09:17 +0000 (17:09 +0000)]
[libc++][ranges] move all range iterators back in class
move all range iterators back in class, as out of class iterators
requires extra template parameters, which changes ADL
Differential Revision: https://reviews.llvm.org/D143324
Hui [Sat, 28 Jan 2023 14:36:56 +0000 (14:36 +0000)]
[libcxx][ranges] revert join_view::iterator and sentinel to be in-class
Markus Böck [Sat, 11 Feb 2023 14:02:15 +0000 (15:02 +0100)]
[X86][Win64] Precommit test for D143812
Simon Pilgrim [Sat, 11 Feb 2023 14:02:00 +0000 (14:02 +0000)]
[X86] combineVectorInsert - pull out Vec/Scl/Idx operands. NFC.
These will be reused in a future patch
Simon Pilgrim [Sat, 11 Feb 2023 13:23:04 +0000 (13:23 +0000)]
[X86] combineX86ShufflesRecursively - don't widen shuffle subvector inputs
combineX86ShuffleChain and combineX86ShuffleChainWithExtract no longer require the shuffle inputs to be the same width as the root vector, so we can stop generating widening nodes on the fly (combineX86ShuffleChain should handles all of this).
This requires a couple of additional folds to avoid a couple of notable regressions:
getFauxShuffleMask - recognise INSERT_SUBVECTOR(X,Y,C) as a shuffle pattern as long as its not just widening the subvector.
combineConcatVectorOps - folds CONCAT_VECTORS(AssertSext(X,Ty),AssertSext(Y,Ty)) -> AssertSext(CONCAT_VECTORS(X,Y),Ty)
One of the final stages towards fixing Issue #45319 and addressing the regressions in the interleaved tests in D127115
Tobias Gysi [Sat, 11 Feb 2023 11:27:50 +0000 (12:27 +0100)]
Reland "[mlir][func] Use the generated pass options in func to llvm."
Update the FuncToLLVM pass to use the generated constructors and
the generated pass option struct. The hand written constructor
got out of sync after some refactorings. Using a generated constructor
and options struct ensures the everything remains in sync.
Reviewed By: zero9178
This reverts commit
39da46826da82c24ca4407c13ad7feb8e5dc32a1
and relands commit
771d9c05afc2515b474fb53db857716dfdfc1dcf
which was originally reverted due to
https://lab.llvm.org/buildbot#builders/61/builds/39694
Differential Revision: https://reviews.llvm.org/D143733
Aiden Grossman [Sat, 11 Feb 2023 11:05:11 +0000 (03:05 -0800)]
[MLGO] Disable BB Profile Dump Test on NVPTX
Aiden Grossman [Sat, 11 Feb 2023 10:38:37 +0000 (02:38 -0800)]
[MLGO] Enable BB Profile Dump Test without TFLite
In the very initial version of the patch that introduced this test I had
it only being conditionally compiled when in MLGO development mode (ie
when HAVE_TFLITE is true), but after some revision it is enabled all the
time and thus should be tested all the time. This patch fixes this
leftover behavior that should've been fixed in the original change set.
Tobias Gysi [Sat, 11 Feb 2023 09:42:20 +0000 (10:42 +0100)]
Revert "[mlir][func] Use the generated pass options in func to llvm."
The commit breaks the mlir-vulkan runner:
https://lab.llvm.org/buildbot#builders/61/builds/39694
This reverts commit
771d9c05afc2515b474fb53db857716dfdfc1dcf.
Tobias Gysi [Sat, 11 Feb 2023 09:31:19 +0000 (10:31 +0100)]
[mlir][func] Use the generated pass options in func to llvm.
Update the FuncToLLVM pass to use the generated constructors and
the generated pass option struct. The hand written constructor
got out of sync after some refactorings. Using a generated constructor
and options struct ensures the everything remains in sync.
Reviewed By: zero9178
Differential Revision: https://reviews.llvm.org/D143733
Darshan Bhat [Sat, 11 Feb 2023 08:12:29 +0000 (13:42 +0530)]
[DFAPacketizer] Move DefaultVLIWScheduler class declaration to header file
This change moves "DefaultVLIWScheduler" class declaration from
DFAPacketizer.cpp to DFAPacketizer.h.
This is needed because there is a protected class member of
type "DefaultVLIWScheduler*" in "VLIWPacketizerList" class.
The derived classes cannot use this memeber unless declaration
is available to it. More specifically :
// Without this change
```
class HexagonPacketizerList : public VLIWPacketizerList {
public :
HexagonPacketizerList() {
// Below line will cause incomplete class error since
// declaration was not available through header.
VLIWScheduler->schedule();
}
}
```
Reviewed By: kparzysz
Differential Revision: https://reviews.llvm.org/D139767
Vlad Serebrennikov [Sat, 11 Feb 2023 07:52:26 +0000 (10:52 +0300)]
[clang] Add test for CWG1111
Also mark [[ https://wg21.link/cwg2385 | CWG2385 ]] as `na`, because it eliminates wording inconsistency introduced by [[ https://wg21.link/cwg1111 | CWG1111 ]] resolution.
Reviewed By: #clang-language-wg, erichkeane
Differential Revision: https://reviews.llvm.org/D142315
Vlad Serebrennikov [Sat, 11 Feb 2023 07:25:19 +0000 (10:25 +0300)]
[clang][NFC] Add another example to CWG952 test
Vlad Serebrennikov [Sat, 11 Feb 2023 06:42:48 +0000 (09:42 +0300)]
[clang] Mark CWG2165 as N/A
[[ https://wg21.link/p1787 | P1787 ]]: "CWG2165 is resolved by removing the conflicting definition of it in [basic.scope]."
Wording: [basic.namespace]/p1 changed and [basic.scope.declarative] removed entirely
Reviewed By: #clang-language-wg, cor3ntin
Differential Revision: https://reviews.llvm.org/D142717
Vlad Serebrennikov [Sat, 11 Feb 2023 06:48:40 +0000 (09:48 +0300)]
Revert "[clang] Mark CWG2165 as N/A"
This reverts commit
d0e24f0c97ecf4f4e72604adcae5cd4c6b02cb48.
Vlad Serebrennikov [Sat, 11 Feb 2023 06:42:48 +0000 (09:42 +0300)]
[clang] Mark CWG2165 as N/A
[[ https://wg21.link/p1787 | P1787 ]]: "CWG2165 is resolved by removing the conflicting definition of it in [basic.scope]."
Wording: [basic.namespace]/p1 changed and [basic.scope.declarative] removed entirely
Reviewed By: #clang-language-wg, cor3ntin
Differential Revision: https://reviews.llvm.org/D142717
Tue Ly [Sat, 11 Feb 2023 05:46:42 +0000 (00:46 -0500)]
[libc] Update macros/optimization.h build dependency for CMake and Bazel.
Update macros/optimization.h build dependency for CMake and Bazel.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D143805
Tue Ly [Sat, 11 Feb 2023 06:17:57 +0000 (01:17 -0500)]
[libc][Obvious] Fix static method declarations for FEnv class on macOS.
Tue Ly [Sat, 11 Feb 2023 06:11:06 +0000 (01:11 -0500)]
[libc] Fix the regex detecting architecture triplet for macOS.
Summary: See https://github.com/llvm/llvm-project/issues/60666
Reviewers:
Subscribers:
Argyrios Kyrtzidis [Wed, 8 Feb 2023 23:34:44 +0000 (15:34 -0800)]
[CMake] Use `LLVM_ENABLE_ASSERTIONS` to enable assertions in `libc++`
Follow-up to https://reviews.llvm.org/D142279 for also enabling `libc++` assertions.
This is particularly useful to recover the assertion checks we had with `llvm::Optional`, before moving to `std::optional`.
Differential Revision: https://reviews.llvm.org/D143612
Augusto Noronha [Sat, 11 Feb 2023 01:32:48 +0000 (17:32 -0800)]
[lldb] Fix passing None as an env variable in TestMultipleDebuggers
Augusto Noronha [Fri, 10 Feb 2023 19:21:14 +0000 (11:21 -0800)]
Adapt TestCustomShell and TestMultipleDebuggers to run under ASAN
In situations where only LLDB is ASANified, a false positive occurs
unless ASAN_OPTIONS=detect_container_overflow=0 is set in the
environment.
Differential Revision: https://reviews.llvm.org/D143772
Jonas Devlieghere [Fri, 10 Feb 2023 19:55:02 +0000 (11:55 -0800)]
[lldb] Add an SB API to get progress events as SBStructuredData
This is a preparatory patch to add an SB API to get the progress data as
SBStructuredData. The advantage of using SBStructuredData is that the
dictionary can grow over time with more fields.
This approach is identical to the way this is implemented for diagnostic
events.
Differential revision: https://reviews.llvm.org/D143687
Peiming Liu [Thu, 9 Feb 2023 20:31:51 +0000 (20:31 +0000)]
[mlir][sparse] implement lowering rules for sparse_tensor::unpack
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143672
Peiming Liu [Thu, 9 Feb 2023 19:08:36 +0000 (19:08 +0000)]
[mlir][sparse] introduce sparse_tensor::unpack operation
An inverse operation of sparse_tenosr::pack
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D143669
Louis Dionne [Sat, 11 Feb 2023 00:46:55 +0000 (16:46 -0800)]
[libc++] Remove unused std::function test
We don't support std::function in C++03 anymore, and the test had
started failing due to compilation errors instead of the ABI bug it
was supposed to demonstrate.
Fangrui Song [Sat, 11 Feb 2023 00:48:34 +0000 (16:48 -0800)]
[dfsan] Fix some build-libc-list.py lint issues
Aart Bik [Thu, 9 Feb 2023 21:55:18 +0000 (13:55 -0800)]
[mlir][sparse] fixed pack op documentation and purity
Example did not have correct shapes. Also the operation
has no side effects (since it slaps a clean SSA tensor
around the data).
Reviewed By: Peiming, wrengr
Differential Revision: https://reviews.llvm.org/D143679