- Jul 17, 2020
-
-
Thomas Lively authored
Updating the simd-select.ll tests manually with consistent named regexps for the register numbers was taking more time than it was worth, so this patch updates that test file to have autogenerated output. This is not a significant readability regression because the tests in that file are all very small. Depends on D83734. Differential Revision: https://reviews.llvm.org/D83736
-
Thomas Lively authored
We were previously expanding vselect and matching on the expansion to generate bitselects, but in some cases the expansion would be further combined and a bitselect would not get generated. This patch improves codegen in those cases by legalizing vselect and lowering it to v128.bitselect. The old pattern that matches the expansion is still useful for lowering IR that already uses the expansion rather than a select operation. Differential Revision: https://reviews.llvm.org/D83734
-
Craig Topper authored
-
Matt Arsenault authored
In an upcoming AMDGPU patch, the scalar cases will be legal and vector ops should be scalarized, rather than producing a long sequence of vector ops which will also need to be scalarized. Use a lazy heuristic that seems to work and improves the thumb2 MVE test.
-
George Rokos authored
This patch fixes the compilation warnings that L is not a reference. Thanks to Lingda Li for providing the patch. Differential Revision: https://reviews.llvm.org/D83959
-
Denis Antrushin authored
Basic support for variadic-def MIR Statepoint: - Change TableGen STATEPOINT description to variadic out list (For self-documentation purpose; by itself it does not affect code generation in any way). - Update StatepointOpers helper class to handle variadic defs. - Update MachineVerifier to properly handle them, too. With this change, new Statepoint instruction can be passed through backend (excluding ISEL) without errors. Full change set is available at D81603. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D81645
-
Matt Arsenault authored
-
Matt Arsenault authored
When the byref attribute is added, there will need to be two similar functions for the existing cases which have an associate value copy, and byref which does not. Most, but not all of the existing uses will use the existing version. The associated size function added by D82679 also needs to contextually differ, and will help eliminate a few places still relying on pointee element types.
-
Matt Arsenault authored
The IR doesn't have a proper concept of invalid pointers, and "null" constants are just all zeros (though it really needs one). I think it's not possible to break this for AMDGPU due to the copy semantics of byval. If you have an original stack object at 0, the byval copy will be placed above it so I don't think it's really possible to hit a 0 address.
-
Julian Lettner authored
compiler-rt checks OS versions by querying the Darwin kernel version. This is not necessarily correct inside the simulators if the simulator runtime is not aligned with the host macOS. Let's instead check the `SIMULATOR_RUNTIME_VERSION` env var. Note that we still use the old code path as a fallback in case the `SIMULATOR_RUNTIME_VERSION` environment variable isn't set. rdar://63031937 Reviewers: delcypher Differential Revision: https://reviews.llvm.org/D79979
-
Nico Weber authored
-
Fred Riss authored
Summary: On macOS 11, the libraries that have been integrated in the system shared cache are not present on the filesystem anymore. LLDB was using those files to get access to the symbols of those libraries. LLDB can get the images from the target process memory though. This has 2 consequences: - LLDB cannot load the images before the process starts, reporting an error if someone tries to break on a system symbol. - Loading the symbols by downloading the data from the inferior is super slow. It takes tens of seconds at the start of the debug session to populate the Module list. To fix this, we can use the library images LLDB has in its own mapping of the shared cache. Shared cache images are somewhat special as their LINKEDIT segment is moved to the end of the cache and thus the images are not contiguous in memory. All of this can hidden in ObjectFileMachO. This patch fixes a number of test failures on macOS 11 due to the first problem described above and adds some specific unittesting for the new SharedCache Host utilities. Reviewers: jasonmolenda, labath Subscribers: llvm-commits, lldb-commits Tags: #lldb, #llvm Differential Revision: https://reviews.llvm.org/D83023
-
Matt Arsenault authored
The carry-out opcode is renamed, so eliminate the deceptive _gfx9, which looked like the encoded instruction. The real encoded version was named _gfx9_gfx9. Move it into the VI encoding namespace. The gfx9 namespace is just to deal with the renamed instructions that reinterpret the opcode. When codegened, it would fail to find the real instruction since it wasn't in the right namespace.
-
Jinsong Ji authored
-
Matt Arsenault authored
The hardware has created a real mess in the naming for add/sub, which have been renamed basically every generation. Switch the carry out pseudos to have the gfx9/gfx10 names. We were using the original SI/CI v_add_i32/v_sub_i32 names. Later targets reintroduced these names as carryless instructions with a saturating clamp bit, which we do not define. Do this rename so we can unambiguously add these missing instructions. The carry-in versions should also be renamed, but at least those had a consistent _u32 name to begin with. The 16-bit instructions were also renamed, but aren't ambiguous. This does regress assembler error message quality in some cases. In mismatched wave32/wave64 situations, this will switch from "unsupported instruction" to "invalid operand", with the error pointing at the wrong position. I couldn't quite follow how the assembler selects these, but the previous behavior seemed accidental to me. It looked like there was a partial attempt to handle this which was never completed (i.e. there is an AMDGPUOperand::isBoolReg but it isn't used for anything).
-
Jinsong Ji authored
Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D83962
-
Michael Forster authored
Summary: All tuple values are passed directly to hash_combine. This is inspired by the implementation used for Swift: https://github.com/llvm/llvm-project-staging/commit/4a1b4edbe1d1969284c1528e2950ac81b25edc8f https://github.com/llvm/llvm-project-staging/commit/845f3829b91522920a59c351b9011af01c5c7f87 Reviewers: gribozavr2 Reviewed By: gribozavr2 Subscribers: dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83887
-
Florian Hahn authored
-
Louis Dionne authored
-
Kostya Kortchinsky authored
Summary: Releasing smaller blocks is costly and only yields significant results when there is a large percentage of free bytes for a given size class (see numbers below). This CL introduces a couple of additional checks for sizes lower than 256. First we want to make sure that there is enough free bytes, relatively to the amount of allocated bytes. We are looking at 8X% to 9X% (smaller blocks require higher percentage). We also want to make sure there has been enough activity with the freelist to make it worth the time, so we now check that the bytes pushed to the freelist is at least 1/16th of the allocated bytes for those classes. Additionally, we clear batches before destroying them now - this could have prevented some releases to occur (class id 0 rarely releases anyway). Here are the numbers, for about 1M allocations in multiple threads: Size: 16 85% freed -> 0% released 86% freed -> 0% released 87% freed -> 0% released 88% freed -> 0% released 89% freed -> 0% released 90% freed -> 0% released 91% freed -> 0% released 92% freed -> 0% released 93% freed -> 0% released 94% freed -> 0% released 95% freed -> 0% released 96% freed -> 0% released 97% freed -> 2% released 98% freed -> 7% released 99% freed -> 27% released Size: 32 85% freed -> 0% released 86% freed -> 0% released 87% freed -> 0% released 88% freed -> 0% released 89% freed -> 0% released 90% freed -> 0% released 91% freed -> 0% released 92% freed -> 0% released 93% freed -> 0% released 94% freed -> 0% released 95% freed -> 1% released 96% freed -> 3% released 97% freed -> 7% released 98% freed -> 17% released 99% freed -> 41% released Size: 48 85% freed -> 0% released 86% freed -> 0% released 87% freed -> 0% released 88% freed -> 0% released 89% freed -> 0% released 90% freed -> 0% released 91% freed -> 0% released 92% freed -> 0% released 93% freed -> 0% released 94% freed -> 1% released 95% freed -> 3% released 96% freed -> 7% released 97% freed -> 13% released 98% freed -> 27% released 99% freed -> 52% released Size: 64 85% freed -> 0% released 86% freed -> 0% released 87% freed -> 0% released 88% freed -> 0% released 89% freed -> 0% released 90% freed -> 0% released 91% freed -> 0% released 92% freed -> 1% released 93% freed -> 2% released 94% freed -> 3% released 95% freed -> 6% released 96% freed -> 11% released 97% freed -> 20% released 98% freed -> 35% released 99% freed -> 59% released Size: 80 85% freed -> 0% released 86% freed -> 0% released 87% freed -> 0% released 88% freed -> 0% released 89% freed -> 0% released 90% freed -> 1% released 91% freed -> 1% released 92% freed -> 2% released 93% freed -> 4% released 94% freed -> 6% released 95% freed -> 10% released 96% freed -> 17% released 97% freed -> 26% released 98% freed -> 41% released 99% freed -> 64% released Size: 96 85% freed -> 0% released 86% freed -> 0% released 87% freed -> 0% released 88% freed -> 0% released 89% freed -> 1% released 90% freed -> 1% released 91% freed -> 3% released 92% freed -> 4% released 93% freed -> 6% released 94% freed -> 10% released 95% freed -> 14% released 96% freed -> 21% released 97% freed -> 31% released 98% freed -> 47% released 99% freed -> 68% released Size: 112 85% freed -> 0% released 86% freed -> 1% released 87% freed -> 1% released 88% freed -> 2% released 89% freed -> 3% released 90% freed -> 4% released 91% freed -> 6% released 92% freed -> 8% released 93% freed -> 11% released 94% freed -> 16% released 95% freed -> 22% released 96% freed -> 30% released 97% freed -> 40% released 98% freed -> 55% released 99% freed -> 74% released Size: 128 85% freed -> 0% released 86% freed -> 1% released 87% freed -> 1% released 88% freed -> 2% released 89% freed -> 3% released 90% freed -> 4% released 91% freed -> 6% released 92% freed -> 8% released 93% freed -> 11% released 94% freed -> 16% released 95% freed -> 22% released 96% freed -> 30% released 97% freed -> 40% released 98% freed -> 55% released 99% freed -> 74% released Size: 144 85% freed -> 1% released 86% freed -> 2% released 87% freed -> 3% released 88% freed -> 4% released 89% freed -> 6% released 90% freed -> 7% released 91% freed -> 10% released 92% freed -> 13% released 93% freed -> 17% released 94% freed -> 22% released 95% freed -> 28% released 96% freed -> 37% released 97% freed -> 47% released 98% freed -> 61% released 99% freed -> 78% released Size: 160 85% freed -> 1% released 86% freed -> 2% released 87% freed -> 3% released 88% freed -> 4% released 89% freed -> 5% released 90% freed -> 7% released 91% freed -> 10% released 92% freed -> 13% released 93% freed -> 17% released 94% freed -> 22% released 95% freed -> 28% released 96% freed -> 37% released 97% freed -> 47% released 98% freed -> 61% released 99% freed -> 78% released Size: 176 85% freed -> 2% released 86% freed -> 3% released 87% freed -> 4% released 88% freed -> 6% released 89% freed -> 7% released 90% freed -> 9% released 91% freed -> 12% released 92% freed -> 15% released 93% freed -> 20% released 94% freed -> 25% released 95% freed -> 32% released 96% freed -> 40% released 97% freed -> 51% released 98% freed -> 64% released 99% freed -> 80% released Size: 192 85% freed -> 4% released 86% freed -> 5% released 87% freed -> 6% released 88% freed -> 8% released 89% freed -> 10% released 90% freed -> 13% released 91% freed -> 16% released 92% freed -> 20% released 93% freed -> 24% released 94% freed -> 30% released 95% freed -> 37% released 96% freed -> 45% released 97% freed -> 55% released 98% freed -> 68% released 99% freed -> 82% released Size: 224 85% freed -> 8% released 86% freed -> 10% released 87% freed -> 12% released 88% freed -> 14% released 89% freed -> 17% released 90% freed -> 20% released 91% freed -> 23% released 92% freed -> 28% released 93% freed -> 33% released 94% freed -> 39% released 95% freed -> 46% released 96% freed -> 53% released 97% freed -> 63% released 98% freed -> 73% released 99% freed -> 85% released Size: 240 85% freed -> 8% released 86% freed -> 10% released 87% freed -> 12% released 88% freed -> 14% released 89% freed -> 17% released 90% freed -> 20% released 91% freed -> 23% released 92% freed -> 28% released 93% freed -> 33% released 94% freed -> 39% released 95% freed -> 46% released 96% freed -> 54% released 97% freed -> 63% released 98% freed -> 73% released 99% freed -> 85% released Reviewers: cferris, pcc, hctim, eugenis Subscribers: #sanitizers, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D82031
-
Louis Dionne authored
-
Dmitri Gribenko authored
Summary: I am changing tests for AST Matchers to run in multiple language standards versions, and under multiple triples that have different behavior with regards to templates. This change is similar to https://reviews.llvm.org/D82179. To keep the size of the patch manageable, in this patch I'm only migrating one file to get the process started and get feedback on this approach. Reviewers: ymandel Reviewed By: ymandel Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83868
-
Rahul Joshi authored
Differential Revision: https://reviews.llvm.org/D83848
-
Rahul Joshi authored
- Added more default values for `attributes` parameter for 2 more build methods - Extend the op-decls.td unit test to test these build methods. Differential Revision: https://reviews.llvm.org/D83839
-
David Green authored
As shown in D82998, the basic-aa-recphi option can cause miscompiles for gep's with negative constants. The option checks for recursive phi, that recurse through a contant gep. If it finds one, it performs aliasing calculations using the other phi operands with an unknown size, to specify that an unknown number of elements after the initial value are potentially accessed. This works fine expect where the constant is negative, as the size is still considered to be positive. So this patch expands the check to make sure that the constant is also positive. Differential Revision: https://reviews.llvm.org/D83576
-
LLVM GN Syncbot authored
-
Vy Nguyen authored
[llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements. Starting with Skylake, the LBR contains the precise number of cycles between the two consecutive branches. Making use of this will hopefully make the measurements more precise than the existing methods of using RDTSC. Differential Revision: https://reviews.llvm.org/D77422
-
- Jul 16, 2020
-
-
Rahul Joshi authored
Differential Revision: https://reviews.llvm.org/D83522
-
Sjoerd Meijer authored
-
Sjoerd Meijer authored
so disable that one for now.
-
Rahul Joshi authored
- This will enable tweaking IR printing options when enabling printing (for ex, tweak elideLargeElementsAttrs to create smaller IR logs) Differential Revision: https://reviews.llvm.org/D83930
-
Louis Dionne authored
This commit changes the warning for CMake < 3.13.4 into a fatal error. The intent is to revert and re-apply this simple commit until all build bots are migrated to CMake >= 3.13.4. This is part of the effort discussed on llvm-dev here: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140578.html Differential Revision: https://reviews.llvm.org/D78646
-
Louis Dionne authored
-
Frederik Gossen authored
Lower `shape.shape_eq` to the `scf` (and `std`) dialect. For now, this lowering is limited to extent tensor operands. Differential Revision: https://reviews.llvm.org/D82530
-
Xiangling Liao authored
Set the debug location for static init related functions(__dtor and __finalize) so we can generate valid debug info on AIX by invoking -g with clang or -debug-info-kind=limited with clang_cc1. This also works for any other future targets who may use sinit and sterm functions for static initialization, where a direct call to dtor will be generated within finalize function body. This patch also aims at validating that the debug info generated is correct for AIX sinit related functions. Differential Revision: https://reviews.llvm.org/D83702
-
Sjoerd Meijer authored
-
Florian Hahn authored
-
Xing GUO authored
This patch helps add support for emitting the .debug_str_offsets section to yaml2elf. Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D83853
-
David Green authored
-
Petar Avramovic authored
Add widenScalar for TypeIdx == 0 for G_SITOFP/G_UITOFP. Legailize, using widenScalar, as s64->s32 G_SITOFP/G_UITOFP followed by s32->s16 G_FPTRUNC. Differential Revision: https://reviews.llvm.org/D83880
-