Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2 |
|
#
640c44b8 |
| 29-Nov-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
AMDGPU: Disallow exec as SMEM instruction operand
This is not in the list of valid inputs for the encoding. When spilling, copies from exec can be folded directly into the spill instruction which re
AMDGPU: Disallow exec as SMEM instruction operand
This is not in the list of valid inputs for the encoding. When spilling, copies from exec can be folded directly into the spill instruction which results in broken stores.
This only fixes the operand constraints, more codegen work is required to avoid emitting the invalid spills.
This sort of breaks the dbg.value test. Because the register class of the s_load_dwordx2 changes, there is a copy to SReg_64, and the copy is the operand of dbg_value. The copy is later dead, and removed from the dbg_value.
llvm-svn: 288191
show more ...
|
Revision tags: llvmorg-3.9.1-rc1 |
|
#
92b355b1 |
| 15-Nov-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
AMDGPU: Replace assert(false) with unreachable
llvm-svn: 287013
|
#
f3dd8630 |
| 01-Nov-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
AMDGPU: Whitespace fixes
llvm-svn: 285659
|
#
f42454b9 |
| 09-Oct-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
Move the global variables representing each Target behind accessor function
This avoids "static initialization order fiasco"
Differential Revision: https://reviews.llvm.org/D25412
llvm-svn: 283702
|
#
3381d7a2 |
| 06-Oct-2016 |
Sam Kolton <Sam.Kolton@amd.com> |
[AMDGPU] Disassembler: print label names in branch instructions
Summary: Add AMDGPUSymbolizer for finding names for labels from ELF symbol table. Initialize MCObjectFileInfo with some default values
[AMDGPU] Disassembler: print label names in branch instructions
Summary: Add AMDGPUSymbolizer for finding names for labels from ELF symbol table. Initialize MCObjectFileInfo with some default values.
Reviewers: vpykhtin, artem.tamazov, tstellarAMD
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye
Differential Revision: https://reviews.llvm.org/D24802
llvm-svn: 283450
show more ...
|
#
98446106 |
| 26-Sep-2016 |
Sam Kolton <Sam.Kolton@amd.com> |
Revert "[AMDGPU] Disassembler: print label names in branch instructions"
This reverts commit 6c6dbe625263ec9fcf8de0df27263cf147cde550.
llvm-svn: 282396
|
#
1559f762 |
| 26-Sep-2016 |
Sam Kolton <Sam.Kolton@amd.com> |
[AMDGPU] Disassembler: print label names in branch instructions
Summary: Add AMDGPUSymbolizer for finding names for labels from ELF symbol table.
Reviewers: vpykhtin, artem.tamazov, tstellarAMD
Su
[AMDGPU] Disassembler: print label names in branch instructions
Summary: Add AMDGPUSymbolizer for finding names for labels from ELF symbol table.
Reviewers: vpykhtin, artem.tamazov, tstellarAMD
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye
Differential Revision: https://reviews.llvm.org/D24802
llvm-svn: 282394
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1 |
|
#
cb540bc0 |
| 19-Jul-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
AMDGPU: Expand register indexing pseudos in custom inserter
This is to help moveSILowerControlFlow to before regalloc. There are a couple of tradeoffs with this. The complete CFG is visible to more
AMDGPU: Expand register indexing pseudos in custom inserter
This is to help moveSILowerControlFlow to before regalloc. There are a couple of tradeoffs with this. The complete CFG is visible to more passes, the loop body avoids an extra copy of m0, vcc isn't required, and immediate offsets can be shrunk into s_movk_i32.
The disadvantage is the register allocator doesn't understand that the single lane's vector is dead within the loop body, so an extra register is used to outlive the loop block when expanding the VGPR -> m0 loop. This also now results in worse waitcnt insertion before the loop instead of after for pending operations at the point of the indexing, but that should be fixed by future improvements to cross block waitcnt insertion.
v_movreld_b32's operands are now modeled more correctly since vdst is not a true output. This is kind of a hack to treat vdst as a use operand. Extra checking is required in the verifier since I can't seem to get tablegen to emit an implicit operand for a virtual register.
llvm-svn: 275934
show more ...
|
#
37fefd68 |
| 10-Jun-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
AMDGPU: Fix trailing whitespace
llvm-svn: 272364
|
#
c9bdcb75 |
| 09-Jun-2016 |
Sam Kolton <Sam.Kolton@amd.com> |
[AMDGPU] Disassembler: Support for sdwa instructions
Reviewers: vpykhtin, tstellarAMD
Subscribers: arsenm, kzhuravl
Differential Revision: http://reviews.llvm.org/D21129
llvm-svn: 272255
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
b49c3361 |
| 26-May-2016 |
Artem Tamazov <artem.tamazov@amd.com> |
Fix build warning introduced in r270552 "[AMDGPU][llvm-mc] Disassembler: support for TTMP/TBA/TMA registers."
llvm-svn: 270859
|
#
212a251c |
| 24-May-2016 |
Artem Tamazov <artem.tamazov@amd.com> |
[AMDGPU][llvm-mc] Disassembler: support for TTMP/TBA/TMA registers.
Differential Revision: http://reviews.llvm.org/D20476
llvm-svn: 270552
|
#
38e496b1 |
| 29-Apr-2016 |
Artem Tamazov <artem.tamazov@amd.com> |
Fixed/Recommitted r267733 "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD."
Previously reverted by r267752.
r267733 review: Differential Revision: http://reviews.llvm.org
Fixed/Recommitted r267733 "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD."
Previously reverted by r267752.
r267733 review: Differential Revision: http://reviews.llvm.org/D19342
llvm-svn: 268066
show more ...
|
#
03e1647d |
| 27-Apr-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
Revert "[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD."
This reverts commit r267733 due to a -Werror,-Wunused-function error.
llvm-svn: 267752
|
#
3896f8f8 |
| 27-Apr-2016 |
Artem Tamazov <artem.tamazov@amd.com> |
[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD.
Added support of TTMP quads. Reworked M0 exclusion machinery for SMRD and similar instructions to enable usage of TTMP regi
[AMDGPU][llvm-mc] Add support of TTMP quads. Rework M0 exclusion for SMRD.
Added support of TTMP quads. Reworked M0 exclusion machinery for SMRD and similar instructions to enable usage of TTMP registers in those instructions as destinations. Tests added.
Differential Revision: http://reviews.llvm.org/D19342
llvm-svn: 267733
show more ...
|
#
1048fb18 |
| 31-Mar-2016 |
Sam Kolton <Sam.Kolton@amd.com> |
[AMDGPU] Disassembler: support for DPP
Review: http://reviews.llvm.org/D18642 llvm-svn: 265015
|
#
a4db224d |
| 10-Mar-2016 |
Valery Pykhtin <Valery.Pykhtin@amd.com> |
[AMDGPU] Fix SMEM instructions encoding/operand namings
Differential Revision: http://reviews.llvm.org/D17651
llvm-svn: 263108
|
#
824e804b |
| 04-Mar-2016 |
Valery Pykhtin <Valery.Pykhtin@amd.com> |
test commit
llvm-svn: 262709
|
Revision tags: llvmorg-3.8.0 |
|
#
e309e141 |
| 01-Mar-2016 |
Nikolay Haustov <Nikolay.Haustov@amd.com> |
[AMDGPU] Remove unused disassembler code.
llvm-svn: 262346
|
#
47a115cd |
| 01-Mar-2016 |
Nikolay Haustov <Nikolay.Haustov@amd.com> |
[AMDGPU] Fix build warnings.
llvm-svn: 262338
|
#
ac106add |
| 01-Mar-2016 |
Nikolay Haustov <Nikolay.Haustov@amd.com> |
[AMDGPU] Disassembler code refactored + error messages.
Idea behind this change is to make code shorter and as much common for all targets as possible. Let's even accept more code than is valid for
[AMDGPU] Disassembler code refactored + error messages.
Idea behind this change is to make code shorter and as much common for all targets as possible. Let's even accept more code than is valid for a particular target, leaving it for the assembler to sort out.
64bit instructions decoding added.
Error\warning messages on unrecognized instructions operands added, InstPrinter allowed to print invalid operands helping to find invalid/unsupported code.
The change is massive and hard to compare with previous version, so it makes sense just to take a look on the new version. As a bonus, with a few TD changes following, it disassembles the majority of instructions. Currently it fully disassembles >300K binary source of some blas kernel.
Previous TODOs were saved whenever possible.
Patch by: Valery Pykhtin
Differential Revision: http://reviews.llvm.org/D17720
llvm-svn: 262332
show more ...
|
#
161a158e |
| 25-Feb-2016 |
Nikolay Haustov <Nikolay.Haustov@amd.com> |
[AMDGPU] Disassembler: Support for all VOP1 instructions.
Support all instructions with VOP1 encoding with 32 or 64-bit operands for VI subtarget:
VGPR_32 and VReg_64 operand register classes VS_32
[AMDGPU] Disassembler: Support for all VOP1 instructions.
Support all instructions with VOP1 encoding with 32 or 64-bit operands for VI subtarget:
VGPR_32 and VReg_64 operand register classes VS_32 and VS_64 operand register classes with inline and literal constants Tests for VOP1 instructions.
Patch by: skolton
Reviewers: arsenm, tstellarAMD
Review: http://reviews.llvm.org/D17194 llvm-svn: 261878
show more ...
|
Revision tags: llvmorg-3.8.0-rc3 |
|
#
e1818af8 |
| 18-Feb-2016 |
Tom Stellard <thomas.stellard@amd.com> |
[AMDGPU] Disassembler: Added basic disassembler for AMDGPU target
Changes:
- Added disassembler project - Fixed all decoding conflicts in .td files - Added DecoderMethod=“NONE” option to Target.td
[AMDGPU] Disassembler: Added basic disassembler for AMDGPU target
Changes:
- Added disassembler project - Fixed all decoding conflicts in .td files - Added DecoderMethod=“NONE” option to Target.td that allows to disable decoder generation for an instruction. - Created decoding functions for VS_32 and VReg_32 register classes. - Added stubs for decoding all register classes. - Added several tests for disassembler
Disassembler only supports:
- VI subtarget - VOP1 instruction encoding - 32-bit register operands and inline constants
[Valery]
One of the point that requires to pay attention to is how decoder conflicts were resolved:
- Groups of target instructions were separated by using different DecoderNamespace (SICI, VI, CI) using similar to AssemblerPredicate approach.
- There were conflicts in IMAGE_<> instructions caused by two different reasons:
1. dmask wasn’t specified for the output (fixed) 2. There are image instructions that differ only by the number of the address components but have the same encoding by the HW spec. The actual number of address components is determined by the HW at runtime using image resource descriptor starting from the VGPR encoded in an IMAGE instruction. This means that we should choose only one instruction from conflicting group to be the rule for decoder. I didn’t find the way to disable decoder generation for an arbitrary instruction and therefore made a onelinear fix to tablegen generator that would suppress decoder generation when DecoderMethod is set to “NONE”. This is a change that should be reviewed and submitted first. Otherwise I would need to specify different DecoderNamespace for every instruction in the conflicting group. I haven’t checked yet if DecoderMethod=“NONE” is not used in other targets. 3. IMAGE_GATHER decoder generation is for now disabled and to be done later.
[/Valery]
Patch By: Sam Kolton
Differential Revision: http://reviews.llvm.org/D16723
llvm-svn: 261185
show more ...
|