- Feb 07, 2020
-
-
Davide Italiano authored
This reverts commit 9bce9d2d, as it breaks the bots.
-
Jason Molenda authored
-
Huihui Zhang authored
-
River Riddle authored
Summary: This revision adds support for printing pass options as part of the normal help description. This also moves registered passes and pipelines into different sections of the help. Example: ``` Compiler passes to run --pass-pipeline - ... Passes: --affine-data-copy-generate - ... --convert-gpu-to-spirv - ... --workgroup-size=<long> - ... --test-options-pass - ... --list=<int> - ... --string=<string> - ... --string-list=<string> - ... Pass Pipelines: --test-options-pass-pipeline - ... --list=<int> - ... --string=<string> - ... --string-list=<string> - ... ``` Differential Revision: https://reviews.llvm.org/D74246
-
Huihui Zhang authored
Update lambda function static auto InitializeRegisterBankOnce = [this](const auto &TRI) { with static auto InitializeRegisterBankOnce = [&]() { Capture reference instead of passing argument, as there are buildbot compiling errors related when passing argument.
-
Davide Italiano authored
-
Petr Hosek authored
This reduces the reliance on host tools and makes the build more hermetic. Some of the runtimes already assume that certain tools are always available, for example libc++ and libc++abi archive merging relies on ar to extract files out of the archive, even on Darwin. Differential Revision: https://reviews.llvm.org/D74107
-
natashaknk authored
Differential Revision: https://reviews.llvm.org/D74151
-
Jan Kratochvil authored
D73303 was failing on Fedora Linux and so it was disabled by Skip the AssertFrameRecognizer test for Linux. On Fedora 30 x86_64 I have: $ readelf -Ws /lib64/libc.so.6 |grep '^Symbol\|.*assert_fail' Symbol table '.dynsym' contains 2362 entries: 630: 0000000000030520 70 FUNC GLOBAL DEFAULT 14 __assert_fail@@GLIBC_2.2.5 Symbol table '.symtab' contains 22711 entries: 922: 000000000002275a 15 FUNC LOCAL DEFAULT 14 __assert_fail_base.cold 18044: 0000000000030520 70 FUNC LOCAL DEFAULT 14 __GI___assert_fail 20081: 00000000000303a0 370 FUNC LOCAL DEFAULT 14 __assert_fail_base 21766: 0000000000030520 70 FUNC GLOBAL DEFAULT 14 __assert_fail The patch should never expect __GI___assert_fail: .symtab can be present or not but that should not change that __assert_fail always wins - it is always present from .dynsym and it can never be overriden by __GI___assert_fail as __GI___assert_fail has only local binding. Global binding is preferred since D63540. External debug info symbols do not matter since D55859 (and DWARF should never be embedded in system libc.so.6). Differential Revision: https://reviews.llvm.org/D74252
-
Huihui Zhang authored
Update lambda function static auto InitializeRegisterBankOnce = [this](const auto &TRI) { with static auto InitializeRegisterBankOnce = [&]() { Capture reference instead of passing argument, as there are buildbot compiling errors related when passing argument.
-
Nicolas Vasilache authored
[mlir][VectorOps] Introduce a `vector.fma` op that works on n-D vectors and lowers to `llvm.intrin.fmuladd` Summary: The `vector.fma` operation is portable enough across targets that we do not want to keep it wrapped under `vector.outerproduct` and `llvm.intrin.fmuladd`. This revision lifts the op into the vector dialect and implements the lowering to LLVM by using two patterns: 1. a pattern that lowers from n-D to (n-1)-D by unrolling when n > 2 2. a pattern that converts from 1-D to the proper LLVM representation Reviewers: ftynse, stellaraccident, aartbik, dcaballe, jsetoain, tetuante Reviewed By: aartbik Subscribers: fhahn, dcaballe, merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74075
-
Nemanja Ivanovic authored
On little endian targets prior to Power9, we spill vector registers using a swapping store (i.e. stdxvd2x saves the vector with the two doublewords in big endian order regardless of endianness). This is generally not a problem since we restore them using the corresponding swapping load (lxvd2x). However if the restore is done by the unwinder, the vector register contains data in the incorrect order. This patch fixes that by using Altivec loads/stores for vector saves and restores in PEI (which keep the order correct) under those specific conditions: - EH aware function - Subtarget requires swaps for VSX memops (Little Endian prior to Power9) Differential revision: https://reviews.llvm.org/D73692
-
Nicolas Vasilache authored
Summary: This revision exposes the portable `llvm.fma` intrinsic in LLVMOps and uses it in lieu of `llvm.fmuladd` when lowering the `vector.outerproduct` op to LLVM. This guarantees proper `fma` instructions will be emitted if the target ISA supports it. `llvm.fmuladd` does not have this guarantee in its semantics, despite evidence that the proper x86 instructions are emitted. For more details, see https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic. Reviewers: ftynse, aartbik, dcaballe, fhahn Reviewed By: aartbik Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74219
-
Alexey Bataev authored
Added codegen support for atomic|flush directives with acq_rel clause.
-
Sourabh Singh Tomar authored
failure after 84e5760a.
-
Richard Smith authored
-
Nico Weber authored
This reverts commit 4a1a0690. Breaks tests on mac and win, see https://reviews.llvm.org/D68720
-
Richard Smith authored
Summary: Due to a recent (but retroactive) C++ rule change, only sufficiently C-compatible classes are permitted to be given a typedef name for linkage purposes. Add an enabled-by-default warning for these cases, and rephrase our existing error for the case where we encounter the typedef name for linkage after we've already computed and used a wrong linkage in terms of the new rule. Reviewers: rjmccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74103
-
Changpeng Fang authored
Summary: The accuracy limit to use rcp is adjusted to 1.0 ulp from 2.5 ulp. Also, afn instead of arcp is used to allow inaccurate rcp to be used. Reviewers: arsenm Differential Revision: https://reviews.llvm.org/D73588
-
Fangrui Song authored
Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D74173
-
Vladimir Vereschaka authored
This reverts commit 9986b88e. These changes break ARM/Aarch64 cross builders on Windows platform * http://lab.llvm.org:8011/builders/llvm-clang-win-x-armv7l * http://lab.llvm.org:8011/builders/llvm-clang-win-x-aarch64 suppressing building libc++abi/libunwind by "just built" toolchain. Differential Revision: https://reviews.llvm.org/D73812
-
Kostya Kortchinsky authored
Summary: This tweaks some behaviors of the allocator wrt 32-bit, notably tailoring the size-class map. I had to remove a `printStats` from `__scudo_print_stats` since when within Bionic they share the same slot so they can't coexist at the same time. I have to find a solution for that later, but right now we are not using the Svelte configuration. Reviewers: rengolin Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D74178
-
Jessica Paquette authored
The issue in the previous commits was that we swap the LHS and RHS while looking for the constant. In SLT/SGT, the constant must be on the RHS, or the optimization is invalid. Move the swapping logic after the check for the SLT/SGT case and update tests. Original commits: d78cefb1 a3738414
-
Changpeng Fang authored
Summary: Current implementation of matchSwap in SIShrinkInstructions searches the entire use_nodbg_operands set to find the possible pattern to generate v_swap instruction. This approach will lead to a O(N^3) in compile time for SIShrinkInstructions. But in reality, the matching pattern only exists within nearby instructions in the same basic block. This work limits the search to a maximum of 16 instructions, and has a linear compile time comsumption. Reviewers: rampitec, arsenm Differential Revision: https://reviews.llvm.org/D74180
-
serge_sans_paille authored
Implement protection against the stack clash attack [0] through inline stack probing. Probe stack allocation every PAGE_SIZE during frame lowering or dynamic allocation to make sure the page guard, if any, is touched when touching the stack, in a similar manner to GCC[1]. This extends the existing `probe-stack' mechanism with a special value `inline-asm'. Technically the former uses function call before stack allocation while this patch provides inlined stack probes and chunk allocation. Only implemented for x86. [0] https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00556.html This a recommit of 39f50da2 with correct option flags set. Differential Revision: https://reviews.llvm.org/D68720
-
MaheshRavishankar authored
The initial implementation of the fusion operation exposes a method to fuse a consumer with its producer, when - both the producer and consumer operate on tensors - the producer has only a single result value - the producer has only "parallel" iterator types A new interface method hasTensorSemantics is added to verify that an operation has all operands and results of type RankedTensorType. Differential Revision: https://reviews.llvm.org/D74172
-
Sean Fertile authored
hasReservedSpillSlot returns a dummy frame index of '0' on PPC64 for the non-volatile condition registers, which leads to the CalleSavedInfo either referencing an unrelated stack object, or an invalid object if there are no stack objects. The latter case causes the mir-printer to crash due to assertions that checks if the frame index referenced by a CalleeSavedInfo is valid. To fix the problem create an immutable FixedStack object at the correct offset in the linkage area of the previous stack frame (ie SP + positive offset). Differential Revision: https://reviews.llvm.org/D73709
-
Craig Topper authored
Previously we took the restored flag in a GPR, extended it 32 or 64 bits. Then used as an input to a sub from 0. This requires creating a zero extend and creating a 0. This patch changes this to just use an ADD with 255 to restore the carry flag and keep the SETB_C32r/SETB_C64r. Exactly like we handle SBB which is what SETB becomes. Differential Revision: https://reviews.llvm.org/D74152
-
Jay Foad authored
Summary: This is a rework of D72611, using @LINE to check that errors are reported against the right instruction instead of adding lots of extra *-ERR-NEXT: check lines. Reviewers: rampitec, arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74227
-
Michael Liao authored
patch from Philippe Daouadi <blastrock@free.fr> This is an attempt to fix [PR#44368](https://bugs.llvm.org/show_bug.cgi?id=44368) This effectively reverts [D1783](https://reviews.llvm.org/D1783). It doesn't break the current tests and fixes the test that this commit adds. We now decide of a lambda linkage only depending on the visibility of its parent context. Differential Revision: https://reviews.llvm.org/D73701
-
Matt Arsenault authored
-
Vedant Kumar authored
Add the isCandidateForCallSiteEntry predicate to MachineInstr to determine whether a DWARF call site entry should be created for an instruction. For now, it's enough to have any call instruction that doesn't belong to a blacklisted set of opcodes. For these opcodes, a call site entry isn't meaningful. Differential Revision: https://reviews.llvm.org/D74159
-
Pavel Labath authored
Summary: There's a fair amount of code duplication between the different ABI plugins for the same architecture (e.g. ABIMacOSX_arm & ABISysV_arm). Deduplicating this code is not very easy at the moment because there is no good place where to put the common code. Instead of creating more plugins, this patch reduces their number by grouping similar plugins into a single folder/plugin. This makes it easy to extract common code to a (e.g.) base class, which can then live in the same folder. The grouping is done based on the underlying llvm target for that architecture, because the plugins already require this for their operation. Reviewers: JDevlieghere, jasonmolenda, jfb Subscribers: sdardis, nemanjai, mgorny, kristof.beyls, fedor.sergeev, kbarton, jrtc27, atanasyan, jsji, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74138
-
Med Ismail Bennani authored
This patch skips the AssertFrameRecognizer test for Linux since it appears to fail on certain distributions (AFAIK Fedora & ArchLinux). The failure happen because the thread don't set the current frame to the most relevant one. So the stopped location doesn't match with what the test is expecting. The test will be enabled again after I'll be able to reproduce the failure on one of those platform and fix the issue. Signed-off-by:
Med Ismail Bennani <medismail.bennani@gmail.com>
-
Fangrui Song authored
The revert of D73542 (c2900381) deleted the newly added tests to arm-thumb-interwork-shared.s . We should keep them.
-
Petar Avramovic authored
Allows more flexible use of buildMerge in places where use operands are available as SrcOp since it does not require explicit conversion to Register. Simplify code with new buildMerge. Differential Revision: https://reviews.llvm.org/D74223
-
Fangrui Song authored
When both little-endian and big-endian are tested, or both 32-bit and 64-bit are tested, use a template like the following with `-D BITS=32 -D ENCODE=LSB` ``` --- !ELF FileHeader: Class: ELFCLASS[[BITS]] Data: ELFDATA2[[ENCODE]] Type: ET_DYN Machine: EM_X86_64 ``` Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D73828
-
Fangrui Song authored
Examples: ``` yaml2obj -D MACHINE=EM_386 a.yaml -o a.o yaml2obj -D MACHINE=0x1234 a.yaml -o a.o ``` where a.yaml contains: ``` --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2MSB Type: ET_REL Machine: [[MACHINE]] ``` Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D73821
-
aartbik authored
Summary: Lowering to LLVM IR was restricted to float/double. This CL also adds the integral values. Reviewers: andydavis1, nicolasvasilache, ftynse Reviewed By: nicolasvasilache, ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74179
-
Pavel Labath authored
It is unused.
-