| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | R600: Use a refined heuristic to choose when switching clause | Vincent Lejeune | 2013-06-07 | 2 | -10/+47 |
| | | | | | | | | | | | | | | | | 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. llvm-svn: 183593 | ||||
| * | R600: Anti dep better handled in tex clause | Vincent Lejeune | 2013-06-07 | 1 | -6/+4 |
| | | | | | llvm-svn: 183592 | ||||
| * | R600: Fix calculation of stack offset in AMDGPUFrameLowering | Tom Stellard | 2013-06-07 | 1 | -21/+2 |
| | | | | | | | | | | We weren't computing structure size correctly and we were relying on the original alloca instruction to compute the offset, which isn't always reliable. Reviewed-by: Vincent Lejeune <vljn@ovi.com> llvm-svn: 183568 | ||||
| * | R600: Rework subtarget info and remove AMDILDevice classes | Tom Stellard | 2013-06-07 | 36 | -1458/+218 |
| | | | | | | | | | This should simplify the subtarget definitions and make it easier to add new ones. Reviewed-by: Vincent Lejeune <vljn@ovi.com> llvm-svn: 183566 | ||||
| * | Don't cache the instruction and register info from the TargetMachine, because | Bill Wendling | 2013-06-07 | 21 | -63/+75 |
| | | | | | | | | | the internals of TargetMachine could change. No functionality change intended. llvm-svn: 183561 | ||||
| * | R600: Fix the fetch limits for R600 generation GPUs | Tom Stellard | 2013-06-07 | 4 | -27/+30 |
| | | | | | | | | | Reviewed-by: Vincent Lejeune <vljn@ovi.com> https://bugs.freedesktop.org/show_bug.cgi?id=64257 llvm-svn: 183560 | ||||
| * | R600: Move Subtarget feature definitions into AMDGPU.td | Tom Stellard | 2013-06-07 | 2 | -64/+66 |
| | | | | | | | | This is the convention used by the other targets. Reviewed-by: Vincent Lejeune <vljn@ovi.com> llvm-svn: 183559 | ||||
| * | R600: Remove unnecessary include | Tom Stellard | 2013-06-07 | 3 | -2/+4 |
| | | | | | | Reviewed-by: Vincent Lejeune <vljn@ovi.com> llvm-svn: 183558 | ||||
| * | R600: Don't compare iterators of different maps. | Benjamin Kramer | 2013-06-07 | 1 | -1/+1 |
| | | | | | | | Found be libstdc's debug mode. llvm-svn: 183549 | ||||
| * | Vincent says the element is at most once in the vector, so we don't need a ↵ | Benjamin Kramer | 2013-06-07 | 1 | -3/+7 |
| | | | | | | | full std::remove. llvm-svn: 183541 | ||||
| * | R600: Fix a potential iterator invalidation issue. | Benjamin Kramer | 2013-06-07 | 1 | -5/+3 |
| | | | | | | | As a bonus this reduces the loop from O(n^2) to O(n). llvm-svn: 183532 | ||||
| * | R600: Remove an extra break in R600OptimizeVectorRegisters.cpp | Vincent Lejeune | 2013-06-07 | 1 | -3/+1 |
| | | | | | llvm-svn: 183528 | ||||
| * | R600: Rewrite an awkward loop in R600MachineScheduler | Vincent Lejeune | 2013-06-06 | 1 | -7/+15 |
| | | | | | llvm-svn: 183458 | ||||
| * | R600: Remove leftover code in R600MachineScheduler.cpp | Vincent Lejeune | 2013-06-06 | 1 | -16/+0 |
| | | | | | | | Spotted by Benjamin Kramer. llvm-svn: 183413 | ||||
| * | Cast to the correct type. Pointer, not reference. | Bill Wendling | 2013-06-06 | 1 | -1/+1 |
| | | | | | llvm-svn: 183385 | ||||
| * | R600OptimizeVectorRegisters.cpp: Tweak a warning. [-Wsometimes-uninitialized] | NAKAMURA Takumi | 2013-06-06 | 1 | -1/+1 |
| | | | | | | FIXME: Is it false alarm? llvm-svn: 183371 | ||||
| * | R600OptimizeVectorRegisters.cpp: Suppress a warning. [-Wunused-variable] | NAKAMURA Takumi | 2013-06-06 | 1 | -0/+1 |
| | | | | | llvm-svn: 183370 | ||||
| * | Trailing linefeed. | NAKAMURA Takumi | 2013-06-06 | 1 | -1/+0 |
| | | | | | llvm-svn: 183369 | ||||
| * | Cast to the proper type. | Bill Wendling | 2013-06-06 | 1 | -1/+1 |
| | | | | | llvm-svn: 183365 | ||||
| * | R600: Replace predicate loop with predicate function | Tom Stellard | 2013-06-05 | 1 | -11/+13 |
| | | | | | llvm-svn: 183351 | ||||
| * | R600: Add a pass that merge Vector Register | Vincent Lejeune | 2013-06-05 | 4 | -0/+370 |
| | | | | | | | | Previously commited @183279 but tests were failing, reverted @183286 It was broken because @183336 was missing, now it's there. llvm-svn: 183343 | ||||
| * | R600: Schedule copy from phys register at beginning of block | Vincent Lejeune | 2013-06-05 | 2 | -1/+32 |
| | | | | | | | It allows regalloc pass to remove them by trivially assigning associated reg llvm-svn: 183336 | ||||
| * | R600: Make sure to schedule AR register uses and defs in the same clause | Tom Stellard | 2013-06-05 | 3 | -4/+40 |
| | | | | | | Reviewed-by: vljn at ovi.com llvm-svn: 183294 | ||||
| * | Revert "R600: Add a pass that merge Vector Register" | Rafael Espindola | 2013-06-05 | 4 | -370/+0 |
| | | | | | | | This reverts commit r183279. CodeGen/R600/texture-input-merge.ll was failing. llvm-svn: 183286 | ||||
| * | R600: Add a pass that merge Vector Register | Vincent Lejeune | 2013-06-04 | 4 | -0/+370 |
| | | | | | llvm-svn: 183279 | ||||
| * | R600: Const/Neg/Abs can be folded to dot4 | Vincent Lejeune | 2013-06-04 | 5 | -47/+186 |
| | | | | | llvm-svn: 183278 | ||||
| * | R600: Swizzle texture/export instructions | Vincent Lejeune | 2013-06-04 | 2 | -20/+126 |
| | | | | | llvm-svn: 183229 | ||||
| * | Silencing an MSVC warning about mixing bool and unsigned int. | Aaron Ballman | 2013-06-04 | 1 | -1/+1 |
| | | | | | llvm-svn: 183176 | ||||
| * | R600/SI: Add support for work item and work group intrinsics | Tom Stellard | 2013-06-03 | 3 | -15/+88 |
| | | | | | llvm-svn: 183138 | ||||
| * | R600/SI: Add a calling convention for compute shaders | Tom Stellard | 2013-06-03 | 3 | -9/+39 |
| | | | | | llvm-svn: 183137 | ||||
| * | R600/SI: Custom lower i64 sign_extend | Tom Stellard | 2013-06-03 | 2 | -0/+19 |
| | | | | | llvm-svn: 183136 | ||||
| * | R600/SI: Adjust some instructions' out register class after ISel | Tom Stellard | 2013-06-03 | 2 | -0/+52 |
| | | | | | | | | This is necessary to avoid generating VGPR to SGPR copies in some cases. llvm-svn: 183135 | ||||
| * | R600/SI: Handle REG_SEQUENCE in fitsRegClass() | Tom Stellard | 2013-06-03 | 1 | -3/+13 |
| | | | | | llvm-svn: 183134 | ||||
| * | R600/SI: Handle nodes with glue results correctly ↵ | Tom Stellard | 2013-06-03 | 1 | -0/+16 |
| | | | | | | | SITargetLowering::foldOperands() llvm-svn: 183133 | ||||
| * | R600/SI: Fixup CopyToReg register class in PostprocessISelDAG() | Tom Stellard | 2013-06-03 | 1 | -5/+33 |
| | | | | | | | | | | | The CopyToReg nodes will sometimes try to copy a value from a VGPR to an SGPR. This kind of copy is not possible, so we need to detect VGPR->SGPR copies and do something else. The current strategy is to replace these copies with VGPR->VGPR copies and hope that all the users of CopyToReg can accept VGPRs as arguments. llvm-svn: 183132 | ||||
| * | R600/SI: Add support for global loads | Tom Stellard | 2013-06-03 | 3 | -4/+39 |
| | | | | | llvm-svn: 183131 | ||||
| * | R600/SI: Rework MUBUF store instructions | Tom Stellard | 2013-06-03 | 5 | -42/+71 |
| | | | | | | | | The lowering of stores is now mostly handled in the tablegen files. No more BUFFER_STORE nodes I generated during legalization. llvm-svn: 183130 | ||||
| * | R600: 3 op instructions have no write bit but the result are store in PV | Vincent Lejeune | 2013-06-03 | 1 | -3/+1 |
| | | | | | llvm-svn: 183111 | ||||
| * | R600: CALL_FS consumes a stack size entry | Vincent Lejeune | 2013-06-03 | 1 | -0/+1 |
| | | | | | llvm-svn: 183108 | ||||
| * | R600: use capital letter for PV channel | Vincent Lejeune | 2013-06-03 | 1 | -4/+4 |
| | | | | | llvm-svn: 183107 | ||||
| * | R600: Constraints input regs of interp_xy,_zw | Vincent Lejeune | 2013-06-03 | 2 | -11/+15 |
| | | | | | llvm-svn: 183106 | ||||
| * | Make SubRegIndex size mandatory, following r183020. | Ahmed Bougacha | 2013-05-31 | 1 | -1/+2 |
| | | | | | | | | This also makes TableGen able to compute sizes/offsets of synthesized indices representing tuples. llvm-svn: 183061 | ||||
| * | Temporary fix to get rid of gcc warning. | Patrik Hagglund | 2013-05-29 | 1 | -1/+10 |
| | | | | | llvm-svn: 182832 | ||||
| * | Track IR ordering of SelectionDAG nodes 2/4. | Andrew Trick | 2013-05-25 | 8 | -45/+44 |
| | | | | | | | | Change SelectionDAG::getXXXNode() interfaces as well as call sites of these functions to pass in SDLoc instead of DebugLoc. llvm-svn: 182703 | ||||
| * | R600: Fix R600ControlFlowFinalizer not considering VTX_READ 128 bit dst reg | Tom Stellard | 2013-05-23 | 1 | -2/+9 |
| | | | | | | | | | | Patch by: Vincent Lejeune https://bugs.freedesktop.org/show_bug.cgi?id=64877 NOTE: This is a candidate for the 3.3 branch. llvm-svn: 182600 | ||||
| * | Move passes from namespace llvm into anonymous namespaces. Sort includes ↵ | Benjamin Kramer | 2013-05-23 | 14 | -35/+35 |
| | | | | | | | while there. llvm-svn: 182594 | ||||
| * | R600: Hide symbols of implementation details. | Benjamin Kramer | 2013-05-23 | 4 | -63/+25 |
| | | | | | | | Also removes an unused function. llvm-svn: 182587 | ||||
| * | Setting the default value (fixes CRT assertions about uninitialized variable ↵ | Aaron Ballman | 2013-05-23 | 1 | -3/+3 |
| | | | | | | | use when doing debug MSVC builds), and fixing coding style. llvm-svn: 182585 | ||||
| * | Fix 32 bit build in c++11 mode. | Rafael Espindola | 2013-05-23 | 1 | -1/+1 |
| | | | | | | | | | The error was: error: non-constant-expression cannot be narrowed from type 'long long' to 'long' in initializer list [-Wc++11-narrowing] MI.getOperand(6).getImm() & 0x1F, llvm-svn: 182584 | ||||
| * | Fix a leak on the r600 backend. | Rafael Espindola | 2013-05-23 | 2 | -8/+12 |
| | | | | | | | This should bring the valgrind bot back to life. llvm-svn: 182561 | ||||

