summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[z/OS] Implement prologue and epilogue generation for z/OS target."muiez/revert-ffad4Muiez Ahmed2021-12-147-273/+11
| | | | This reverts commit ffad4d777b227f91be04020e2cd86ab38e969e39 because it introduced buildbot failures.
* [gn build] Port 4e94cba5b4e4LLVM GN Syncbot2021-12-141-0/+1
|
* [gn build] Reformat all build filesNico Weber2021-12-143-3/+1
| | | | | | Ran: git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format
* [gn build] (manually) port f0ca8d2461a7f3c8 (debuginfod-find)Nico Weber2021-12-143-0/+32
|
* [mlir] Add a missing pattern to bufferize tensor.rank.Alexander Belyaev2021-12-142-37/+41
| | | | Differential Revision: https://reviews.llvm.org/D115745
* [X86] Adjust some IceLake integer shuffle schedule classes (PR48110)Simon Pilgrim2021-12-148-718/+714
| | | | | | | | | | The IceLake scheduler model is still mainly a copy of the SkylakeServer model. This patch adjusts the integer shuffle classes to account for most instructions now working on Port 1 as well as Port 5. This is based off Agner + uops.info as well as the PR48110 report. Differential Revision: https://reviews.llvm.org/D115547
* [RISCV] Add isel support for scalar STRICT_FADD/FSUB/FMUL/FDIV/FSQRT.Craig Topper2021-12-147-27/+1862
| | | | | | | | | | | | | Test that STRICT_FMINNUM/FMAXNUM are lowered to libcalls for f32/f64. The RISC-V instructions don't match the behavior of fmin/fmax libcalls with respect to SNaN. Promoting FMINNUM/FMAXNUM for f16 needs more work outside of the RISC-V backend. Reviewed By: asb, arcbbb Differential Revision: https://reviews.llvm.org/D115680
* [gn build] (manually) port 1042de9058 to lit.site.cfg.in tooNico Weber2021-12-141-0/+1
|
* [AArch64] Revise a warning fixKazu Hirata2021-12-141-3/+2
| | | | | | This patch revises the warning fix done in a93b1792f1c8f7e2e7c931993110dc48f7ddba01. Specifically, it rolls the MRI.getType call into the assert, thereby avoiding the named variable.
* [ELF] -Map: Print symbols which needs canonical PLT entry/copy relocation ↵Fangrui Song2021-12-142-1/+60
| | | | | | | | | | | | | | | | just once If a copy related symbol (say `copy`) is referenced in two .o files, this change removes a duplicated line from the -Map output: ``` 202470 202470 1 1 .bss.rel.ro 202470 202470 1 1 <internal>:(.bss.rel.ro) 202470 202470 1 1 copy removed 202470 202470 1 1 copy ``` Differential Revision: https://reviews.llvm.org/D115697
* Revert "Only define LLVM_EXTERNAL_VISIBILITY when building libLLVM dylib"Mehdi Amini2021-12-142-10/+3
| | | | | | | | This reverts commit 71e97ad35b2abcc89cc8ff471a3eb404120cf208. The MLIR tests using the dylib are broken. https://lab.llvm.org/buildbot/#/builders/61/builds/18785
* [HIPSPV][2/4] Add HIPSPV tool chainHenry Linjamäki2021-12-146-1/+411
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new tool chain, HIPSPVToolChain, for emitting HIP device code as SPIR-V binary. The SPIR-V binary is emitted by using an external tool, SPIRV-LLVM-Translator, temporarily. We intend to switch the translator to the llc tool when the SPIR-V backend lands on LLVM and proves to work well on HIP implementations which consume SPIR-V. Before the SPIR-V emission the tool chain loads an optional external pass plugin, either automatically from a HIP installation or from a path pointed by --hipspv-pass-plugin, and runs passes that are meant to expand/lower HIP features that do not have direct counterpart in SPIR-V (e.g. dynamic shared memory). Code emission for SPIR-V will be enabled and HIPSPVToolChain tests will be added in the follow up patch part 3. Other changes: New option ‘-nohipwrapperinc’ is added to exclude HIP include wrappers. The reason for the addition is that they cause compile errors when compiling HIP sources for the host side for HIPCL and HIPLZ implementations. New option is added to avoid this issue. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D110618
* [Clang][ScanDeps] Use the virtual path for module mapsMichael Spencer2021-12-142-1/+63
| | | | | | | | | Make clang-scan-deps use the virtual path for module maps instead of the on disk path. This is needed so that modulemap relative lookups are done correctly in the actual module builds. The file dependencies still use the on disk path as that's what matters for build invalidation. Differential Revision: https://reviews.llvm.org/D114206
* [gn] Use CLANG_DEFAULT_PIE_ON_LINUX=Fangrui Song2021-12-141-1/+1
|
* [RISCV] Use AdjustInstrPostInstrSelection to insert a FRM dependency for ↵Craig Topper2021-12-147-13/+165
| | | | | | | | | | | | | | | | | | | | | scalar FP instructions with dynamic rounding mode. In order to support constrained FP intrinsics we need to model FRM dependency. Whether or not a instruction uses FRM is based on a 3 bit field in the instruction. Because of this we can't add 'Uses = [FRM]' to the tablegen descriptions. This patch examines the immediate after isel and adds an implicit use of FRM. This idea came from Roger Ferrer Ibanez. Other ideas: We could be overly conservative and just pretend all instructions with frm field read the FRM register. Or we could have pseudoinstructions for CodeGen with rounding mode. Reviewed By: asb, frasercrmck, arcbbb Differential Revision: https://reviews.llvm.org/D115555
* [Driver] Add CLANG_DEFAULT_PIE_ON_LINUX to emulate GCC --enable-default-pieFangrui Song2021-12-1411-4/+31
| | | | | | | | | | | | | | | | | | | | | | | In 2015-05, GCC added the configure option `--enable-default-pie`. When enabled, * in the absence of -fno-pic/-fpie/-fpic (and their upper-case variants), -fPIE is the default. * in the absence of -no-pie/-pie/-shared/-static/-static-pie, -pie is the default. This has been adopted by all(?) major distros. I think default PIE is the majority in the Linux world, but --disable-default-pie users is not that uncommon because GCC upstream hasn't switched the default yet (https://gcc.gnu.org/PR103398). This patch add CLANG_DEFAULT_PIE_ON_LINUX which allows distros to use default PIE. The option is justified as its adoption can be very high among Linux distros to make Clang default match GCC, and is likely a future-new-default, at which point we will remove CLANG_DEFAULT_PIE_ON_LINUX. The lit feature `default-pie-on-linux` can be handy to exclude default PIE sensitive tests. Reviewed By: foutrelis, sylvestre.ledru, thesamesam Differential Revision: https://reviews.llvm.org/D113372
* [llvm] [Debuginfo] Add llvm-debuginfod-find tool and end-to-end-tests.Noah Shutty2021-12-149-3/+208
| | | | | | | | This implements the `llvm-debuginfod-find` tool, which wraps the Debuginfod library (D112758) to query debuginfod servers for artifacts according to the [[ https://www.mankier.com/8/debuginfod#Webapi | specification ]]. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D112759
* Only define LLVM_EXTERNAL_VISIBILITY when building libLLVM dylibBen Langmuir2021-12-142-3/+10
| | | | | | | | | | When building LLVM static libraries, we should not make symbols more visible than CMAKE_CXX_VISIBILITY_PRESET, since the goal may be to have a purely hidden llvm embedded in another library. Instead, we only define LLVM_EXTERNAL_VISIBILITY for the dynamic library build (when LLVM_BUILD_LLVM_DYLIB=YES). Differential Revision: https://reviews.llvm.org/D113610
* [RISCV] Add mayRaiseFPException to RISCV scalar FP instructions.Craig Topper2021-12-143-9/+21
| | | | | | | | FRM dependency will be added in a future patch. Reviewed By: arcbbb Differential Revision: https://reviews.llvm.org/D115540
* [ELF] Remove needsPltAddr in favor of needsCopyFangrui Song2021-12-146-17/+13
| | | | | | | | | needsPltAddr is equivalent to `needsCopy && isFunc`. In many places, it is equivalent to `needsCopy` because the non-STT_FUNC cases are ruled out. Reviewed By: ikudrin, peter.smith Differential Revision: https://reviews.llvm.org/D115603
* [RISCV] Add a table for extension implications.Craig Topper2021-12-141-10/+28
| | | | | | | | This a proof of concept for a suggestion I proposed in D108694. Reviewed By: eopXD Differential Revision: https://reviews.llvm.org/D115668
* [DebugInfo][dsymutil] Keep locations for function-local globalsEllis Hoag2021-12-145-15/+91
| | | | | | | | | | In debug info, we expect variables to have location info if they are used and we don't want location info for functions that are not used. However, if an unused function is inlined, we could have the scenario where a function is not in the final binary but its static variable is in the final binary. Ensure that variables in the final binary have location debug info even if their scope was inlined. Also add `--implicit-check-not` to a test for clarity. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D115565
* [gn build] Reland 5082c330138: (semimanually) port ebc31d2.Kirill Stoimenov2021-12-141-1/+5
|
* Revert "[lldb] Introduce a FreeBSDKernel plugin for vmcores"Michał Górny2021-12-1426-1235/+1
| | | | | | This reverts commit aedb328a4dc9cb48ee3cf3198281649ea2c4f532. I have failed to make the new tests conditional to the presence of libfbsdvmcore.
* [RISCV] Convert (splat_vector (load)) to vlse with 0 stride.Craig Topper2021-12-142-1/+24
| | | | | | | | | We already do this for splat nodes that carry a VL, but not for splats that use VLMAX. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D115483
* [lldb] Introduce a FreeBSDKernel plugin for vmcoresMichał Górny2021-12-1426-1/+1235
| | | | | | | | | | | Introduce a FreeBSDKernel plugin that provides the ability to read FreeBSD kernel core dumps. The plugin utilizes libfbsdvmcore to provide support for both "full memory dump" and minidump formats across variety of architectures supported by FreeBSD. It provides the ability to read kernel memory, as well as the crashed thread status with registers on arm64, i386 and x86_64. Differential Revision: https://reviews.llvm.org/D114911
* Disable issue labeler in LLVM forksAlexander Batashev2021-12-141-0/+1
| | | | | | | | | | | LLVM forks may use GitHub Actions as well as the upstream projects, but they do not necessarily follow the same development processes. Disable automatic issue labeling for forks, so that it does not interfere with downstream repo automation. Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D115708
* [LoopUnroll] Disable loop unroll when user explicitly asks for unroll-and-jamZaara Syeda2021-12-141-0/+25
| | | | | | | | If a loop isn't forced to be unrolled, we want to avoid unrolling it when there is an explicit unroll-and-jam pragma. This is to prevent automatic unrolling from interfering with the user requested transformation. Differential Revision: https://reviews.llvm.org/D114886
* Add FMF to hasPoisonGeneratingFlags/dropPoisonGeneratingFlagsPhilip Reames2021-12-146-38/+34
| | | | | | These flags are documented as generating poison values for particular input values. As such, we should really be consistent about their handling with how we handle nsw/nuw/exact/inbounds. Differential Revision: https://reviews.llvm.org/D115460
* [WebAssembly] Custom optimization for truncateJing Bao2021-12-144-8/+139
| | | | | | | | When possible, optimize TRUNCATE to generate Wasm SIMD narrow instructions (i16x8.narrow_i32x4_u, i8x16.narrow_i16x8_u), rather than generate lots of extract_lane and replace_lane. Closes #50350.
* [libc++] Remove C++ version guards in the dylib.Mark de Wever2021-12-142-6/+2
| | | | | | | | The library is always build using C++20 so these guards are not needed. Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D115644
* [mlir][sparse] fixed typosAart Bik2021-12-142-3/+3
| | | | | | Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D115667
* [mlir][sparse] speed up sparse tensor file I/O by more than 2xAart Bik2021-12-141-28/+30
| | | | | | | | | | | | | | | | | | | | data point using the 3-dim tensor nell-2.tns MLIR: READ FILE INTO COO: 24424.369294 ms ---> improves to ----> 9638.501044 ms SORT COO BEFORE PACK: 762.834831 ms PACK COO TO TENSOR: 1243.376245 ms TACO: b file read: 13270.9 ms b pack: 7137.74 ms b size: (12092 x 9184 x 28818), 925300328 bytes https://github.com/llvm/llvm-project/issues/52679 Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D115696
* [InstCombine] prevent infinite looping from opposing cmp and select ↵Sanjay Patel2021-12-142-2/+34
| | | | | | | | | | | | transforms (PR52684) As noted in the code comment, we might want to simply give up on this select transform completely (given how many exceptions there are already and the risk of future conflicts), but for now, carve out one more bailout to avoid an infinite loop. Fixes #52684: https://github.com/llvm/llvm-project/issues/52684
* [InstCombine] regenerate test checks; NFCSanjay Patel2021-12-142-276/+276
|
* [InstCombine] convert static function to internal class function; NFCSanjay Patel2021-12-142-13/+14
| | | | | | The transform can require an optional shuffle instruction to be sound, so we need to use Builder to create all values and then replace the original instruction with whatever that final value is.
* [benchmark] Delete BUILD filesMircea Trofin2021-12-146-187/+2
| | | | | | | Bazel support is through utils/bazel, and the BUILD files in `benchmark` just complicate downstream integrates for bazel based builds. Differential Revision: https://reviews.llvm.org/D115733
* [libc++] Fix wrongly non-inline basic_string::shrink_to_fitLouis Dionne2021-12-142-0/+61
| | | | | | | | | As explained in https://stackoverflow.com/a/70339311/627587, the fact that shrink_to_fit wasn't defined as inline lead to issues when explicitly instantiating basic_string. While explicit instantiations are always somewhat brittle, this one was clearly a bug on our end. Differential Revision: https://reviews.llvm.org/D115656
* [AArch64] Convert sra(X, elt_size(X)-1) to cmlt(X, 0)Alexandros Lamprineas2021-12-1418-68/+93
| | | | | | CMLT has twice the execution throughput of SSHR on Arm out-of-order cores. Differential Revision: https://reviews.llvm.org/D115457
* [lldb/python] Plug SBStructuredData leaksPavel Labath2021-12-142-36/+18
| | | | This applies the from D114259 to the SBStructuredData class.
* [AArch64][SVE] Instcombine SDIV to ASRDMatt Devereau2021-12-142-0/+111
| | | | | | Instcombine SDIV to ASRD when the third operand of SDIV is a power of 2 Differential Revision: https://reviews.llvm.org/D115448
* [ASan] Shared optimized callbacks implementation.Kirill Stoimenov2021-12-145-18/+267
| | | | | | | | This change moves optimized callbacks from each .o file to compiler-rt. Instead of using code generation it uses direct assembly implementation. Please note that the 'or' version is not implemented and it will produce unresolved external if somehow 'or' version is requested. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D114558
* Test commitZaara Syeda2021-12-141-1/+0
|
* [X86] combineOr - don't demand operand elements if the other operand element ↵Simon Pilgrim2021-12-143-20/+38
| | | | | | is 'allones' If either operand has an element with allbits set, then we don't need the equivalent element from the other operand, as allbits are guaranteed to be set.
* [X86] combineOr - pull out repeated SDLoc(). NFCI.Simon Pilgrim2021-12-141-4/+2
|
* [SLP][NFC]Update test checks, NFC.Alexey Bataev2021-12-141-20/+20
|
* [AMDGPU] Regenerate checks in high-bits-zeroed-16-bit-ops.mirJay Foad2021-12-141-884/+1028
|
* [AArch64][SVE] Replace mask pointers in fixed-length-fp-vselect testMatt Devereau2021-12-141-1094/+100
| | | | | | Replace mask pointer parameters with fcmp for better quality codegen Differential Revision: https://reviews.llvm.org/D115641
* [clang-format] add support for cppm filesmydeveloperday2021-12-142-2/+3
| | | | | | | | | | | | | | C++20 Modules current style is to assign a new file suffix .cppm. https://github.com/llvm/llvm-project/issues/52658 Ensure git-clang-format can handle that as a default extension Reviewed By: ChuanqiXu, HazardyKnusperkeks, curdeius Differential Revision: https://reviews.llvm.org/D115625 Fixes: #52658
* [clang-format] FixNamespaceComments does not understand namespace aliasesmydeveloperday2021-12-142-1/+81
| | | | | | | | | | | | https://github.com/llvm/llvm-project/issues/35876 Ensure a namespace alias doesn't get incorrectly identifier as a namespace Reviewed By: HazardyKnusperkeks, curdeius, owenpan Differential Revision: https://reviews.llvm.org/D115647 Fixes: #35876