| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 239657
|
|
|
|
|
|
|
|
| |
- Add glc, slc, and tfe operands to flat instructions
- Add missing flat instructions
- Fix the encoding of flat_load_dwordx3 and flat_store_dwordx3.
llvm-svn: 239637
|
|
|
|
| |
llvm-svn: 238211
|
|
|
|
|
|
|
| |
DisableEncoding and Constraints can be set using let statements around
the multiclass defs.
llvm-svn: 238148
|
|
|
|
|
|
|
|
| |
This lets us drop a parameter the opName parameter to the VINTRP
multiclass and makes it possible to create multiple VINTRP defs
with the same asm mnemonic.
llvm-svn: 238146
|
|
|
|
|
|
|
| |
Instead add m0 as an implicit operand. This helps avoid spills
of the m0 register in some cases.
llvm-svn: 237141
|
|
|
|
|
|
|
| |
Instead add m0 as an implicit operand. This helps avoid spills
of the m0 register in some cases.
llvm-svn: 237140
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DebugInfo] Add debug locations to constant SD nodes
This adds debug location to constant nodes of Selection DAG and updates
all places that create constants to pass debug locations
(see PR13269).
Can't guarantee that all locations are correct, but in a lot of cases choice
is obvious, so most of them should be. At least all tests pass.
Tests for these changes do not cover everything, instead just check it for
SDNodes, ARM and AArch64 where it's easy to get incorrect locations on
constants.
This is not complete fix as FastISel contains workaround for wrong debug
locations, which drops locations from instructions on processing constants,
but there isn't currently a way to use debug locations from constants there
as llvm::Constant doesn't cache it (yet). Although this is a bit different
issue, not directly related to these changes.
Differential Revision: http://reviews.llvm.org/D9084
llvm-svn: 235989
|
|
|
|
|
|
|
| |
This breaks a test:
http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/23870
llvm-svn: 235987
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds debug location to constant nodes of Selection DAG and updates
all places that create constants to pass debug locations
(see PR13269).
Can't guarantee that all locations are correct, but in a lot of cases choice
is obvious, so most of them should be. At least all tests pass.
Tests for these changes do not cover everything, instead just check it for
SDNodes, ARM and AArch64 where it's easy to get incorrect locations on
constants.
This is not complete fix as FastISel contains workaround for wrong debug
locations, which drops locations from instructions on processing constants,
but there isn't currently a way to use debug locations from constants there
as llvm::Constant doesn't cache it (yet). Although this is a bit different
issue, not directly related to these changes.
Differential Revision: http://reviews.llvm.org/D9084
llvm-svn: 235977
|
|
|
|
| |
llvm-svn: 235629
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is currently considered experimental, but most of the more
commonly used instructions should work.
So far only SI has been extensively tested, CI and VI probably work too,
but may be buggy. The current set of tests cases do not give complete
coverage, but I think it is sufficient for an experimental assembler.
See the documentation in R600Usage for more information.
llvm-svn: 234381
|
|
|
|
| |
llvm-svn: 234380
|
|
|
|
|
|
| |
Broken by "R600/SI: Refactor VOP2 instruction defs".
llvm-svn: 233399
|
|
|
|
|
|
|
| |
Other f64 opcodes not supported on SI can be lowered in a similar way.
v2: use complex VOP3 patterns
llvm-svn: 233076
|
|
|
|
|
|
|
| |
Don't use a separate table for compares anymore,
and use the same VOP2_REV class.
llvm-svn: 232992
|
|
|
|
| |
llvm-svn: 232989
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables very common cases to switch to the
smaller encoding.
All of the standard LLVM canonicalizations of comparisons
are the opposite of what we want. Compares with constants
are moved to the RHS, but the first operand can be an inline
immediate, literal constant, or SGPR using the 32-bit VOPC
encoding.
There are additional bad canonicalizations that should
also be fixed, such as canonicalizing ge x, k to gt x, (k + 1)
if this makes k no longer an inline immediate value.
llvm-svn: 232988
|
|
|
|
|
|
| |
It isn't used, and these will probably never be directly selected.
llvm-svn: 232986
|
|
|
|
| |
llvm-svn: 232817
|
|
|
|
| |
llvm-svn: 232816
|
|
|
|
|
|
| |
This is how the proprietary driver prints sopc instructions.
llvm-svn: 232106
|
|
|
|
|
|
|
|
| |
Instead print them as part of the $dst operand. The AsmMatcher
requires the 32-bit and 64-bit encodings have the same mnemonic in
order to parse them correctly.
llvm-svn: 232105
|
|
|
|
| |
llvm-svn: 231798
|
|
|
|
| |
llvm-svn: 231797
|
|
|
|
|
|
|
| |
This was done by refactoring the v_cndmask_b32 tablegen definition
to use inherit from VOP2Inst.
llvm-svn: 231795
|
|
|
|
|
|
| |
Also print it in the assembly string.
llvm-svn: 231684
|
|
|
|
| |
llvm-svn: 231683
|
|
|
|
| |
llvm-svn: 231663
|
|
|
|
| |
llvm-svn: 230759
|
|
|
|
|
|
|
|
| |
instructions
This matches the assembly syntax.
llvm-svn: 230758
|
|
|
|
| |
llvm-svn: 230757
|
|
|
|
|
|
| |
This matches the assembly syntax for the proprietary compiler.
llvm-svn: 230645
|
|
|
|
| |
llvm-svn: 230146
|
|
|
|
|
|
|
| |
We only need to set this on pseudo instructions which won't
be used by the assembler.
llvm-svn: 229689
|
|
|
|
| |
llvm-svn: 229688
|
|
|
|
| |
llvm-svn: 229686
|
|
|
|
| |
llvm-svn: 229685
|
|
|
|
| |
llvm-svn: 229684
|
|
|
|
|
|
|
|
|
|
| |
Some formats capitalized these, but most didn't. Change
them all to be consistently lowercase.
Now, non-encoding fields and convenience bits are capitalized.
Also remove weird looking empty line in some of the formats.
llvm-svn: 229613
|
|
|
|
|
|
|
|
| |
src1 doesn't have modifiers, but the operand was missing
resulting in an encoding build error when all fields
are required.'
llvm-svn: 229611
|
|
|
|
|
|
|
| |
Rename the multiclass since it now applies to the output
modifiers as well.
llvm-svn: 229610
|
|
|
|
| |
llvm-svn: 229608
|
|
|
|
| |
llvm-svn: 229607
|
|
|
|
|
|
|
| |
Set the ignored field to 0 so we can enable
noNamedPositionallyEncodedOperands.
llvm-svn: 229606
|
|
|
|
| |
llvm-svn: 229605
|
|
|
|
| |
llvm-svn: 229604
|
|
|
|
|
|
|
|
|
| |
This should allow finally fixing the f64 fdiv implementation.
Test is disabled for VI since there seems to be a problem with one
of the buffer load instructions on it.
llvm-svn: 229236
|
|
|
|
|
|
| |
This apparently got lost in the VI changes.
llvm-svn: 229230
|
|
|
|
| |
llvm-svn: 229228
|