- Nov 08, 2021
-
-
Andrzej Warzynski authored
This patch extends the `FIRToLLVMLowering` pass in Flang by adding a hook to transform `fir.call` to `llvm.call`. This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Patch originally written by: Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Differential Revision: https://reviews.llvm.org/D113278
-
Simon Moll authored
VE integrated asm has been the default in Clang. Also use the default setting for integrated asm in the backend. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D113384
-
Simon Pilgrim authored
-
Tobias Gysi authored
The revision updates the packing loop search in hoist padding. Instead of considering all loops in the backward slice, we now compute a separate backward slice containing the index computations only. This modification ensures we do not add packing loops that are not used to index the packed buffer due to spurious dependencies. One instance where such spurious dependencies can appear is the extract slice operation introduced between the tile loops of a double tiling. Depends On D112412 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D112713
-
David Green authored
We already have patterns for fptosi and fptoui plus fmul to fixed point convert, this adds equivalent patterns for fptosi.sat and fptoui.sat, which should apply equally well for the legal saturating variants. Differential Revision: https://reviews.llvm.org/D113199
-
Jean Perier authored
If the source has an addendum, the descriptor that is being established to describe a section over the source needs to copy the addendum so that derived type information is correctly set in the descriptor being established. This allows namelist IO with derived type to work correctly. Differential Revision: https://reviews.llvm.org/D113258
-
David Sherwood authored
At the moment in LoopVectorizationCostModel::selectEpilogueVectorizationFactor we bail out if the main vector loop uses a scalable VF. This patch adds support for generating epilogue vector loops using a fixed-width VF when the main vector loop uses a scalable VF. I've changed LoopVectorizationCostModel::selectEpilogueVectorizationFactor so that we convert the scalable VF into a fixed-width VF and do profitability checks on that instead. In addition, since the scalable and fixed-width VFs live in different VPlans that means I had to change the calls to LVP.hasPlanWithVFs so that we only pass in the fixed-width VF. New tests added here: Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll Differential Revision: https://reviews.llvm.org/D109432
-
Qiu Chaofan authored
Including basic fusion types around arithmetic and logical instructions. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D111693
-
Andrew Wei authored
Performing the rearrangement for add/sub and mul instructions to match the madd/msub pattern Reviewed By: dmgreen, sdesmalen, david-arm Differential Revision: https://reviews.llvm.org/D111862
-
Konstantin Varlamov authored
`__vector_base` exists for historical reasons and cannot be eliminated entirely without breaking the ABI. Member variables are left untouched -- this patch only does changes that clearly cannot affect the ABI. Differential Revision: https://reviews.llvm.org/D112976
-
Konstantin Varlamov authored
This reverts commit bc742317. It was committed accidentally.
-
Valentin Clement authored
Add a separate file to test FIR types conversion to LLVM types. Conversion comes from `flang/lib/Optimizer/CodeGen/TypeConverter.h` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: kiranchandramohan, awarzynski Differential Revision: https://reviews.llvm.org/D113283
-
Louis Dionne authored
However, whether applications rely on the std::bad_function_call vtable being in the dylib is still controlled by the ABI macro, since changing that would be an ABI break. Differential Revision: https://reviews.llvm.org/D92397
-
skc7 authored
Reviewed By: hsmhsm Differential Revision: https://reviews.llvm.org/D113379
-
Esme-Yi authored
Summary: 1. implemented the unexpanded relocations output. 2. modified the expanded output format to align. Reviewed By: shchenz, jhenderson Differential Revision: https://reviews.llvm.org/D111700
-
Ben Shi authored
Optimize (add (mul x, c0), c1) -> (add (mul (add x, c1/c0+1), c0), c1%c0-c0), if c1/c0+1 and c1%c0-c0 are simm12, while c1 is not. Optimize (add (mul x, c0), c1) -> (add (mul (add x, c1/c0-1), c0), c1%c0+c0), if c1/c0-1 and c1%c0+c0 are simm12, while c1 is not. Reviewed By: craig.topper, asb Differential Revision: https://reviews.llvm.org/D111141 -
Chen Zheng authored
Add comments to explain why XXPERMDIs and XXPERMDI have different input register classes, vsfrc for XXPERMDIs and vsrc for XXPERMDI. This addresses the comments in abandoned patch D113178, we keep using `f0` instead of using `vs0` for XXPERMDIs on purpose.
-
Zi Xuan Wu authored
CSKY is a ARCH which supports mixture of 16-bit and 32-bit instructions natively, and there is not an indivual predictor or feature to enable/disable 16-bit instruction. So I think it's better to add 16-bit instruction early, and naturally to use 16-bit and 32-bit instructions. Differential Revision: https://reviews.llvm.org/D112919
-
Chen Zheng authored
Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D113173
-
Chen Zheng authored
-
Kazu Hirata authored
-
Simon Pilgrim authored
For v8i16 shuffle patterns that are lowered with AND+PACKUS, check to see if the sources are from a 256-bit vector and perform the masking using BLENDW at the 256-bit level. With the test changes we can see more examples of duplicate XMM/YMM zero vectors (PR26018) :(
-
Valentin Clement authored
This patch add the conversion pattern for fir.extract_value and fir.insert_value. fir.extract_value is lowered to llvm.extractvalue anf fir.insert_value is lowered to llvm.insertvalue. This patch also adds the type conversion for the BoxType and RecordType needed to have some comprehensive tests. This patch is part of the upstreaming effort from fir-dev branch. This patch was landed and reverted once. TypeBuilderFunc getModel<Fortran::ISO::CFI_index_t>() was clashing with getModel<long long> on windows since they both are 64 bits signed interger. On linux CFI_index_t is long. Change CFI_index_t to getModel<long>. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D112961 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Nikita Popov authored
For some optimizations on comparisons it's necessary that the union/intersect is exact and not a superset. Add methods that return Optional<ConstantRange> only if the result is exact. For the sake of simplicity this is implemented by comparing the subset and superset approximations for now, but it should be possible to do this more directly, as unionWith() and intersectWith() already distinguish the cases where the result is imprecise for the preferred range type functionality.
-
Nikita Popov authored
From an API perspective, it does not make a lot of sense that 0 is not a valid argument to this function. Add the exact check needed to support it.
-
Jonas Devlieghere authored
Somehow every pointer looks like it's tagged on GreenDragon. Removing the check to unblock the bot until we can get to the bottom of this.
-
David Green authored
This rewrites the fcvt-fixed.ll test case to be separate functions, not one large function with volatile global stores. It also adds fp16 and fptoi.sat testing at the same time.
-
Nikita Popov authored
When accumulating the GEP offset in BasicAA, we should use the pointer index size rather than the pointer size. Differential Revision: https://reviews.llvm.org/D112370
-
Kazu Hirata authored
The function body proper was removed on Feb 20, 2019 in commit 79b5c384.
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Manoj Gupta authored
D98452 introduced a mismatch between clang expectations for builtin name for baremetal targets on arm. Fix it by adding a case for baremetal. This now matches the output of "clang -target armv7m-none-eabi -print-libgcc-file-name \ -rtlib=compiler-rt" Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D113357
-
- Nov 07, 2021
-
-
Benjamin Kramer authored
-
Mark de Wever authored
-
Nikolas Klauser authored
Make test_allocator etc. constexpr-friendly so they can be used to test constexpr string and possibly constexpr vector Reviewed By: Quuxplusone, #libc, ldionne Differential Revision: https://reviews.llvm.org/D110994
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Be more consistent in the naming convention for the various RET instructions to specify in terms of bitwidth. Helps prevent future scheduler model mismatches like those that were only addressed in D44687. Differential Revision: https://reviews.llvm.org/D113302
-
Benjamin Kramer authored
-
Benjamin Kramer authored
-
Simon Pilgrim authored
D109434 addressed the v2f64 -> v4f64 case, an internal test has found an equivalent crash for the v4f32 -> v8f32 case.
-