- Mar 13, 2021
-
-
Philip Reames authored
-
Muiez Ahmed authored
The aim is to add the missing z/OS specific implementations for mbsnrtowcs and wcsnrtombs, as part of libc++. Differential Revision: https://reviews.llvm.org/D98207
-
Amy Huang authored
[DebugInfo] Add an attribute to force type info to be emitted for types that are required to be complete. This was motivated by the fact that constructor type homing (debug info optimization that we want to turn on by default) drops some libc++ types, so an attribute would allow us to override constructor homing and emit them anyway. I'm currently looking into the particular libc++ issue, but even if we do fix that, this issue might come up elsewhere and it might be nice to have this. As I've implemented it now, the attribute isn't specific to the constructor homing optimization and overrides all of the debug info optimizations. Open to discussion about naming, specifics on what the attribute should do, etc. Differential Revision: https://reviews.llvm.org/D97411
-
Sanjay Patel authored
PR49475 shows an infinite loop outcome, but this tries to show the root cause with a minimal test.
-
Craig Topper authored
[DAGCombiner] Use isConstantSplatVectorAllZeros/Ones instead of isBuildVectorAllZeros/Ones in visitMSTORE and visitMLOAD. This allows us to optimize when the mask is a splat_vector in addition to build_vector.
-
Craig Topper authored
These should be removed for all zeros mask or optimized to unmasked for all ones.
-
Anastasia Stulova authored
This fixes failing bots. Patch by azabaznov (Anton Zabaznov)! Differential Revision: https://reviews.llvm.org/D98539
-
Nico Weber authored
This reverts commit 0bd9d9aa. bcdd40f8 was reverted in 4f9cc151
-
Arnamoy Bhattacharyya authored
-
Nikita Popov authored
This removes some (but not all) uses of type-less CreateGEP() and CreateInBoundsGEP() APIs, which are incompatible with opaque pointers. There are a still a number of tricky uses left, as well as many more variation APIs for CreateGEP.
-
Craig Topper authored
This allows the use of BGE with X0 instead of puting -1/1 in a register. Reviewed By: jrtc27 Differential Revision: https://reviews.llvm.org/D98542
-
Hubert Tong authored
This reverts commit bcdd40f8. See https://reviews.llvm.org/D98543.
-
Nico Weber authored
This reverts commit 5ae949a9. Test fails everywhere.
-
Eugene Zhulenev authored
Functions used only in `assert` cause warnings in release mode Reviewed By: mehdi_amini, dcaballe, ftynse Differential Revision: https://reviews.llvm.org/D98476
-
David Green authored
This test was apparently disabled in 6fcd4e08, without any sign of how it was going to be reenabled. This patch rewrites the test to use update_cc_test_checks, with midend optimizations other that mem2reg disabled.
-
Craig Topper authored
We can use BGE with X0 to implement these, but we currently put 1 or -1 into a register.
-
Roman Lebedev authored
This is a continuation of D89456. As it was suggested there, now that SCEV models `PtrToInt`, we can try to improve SCEV's pointer handling. In particular, i believe, i will need this in the future to further fix `SCEVAddExpr`operation type handling. This removes special handling of `ConstantPointerNull` from `ScalarEvolution::createSCEV()`, and add constant folding into `ScalarEvolution::getPtrToIntExpr()`. This way, `null` constants stay as such in SCEV's, but gracefully become zero integers when asked. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D98147
-
Peter Steinfeld authored
I changed the declaration of symbolCount_ in the type Symbols to be static to avoid possible problems in the future when we might have multiple objects of type Symbols. Thanks to Peter for pointing out the need for this change. Differential Revision: https://reviews.llvm.org/D98357
-
Craig Topper authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D98460
-
Zahira Ammarguellat authored
-
Stanislav Mekhanoshin authored
Before D94153 this threshold was in a pre-scaled units. After D94153 inlining threshold multiplier is not applied to this portion of the threshold anymore. Restore the threshold by applying the multiplier. Differential Revision: https://reviews.llvm.org/D98362
-
Thomas Preud'homme authored
Add printf-style alternate form flag to prefix hex number with 0x when present. This works on both empty numeric expression (e.g. variable definition from input) and when matching a numeric expression. The syntax is as follows: [[#%#<precision specifier><format specifier>, ...] where <precision specifier> and <format specifier> are optional and ... can be a variable definition or not with an empty expression or not. This feature was requested in https://reviews.llvm.org/D81144#2075532 for llvm/test/MC/ELF/gen-dwarf64.s Reviewed By: jdenny Differential Revision: https://reviews.llvm.org/D97845
-
Alex Zinenko authored
NestedPattern uses a BumpPtrAllocator to store child (nested) pattern objects to decrease the overhead of dynamic allocation. This assumes all allocations happen inside the allocator that will be freed as a whole. However, NestedPattern contains `std::function` as a member, which allocates internally using `new`, unaware of the BumpPtrAllocator. Since NestedPattern only holds pointers to the nested patterns allocated in the BumpPtrAllocator, it never calls their destructors, so the destructor of the `std::function`s they contain are never called either, leaking the allocated memory. Make NestedPattern explicitly call destructors of nested patterns. This additionally requires to actually copy the nested patterns in copy-construction and copy-assignment instead of just sharing the pointer to the arena-allocated list of children to avoid double-free. An alternative solution would be to add reference counting to the list of arena-allocated list of children. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D98485
-
serge-sans-paille authored
That's more efficient and we don't loose any valuable feature when doing so.
-
Yashaswini authored
Implementation of Reduction clause restriction checks. Files: flang/lib/Semantics/check-directive-structure.h flang/lib/Semantics/check-omp-structure.cpp flang/lib/Semantics/check-omp-structure.h flang/lib/Semantics/resolve-directives.cpp Testcases: flang/test/Semantics/omp-reduction01.f90 flang/test/Semantics/omp-reduction02.f90 flang/test/Semantics/omp-reduction03.f90 flang/test/Semantics/omp-reduction04.f90 flang/test/Semantics/omp-reduction05.f90 flang/test/Semantics/omp-reduction06.f90 flang/test/Semantics/omp-reduction07.f90 flang/test/Semantics/omp-reduction08.f90 flang/test/Semantics/omp-reduction09.f90 flang/test/Semantics/omp-reduction10.f90 flang/test/Semantics/omp-symbol08.f90 Reviewed by: Kiran Chandramohan @kiranchandramohan and Valentin Clement @clementval. Differential Revision: https://reviews.llvm.org/D90697
-
Kadir Cetinkaya authored
This hides such tokens from TokenWatcher, preventing crashes in clients trying to match spelled and expanded tokens. Fixes https://github.com/clangd/clangd/issues/712 Differential Revision: https://reviews.llvm.org/D98483
-
Nico Weber authored
-
Anirudh Prasad authored
- This patch adds in support for the ordinary HLASM comment syntax asm statements (Reference - Chapter 7, Comment Statements, Ordinary Comment Statements) - In brief, the ordinary comment syntax if used, must begin with the "*" character - To achieve this, this patch makes use of the CommentString attribute provided in the base MCAsmInfo class - In the SystemZMCAsmInfo class, the CommentString attribute was set to "*" based on the assembler dialect - Furthermore, a new attribute RestrictCommentString, is provided to only treat a string as a comment if it appears at the start of the asm statement. Example: "jo *-4" is valid in HLASM (jump back 4 bytes from current point - similar to jo -4 in gnu asm) and we don't want "*-4" to be treated as a comment. - RFC for HLASM Parser support implementation: https://lists.llvm.org/pipermail/llvm-dev/2021-January/147686.html Reviewed By: scott.linder, Kai Differential Revision: https://reviews.llvm.org/D97703
-
Nico Weber authored
No behavior change.
-
Christopher Di Bella authored
Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Depends on D97911 Reviewed By: EricWF, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D98154 -
Nemanja Ivanovic authored
We are missing more predicate forms for 'vector double' and some tests. This adds the missing overloads and completes the set of test cases for them.
-
Dave Lee authored
Last used by the Go plugin which was removed in https://reviews.llvm.org/D54057.
-
- Mar 12, 2021
-
-
Simon Pilgrim authored
Avoid -1ULL which MSVC tends to complain about
-
Simon Pilgrim authored
Avoid extracting/inserting subvectors which makes it more difficult for shuffle combining to merge them together.
-
Simon Pilgrim authored
Most callers to getTargetShuffleMask don't use the IsUnary flag.
-
Nico Weber authored
This reverts commit 90dfbeef. Causes PR49554. Also see comments on https://reviews.llvm.org/D98389
-
Simonas Kazlauskas authored
This also briefly tests a larger set of architectures than the more exhaustive functionality tests for AArch64 and x86. As requested in D88785 Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D98339
-
Matt Arsenault authored
byval arguments need to be assumed writable. Only implicitly stack passed arguments which aren't addressable in the IR can be assumed immutable. Mips is still broken since for some reason its doing its own thing with the ValueHandlers (and x86 doesn't actually handle byval arguments now, although some of the code is there).
-
Matt Arsenault authored
This was essentially ignoring byval and treating them as a pointer argument which needed to be loaded from. This should copy the frame index value to the virtual register, not insert a load from the frame index into the pointer value. For AMDGPU, this was producing a load from the byval pointer argument, to a pointer used for the byval arguments. I do not understand how AArch64 managed to work before since it appears to be similarly broken. We could also change the ValueHandler API to avoid the extra copy from the frame index, since currently it returns a new register. I believe there is still an issue with outgoing byval arguments. These should have a copy inserted in case the callee decided to overwrite the memory.
-