Tom Stellard
|
0599297cb4
|
R600/SI: Commute instructions to enable more folding opportunities
llvm-svn: 225410
|
2015-01-07 22:44:19 +00:00 |
Tom Stellard
|
26cc18df43
|
R600/SI: Only fold immediates that have one use
Folding the same immediate into multiple instruction will increase
program size, which can hurt performance.
llvm-svn: 225405
|
2015-01-07 22:18:27 +00:00 |
Tom Stellard
|
4842c05216
|
R600/SI: Add a V_MOV_B64 pseudo instruction
This is used to simplify the SIFoldOperands pass and make it easier to
fold immediates.
llvm-svn: 225373
|
2015-01-07 20:27:25 +00:00 |
Tom Stellard
|
ef3b864a07
|
R600/SI: Teach SIFoldOperands to split 64-bit constants when folding
This allows folding of sequences like:
s[0:1] = s_mov_b64 4
v_add_i32 v0, s0, v0
v_addc_u32 v1, s1, v1
into
v_add_i32 v0, 4, v0
v_add_i32 v1, 0, v1
llvm-svn: 225369
|
2015-01-07 19:56:17 +00:00 |
Tom Stellard
|
bb763e6b47
|
R600/SI: Refactor SIFoldOperands to simplify immediate folding
This will make a future patch much less intrusive.
llvm-svn: 225358
|
2015-01-07 17:42:16 +00:00 |
Tom Stellard
|
6596ba7933
|
R600/SI: Add SIFoldOperands pass
This pass attempts to fold the source operands of mov and copy
instructions into their uses.
llvm-svn: 222581
|
2014-11-21 22:06:37 +00:00 |