| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This matches the format produced by the AMD proprietary driver.
//==================================================================//
// Shell script for converting .ll test cases: (Pass the .ll files
you want to convert to this script as arguments).
//==================================================================//
; This was necessary on my system so that A-Z in sed would match only
; upper case. I'm not sure why.
export LC_ALL='C'
TEST_FILES="$*"
MATCHES=`grep -v Patterns SIInstructions.td | grep -o '"[A-Z0-9_]\+["e]' | grep -o '[A-Z0-9_]\+' | sort -r`
for f in $TEST_FILES; do
# Check that there are SI tests:
grep -q -e 'verde' -e 'bonaire' -e 'SI' -e 'tahiti' $f
if [ $? -eq 0 ]; then
for match in $MATCHES; do
sed -i -e "s/\([ :]$match\)/\L\1/" $f
done
# Try to get check lines with partial instruction names
sed -i 's/\(;[ ]*SI[A-Z\\-]*: \)\([A-Z_0-9]\+\)/\1\L\2/' $f
fi
done
sed -i -e 's/bb0_1/BB0_1/g' ../../../test/CodeGen/R600/infinite-loop.ll
sed -i -e 's/SI-NOT: bfe/SI-NOT: {{[^@]}}bfe/g'../../../test/CodeGen/R600/llvm.AMDGPU.bfe.*32.ll ../../../test/CodeGen/R600/sext-in-reg.ll
sed -i -e 's/exp_IEEE/EXP_IEEE/g' ../../../test/CodeGen/R600/llvm.exp2.ll
sed -i -e 's/numVgprs/NumVgprs/g' ../../../test/CodeGen/R600/register-count-comments.ll
sed -i 's/\(; CHECK[-NOT]*: \)\([A-Z_0-9]\+\)/\1\L\2/' ../../../test/CodeGen/R600/select64.ll ../../../test/CodeGen/R600/sgpr-copy.ll
//==================================================================//
// Shell script for converting .td files (run this last)
//==================================================================//
export LC_ALL='C'
sed -i -e '/Patterns/!s/\("[A-Z0-9_]\+[ "e]\)/\L\1/g' SIInstructions.td
sed -i -e 's/"EXP/"exp/g' SIInstrInfo.td
llvm-svn: 221350
|
|
|
|
| |
llvm-svn: 221118
|
|
|
|
|
|
|
|
|
| |
The problem is mostly that variadic output instruction
aren't handled, so it is rejected for having an inconsistent
number of operands, and then the right number of operands
isn't emitted.
llvm-svn: 221117
|
|
|
|
| |
llvm-svn: 220342
|
|
|
|
| |
llvm-svn: 220304
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220110
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220109
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220108
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220107
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220106
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220105
|
|
|
|
|
|
|
|
| |
v2: Add separate offset/no-offset tests
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Matt Arsenault <matthew.arsenault@amd.com>
llvm-svn: 220104
|
|
|
|
|
|
| |
These are all set on the instruction base classes.
llvm-svn: 220091
|
|
|
|
|
|
| |
This eliminates a use of the SI_ADDR64_RSRC pseudo
llvm-svn: 220057
|
|
|
|
|
|
|
| |
Just use REG_SEQUENCE directly, so there are fewer
instructions to need to deal with later.
llvm-svn: 220056
|
|
|
|
| |
llvm-svn: 219988
|
|
|
|
|
|
|
|
| |
These haven't been necessary since allowing
selecting SALU instructions in non-entry blocks
was enabled.
llvm-svn: 219956
|
|
|
|
| |
llvm-svn: 219256
|
|
|
|
| |
llvm-svn: 219255
|
|
|
|
| |
llvm-svn: 219254
|
|
|
|
| |
llvm-svn: 219253
|
|
|
|
| |
llvm-svn: 218767
|
|
|
|
| |
llvm-svn: 218766
|
|
|
|
| |
llvm-svn: 218457
|
|
|
|
|
|
| |
We can do this now that the FixSGPRLiveRanges pass is working.
llvm-svn: 218353
|
|
|
|
|
|
|
|
|
|
|
| |
The previous implementation was extending the live range of SGPRs
by modifying the live intervals directly. This was causing a lot
of machine verification errors when the machine scheduler was enabled.
The new implementation adds pseudo instructions with implicit uses to
extend the live ranges of SGPRs, which works much better.
llvm-svn: 218351
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
VGPRs are spilled to LDS. This still needs more testing, but
we need to at least enable it at -O0, because the fast register
allocator spills all registers that are live at the end of blocks
and without this some future commits will break the
flat-address-space.ll test.
v2: Only calculate thread id once
v3: Move insertion of spill instructions to
SIRegisterInfo::eliminateFrameIndex()
llvm-svn: 218348
|
|
|
|
|
|
|
|
|
| |
This reverts commit r218254.
The global_atomics.ll test fails with asserts disabled. For some reason,
the compiler fails to produce the atomic no return variants.
llvm-svn: 218257
|
|
|
|
| |
llvm-svn: 218254
|
|
|
|
|
|
| |
Modifiers don't work for this instruction.
llvm-svn: 218253
|
|
|
|
|
|
|
|
| |
Add some more tests to make sure better operand
choices are still made. Leave some cases that seem
to have no reason to ever be e64 alone.
llvm-svn: 217789
|
|
|
|
| |
llvm-svn: 217777
|
|
|
|
| |
llvm-svn: 217379
|
|
|
|
|
|
|
|
| |
Only handles LDS atomics for now, and will be used
to replace atomics with no uses with the no return
versions.
llvm-svn: 217378
|
|
|
|
| |
llvm-svn: 217323
|
|
|
|
|
|
|
| |
This fixes hitting the same negative base offset problem
that was already fixed for regular loads and stores.
llvm-svn: 217256
|
|
|
|
|
|
| |
https://bugs.freedesktop.org/show_bug.cgi?id=83416
llvm-svn: 217248
|
|
|
|
| |
llvm-svn: 217109
|
|
|
|
|
|
|
| |
Also fix bug this exposed where when legalizing an immediate
operand, a v_mov_b32 would be created with a VSrc dest register.
llvm-svn: 217108
|
|
|
|
| |
llvm-svn: 217041
|
|
|
|
|
|
|
| |
We can use a negate source modifier to match
this for fsub.
llvm-svn: 216735
|
|
|
|
| |
llvm-svn: 216279
|
|
|
|
| |
llvm-svn: 216278
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will simplify the SGPR spilling and also allow us to use
MachineFrameInfo for calculating offsets, which should be more
reliable than our custom code.
This fixes a crash in some cases where a register would be spilled
in a branch such that the VGPR defined for spilling did not dominate
all the uses when restoring.
This fixes a crash in an ocl conformance test. The test requries
register spilling and is too big to include.
llvm-svn: 216217
|
|
|
|
| |
llvm-svn: 215749
|
|
|
|
| |
llvm-svn: 215748
|
|
|
|
| |
llvm-svn: 215746
|
|
|
|
| |
llvm-svn: 215734
|
|
|
|
| |
llvm-svn: 215398
|
|
|
|
| |
llvm-svn: 214936
|