6b3f6a744a6d16c5d62dc3477186035e8a74a8e9 |
|
31-Jul-2013 |
Tom Stellard <thomas.stellard@amd.com> |
Revert "R600: Non vector only instruction can be scheduled on trans unit" This reverts commit 98ce62780ea7185ba710868bf83c8077e8d7f6d6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
98ce62780ea7185ba710868bf83c8077e8d7f6d6 |
|
31-Jul-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Non vector only instruction can be scheduled on trans unit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
8f9fbd67c3f803f7397843fdf4b2a7b7ca10189e |
|
29-Jun-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Support schedule and packetization of trans-only inst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
e3d4cbc7d25061441adafa47450a31571c87bf85 |
|
28-Jun-2013 |
Tom Stellard <thomas.stellard@amd.com> |
R600: Add local memory support via LDS Reviewed-by: Vincent Lejeune<vljn at ovi.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
cedcfee405a22b245e869abe8609f094df34085a |
|
28-Jun-2013 |
Tom Stellard <thomas.stellard@amd.com> |
R600: Add support for GROUP_BARRIER instruction Reviewed-by: Vincent Lejeune<vljn at ovi.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
843c6c2d0e83bcd52a215d768bacaa7b5ffe16a4 |
|
08-Jun-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Use a refined heuristic to choose when switching clause This is using a hint from AMD APP OpenCL Programming Guide with empirically tweaked parameters. I used Unigine Heaven 3.0 to determine best parameters on my system (i7 2600/Radeon 6950/Kernel 3.9.4) the benchmark : it went from 38.8 average fps to 39.6, which is ~3% gain. (Lightmark 2008.2 gain is much more marginal: from 537 to 539) There is no lit test provided as the parameter were determined empirically and it it would be nearly impossiblet to find a test program that check for optimal behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
3ff0abfaabc2c7f604d490be587b9c27e7c91ac0 |
|
07-Jun-2013 |
Tom Stellard <thomas.stellard@amd.com> |
R600: Rework subtarget info and remove AMDILDevice classes This should simplify the subtarget definitions and make it easier to add new ones. Reviewed-by: Vincent Lejeune <vljn@ovi.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
5f035d048e4ae04a30075e75d919fe023452ab0b |
|
06-Jun-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Remove leftover code in R600MachineScheduler.cpp Spotted by Benjamin Kramer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
512119770e9c32eb0b9e6196ce51917fb2e30d9f |
|
05-Jun-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Schedule copy from phys register at beginning of block It allows regalloc pass to remove them by trivially assigning associated reg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
ad7ecc65b1b1d6466ff035168c86f208a91aa1b4 |
|
05-Jun-2013 |
Tom Stellard <thomas.stellard@amd.com> |
R600: Make sure to schedule AR register uses and defs in the same clause Reviewed-by: vljn at ovi.com git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
5c35290fa35ae234fed02496404cb0fc37e1c8a5 |
|
23-May-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move passes from namespace llvm into anonymous namespaces. Sort includes while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
76fc2d077f955174c14e658bf179620ef49dd792 |
|
17-May-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Use bottom up scheduling algorithm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
21ca0b3ea45549f6f16c5b2d0e96ad49256baa1d |
|
17-May-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Use depth first scheduling algorithm It should increase PV substitution opportunities and lower gpr usage (pending computations path are "flushed" sooner) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
f63f85affa943d3257f91640b15d4e0d1e4a22d1 |
|
17-May-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Replace big texture opcode switch in scheduler by usesTC/usesVC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
4ed9917147b1d1f2616f7c941bbe6999b979f510 |
|
17-May-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Relax some vector constraints on Dot4. Dot4 now uses 8 scalar operands instead of 2 vectors one which allows register coalescer to remove some unneeded COPY. This patch also defines some structures/functions that can be used to handle every vector instructions (CUBE, Cayman special instructions...) in a similar fashion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
dcfcf1d1ffe72d9c25564a2b8b53763a28648e97 |
|
17-May-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Factorize Fetch size limit inside AMDGPUSubTarget git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
dae2a20a56b28b4685249982a80a0043b7673e09 |
|
03-Apr-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Factorize maximum alu per clause in a single location git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
3ab0ba3cd8a499ebcc7eda3d7585c5ab4e7f0711 |
|
14-Mar-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: Factorize code handling Const Read Port limitation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
3f179b59e53a8a6d5dfb509857d972461027b809 |
|
11-Mar-2013 |
NAKAMURA Takumi <geek4civic@gmail.com> |
R600MachineScheduler.cpp: Fix use cases of dbgs(). Don't include <iostream> here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|
62f38ca141f87ff3ed9334fbe6a5e1c45d40ca86 |
|
05-Mar-2013 |
Vincent Lejeune <vljn@ovi.com> |
R600: initial scheduler code This is a skeleton for a pre-RA MachineInstr scheduler strategy. Currently it only tries to expose more parallelism for ALU instructions (this also makes the distribution of GPR channels more uniform and increases the chances of ALU instructions to be packed together in a single VLIW group). Also it tries to reduce clause switching by grouping instruction of the same kind (ALU/FETCH/CF) together. Vincent Lejeune: - Support for VLIW4 Slot assignement - Recomputation of ScheduleDAG to get more parallelism opportunities Tom Stellard: - Fix assertion failure when trying to determine an instruction's slot based on its destination register's class - Fix some compiler warnings Vincent Lejeune: [v2] - Remove recomputation of ScheduleDAG (will be provided in a later patch) - Improve estimation of an ALU clause size so that heuristic does not emit cf instructions at the wrong position. - Make schedule heuristic smarter using SUnit Depth - Take constant read limitations into account Vincent Lejeune: [v3] - Fix some uninitialized values in ConstPair - Add asserts to ensure an ALU slot is always populated git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/R600/R600MachineScheduler.cpp
|