Revision tags: llvmorg-11.0.1-rc1 |
|
#
3f78605a |
| 13-Nov-2020 |
Baptiste Saleil <baptiste.saleil@ibm.com> |
[PowerPC] Add paired vector load and store builtins and intrinsics
This patch adds the Clang builtins and LLVM intrinsics to load and store vector pairs.
Differential Revision: https://reviews.llvm
[PowerPC] Add paired vector load and store builtins and intrinsics
This patch adds the Clang builtins and LLVM intrinsics to load and store vector pairs.
Differential Revision: https://reviews.llvm.org/D90799
show more ...
|
#
b3b993a7 |
| 02-Nov-2020 |
Florian Hahn <flo@fhahn.com> |
Reland "[TTI] Add VecPred argument to getCmpSelInstrCost."
This reverts the revert commit 408c4408facc3a79ee4ff7e9983cc972f797e176.
This version of the patch includes a fix for a crash caused by tr
Reland "[TTI] Add VecPred argument to getCmpSelInstrCost."
This reverts the revert commit 408c4408facc3a79ee4ff7e9983cc972f797e176.
This version of the patch includes a fix for a crash caused by treating ICmp/FCmp constant expressions as instructions.
Original message:
On some targets, like AArch64, vector selects can be efficiently lowered if the vector condition is a compare with a supported predicate.
This patch adds a new argument to getCmpSelInstrCost, to indicate the predicate of the feeding select condition. Note that it is not sufficient to use the context instruction when querying the cost of a vector select starting from a scalar one, because the condition of the vector select could be composed of compares with different predicates.
This change greatly improves modeling the costs of certain compare/select patterns on AArch64.
I am also planning on putting up patches to make use of the new argument in SLPVectorizer & LV.
show more ...
|
#
408c4408 |
| 30-Oct-2020 |
Florian Hahn <flo@fhahn.com> |
Revert "[TTI] Add VecPred argument to getCmpSelInstrCost."
This reverts commit 73f01e3df58dca9d1596440b866b52929e3878de.
This appears to break http://lab.llvm.org:8011/#/builders/85/builds/383.
|
#
73f01e3d |
| 30-Oct-2020 |
Florian Hahn <flo@fhahn.com> |
[TTI] Add VecPred argument to getCmpSelInstrCost.
On some targets, like AArch64, vector selects can be efficiently lowered if the vector condition is a compare with a supported predicate.
This patc
[TTI] Add VecPred argument to getCmpSelInstrCost.
On some targets, like AArch64, vector selects can be efficiently lowered if the vector condition is a compare with a supported predicate.
This patch adds a new argument to getCmpSelInstrCost, to indicate the predicate of the feeding select condition. Note that it is not sufficient to use the context instruction when querying the cost of a vector select starting from a scalar one, because the condition of the vector select could be composed of compares with different predicates.
This change greatly improves modeling the costs of certain compare/select patterns on AArch64.
I am also planning on putting up patches to make use of the new argument in SLPVectorizer & LV.
Reviewed By: dmgreen, RKSimon
Differential Revision: https://reviews.llvm.org/D90070
show more ...
|
#
00e573ca |
| 27-Oct-2020 |
Chen Zheng <czhengsz@cn.ibm.com> |
[LSR] fix typo in comments and rename for a new added hook.
|
#
1e0b6c1d |
| 21-Oct-2020 |
Chen Zheng <czhengsz@cn.ibm.com> |
[LSR] ignore profitable chain when reg num is not major cost.
Reviewed By: samparker
Differential Revision: https://reviews.llvm.org/D89665
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4 |
|
#
f0560870 |
| 27-Sep-2020 |
Chen Zheng <czhengsz@cn.ibm.com> |
[PowerPC] implement target hook getTgtMemIntrinsic
This patch can make pass recognize Powerpc related memory intrinsics.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D
[PowerPC] implement target hook getTgtMemIntrinsic
This patch can make pass recognize Powerpc related memory intrinsics.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D88373
show more ...
|
#
a3d0dce2 |
| 22-Sep-2020 |
Meera Nakrani <meera.nakrani@arm.com> |
[ARM][TTI] Prevents constants in a min(max) or max(min) pattern from being hoisted when in a loop
Changes TTI function getIntImmCostInst to take an additional Instruction parameter, which enables us
[ARM][TTI] Prevents constants in a min(max) or max(min) pattern from being hoisted when in a loop
Changes TTI function getIntImmCostInst to take an additional Instruction parameter, which enables us to be able to check it is part of a min(max())/max(min()) pattern that will match SSAT. We can then mark the constant used as free to prevent it being hoisted so SSAT can still be generated. Required minor changes in some non-ARM backends to allow for the optional parameter to be included.
Differential Revision: https://reviews.llvm.org/D87457
show more ...
|
Revision tags: llvmorg-11.0.0-rc3 |
|
#
f0268121 |
| 17-Sep-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
InstCombiner.h - remove unnecessary KnownBits.h include. NFCI.
Move the include down to cpp files with an implicit dependency.
|
#
fed6107d |
| 24-Aug-2020 |
Qiu Chaofan <qiucofan@cn.ibm.com> |
[PowerPC] Allow constrained FP intrinsics in mightUseCTR
We may meet Invalid CTR loop crash when there's constrained ops inside. This patch adds constrained FP intrinsics to the list so that CTR loo
[PowerPC] Allow constrained FP intrinsics in mightUseCTR
We may meet Invalid CTR loop crash when there's constrained ops inside. This patch adds constrained FP intrinsics to the list so that CTR loop verification doesn't complain about it.
Reviewed By: steven.zhang
Differential Revision: https://reviews.llvm.org/D81924
show more ...
|
Revision tags: llvmorg-11.0.0-rc2 |
|
#
b43791e7 |
| 03-Aug-2020 |
Christopher Tetreault <ctetreau@quicinc.com> |
[SVE] Remove bad calls to VectorType::getNumElements() from PowerPC
Differential Revision: https://reviews.llvm.org/D85154
|
#
cc529285 |
| 30-Jul-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
VectorUtils.h - reduce unnecessary includes. NFC.
Replace TargetLibraryInfo.h include with forward declaration and fix implicit dependencies.
Reduce SmallSet.h include to SmallVector.h include.
|
#
60280e98 |
| 29-Jul-2020 |
David Green <david.green@arm.com> |
[Analysis] TTI: Add CastContextHint for getCastInstrCost
Currently, getCastInstrCost has limited information about the cast it's rating, often just the opcode and types. Sometimes there is a contex
[Analysis] TTI: Add CastContextHint for getCastInstrCost
Currently, getCastInstrCost has limited information about the cast it's rating, often just the opcode and types. Sometimes there is a context instruction as well, but it isn't trustworthy: for instance, when the vectorizer is rating a plan, it calls getCastInstrCost with the old instructions when, in fact, it's trying to evaluate the cost of the instruction post-vectorization. Thus, the current system can get the cost of certain casts incorrect as the correct cost can vary greatly based on the context in which it's used.
For example, if the vectorizer queries getCastInstrCost to evaluate the cost of a sext(load) with tail predication enabled, getCastInstrCost will think it's free most of the time, but it's not always free. On ARM MVE, a VLD2 group cannot be extended like a normal VLDR can. Similar situations can come up with how masked loads can be extended when being split.
To fix that, this path adds a new parameter to getCastInstrCost to give it a hint about the context of the cast. It adds a CastContextHint enum which contains the type of the load/store being created by the vectorizer - one for each of the types it can produce.
Original patch by Pierre van Houtryve
Differential Revision: https://reviews.llvm.org/D79162
show more ...
|
Revision tags: llvmorg-11.0.0-rc1 |
|
#
d28f8672 |
| 28-Jul-2020 |
Jinsong Ji <jji@us.ibm.com> |
Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support"
This reverts commit bf544fa1c3cb80f24d85e84559fb11193846259f.
Fixed the typo in PPCInstrInfo.cpp.
|
#
bf544fa1 |
| 27-Jul-2020 |
Jinsong Ji <jji@us.ibm.com> |
Revert "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support"
This reverts commit adffce71538e219aab4eeb024819baa7687262ff.
This is breaking test-suite, revert while investigation.
|
#
adffce71 |
| 27-Jul-2020 |
Jinsong Ji <jji@us.ibm.com> |
[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support
Per RFC http://lists.llvm.org/pipermail/llvm-dev/2020-April/141295.html no one is making use of QPX/A2Q/BGQ/BGP CNK anymore.
This patch remove the suppo
[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support
Per RFC http://lists.llvm.org/pipermail/llvm-dev/2020-April/141295.html no one is making use of QPX/A2Q/BGQ/BGP CNK anymore.
This patch remove the support of QPX/A2Q in llvm, BGQ/BGP in clang, CNK support in openmp/polly.
Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D83915
show more ...
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
#
2a6c8715 |
| 03-Jun-2020 |
Sebastian Neubauer <sebastian.neubauer@amd.com> |
[InstCombine] Move target-specific inst combining
For a long time, the InstCombine pass handled target specific intrinsics. Having target specific code in general passes was noted as an area for imp
[InstCombine] Move target-specific inst combining
For a long time, the InstCombine pass handled target specific intrinsics. Having target specific code in general passes was noted as an area for improvement for a long time.
D81728 moves most target specific code out of the InstCombine pass. Applying the target specific combinations in an extra pass would probably result in inferior optimizations compared to the current fixed-point iteration, therefore the InstCombine pass resorts to newly introduced functions in the TargetTransformInfo when it encounters unknown intrinsics. The patch should not have any effect on generated code (under the assumption that code never uses intrinsics from a foreign target).
This introduces three new functions: TargetTransformInfo::instCombineIntrinsic TargetTransformInfo::simplifyDemandedUseBitsIntrinsic TargetTransformInfo::simplifyDemandedVectorEltsIntrinsic
A few target specific parts are left in the InstCombine folder, where it makes sense to share code. The largest left-over part in InstCombineCalls.cpp is the code shared between arm and aarch64.
This allows to move about 3000 lines out from InstCombine to the targets.
Differential Revision: https://reviews.llvm.org/D81728
show more ...
|
#
e541e1b7 |
| 10-Jul-2020 |
Sidharth Baveja <sidharth.baveja@ibm.com> |
[NFC] Separate Peeling Properties into its own struct (re-land after minor fix)
Summary: This patch separates the peeling specific parameters from the UnrollingPreferences, and creates a new struct
[NFC] Separate Peeling Properties into its own struct (re-land after minor fix)
Summary: This patch separates the peeling specific parameters from the UnrollingPreferences, and creates a new struct called PeelingPreferences. Functions which used the UnrollingPreferences struct for peeling have been updated to use the PeelingPreferences struct.
Author: sidbav (Sidharth Baveja)
Reviewers: Whitney (Whitney Tsang), Meinersbur (Michael Kruse), skatkov (Serguei Katkov), ashlykov (Arkady Shlykov), bogner (Justin Bogner), hfinkel (Hal Finkel), anhtuyen (Anh Tuyen Tran), nikic (Nikita Popov)
Reviewed By: Meinersbur (Michael Kruse)
Subscribers: fhahn (Florian Hahn), hiraditya (Aditya Kumar), llvm-commits, LLVM
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D80580
show more ...
|
#
0b39d2d7 |
| 08-Jul-2020 |
Nikita Popov <nikita.ppv@gmail.com> |
Revert "[NFC] Separate Peeling Properties into its own struct"
This reverts commit 0369dc98f958a1ca2ec05f1897f091129bb16e8a.
Many failing tests.
|
#
0369dc98 |
| 08-Jul-2020 |
Sidharth Baveja <sidharth.baveja@ibm.com> |
[NFC] Separate Peeling Properties into its own struct
Summary: This patch makes the peeling properties of the loop accessible by other loop transformations.
Author: sidbav (Sidharth Baveja)
Review
[NFC] Separate Peeling Properties into its own struct
Summary: This patch makes the peeling properties of the loop accessible by other loop transformations.
Author: sidbav (Sidharth Baveja)
Reviewers: Whitney (Whitney Tsang), Meinersbur (Michael Kruse), skatkov (Serguei Katkov), ashlykov (Arkady Shlykov), bogner (Justin Bogner), hfinkel (Hal Finkel)
Reviewed By: Meinersbur (Michael Kruse)
Subscribers: fhahn (Florian Hahn), hiraditya (Aditya Kumar), llvm-commits, LLVM
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D80580
show more ...
|
#
6965af43 |
| 08-Jul-2020 |
Anh Tuyen Tran <anhtuyen@ca.ibm.com> |
Revert "[NFC] Separate Peeling Properties into its own struct"
This reverts commit fead250b439bbd4ec0f21e6a52d0c174e5fcdf5a.
|
#
fead250b |
| 08-Jul-2020 |
Anh Tuyen Tran <anhtuyen@ca.ibm.com> |
[NFC] Separate Peeling Properties into its own struct
Summary: This patch makes the peeling properties of the loop accessible by other loop transformations.
Author: sidbav (Sidharth Baveja)
Review
[NFC] Separate Peeling Properties into its own struct
Summary: This patch makes the peeling properties of the loop accessible by other loop transformations.
Author: sidbav (Sidharth Baveja)
Reviewers: Whitney (Whitney Tsang), Meinersbur (Michael Kruse), skatkov (Serguei Katkov), ashlykov (Arkady Shlykov), bogner (Justin Bogner), hfinkel (Hal Finkel)
Reviewed By: Meinersbur (Michael Kruse)
Subscribers: fhahn (Florian Hahn), hiraditya (Aditya Kumar), llvm-commits, LLVM
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D80580
show more ...
|
#
fdc7c7fb |
| 26-Jun-2020 |
Guillaume Chatelet <gchatelet@google.com> |
[Alignment][NFC] Migrate TTI::getInterleavedMemoryOpCost to Align
This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-
[Alignment][NFC] Migrate TTI::getInterleavedMemoryOpCost to Align
This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Differential Revision: https://reviews.llvm.org/D82573
show more ...
|
#
58e19d46 |
| 18-Jun-2020 |
Kang Zhang <shkzhang@cn.ibm.com> |
[PowerPC] Don't convert Loop to CTR Loop for fp128 BinaryOperator
Summary: For PPC BinaryOperator of fp128 will become libcall, we shouldn't convert loop to CTR loop if the loop contain libCall.
Bu
[PowerPC] Don't convert Loop to CTR Loop for fp128 BinaryOperator
Summary: For PPC BinaryOperator of fp128 will become libcall, we shouldn't convert loop to CTR loop if the loop contain libCall.
But currently, in the PPCTTIImpl::mightUseCTR() function, we only deal with BinaryOperator for ppc_fp128, don't deal with the fp128.
Reviewed By: shchenz
Differential Revision: https://reviews.llvm.org/D81353
show more ...
|
#
c2574dc9 |
| 17-Jun-2020 |
Kang Zhang <shkzhang@cn.ibm.com> |
[NFC]][PowerPC] Remove unused intrinsic for old CTR loop pass
Summary:
In the patch D62907 the PPC CTRLoops pass has been replaced by Generic Hardware Loop pass, and it has imported some new intrin
[NFC]][PowerPC] Remove unused intrinsic for old CTR loop pass
Summary:
In the patch D62907 the PPC CTRLoops pass has been replaced by Generic Hardware Loop pass, and it has imported some new intrinsic for Generic Hardware Loop.
The old intrinsic used in PPC CTRLoops int_ppc_mtctr and int_ppc_is_decremented_ctr_nonzero is been replaced by int_set_loop_iterations and loop_decrement.
This patch is to remove above unused two instrinsic.
Reviewed By: shchenz
Differential Revision: https://reviews.llvm.org/D81539
show more ...
|