- Mar 18, 2021
-
-
Mehdi Amini authored
This reverts commit 6b053c98. The build is broken: ld.lld: error: undefined symbol: llvm::VPlan::printDOT(llvm::raw_ostream&) const >>> referenced by LoopVectorize.cpp >>> LoopVectorize.cpp.o:(llvm::LoopVectorizationPlanner::printPlans(llvm::raw_ostream&)) in archive lib/libLLVMVectorize.a
-
Muiez Ahmed authored
The aim is to use the correct vasprintf implementation for z/OS libc++, where a copy of va_list ap is needed. In particular, it avoids the potential that the initial internal call to vsnprintf will modify ap and the subsequent call to vsnprintf will use that modified ap. Differential Revision: https://reviews.llvm.org/D97473
-
Andrei Elovikov authored
I foresee two uses for this: 1) It's easier to use those in debugger. 2) Once we start implementing more VPlan-to-VPlan transformations (especially inner loop massaging stuff), using the vectorized LLVM IR as CHECK targets in LIT test would become too obscure. I can imagine that we'd want to CHECK against VPlan dumps after multiple transformations instead. That would be easier with plain text dumps than with DOT format. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D96628
-
Thomas Lively authored
Updates the names (e.g. widen => extend, saturate => sat) and opcodes of all SIMD instructions to match the finalized SIMD spec. Deliberately does not change the public interface in wasm_simd128.h yet; that will require more care. Depends on D98466. Differential Revision: https://reviews.llvm.org/D98676
-
Thomas Lively authored
Removes the instruction definitions, intrinsics, and builtins for qfma/qfms, signselect, and prefetch instructions, which were not included in the final WebAssembly SIMD spec. Depends on D98457. Differential Revision: https://reviews.llvm.org/D98466
-
peter klausler authored
Replace semantics::SymbolSet with alternatives that clarify whether the set should order its contents by source position or not. This matters because positionally-ordered sets must not be used for Symbols that might be subjected to name replacement during name resolution, and address-ordered sets must not be used (without sorting) in circumstances where the order of their contents affects the output of the compiler. All set<> and map<> instances in the compiler that are keyed by Symbols now have explicit Compare types in their template instantiations. Symbol::operator< is no more. Differential Revision: https://reviews.llvm.org/D98878
-
lorenzo chelini authored
-
Jorg Brown authored
-
Markus Böck authored
Both libc++ and libc++abi have options of merging with another archive. In the case of libc++abi, libunwind can be merged into it and in the case of libc++, libc++abi can be merged into it. This is realized using add_custom_command with POST_BUILD and the usage of the CMake generator expression TARGET_LINKER_FILE in the arguments. For such generator expressions CMake doc states: "This target-level dependency does NOT add a file-level dependency that would cause the custom command to re-run whenever the executable is recompiled" [1] This patch adds a DEPENDS argument to both add_custom_command invocations so that the archives also have a file-level dependency on the target they are merging with. That way, changes in say, libunwind source code, will be updated in the libc++abi and/or libc++ static libraries as well. [1] https://cmake.org/cmake/help/v3.20/command/add_custom_command.html Differential Revision: https://reviews.llvm.org/D98129
-
Arthur O'Dwyer authored
`__cpp_lib_default_template_type_for_algorithm_values` is 52 characters long, which is enough to reduce the multiplier to less-than-zero, producing an empty string between the name of the macro and its numeric value. Ensure there's always a space between the name of the macro and its value. Differential Revision: https://reviews.llvm.org/D98869
-
Kristof Beyls authored
This documents current regular LLVM sync-ups that are happening in the Getting Involved section. I hope this gives a bit more visibility to regular sync-ups that are happening in the LLVM community, documenting another way communication in the community happens. Of course the downside is that this is another location that sync-up metadata needs to be maintained. That being said, the structure as proposed means that no changes are needed once a new sync-up is added, apart from maybe removing the entry once it becomes clear that that particular sync-up series is completely cancelled. Documenting a few pointers on how current sync-ups happen may also encourage others to organize useful sync-ups on specific topics. I've started with adding the sync-ups I'm aware of. There's a good chance I've missed some. If most sync-ups end up having a public google calendar, we could also create and maintain a public google calendar that shows all events happening in the LLVM community, including dev meetings, sync-ups, socials, etc - assuming that would be valuable. Differential Revision: https://reviews.llvm.org/D98797
-
Louis Dionne authored
We don't use them anymore since we're using the BuildKite setup. Differential Revision: https://reviews.llvm.org/D97779
-
Thomas Lively authored
Now that the WebAssembly SIMD specification is finalized and engines are generally up-to-date, there is no need for a separate target feature for gating SIMD instructions that engines have not implemented. With this change, v128.const is now enabled by default with the simd128 target feature. Differential Revision: https://reviews.llvm.org/D98457
-
Peter Waller authored
Seemingly striaghtforward. Differential Revision: https://reviews.llvm.org/D98434
-
Fangrui Song authored
`--shuffle-sections=<seed>` applies to all sections. The new `--shuffle-sections=<section-glob>=<seed>` makes shuffling selective. To the best of my knowledge, the option is only used as debugging, so just drop the original form. `--shuffle-sections '.init_array*=-1'` `--shuffle-sections '.fini_array*=-1'`. reverses static constructors/destructors of the same priority. Useful to detect some static initialization order fiasco. `--shuffle-sections '.data*=-1'` reverses `.data*` sections. Useful to detect unfunded pointer comparison results of two unrelated objects. If certain sections have an intrinsic order, the old form cannot be used. Differential Revision: https://reviews.llvm.org/D98679
-
Christopher Di Bella authored
D97015 didn't correctly update `generate_feature_test_macro_components.py`. Reviewed By: ldionne, Quuxplusone, #libc, Mordante Differential Revision: https://reviews.llvm.org/D97904
-
Jon Chesterfield authored
Add register usage information to the runtime metadata so that it can be used during kernel launch (that change will be in a different commit). Add this information to the kernel trace. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D98829
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D98731
-
Wei Mi authored
value profile annotated after inlining. In https://reviews.llvm.org/D96806 and https://reviews.llvm.org/D97350, we use the magic number -1 in the value profile to avoid repeated indirect call promotion to the same target for an indirect call. Function updateIDTMetaData is used to mark an target as being promoted in the value profile with the magic number. updateIDTMetaData is also used to update the value profile when an indirect call is inlined and new inline instance profile should be applied. For the second case, currently updateIDTMetaData mixes up the existing value profile of the indirect call with the new profile, leading to the problematic senario that a target count is larger than the total count in the value profile. The patch fixes the problem. When updateIDTMetaData is used to update the value profile after inlining, all the values in the existing value profile will be dropped except the values with the magic number counts. Differential Revision: https://reviews.llvm.org/D98835
-
Mircea Trofin authored
This reverts commit 11b70b9e. The bot failure was due to ArgumentPromotion deleting functions without deleting their analyses. This was separately fixed in 4b1c8070.
-
Ricky Taylor authored
This is a test commit to verify my access.
-
Mircea Trofin authored
Not doing it here can lead to subtle bugs - the analysis results are associated by the Function object's address. Nothing stops the memory allocator from allocating new functions at the same address.
-
Mike Rice authored
Added basic parsing/sema/serialization support to extend the existing 'destroy' clause for use with the 'interop' directive. Differential Revision: https://reviews.llvm.org/D98834
-
Chris Lattner authored
Valgrind is reporting this bogus warning because it doesn't model pthread_sigmask fully accurately. This is a valgrind bug, but silencing it has effectively no cost, so just do it. ==73662== Syscall param __pthread_sigmask(set) points to uninitialised byte(s) ==73662== at 0x101E9D4C2: __pthread_sigmask (in /usr/lib/system/libsystem_kernel.dylib) ==73662== by 0x101EFB5EA: pthread_sigmask (in /usr/lib/system/libsystem_pthread.dylib) ==73662== by 0x1000D9F6D: llvm::sys::Process::SafelyCloseFileDescriptor(int) (in /Users/chrisl/Projects/circt/build/bin/firtool) ==73662== by 0x100072795: llvm::ErrorOr<std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer> > > getFileAux<llvm::MemoryBuffer>(llvm::Twine const&, long long, unsigned long long, unsigned long long, bool, bool) (in /Users/chrisl/Projects/circt/build/bin/firtool) ==73662== by 0x100072573: llvm::MemoryBuffer::getFileOrSTDIN(llvm::Twine const&, long long, bool) (in /Users/chrisl/Projects/circt/build/bin/firtool) ==73662== by 0x100282C25: mlir::openInputFile(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (in /Users/chrisl/Projects/circt/build/bin Differential Revision: https://reviews.llvm.org/D98830
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D98804
-
Jon Chesterfield authored
[amdgpu] Update med3 combine to skip i64 Fixes an assumption that a type which is not i32 will be i16. This asserts when trying to sign/zero extend an i64 to i32. Test case was cut down from an openmp application. Variations on it are hit by other combines before reaching the problematic one, e.g. replacing the immediate values with other function arguments changes the codegen path and misses this combine. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D98872
-
Asher Mancinelli authored
Create test fixture for runtime tests which enables verification of failure cases. Test some runtime IO APIs for failure cases. Support testing efforts in D98303. Expand on effort discussed in D98601. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D98652
-
Nigel Perks authored
The pass can be seen on staging buildbot clang-xcore-ubuntu-20-x64. Differential Revision: https://reviews.llvm.org/D98352
-
Simon Pilgrim authored
Extend this to support ComputeNumSignBits of the (used) source vector elements so that we can handle more than just the case where we're sext_in_reg from the source element signbit. Noticed while investigating the poor codegen in D98587.
-
Alexander Belyaev authored
Also use `ArrayAttr` to pass iterator pass to the TiledLoopOp builder. Differential Revision: https://reviews.llvm.org/D98871
-
Sid Manning authored
Allow inline assembly code to referece cs0 and cs1.
-
LLVM GN Syncbot authored
-
caoming.roy authored
Implement command-line options -map Reviewed By: int3, #lld-macho Differential Revision: https://reviews.llvm.org/D98323
-
Pavel Labath authored
Fix the test to account for recent test infrastructure changes, and make it run locally to increase the chances of it continuing to work in the future.
-
Andrzej Warzynski authored
Adds support for `-fget-symbols-sources` in the new Flang driver. All relevant tests are updated to use the new driver when `FLANG_BUILD_NEW_DRIVER` is set. `RUN` lines in tests are updated so `-fsyntax-only` comes before `-fget-symbols-sources`. That's because: * both `-fsyntax-only` and `-fget-symbols-sources` are action flags, and * the new driver, flang-new, will only consider the right-most action flag. In other words, this change is needed so that the tests work with both `f18` (requires both flags) and `flang-new` (only considers the last action flag). Differential Revision: https://reviews.llvm.org/D98191
-
Andrew Savonichev authored
Delay the issue of a new instruction if that leads to out-of-order commits of writes. This patch fixes the problem described in: https://bugs.llvm.org/show_bug.cgi?id=41796#c3 Differential Revision: https://reviews.llvm.org/D98604
-
Jay Foad authored
-
David Truby authored
Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com> Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D92327
-
Simon Pilgrim authored
-
Matt Arsenault authored
Pass through the original argument IR value in order to preserve the aliasing information in the memcpy memory operands.
-