- Jul 20, 2021
-
-
Victor Campos authored
Some template functions were missing '&&' in function arguments, therefore these were always taken by value after template instantiation. This patch adds the double ampersand to introduce proper perfect forwarding. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D106148
-
Amy Kwan authored
This patch adds the `-faltivec-src-compat=mixed` option to the `builtins-ppc-altivec.c` test. Currently, the default for `-faltivec-src-compat` is `mixed`. The reason we explicitly specify `mixed` to the RUN lines of this test is because eventually, the default will set to `xl`. Having the default as `xl` changes the CHECKs of this test slightly, as it reorders some of the `vector bool` and `vector pixel` CHECKs (since under the `xl` option, `vector bool` and `vector pixel` are treated in the same way as other vector scalars). Explicitly specifying `mixed` ensures that we are testing pre-existing Clang behaviour. Differential Revision: https://reviews.llvm.org/D106282
-
Simon Pilgrim authored
As encountered on D106053, we need to be very explicit that the Assertion nodes don't hold true for a poison value (or for specific poisoned vector elements). Differential Revision: https://reviews.llvm.org/D106257
-
Simon Pilgrim authored
Pulled out of D106280
-
- Jul 19, 2021
-
-
Tobias Gysi authored
Add pattern to fold a TensorCast into a PadTensorOp if the cast removes static size information. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D106278
-
Matt Arsenault authored
-
David Green authored
This removes the promotion of NEON AND, OR and XOR nodes to v2i32/v4i32, treating them the same as the AArch64 and MVE backends where we just add the relevant patterns for each legal type. This prevents a lot of bitcasts from being added to the DAG, which have the potential to make optimizations more difficult. It does mean adding extra patterns, and some codegen can change due to the types now being legal, not promoted. Differential Revision: https://reviews.llvm.org/D105588
-
maekawatoshiki authored
This patch adds a new pass called LNICM which is a LoopNest version of LICM and a test case to show how LNICM works. Basically, LNICM only hoists invariants out of loop nest (not a loop) to keep/make perfect loop nest. This enables later optimizations that require perfect loop nest. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D104180
-
Matt Arsenault authored
This also avoids improperly legalizing some truncating vector stores.
-
Riccardo Mori authored
This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface. Changes made: - Stop using `isl::set::lex_le_set`. The official way to do this is to use `isl::map::lex_le_at` - Removed `isl::set::lex_le_set` from `isl-noexceptions.h` - `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/266fea1d3dbd31c23d866eb363fcc8e61e50419f Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D106269
-
peter klausler authored
Define and implement an API for use by lowering to implement operations on pointers. Differential Revision: https://reviews.llvm.org/D106170
-
Dmitry Vyukov authored
For some reason we have 2 switches on arch and add half of arch flags in one place and half in another. Merge these 2 switches. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106274
-
Hsiangkai Wang authored
Use _Float16 as the half-precision floating point type. Define a new type specifier 'x' for the _Float16 type. Differential Revision: https://reviews.llvm.org/D105001
-
Matt Arsenault authored
The CCValAssign types should now be accurate, so these are no longer necessary.
-
Giorgis Georgakoudis authored
This reverts commit e9c7291c. Fix failing tests
-
Amy Kwan authored
This patch implements the initialization of vectors under the -faltivec-src-compat=xl option introduced in https://reviews.llvm.org/D103615. Under this option, the initialization of scalar vectors, vector bool, and vector pixel are treated the same, where the initialization value is splatted across the whole vector. This patch does not change the behaviour of the -faltivec-src-compat=mixed option, which is the current default for Clang. Differential Revision: https://reviews.llvm.org/D106120
-
Jeremy Morse authored
Avoid a crash when using instruction referencing if x87 floating point instructions are used. These instructions are significantly mutated when they're rewritten from referring to registers, to referring to floating-point-stack positions. As a result, their operands are re-ordered, and (InstrRef) LiveDebugValues asserts when it sees a DBG_INSTR_REF referring to a non-reg non-def register operand. To fix this, drop the instruction numbers, and thus variable locations. This patch adds a helper utility do do that. Dropping the variable locations is sub-optimal, but applying DBG_VALUEs to the $fp0 and similar registers is dropped on emission too. It seems we've never done well at describing variables that live in x87 registers, at all. Differential Revision: https://reviews.llvm.org/D105657
-
Jamie Schmeiser authored
Summary: The AIX linker will produce errors on unresolved weak symbols. Change the generated code to not check for the initialization function but just call it and ensure that it always exists. Also, the AIX atexit routine has a different name (and signature) so call it correctly. Update the lit tests to test on AIX appropriately. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: hubert.reinterpretcast (Hubert Tong) Differential Revision: https://reviews.llvm.org/D104420
-
Kazu Hirata authored
The last use of isNON_TRUNCStore was removed on Oct 10, 2018 in commit 07acc992. isTRUNCStore seems to be unused for at least 10 years.
-
Roman Lebedev authored
We were using the wrong VT for this final VSELECT, it should be in the final comparison VT, not the source value's VT. Fixes https://bugs.llvm.org/show_bug.cgi?id=51133
-
Arjun P authored
-
Elton authored
This patch removes a duplicate checks in the top-level comments in `clang-tools-extra/clangd/ParsedAST.h` Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D106227
-
Jay Foad authored
-
Simon Tatham authored
This is part of a patch series working towards the ability to make SourceLocation into a 64-bit type to handle larger translation units. If clang is built for a 32-bit platform and SourceLocation is 64 bits wide, then a SourceLocation will be larger than a pointer, so it won't be possible to keep them in a SmallPtrSet any more. Switch to SmallDenseSet instead. Patch originally by Mikhail Maltsev. Differential Revision: https://reviews.llvm.org/D105493
-
Alexander Belyaev authored
This reverts commit 3b03d9b8.
-
Ian Campbell authored
If a clang-tidy child process exits with a signal then run-clang-tidy will exit with an error but there is no hint why in the output, since the clang-tidy doesn't log anything and may not even have had the opportunity to do so depending on the signal used. `subprocess.CompletedProcess.returncode` is the negative signal number in this case. I hit this in a CI system where the parallelism used exceeded the RAM assigned to the container causing the OOM killer to SIGKILL clang-tidy processes. Reviewed By: sylvestre.ledru Differential Revision: https://reviews.llvm.org/D99081
-
Alexander Belyaev authored
-
Lang Hames authored
This should eliminate warnings about ignored weak_import attributes on some of the bots, e.g. https://lab.llvm.org/buildbot/#/builders/165/builds/3770/.
-
Lang Hames authored
This should eliminate the "initialized and declared 'extern'" warnings produced on some bots, e.g. https://lab.llvm.org/buildbot/#/builders/165/builds/3770
-
Simon Pilgrim authored
As noticed on D105432 we didn't have any coverage to distinguish between fast/exact float reductions
-
Alexey Bataev authored
The incoming values for PHI nodes may come from unreachable BasicBlocks, need to handle this case. Differential Revision: https://reviews.llvm.org/D106264
-
Mindong Chen authored
This fixes the lower and upper bound calculation of a RuntimeCheckingPtrGroup when it has more than one loop invariant pointers. Resolves PR50686. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D104148
-
Mindong Chen authored
Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D105438
-
Stephan Herhut authored
The wording was wrong and suggested that operands to memref.clone may not be mutated. Differential Revision: https://reviews.llvm.org/D106258
-
Florian Hahn authored
Test case inspired by D105199.
-
Florian Mayer authored
This reverts commit 12268fe1.
-
Dmitry Vyukov authored
We obtain the current PC is all interceptors and collectively common interceptor code contributes to overall slowdown (in particular cheaper str/mem* functions). The current way to obtain the current PC involves: 4493e1: e8 3a f3 fe ff callq 438720 <_ZN11__sanitizer10StackTrace12GetCurrentPcEv> 4493e9: 48 89 c6 mov %rax,%rsi and the called function is: uptr StackTrace::GetCurrentPc() { 438720: 48 8b 04 24 mov (%rsp),%rax 438724: c3 retq The new way uses address of a local label and involves just: 44a888: 48 8d 35 fa ff ff ff lea -0x6(%rip),%rsi I am not switching all uses of StackTrace::GetCurrentPc to GET_CURRENT_PC because it may lead some differences in produced reports and break tests. The difference comes from the fact that currently we have PC pointing to the CALL instruction, but the new way does not yield any code on its own so the PC points to a random instruction in the function and symbolizing that instruction can produce additional inlined frames (if the random instruction happen to relate to some inlined function). Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D106046 -
Lang Hames authored
This member is now only used when storage is heap-allocated so it does not need to be const. Dropping 'const' eliminates cast warnings on many builders.
-
Lang Hames authored
This should fix the 'could-not-covert' error at wrapper_function_utils.h:128 in https://lab.llvm.org/buildbot/#/builders/112/builds/7748.
-