#
8aee7833 |
| 06-Dec-2021 |
Bardia Mahjour <bmahjour@ca.ibm.com> |
[VP] Cost model for VPMemory operations on PowerPC.
PPC Implementation of getVPMemoryOpCost and hasActiveVectorLength.
Reviewed By: Roland Froese
Differential Revision: https://reviews.llvm.org/D1
[VP] Cost model for VPMemory operations on PowerPC.
PPC Implementation of getVPMemoryOpCost and hasActiveVectorLength.
Reviewed By: Roland Froese
Differential Revision: https://reviews.llvm.org/D109417
show more ...
|
#
150681f2 |
| 25-Nov-2021 |
Amy Kwan <amy.kwan1@ibm.com> |
[PowerPC] Prevent the optimizer from producing wide vector types in IR.
This patch prevents the optimizer from producing wide vectors in the IR, specifically the MMA types (v256i1, v512i1). The idea
[PowerPC] Prevent the optimizer from producing wide vector types in IR.
This patch prevents the optimizer from producing wide vectors in the IR, specifically the MMA types (v256i1, v512i1). The idea is that on Power, we only want to be producing these types only if the vector_pair and vector_quad types are used specifically.
To prevent the optimizer from producing these types in the IR, vectorCostAdjustmentFactor() is updated to return an instruction cost factor or an invalid instruction cost if the current type is that of an MMA type. An invalid instruction cost returned by this function signifies to other cost computing functions to return the maximum instruction cost to inform the optimizer that producing these types within the IR is expensive, and should not be produced in the first place.
This issue was first seen in the test case included within this patch.
Differential Revision: https://reviews.llvm.org/D113900
show more ...
|
Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
#
581a8030 |
| 13-Aug-2021 |
Amy Kwan <amy.kwan1@ibm.com> |
[PowerPC] Disable CTR Loop generate for fma with the PPC double double type.
It is possible to generate the llvm.fmuladd.ppcf128 intrinsic, and there is no actual FMA instruction that corresponds to
[PowerPC] Disable CTR Loop generate for fma with the PPC double double type.
It is possible to generate the llvm.fmuladd.ppcf128 intrinsic, and there is no actual FMA instruction that corresponds to this intrinsic call for ppcf128. Thus, this intrinsic needs to remain as a call as it cannot be lowered to any instruction, which also means we need to disable CTR loop generation for fma involving the ppcf128 type. This patch accomplishes this behaviour.
Differential Revision: https://reviews.llvm.org/D107914
show more ...
|
Revision tags: llvmorg-13.0.0-rc1 |
|
#
6f6e9a86 |
| 02-Aug-2021 |
Roman Lebedev <lebedev.ri@gmail.com> |
[BasicTTIImpl][LoopUnroll] getUnrollingPreferences(): emit ORE remark when advising against unrolling due to a call in a loop
I'm not sure this is the best way to approach this, but the situation is
[BasicTTIImpl][LoopUnroll] getUnrollingPreferences(): emit ORE remark when advising against unrolling due to a call in a loop
I'm not sure this is the best way to approach this, but the situation is rather not very detectable unless we explicitly call it out when refusing to advise to unroll.
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D107271
show more ...
|
Revision tags: llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3 |
|
#
42f74e82 |
| 23-Jun-2021 |
Martin Storsjö <martin@martin.st> |
[llvm] Rename StringRef _lower() method calls to _insensitive()
This is a mechanical change. This actually also renames the similarly named methods in the SmallString class, however these methods do
[llvm] Rename StringRef _lower() method calls to _insensitive()
This is a mechanical change. This actually also renames the similarly named methods in the SmallString class, however these methods don't seem to be used outside of the llvm subproject, so this doesn't break building of the rest of the monorepo.
show more ...
|
Revision tags: llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
#
670736a9 |
| 23-Apr-2021 |
Ahsan Saghir <saghir@ca.ibm.com> |
[PowerPC] Prevent argument promotion of types with size greater than 128 bits
This patch prevents argument promotion of types having type size greater than 128 bits.
Fixes Bugzilla: https://bugs.ll
[PowerPC] Prevent argument promotion of types with size greater than 128 bits
This patch prevents argument promotion of types having type size greater than 128 bits.
Fixes Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=49952
Reviewed By: #powerpc, nemanjai
Differential Revision: https://reviews.llvm.org/D101188
show more ...
|
#
3489c2d7 |
| 29-Apr-2021 |
Daniil Fukalov <daniil.fukalov@amd.com> |
[TTI] NFC: Change getTypeLegalizationCost to return InstructionCost.
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https
[TTI] NFC: Change getTypeLegalizationCost to return InstructionCost.
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: sdesmalen, kparzysz
Differential Revision: https://reviews.llvm.org/D101533
show more ...
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1 |
|
#
f9a50f04 |
| 27-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getIntImmCost[Inst|Intrin] to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: htt
[TTI] NFC: Change getIntImmCost[Inst|Intrin] to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Differential Revision: https://reviews.llvm.org/D100565
show more ...
|
#
d88d8c5b |
| 19-Apr-2021 |
Jinsong Ji <jji@us.ibm.com> |
[PowerPC] Disable relative lookup table converter pass for AIX
XCOFF hasn't implemented lowerRelativeReference. So we need to disable new pass introduced by https://reviews.llvm.org/D94355 for AIX f
[PowerPC] Disable relative lookup table converter pass for AIX
XCOFF hasn't implemented lowerRelativeReference. So we need to disable new pass introduced by https://reviews.llvm.org/D94355 for AIX for now.
Reviewed By: gulfem
Differential Revision: https://reviews.llvm.org/D100584
show more ...
|
#
4f42d873 |
| 14-Apr-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getArithmeticInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https:/
[TTI] NFC: Change getArithmeticInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D100317
show more ...
|
#
1af35e77 |
| 27-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getVectorInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://rev
[TTI] NFC: Change getVectorInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D100315
show more ...
|
#
174e8f6c |
| 14-Apr-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getShuffleCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews
[TTI] NFC: Change getShuffleCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D100314
show more ...
|
Revision tags: llvmorg-13-init |
|
#
14b934f8 |
| 26-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getCFInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews
[TTI] NFC: Change getCFInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: samparker
Differential Revision: https://reviews.llvm.org/D100313
show more ...
|
#
03f47bdc |
| 23-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change get[Interleaved]MemoryOpCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: h
[TTI] NFC: Change get[Interleaved]MemoryOpCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D100205
show more ...
|
#
db134e24 |
| 22-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getCmpSelInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://rev
[TTI] NFC: Change getCmpSelInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D100203
show more ...
|
Revision tags: llvmorg-11.1.0-rc2 |
|
#
92d8421f |
| 21-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] NFC: Change getCastInstrCost and getExtractWithExtendCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introducti
[TTI] NFC: Change getCastInstrCost and getExtractWithExtendCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D100199
show more ...
|
#
8f4b7e94 |
| 16-Feb-2021 |
dfukalov <daniil.fukalov@amd.com> |
[AMDGPU][CostModel] Refine cost model for control-flow instructions.
Added cost estimation for switch instruction, updated costs of branches, fixed phi cost. Had to increase `-amdgpu-unroll-threshol
[AMDGPU][CostModel] Refine cost model for control-flow instructions.
Added cost estimation for switch instruction, updated costs of branches, fixed phi cost. Had to increase `-amdgpu-unroll-threshold-if` default value since conditional branch cost (size) was corrected to higher value. Test renamed to "control-flow.ll".
Removed redundant code in `X86TTIImpl::getCFInstrCost()` and `PPCTTIImpl::getCFInstrCost()`.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D96805
show more ...
|
#
2f6f249a |
| 22-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
NFC: Change getIntrinsicInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://review
NFC: Change getIntrinsicInstrCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Depends on D97468
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D97469
show more ...
|
#
3ccbd4f3 |
| 20-Jan-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
NFC: Change getUserCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org
NFC: Change getUserCost to return InstructionCost
This patch migrates the TTI cost interfaces to return an InstructionCost.
See this patch for the introduction of the type: https://reviews.llvm.org/D91174 See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html
Depends on D97382
Reviewed By: ctetreau, paulwalker-arm
Differential Revision: https://reviews.llvm.org/D97466
show more ...
|
#
55d18b3c |
| 24-Mar-2021 |
Sander de Smalen <sander.desmalen@arm.com> |
[TTI] Return a TypeSize from getRegisterBitWidth.
This patch changes the interface to take a RegisterKind, to indicate whether the register bitwidth of a scalar register, fixed-width vector register
[TTI] Return a TypeSize from getRegisterBitWidth.
This patch changes the interface to take a RegisterKind, to indicate whether the register bitwidth of a scalar register, fixed-width vector register, or scalable vector register must be returned.
Reviewed By: paulwalker-arm
Differential Revision: https://reviews.llvm.org/D98874
show more ...
|
#
e2935dcf |
| 17-Mar-2021 |
David Green <david.green@arm.com> |
[TTI] Add a Mask to getShuffleCost
This adds an Mask ArrayRef to getShuffleCost, so that if an exact mask can be provided a more accurate cost can be provided by the backend. For example VREV costs
[TTI] Add a Mask to getShuffleCost
This adds an Mask ArrayRef to getShuffleCost, so that if an exact mask can be provided a more accurate cost can be provided by the backend. For example VREV costs could be returned by the ARM backend. This should be an NFC until then, laying the groundwork for that to be added.
Differential Revision: https://reviews.llvm.org/D98206
show more ...
|
#
8018f731 |
| 26-Jan-2021 |
Nemanja Ivanovic <nemanja.i.ibm@gmail.com> |
[PowerPC] Do not emit HW loop with half precision operations
If a loop has any operations on half precision values, there will be calls to library functions on Power8. Even on Power9, there is a sma
[PowerPC] Do not emit HW loop with half precision operations
If a loop has any operations on half precision values, there will be calls to library functions on Power8. Even on Power9, there is a small subset of instructions that are actually supported for the type.
This patch disables HW loops whenever any operations on the type are found (other than the handfull of supported ones when compiling for Power9). Fixes a few PR's opened by Julia:
https://bugs.llvm.org/show_bug.cgi?id=48785 https://bugs.llvm.org/show_bug.cgi?id=48786 https://bugs.llvm.org/show_bug.cgi?id=48519
Differential revision: https://reviews.llvm.org/D94980
show more ...
|
Revision tags: llvmorg-11.1.0-rc1 |
|
#
0a19fc30 |
| 29-Dec-2020 |
Nemanja Ivanovic <nemanjai@ca.ibm.com> |
[PowerPC] Disable CTR loops containing operations on half-precision
On subtargets prior to Power9, conversions to/from half precision are lowered to libcalls. This makes loops containing such operat
[PowerPC] Disable CTR loops containing operations on half-precision
On subtargets prior to Power9, conversions to/from half precision are lowered to libcalls. This makes loops containing such operations invalid candidates for HW loops.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=48519
show more ...
|
#
4f568fbd |
| 29-Dec-2020 |
Nemanja Ivanovic <nemanja.i.ibm@gmail.com> |
[PowerPC] Do not emit HW loop when TLS var accessed in PHI of loop exit
If any PHI nodes in loop exit blocks have incoming values from the loop that are accesses of TLS variables with local dynamic
[PowerPC] Do not emit HW loop when TLS var accessed in PHI of loop exit
If any PHI nodes in loop exit blocks have incoming values from the loop that are accesses of TLS variables with local dynamic or general dynamic TLS model, the address will be computed inside the loop. Since this includes a call to __tls_get_addr, this will in turn cause the CTR loops verifier to complain. Disable CTR loops in such cases.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=48527
show more ...
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
#
c2892978 |
| 17-Dec-2020 |
Baptiste Saleil <baptiste.saleil@ibm.com> |
[PowerPC] Rename the vector pair intrinsics and builtins to replace the _mma_ prefix by _vsx_
On PPC, the vector pair instructions are independent from MMA. This patch renames the vector pair LLVM i
[PowerPC] Rename the vector pair intrinsics and builtins to replace the _mma_ prefix by _vsx_
On PPC, the vector pair instructions are independent from MMA. This patch renames the vector pair LLVM intrinsics and Clang builtins to replace the _mma_ prefix by _vsx_ in their names. We also move the vector pair type/intrinsic/builtin tests to their own files.
Differential Revision: https://reviews.llvm.org/D91974
show more ...
|