| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
dependent instruction selection.
Differential revision: https://reviews.llvm.org/D35267
llvm-svn: 326703
|
|
|
|
| |
llvm-svn: 326589
|
|
|
|
| |
llvm-svn: 326588
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326587
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326586
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326567
|
|
|
|
|
|
|
|
|
| |
i16 capable ASICs do not support i16 operands for this instruction.
Add tablegen pattern to merge chained i16 additions.
Differential Revision: https://reviews.llvm.org/D43985
llvm-svn: 326535
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326534
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326533
|
|
|
|
| |
llvm-svn: 326532
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326526
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326525
|
|
|
|
| |
llvm-svn: 326524
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326523
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326490
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326489
|
|
|
|
|
|
|
|
|
| |
This crashes for some opcodes, which prevents the SelectionDAG
fallback from working.
Patch by Tom Stellard
llvm-svn: 326487
|
|
|
|
|
|
|
|
|
| |
This was finding the wrong size registers for anything with
more than 2 components.
Patch by Tom Stellard
llvm-svn: 326483
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326482
|
|
|
|
| |
llvm-svn: 326481
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326479
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326477
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326472
|
|
|
|
| |
llvm-svn: 326471
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326470
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326468
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326467
|
|
|
|
| |
llvm-svn: 326466
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326465
|
|
|
|
|
|
| |
Patch by Tom Stellard
llvm-svn: 326464
|
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org./D43334
llvm-svn: 326451
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
For use by LLPC SPV_AMD_shader_ballot extension.
The v_writelane instruction was already implemented for use by SGPR
spilling, but I had to add an extra dummy operand tied to the
destination, to represent that all lanes except the selected one keep
the old value of the destination register.
.ll test changes were due to schedule changes caused by that new
operand.
Differential Revision: https://reviews.llvm.org/D42838
llvm-svn: 326353
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43790
llvm-svn: 326252
|
|
|
|
| |
llvm-svn: 326101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
With OS type AMDPAL, the scratch descriptor is hardwired to be loaded
from offset 0 of the global information table, whose low pointer is
passed in s0. For a merge shader on gfx9+, it needs to be s8 instead, as
the hardware reserves s0-s7.
Reviewers: kzhuravl
Subscribers: arsenm, nhaehnle, dstuttard, llvm-commits, t-tye, yaxunl, wdng, kzhuravl
Differential Revision: https://reviews.llvm.org/D42203
llvm-svn: 326088
|
|
|
|
|
|
|
|
|
|
| |
V_SUBBREV_U32 is a commute opcode for V_SUBB_U32. However, when
we try to commute V_SUBB_U32 in order to shrink it we do not then
process V_SUBBREV_U32 and it stay VOP3. This is fixed.
Differential Revision: https://reviews.llvm.org/D43699
llvm-svn: 326011
|
|
|
|
| |
llvm-svn: 325938
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Add a target option AllowRegisterRenaming that is used to opt in to
post-register-allocation renaming of registers. This is set to 0 by
default, which causes the hasExtraSrcRegAllocReq/hasExtraDstRegAllocReq
fields of all opcodes to be set to 1, causing
MachineOperand::isRenamable to always return false.
Set the AllowRegisterRenaming flag to 1 for all in-tree targets that
have lit tests that were effected by enabling COPY forwarding in
MachineCopyPropagation (AArch64, AMDGPU, ARM, Hexagon, Mips, PowerPC,
RISCV, Sparc, SystemZ and X86).
Add some more comments describing the semantics of the
MachineOperand::isRenamable function and how it is set and maintained.
Change isRenamable to check the operand's opcode
hasExtraSrcRegAllocReq/hasExtraDstRegAllocReq bit directly instead of
relying on it being consistently reflected in the IsRenamable bit
setting.
Clear the IsRenamable bit when changing an operand's register value.
Remove target code that was clearing the IsRenamable bit when changing
registers/opcodes now that this is done conservatively by default.
Change setting of hasExtraSrcRegAllocReq in AMDGPU target to be done in
one place covering all opcodes that have constant pipe read limit
restrictions.
Reviewers: qcolombet, MatzeB
Subscribers: aemerson, arsenm, jyknight, mcrosier, sdardis, nhaehnle, javed.absar, tpr, arichardson, kristof.beyls, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, jordy.potman.lists, apazos, sabuasal, niosHD, escha, nemanjai, llvm-commits
Differential Revision: https://reviews.llvm.org/D43042
llvm-svn: 325931
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This handles def-after-use of physregs, and allows us to merge loads and
stores even across some physreg defs (typically M0 defs).
Change-Id: I076484b2bda27c2cf46013c845a0380c5b89b67b
Reviewers: arsenm, mareko, rampitec
Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D42647
llvm-svn: 325882
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
.NAME is a bit of an odd duck, in that we should really treat it like
a template argument, but we currently don't, and so when and where
NAME is initialized and how is pretty inconsistent. Best to just avoid
using it as a field of already instantiated records, and use cast to
string instead.
Change-Id: I5a0c202401cede3d5c3827ab9c7858ea48b29108
Reviewers: arsenm, rampitec
Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D43551
llvm-svn: 325794
|
|
|
|
|
|
| |
"a a" -> "a"
llvm-svn: 325752
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Since this pass operates on machine SSA form, this should only really
affect M0 in practice.
Fixes various piglit variable-indexing/vs-varying-array-mat4-index-*
Change-Id: Ib2a1dc3a8d7b08225a8da49a86f533faa0986aa8
Fixes: r317751 ("AMDGPU: Merge S_BUFFER_LOAD_DWORD_IMM into x2, x4")
Reviewers: arsenm, mareko, rampitec
Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D40343
llvm-svn: 325677
|
|
|
|
|
|
|
|
|
| |
See bug 28234: https://bugs.llvm.org/show_bug.cgi?id=28234
Differential Revision: https://reviews.llvm.org/D43472
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 325676
|
|
|
|
|
|
|
|
|
|
| |
https://reviews.llvm.org/rL325518
It breaks following OpenCL conformance tests:
- Basic - parameter_types
- Basic - vload_private
llvm-svn: 325643
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The machine instruction scheduler was illegally moving a buffer store
past a buffer load with the same descriptor and offset. Fixed by marking
buffer ops as mayAlias and isAliased. This may be overly conservative,
and we may need to revisit.
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D43332
Change-Id: Iff3173d9e0653e830474546276ab9d30318b8ef7
llvm-svn: 325567
|
|
|
|
|
|
| |
to suppression of redundant waitcnt instrs. It is necessary to make note of these existing waitcnt instrs so that we do not fall into an infinite loop when handling loops. Also, [NFC] some minor code clean-up.
llvm-svn: 325524
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: GCN ISA supports instructions that can read 16 consecutive dwords from memory through the scalar data cache; loadstoreVectorizer should take advantage of the wider vector length and pack 16/8 elements of dwords/quadwords.
Author: FarhanaAleen
Reviewed By: rampitec
Subscribers: llvm-commits, AMDGPU
Differential Revision: https://reviews.llvm.org/D43275
llvm-svn: 325518
|
|
|
|
|
|
|
|
|
|
| |
Enable multiple COPY hints to eliminate more COPYs during register allocation.
Note that this is something all targets should do, see
https://reviews.llvm.org/D38128.
Review: Stanislav Mekhanoshin, Tom Stellard.
llvm-svn: 325425
|
|
|
|
| |
llvm-svn: 325408
|
|
|
|
| |
llvm-svn: 325403
|