| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 194484
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Print the range of registers used with a single letter prefix.
This better matches what the shader compiler produces and
is overall less obnoxious than concatenating all of the
subregister names together.
Instead of SGPR0, it will print s0. Instead of SGPR0_SGPR1,
it will print s[0:1] and so on.
There doesn't appear to be a straightforward way
to get the actual register info in the InstPrinter,
so this parses the generated name to print with the
new syntax.
The required test changes are pretty nasty, and register
matching regexes are now worse. Since there isn't a way to
add to a variable in FileCheck, some of the tests now don't
check the exact number of registers used, but I don't think that
will be a real problem.
llvm-svn: 194443
|
|
|
|
| |
llvm-svn: 194425
|
|
|
|
| |
llvm-svn: 194340
|
|
|
|
| |
llvm-svn: 194339
|
|
|
|
| |
llvm-svn: 194153
|
|
|
|
| |
llvm-svn: 193869
|
|
|
|
| |
llvm-svn: 193756
|
|
|
|
| |
llvm-svn: 193752
|
|
|
|
| |
llvm-svn: 193723
|
|
|
|
| |
llvm-svn: 193701
|
|
|
|
|
|
| |
resolves an MSVC warning. No functional change intended.
llvm-svn: 193649
|
|
|
|
|
|
|
|
| |
v2:
- Fix LDS size calculation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 193621
|
|
|
|
| |
llvm-svn: 193620
|
|
|
|
| |
llvm-svn: 193512
|
|
|
|
| |
llvm-svn: 193510
|
|
|
|
|
|
| |
ffs(x) broke the mingw buildbot.
llvm-svn: 193225
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes piglit:
- shaders/glsl-fs-texture2d-masked
- shaders/glsl-fs-texture2d-masked-4
Patch by: Marek Olšák
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 193222
|
|
|
|
|
|
|
|
|
|
| |
The SelectionDAGBuilder was promoting vector kernel arguments to legal
types, but this won't work for R600 and SI since kernel arguments are
stored in memory and can't be promoted. In order to handle vector
arguments correctly we need to look at the original types from the LLVM IR
function.
llvm-svn: 193215
|
|
|
|
| |
llvm-svn: 193213
|
|
|
|
| |
llvm-svn: 193212
|
|
|
|
| |
llvm-svn: 193198
|
|
|
|
| |
llvm-svn: 193183
|
|
|
|
| |
llvm-svn: 193180
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AMDGPUIndirectAddressing pass was previously responsible for
lowering private loads and stores to indirect addressing instructions.
However, this pass was buggy and way too complicated. The only
advantage it had over the new simplified code was that it saved one
instruction per direct write to private memory. This optimization
likely has a minimal impact on performance, and we may be able
to duplicate it using some other transformation.
For the private address space, we now:
1. Lower private loads/store to Register(Load|Store) instructions
2. Reserve part of the register file as 'private memory'
3. After regalloc lower the Register(Load|Store) instructions to
MOV instructions that use indirect addressing.
llvm-svn: 193179
|
|
|
|
| |
llvm-svn: 193178
|
|
|
|
|
|
|
| |
Completely harmless, but GCC likes to warn about it even when the next line is
a comment.
llvm-svn: 192974
|
|
|
|
|
|
|
|
|
|
| |
We were calling llvm_unreachable() when failing to optimize the
branch into if case. However, it is still possible for us
to structurize the CFG by duplicating blocks even if this optimization
fails.
Reviewed-by: Vincent Lejeune<vljn at ovi.com>
llvm-svn: 192813
|
|
|
|
|
| |
Reviewed-by: Vincent Lejeune<vljn at ovi.com>
llvm-svn: 192812
|
|
|
|
| |
llvm-svn: 192752
|
|
|
|
| |
llvm-svn: 192751
|
|
|
|
| |
llvm-svn: 192743
|
|
|
|
| |
llvm-svn: 192557
|
|
|
|
| |
llvm-svn: 192556
|
|
|
|
| |
llvm-svn: 192555
|
|
|
|
| |
llvm-svn: 192554
|
|
|
|
| |
llvm-svn: 192553
|
|
|
|
|
|
|
| |
It makes apparently no change it to set this bit or not but the
docs recommand to left it cleared.
llvm-svn: 192552
|
|
|
|
|
|
|
|
|
| |
enabled.
Patch by: Jay Cornwall
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 192523
|
|
|
|
| |
llvm-svn: 192499
|
|
|
|
| |
llvm-svn: 192406
|
|
|
|
| |
llvm-svn: 192375
|
|
|
|
|
|
|
| |
The function is used by the machine verifier and checks that VOP*
instructions have legal operands.
llvm-svn: 192367
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
During instruction selection, we rewrite the destination register
class for MIMG instructions based on their writemasks. This creates
machine verifier errors since the new register class does not match
the register class in the MIMG instruction definition.
We can avoid this by defining different MIMG instructions for each
possible destination type and then switching to the correct instruction
when we change the register class.
llvm-svn: 192365
|
|
|
|
|
|
|
|
| |
This prevents the machine verifier from complaining about uses of
an undefined physical register.
Reviewed-by: Vincent Lejeune<vljn at ovi.com>
llvm-svn: 192364
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
StructurizeCFG pass allows to make complex cfg reducible ; it allows a lot of
shader from shadertoy (which exhibits complex control flow constructs) to works
correctly with respect to CFG handling (and allow us to detect potential bug in
other part of the backend).
We provide a cmd line argument to disable the pass for debug purpose.
Patch by: Vincent Lejeune
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 192363
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes an old FIXME by creating a MCTargetStreamer interface
and moving the target specific functions for ARM, Mips and PPC to it.
The ARM streamer is still declared in a common place because it is
used from lib/CodeGen/ARMException.cpp, but the Mips and PPC are
completely hidden in the corresponding Target directories.
I will send an email to llvmdev with instructions on how to use this.
llvm-svn: 192181
|
|
|
|
| |
llvm-svn: 191838
|
|
|
|
| |
llvm-svn: 191790
|
|
|
|
| |
llvm-svn: 191789
|