Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | radeon/llvm: Use the VLIW Scheduler for R600->NI | Tom Stellard | 2012-06-21 | 12 | -8/+75 |
| | | | | | | | | | | | | | | | | | | | It's not optimal, but it's better than the register pressure scheduler that was previously being used. The VLIW scheduler currently ignores all the complicated instruction groups restrictions and just tries to fill the instruction groups with as many instructions as possible. Though, it does know enough not to put two trans only instructions in the same group. We are able to ignore the instruction group restrictions in the LLVM backend, because the finalizer in r600_asm.c will fix any illegal instruction groups the backend generates. Enabling the VLIW scheduler improved the run time for a sha1 compute shader by about 50%. I'm not sure what the impact will be for graphics shaders. I tested Lightsmark with the VLIW scheduler enabled and the framerate was about the same, but it might help apps that use really big shaders. | ||||
* | radeon/llvm: Fix CR/LF in Processors.td | Török Edwin | 2012-06-19 | 1 | -17/+17 |
| | | | | Signed-off-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: Fix sin/cos codegen on R700 | Török Edwin | 2012-06-19 | 1 | -19/+24 |
| | | | | | | | | | | Based on https://bugs.freedesktop.org/show_bug.cgi?id=50317#c4 Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=50316 https://bugs.freedesktop.org/show_bug.cgi?id=50317 Signed-off-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: Update comment in AMDGPU.td | Tom Stellard | 2012-06-18 | 1 | -2/+3 |
| | |||||
* | radeon/llvm: Remove unused AMDIL TableGen definitons | Tom Stellard | 2012-06-18 | 18 | -6140/+26 |
| | |||||
* | radeon/llvm: Eliminate getRegClassFromType() function | Tom Stellard | 2012-06-18 | 1 | -42/+1 |
| | | | | We can use TargetLowering::getRegClassFor() instead. | ||||
* | radeon/llvm: Remove deadcode from AMDILISelLowering.cpp | Tom Stellard | 2012-06-18 | 4 | -1687/+0 |
| | |||||
* | radeonsi: Handle SUB_f32. | Thomas Stellard | 2012-06-12 | 2 | -2/+3 |
| | | | | | Signed-off-by: Thomas Stellard <[email protected]> Signed-off-by: Michel Dänzer <[email protected]> | ||||
* | radeonsi: Only dump shaders with environment variable RADEON_DUMP_SHADERS=1. | Michel Dänzer | 2012-06-12 | 1 | -1/+5 |
| | |||||
* | automake: Globally add stub automake targets to the old Makefiles. | Eric Anholt | 2012-06-11 | 1 | -3/+0 |
| | | | | | | | | | I tried to update all the old Makefiles that included the default config to be sure they had a default target if they didn't previously have one, since this new all target will always point at it. Almost everything had one. Reviewed-by: Kenneth Graunke <[email protected]> | ||||
* | radeon/llvm: Emulate RECIP_UINT instruction on Cayman | Tom Stellard | 2012-06-06 | 2 | -4/+13 |
| | |||||
* | radeon/llvm: Remove some duplicate code in the R600 CodeEmitter | Tom Stellard | 2012-06-06 | 1 | -9/+3 |
| | |||||
* | radeon/llvm: Fix MULLO* instructions on Cayman | Tom Stellard | 2012-06-06 | 4 | -14/+53 |
| | | | | | On Cayman, the MULLO* instructions must fill all slots in an instruction group. | ||||
* | r600g: Compute support for Cayman | Tom Stellard | 2012-06-06 | 1 | -48/+44 |
| | |||||
* | radeon/llvm: Remove obselete hooks for the ConvertToISA pass | Tom Stellard | 2012-06-06 | 6 | -87/+1 |
| | | | | | | We can't remove this pass yet, because we need it to convert AMDIL registers in BRANCH* instructions, but we don't need it for instruction conversion any more. | ||||
* | radeon/llvm: Remove AMDIL MOVE* instructions | Tom Stellard | 2012-06-06 | 5 | -20/+2 |
| | |||||
* | radeon/llvm: Add isMov() to AMDILInstrInfo | Tom Stellard | 2012-06-06 | 6 | -11/+34 |
| | | | | | This enables the CFGStructurizer to work without the AMDIL::MOV* instructions. | ||||
* | radeon/llvm: Remove deadcode from the AMDILISelLowering class | Tom Stellard | 2012-06-06 | 2 | -203/+0 |
| | |||||
* | radeon/llvm: Don't lower RETURN to S_ENDPGM on SI | Tom Stellard | 2012-06-06 | 2 | -1/+4 |
| | | | | | Instead create an S_ENDPGM instruction in the CodeEmitter and emit it after all the other instructions. | ||||
* | radeon/llvm: Remove AMDIL VCREATE* instructions | Tom Stellard | 2012-06-06 | 8 | -97/+12 |
| | | | | This obsoletes the AMDGPULowerInstruction pass. | ||||
* | radeon/llvm: Remove AMDIL LOADCONST* instructions | Tom Stellard | 2012-06-06 | 13 | -322/+33 |
| | | | | This obsoletes the R600LowerInstruction and SIPropagateImmReads passes. | ||||
* | radeon/llvm: Fix VTX_READ patterns | Tom Stellard | 2012-06-01 | 3 | -4/+33 |
| | | | | | | | | | The VTX_READ instructions were using the ADDRParam ComplexPattern which allows a load instruction's offset to be a register, but VTX_READ instructions can only handle an immediate offset. Also, the load_param pattern fragment had an erroneous return true; statement that was causing it to match the wrong load instructions. | ||||
* | radeon/llvm: Emit 2 bytes for vertex fetch offsets | Tom Stellard | 2012-06-01 | 1 | -1/+1 |
| | |||||
* | radeon/llvm: Only use indirect (vertex fetch) parameters for kernels | Tom Stellard | 2012-06-01 | 1 | -2/+6 |
| | | | | | | Kernel parameters can only be retrieved via vertex fetchs. Direct parameters (i.e parameters stored in the constant buffer) are not supported yet. | ||||
* | radeon/llvm: Eliminate CFGStructurizer dependency on AMDIL instructions | Tom Stellard | 2012-06-01 | 11 | -41/+124 |
| | | | | | | Add some hooks to the R600,SI InstrInfo and RegisterInfo classes, so that the CFGStructurizer pass can run without any relying on AMDIL instructions. | ||||
* | radeon/llvm: Change prefix on tablegen files to AMDGPU | Tom Stellard | 2012-06-01 | 17 | -50/+50 |
| | |||||
* | radeon/llvm: Remove deadcode from the R600LowerInstructions pass | Tom Stellard | 2012-06-01 | 1 | -46/+2 |
| | |||||
* | radeon/llvm: Remove AMDIL GLOBALSTORE* instructions | Tom Stellard | 2012-06-01 | 4 | -77/+36 |
| | |||||
* | radeon/llvm: Remove AMDIL GLOBALLOAD* instructions | Tom Stellard | 2012-06-01 | 6 | -128/+24 |
| | |||||
* | radeon/llvm: Update and fix some comments | Tom Stellard | 2012-05-29 | 2 | -12/+6 |
| | |||||
* | radeonsi: Remove use.sgpr* intrinsics, use load instructions instead | Tom Stellard | 2012-05-29 | 4 | -30/+21 |
| | | | | | | | | | | We now model loading uses sgpr values with LLVM IR load instructions that use the USER_SGPR address space. The definition of the sgpr parameter to the use_sgpr() helper function in radeonsi_shader.c has changed so that you can pass raw sgpr values rather than having to divide the sgpr value you want to use by the dword width of the type you want to load. | ||||
* | radeonsi: Handle TGSI CONST registers | Tom Stellard | 2012-05-29 | 11 | -58/+171 |
| | | | | | We now emit LLVM load instructions for TGSI CONST register reads, which are lowered in the backend to S_LOAD_DWORD* instructions. | ||||
* | radeon/llvm: Remove AMDILIntrinsicInfo::GetDeclaration fuction body | Tom Stellard | 2012-05-29 | 1 | -20/+1 |
| | | | | | | | This function was causing compile errors in the tablegen'd code for some intrinsic definitions. I don't think we really need this function, so I'm removing the function body just as a temporary solution. I'll look into removing the entire AMDILIntrinsicInfo class later. | ||||
* | radeon/llvm: Remove AMDILTargetMachine | Tom Stellard | 2012-05-29 | 19 | -363/+90 |
| | |||||
* | radeon/llvm: Use a custom inserter for MASK_WRITE | Tom Stellard | 2012-05-25 | 4 | -34/+36 |
| | |||||
* | radeon/llvm: Use tablegen pattern to lower bitconvert | Tom Stellard | 2012-05-25 | 4 | -294/+11 |
| | |||||
* | radeon/llvm: Use a custom inserter to lower FNEG | Tom Stellard | 2012-05-25 | 5 | -22/+15 |
| | |||||
* | radeon/llvm: Use a custom inserter to lower CLAMP | Tom Stellard | 2012-05-25 | 9 | -84/+41 |
| | |||||
* | radeon/llvm: Use a custom inserter to lower FABS | Tom Stellard | 2012-05-25 | 10 | -42/+41 |
| | |||||
* | radeon/llvm: add FLT_TO_UINT, UINT_TO_FLT instructions | Vadim Girlin | 2012-05-25 | 1 | -0/+20 |
| | | | | | Signed-off-by: Vadim Girlin <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: prepare to revert the round mode state to default | Vadim Girlin | 2012-05-25 | 1 | -2/+9 |
| | | | | | | | Use TRUNC before FLT_TO_INT on evergreen/cayman. Signed-off-by: Vadim Girlin <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: fix opcode for RECIP_UINT_r600 | Vadim Girlin | 2012-05-25 | 1 | -1/+1 |
| | | | | | | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=50312 Signed-off-by: Vadim Girlin <[email protected]> Tested-by: Kai Wasserbäch <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm/loader: convert hardcoded gpu name to option | Vadim Girlin | 2012-05-25 | 1 | -2/+3 |
| | | | | | Signed-off-by: Vadim Girlin <[email protected]> Reviewed-by: Tom Stellard <[email protected]> | ||||
* | radeon/llvm: Lower UDIV using the Selection DAG | Tom Stellard | 2012-05-24 | 8 | -212/+126 |
| | |||||
* | radeon/llvm: Remove auto-generated AMDIL->ISA conversion code | Tom Stellard | 2012-05-24 | 14 | -280/+28 |
| | |||||
* | radeon/llvm: Remove AMDIL instructions MULHI, SMUL | Tom Stellard | 2012-05-24 | 3 | -10/+5 |
| | |||||
* | radeon/llvm: Remove AMDIL bitshift instructions (SHL, SHR, USHR) | Tom Stellard | 2012-05-24 | 8 | -693/+6 |
| | |||||
* | radeon/llvm: Remove AMDIL FTOI and ITOF instructions | Tom Stellard | 2012-05-24 | 7 | -316/+7 |
| | |||||
* | radeon/llvm: Remove AMDIL EXP* instructions | Tom Stellard | 2012-05-24 | 5 | -15/+7 |
| | |||||
* | radeon/llvm: Remove AMDIL ADD instructions | Tom Stellard | 2012-05-24 | 6 | -179/+4 |
| |