- Jun 19, 2020
-
-
Sander de Smalen authored
The struct store intrinsics in LLVM IR take the individual parts as arguments, so this patch uses the intrinsics used for `svget` to break the tuples into individual parts. Reviewers: c-rhodes, efriedma, ctetreau, david-arm Reviewed By: efriedma Tags: #clang Differential Revision: https://reviews.llvm.org/D81466
-
David Sherwood authored
Try to avoid calling getVectorNumElements() or relying upon the TypeSize conversion to uin64_t. Differential Revision: https://reviews.llvm.org/D81573
-
Vitaly Buka authored
This function is going to be added into StackSafety checks. This patch uses function in ::print implementation to make sure that it works as expected.
-
Vitaly Buka authored
-
Vitaly Buka authored
We don't need to lookup InstructionNumbering by number, so we can use vector with index as assigned number.
-
Vitaly Buka authored
Code does not track terminators and do not expose them through interface. State there is just a state of the last instruction or entry. So this information is just redundant and doesn't need to be tested.
-
Florian Hahn authored
This patch updates SCCP/IPSCCP to use the computed range info to turn sexts into zexts, if the value is known to be non-negative. We already to a similar transform in CorrelatedValuePropagation, but it seems like we can catch a lot of additional cases by doing it in SCCP/IPSCCP as well. The transform is limited to ranges that are known to not include undef. Currently constant ranges from conditions are treated as potentially containing undef, due to PR46144. Once we flip this, the transform will be more effective in practice. Reviewers: efriedma, davide Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D81756
-
Jay Foad authored
Without this fix, handleMoveUp can create an invalid live range like this: [98904e,98908r:0)[98908e,227504r:1) where the two segments overlap, but only because we have lost the "e" (early-clobber) on the end point of the first segment. Differential Revision: https://reviews.llvm.org/D82110
-
Raul Tambre authored
Summary: Constants have 33 significant decimal digits for IEEE 754 128-bit floating-point numbers. Reviewers: ldionne, #libc, EricWF, zoecarver, curdeius Reviewed By: ldionne, #libc, curdeius Differential Revision: https://reviews.llvm.org/D77505
-
Daniel Grumberg authored
-
Tyker authored
Summary: this reduces significantly the number of assumes generated without aftecting too much the information that is preserved. this improves the compile-time cost of enable-knowledge-retention significantly. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, asbirlea, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79650
-
Alex Zinenko authored
All class derived from `edsc::NestedBuilder` in core MLIR have been replaced with alternatives based on OpBuilder+callbacks. The *Builder EDSC infrastructure has been deprecated. Remove edsc::NestedBuilder. This completes the "structured builders" refactoring. Differential Revision: https://reviews.llvm.org/D82128
-
Alex Zinenko authored
Callback-based constructions of blocks where the body is populated in the same function as the block creation is a natural extension of callback-based loop construction. They provide more concise and simple APIs than EDSC BlockBuilder at less than 20% infrastructural code cost, and are compatible with ScopedContext. BlockBuilder, Blockhandle and related functionality has been deprecated, remove them. Differential Revision: https://reviews.llvm.org/D82015
-
Alex Zinenko authored
Callback-based loop construction, with loop bodies being constructed during the construction of the parent op using a function, is now fully supported by the core infrastructure. This provides almost the same level of brevity as EDSC LoopBuilder at less than 30% infrastructural code cost. Functional equivalents compatible with EDSC ScopedContext are implemented on top of the main builders. LoopBuilder and related functionality has been deprecated, remove it. Differential Revision: https://reviews.llvm.org/D81874
-
David Sherwood authored
For now I have changed SimplifyDemandedBits and it's various callers to assume we know nothing for scalable vectors and to ignore the demanded bits completely. I have also done something similar for SimplifyDemandedVectorElts. These changes fix up lots of warnings due to calls to EVT::getVectorNumElements() for types with scalable vectors. These functions are all used for optimisations, rather than functional requirements. In future we can revisit this code if there is a need to improve code quality for SVE. Differential Revision: https://reviews.llvm.org/D80537
-
David Sherwood authored
When trying to calculate the number of sign bits for scalable vectors we should just bail out for now and pretend we know nothing. Differential Revision: https://reviews.llvm.org/D81093
-
Haojian Wu authored
Reviewers: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81912
-
Mehdi Amini authored
This patch adds the `default_triple` feature to MLIR test suite. This feature was added to LLVM in d178f4fc in order to be able to run the LLVM tests without having the host targets configured in. With this change, `ninja check-mlir` passes without the host target, i.e. this config: cmake ../llvm -DLLVM_TARGETS_TO_BUILD="" -DLLVM_DEFAULT_TARGET_TRIPLE="" -DLLVM_ENABLE_PROJECTS=mlir -GNinja Differential Revision: https://reviews.llvm.org/D82142
-
Mehdi Amini authored
These tests involve a JIT, and like other tests should have the REQUIRE: default_triple present. This allow to run `ninja check` without the host target configured in.
-
Kristof Beyls authored
The accepted options to -mharden-sls= are: * all: enable all mitigations against Straight Line Speculation that are implemented. * none: disable all mitigations against Straight Line Speculation. * retbr: enable the mitigation against Straight Line Speculation for RET and BR instructions. * blr: enable the mitigation against Straight Line Speculation for BLR instructions. Differential Revision: https://reviews.llvm.org/D81404
-
Max Kazantsev authored
-
Dylan McKay authored
Reviewers: dylanmckay Reviewed By: dylanmckay Subscribers: Jim, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77334 This was originally committed in 03b08311 but I missed the commit attribution. Patch by Dennis van der Schagt.
-
Dylan McKay authored
This reverts commit 03b08311. I forgot to attribute the commit originally so I am recommitting in a subsequent patch.
-
Dylan McKay authored
Reviewers: dylanmckay Reviewed By: dylanmckay Subscribers: Jim, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77334
-
Kristof Beyls authored
A "BTI c" instruction only allows jumping/calling to using a BLR* instruction. However, the SLSBLR mitigation changes a BLR to a BR to implement the function call. Therefore, a "BTI c" check that passed before could trigger after the BLR->BL change done by the SLSBLR mitigation. However, if the register used in BR is X16 or X17, this trigger will not fire (see ArmARM for further details). Therefore, this patch simply changes the function stubs for the SLSBLR mitigation from __llvm_slsblr_thunk_x<N>: br x<N> SpeculationBarrier to __llvm_slsblr_thunk_x<N>: mov x16, x<N> br x16 SpeculationBarrier Differential Revision: https://reviews.llvm.org/D81405
-
Anthony Steinhauser authored
Reviewers: sivachandra Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D82143
-
Ronak Chauhan authored
Summary: This allows targets to also consider the symbol's type and/or address if needed. Reviewers: scott.linder, jhenderson, MaskRay, aardappel Reviewed By: scott.linder, MaskRay Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, aheejin, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82090
-
Francesco Petrogalli authored
Reviewers: efriedma, sdesmalen Reviewed By: efriedma Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80741
-
Nemanja Ivanovic authored
We currently miss a number of opportunities to emit single-instruction VMRG[LH][BHW] instructions for shuffles on little endian subtargets. Although this in itself is not a huge performance opportunity since loading the permute vector for a VPERM can always be pulled out of loops, producing such merge instructions is useful to downstream optimizations. Since VPERM is essentially opaque to all subsequent optimizations, we want to avoid it as much as possible. Other permute instructions have semantics that can be reasoned about much more easily in later optimizations. This patch does the following: - Canonicalize shuffles so that the first element comes from the first vector (since that's what most of the mask matching functions want) - Switch the elements that come from splat vectors so that they match the corresponding elements from the other vector (to allow for merges) - Adds debugging messages for when a shuffle is matched to a VPERM so that anyone interested in improving this further can get the info for their code Differential revision: https://reviews.llvm.org/D77448
-
Carl Ritson authored
Add code to respect mad-mac-f32-insts target feature. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D81990
-
LLVM GN Syncbot authored
-
Richard Smith authored
-
Yitzhak Mandelbaum authored
This patch adds a parser for a `RangeSelector` written as a string. The format is closely based on the way one would right the selector in C++. This should enable use of `RangeSelector`s from tools like clang-query and web UIs.
-
Richard Smith authored
not be a pack expansion type. Using a pack expansion type for a pack declaration makes sense, but general expressions should never have pack expansion types. If we have a pack `T *...V`, then the type of `V` is the type `T *`, which contains an unexpanded pack, and is a pointer type. This allows us to better diagnose issues where a template is invalid due to some non-dependent portion of a dependent type of a non-type template parameter pack.
-
Ties Stuij authored
Summary: so it doesn't change the C ABI Reviewers: deadalnix Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82135
-
peter klausler authored
Summary: Defines a representation for the initialized memory image of a variable. This image is populated by DATA statement processing as designator elements are put into correspondence with values, then converted into an initializer in the symbol table so that lowering can pass the initial image to the code generator. Reviewers: tskeith, PeteSteinfeld, sscalpone, jdoerfert, DavidTruby Reviewed By: tskeith Subscribers: mgorny, llvm-commits, flang-commits Tags: #flang, #llvm Differential Revision: https://reviews.llvm.org/D82131
-
Brad Smith authored
-
Derek Schuff authored
Emscripten has emulations for several headers found on Linux, including spwan.h and endian.h Differential Revision: https://reviews.llvm.org/D82121
-
Vitaly Buka authored
-
Vitaly Buka authored
Summary: Extend StackLifetime with option to calculate liveliness where alloca is only considered alive on basic block entry if all non-dead predecessors had it alive at terminators. Depends on D82043. Reviewers: eugenis Reviewed By: eugenis Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82124
-