Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | radeon/llvm: Lower store_output intrinsic during DAG lowering | Tom Stellard | 2012-08-15 | 3 | -22/+22 |
| | |||||
* | radeon/llvm: Force VTX_READ instructions to use same reg for src and dst | Tom Stellard | 2012-08-15 | 1 | -0/+14 |
| | | | | | | I was seeing some GPU hangs that seemed to be cause by ALU instructions writing to the same register used as the source for VTX_READ. Adding this constraint to the VTX_READ instructions avoids this situation. | ||||
* | radeon/llvm: Inline immediate offset when lowering implicit parameters | Tom Stellard | 2012-08-14 | 1 | -4/+8 |
| | |||||
* | radeon/llvm: Use correct opcocde for BREAK_LOGICALNZ_i32 | Tom Stellard | 2012-08-14 | 1 | -1/+4 |
| | |||||
* | radeon/llvm: Add $(LLVM_LDFLAGS) to the loader linker flags | Tom Stellard | 2012-08-02 | 1 | -1/+1 |
| | |||||
* | radeon/llvm: Add support for more f32 CMP instructions on SI | Tom Stellard | 2012-08-02 | 1 | -5/+15 |
| | |||||
* | radeon/llvm: Add support for fneg on SI | Tom Stellard | 2012-08-02 | 2 | -0/+16 |
| | |||||
* | radeon/llvm: Add support for fp_to_sint on SI | Tom Stellard | 2012-08-02 | 1 | -1/+3 |
| | |||||
* | radeon/llvm: Remove CMOVLOG DAG node | Tom Stellard | 2012-08-02 | 6 | -75/+9 |
| | |||||
* | radeonsi: Handle TGSI DIV opcode. | Michel Dänzer | 2012-08-02 | 1 | -0/+5 |
| | | | | | Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: fix fp immediates on SI | Christian König | 2012-08-02 | 1 | -7/+20 |
| | | | | | | | | I don't know if this is a good idea, but it fixes the problem at hand. Signed-off-by: Christian König <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: fix calculation of max register number | Christian König | 2012-08-01 | 1 | -1/+1 |
| | | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: Add pseudo-support for 64-bit immediate types on SI | Tom Stellard | 2012-07-31 | 2 | -0/+23 |
| | | | | | | | | SI does not support 64-bit immediates natively, but llvm will generate i64 immediates when indexing loads and stores (since SI has 64-bit pointers). The i64 indices will always be small enough to fit into 32-bits (i.e. the high 32 bits will always be all zeros), so we can treat these index values as 32-bits. | ||||
* | radeon/llvm: Fix incorrect return value in SelectADDRReg() | Tom Stellard | 2012-07-31 | 1 | -1/+1 |
| | | | | We need to return true when we match the pattern. | ||||
* | radeon/llvm: Move SMRD IMM pattern before SMRD SGPR pattern | Tom Stellard | 2012-07-31 | 1 | -7/+6 |
| | | | | | | | In tablegen, if two patterns match, the one that comes first in the file is given preference. We want the SMRD IMM pattern to be given preference, because it encodes the pointer offset in its immediate field, which saves us an add instruction. | ||||
* | radeon/llvm: Cleanup AMDIL.h | Tom Stellard | 2012-07-30 | 4 | -91/+26 |
| | |||||
* | radeon/llvm: Rename all AMDIL* classes to AMDGPU* | Tom Stellard | 2012-07-30 | 30 | -496/+496 |
| | |||||
* | radeon/llvm: Merge AMDILSubtarget into AMDGPUSubtarget | Tom Stellard | 2012-07-30 | 25 | -324/+156 |
| | |||||
* | radeon/llvm: Merge AMDILTargetLowering class into AMDGPUTargetLowering | Tom Stellard | 2012-07-30 | 11 | -241/+144 |
| | |||||
* | radeon/llvm: Remove IL_cmp DAG node | Tom Stellard | 2012-07-30 | 4 | -502/+2 |
| | |||||
* | radeon/llvm: Cleanup and reorganize AMDIL .td files | Tom Stellard | 2012-07-30 | 13 | -2303/+335 |
| | |||||
* | radeon/llvm: Remove lowering code for unsupported features | Tom Stellard | 2012-07-30 | 8 | -805/+50 |
| | | | | e.g. function calls, load/store from stack | ||||
* | radeon/llvm: Remove AMDILVersion.td | Tom Stellard | 2012-07-30 | 2 | -59/+0 |
| | |||||
* | radeon/llvm: Remove AMDILAlgorithms.tpp | Tom Stellard | 2012-07-30 | 2 | -94/+19 |
| | |||||
* | radeon/llvm: Merge AMDILInstrInfo.cpp into AMDGPUInstrInfo.cpp | Tom Stellard | 2012-07-30 | 12 | -693/+512 |
| | |||||
* | radeon/llvm: Merge AMDILRegisterInfo into AMDGPURegisterInfo | Tom Stellard | 2012-07-30 | 12 | -283/+69 |
| | |||||
* | radeon/llvm: Change the tablegen target from AMDIL to AMDGPU | Tom Stellard | 2012-07-30 | 14 | -107/+119 |
| | |||||
* | radeon/llvm: Add instruction defs for branches on SI | Tom Stellard | 2012-07-27 | 3 | -17/+126 |
| | |||||
* | radeon/llvm: Fix VOPC and V_CNDMASK encoding | Tom Stellard | 2012-07-27 | 4 | -10/+13 |
| | |||||
* | radeon/llvm: Assert if we try to copy SCC reg | Tom Stellard | 2012-07-27 | 1 | -0/+6 |
| | |||||
* | radeon/llvm: Add SI DAG optimizations for setcc, select_cc | Tom Stellard | 2012-07-27 | 2 | -0/+54 |
| | | | | | These are needed for correctly lowering branch instructions in some cases. | ||||
* | radeon/llvm: Add support for encoding SI branch instructions | Tom Stellard | 2012-07-27 | 1 | -15/+35 |
| | |||||
* | radeon/llvm: Add special nodes for SALU operations on VCC | Tom Stellard | 2012-07-27 | 6 | -1/+89 |
| | | | | | | | The VCC register is tricky because the SALU views it as 64-bit, but the VALU views it as 1-bit. In order to deal with this we've added some special bitcast and binary operations to help convert from the 64-bit SALU view to the 1-bit VALU view and vice versa. | ||||
* | radeon/llvm: Add i1 registers for SI. | Tom Stellard | 2012-07-27 | 1 | -0/+2 |
| | |||||
* | radeon/llvm: Fix CCReg definitions on SI | Tom Stellard | 2012-07-27 | 2 | -3/+10 |
| | |||||
* | radeon/llvm: Add bitconvert patterns for SI | Tom Stellard | 2012-07-27 | 1 | -0/+6 |
| | |||||
* | radeon/llvm: Add custom lowering for SELECT_CC nodes on SI | Tom Stellard | 2012-07-27 | 2 | -0/+20 |
| | |||||
* | radeon/llvm: Move conditional pattern leafs to common tablegen file | Tom Stellard | 2012-07-27 | 2 | -41/+41 |
| | |||||
* | radeon/llvm: Implement getSetCCResultType for SI | Tom Stellard | 2012-07-27 | 2 | -0/+6 |
| | |||||
* | radeon/llvm: Custom lower BR_CC for SI | Tom Stellard | 2012-07-27 | 2 | -0/+41 |
| | |||||
* | radeon/llvm: Move lowering of BR_CC node to R600ISelLowering | Tom Stellard | 2012-07-27 | 4 | -31/+31 |
| | | | | | SI will handle BR_CC different from R600, so we need to move it out of the shared instruction selector. | ||||
* | radeon/llvm: Move lowering of SETCC node to R600ISelLowering | Tom Stellard | 2012-07-27 | 4 | -38/+29 |
| | | | | | SI will handle SETCC different from R600, so we need to move it out of the shared instruction selector. | ||||
* | radeon/llvm: Use correct node type when lowering SETCC | Tom Stellard | 2012-07-27 | 1 | -0/+1 |
| | |||||
* | radeon/llvm: Move LowerSELECT_CC into R600ISelLowering | Tom Stellard | 2012-07-27 | 4 | -111/+112 |
| | | | | | SI will handle SELECT_CC different from R600, so we need to move it out of the shared instruction selector. | ||||
* | radeon/llvm: Fix a bug with IF LOGICALNZ with int operand | Vincent Lejeune | 2012-07-23 | 2 | -3/+5 |
| | | | | Signed-off-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: Fix CR/LF in AMDILSIDevice.h | Andreas Boll | 2012-07-13 | 1 | -1/+1 |
| | |||||
* | radeon/llvm: Clean up AMDILIntrinsicInfo.cpp | Tom Stellard | 2012-07-13 | 2 | -84/+5 |
| | |||||
* | radeon/llvm: Coding style fixes | Tom Stellard | 2012-07-13 | 2 | -409/+325 |
| | |||||
* | radeon/llvm: Don't use lp_build_swizzle_aos() for swizzles | Tom Stellard | 2012-07-12 | 1 | -8/+13 |
| | | | | | | | This function assumes that lp_build_context::type is a vector type, which is not true for r600 or radeonsi. This fixes an assertion failure using glamor 2D accel. | ||||
* | radeon/llvm: Use multiclasses for floating point loads | Tom Stellard | 2012-07-11 | 7 | -50/+46 |
| | | | | | | | The original strategy for handling floating point loads, which was to lower (f32 load) to (f32 bitcast (i32 load)) wasn't really working. The main problem was that the DAG legalizer couldn't handle replacing a node with two results (load) with a node with only one result (bitcast). |