diff options
Diffstat (limited to 'src/gallium/drivers/radeon/AMDILImageExpansion.cpp')
-rw-r--r-- | src/gallium/drivers/radeon/AMDILImageExpansion.cpp | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/src/gallium/drivers/radeon/AMDILImageExpansion.cpp b/src/gallium/drivers/radeon/AMDILImageExpansion.cpp deleted file mode 100644 index e6fe37a6b99..00000000000 --- a/src/gallium/drivers/radeon/AMDILImageExpansion.cpp +++ /dev/null @@ -1,171 +0,0 @@ -//===-- AMDILImageExpansion.cpp - TODO: Add brief description -------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//==-----------------------------------------------------------------------===// -// @file AMDILImageExpansion.cpp -// @details Implementatino of the Image expansion class for image capable devices -// -#include "AMDILIOExpansion.h" -#include "AMDILKernelManager.h" -#include "llvm/ADT/StringExtras.h" -#include "llvm/CodeGen/MachineConstantPool.h" -#include "llvm/CodeGen/MachineInstr.h" -#include "llvm/CodeGen/MachineInstrBuilder.h" -#include "llvm/DerivedTypes.h" -#include "llvm/Support/DebugLoc.h" -#include "llvm/Target/TargetInstrInfo.h" -#include "llvm/Value.h" - -using namespace llvm; - -AMDILImageExpansion::AMDILImageExpansion(TargetMachine &tm AMDIL_OPT_LEVEL_DECL) - : AMDIL789IOExpansion(tm AMDIL_OPT_LEVEL_VAR) -{ -} - -AMDILImageExpansion::~AMDILImageExpansion() -{ -} -void AMDILImageExpansion::expandInefficientImageLoad( - MachineBasicBlock *mBB, MachineInstr *MI) -{ -#if 0 - const llvm::StringRef &name = MI->getOperand(0).getGlobal()->getName(); - const char *tReg1, *tReg2, *tReg3, *tReg4; - tReg1 = mASM->getRegisterName(MI->getOperand(1).getReg()); - if (MI->getOperand(2).isReg()) { - tReg2 = mASM->getRegisterName(MI->getOperand(2).getReg()); - } else { - tReg2 = mASM->getRegisterName(AMDIL::R1); - O << "\tmov " << tReg2 << ", l" << MI->getOperand(2).getImm() << "\n"; - } - if (MI->getOperand(3).isReg()) { - tReg3 = mASM->getRegisterName(MI->getOperand(3).getReg()); - } else { - tReg3 = mASM->getRegisterName(AMDIL::R2); - O << "\tmov " << tReg3 << ", l" << MI->getOperand(3).getImm() << "\n"; - } - if (MI->getOperand(4).isReg()) { - tReg4 = mASM->getRegisterName(MI->getOperand(4).getReg()); - } else { - tReg4 = mASM->getRegisterName(AMDIL::R3); - O << "\tmov " << tReg2 << ", l" << MI->getOperand(4).getImm() << "\n"; - } - bool internalSampler = false; - //bool linear = true; - unsigned ImageCount = 3; // OPENCL_MAX_READ_IMAGES - unsigned SamplerCount = 3; // OPENCL_MAX_SAMPLERS - if (ImageCount - 1) { - O << "\tswitch " << mASM->getRegisterName(MI->getOperand(1).getReg()) - << "\n"; - } - for (unsigned rID = 0; rID < ImageCount; ++rID) { - if (ImageCount - 1) { - if (!rID) { - O << "\tdefault\n"; - } else { - O << "\tcase " << rID << "\n" ; - } - O << "\tswitch " << mASM->getRegisterName(MI->getOperand(2).getReg()) - << "\n"; - } - for (unsigned sID = 0; sID < SamplerCount; ++sID) { - if (SamplerCount - 1) { - if (!sID) { - O << "\tdefault\n"; - } else { - O << "\tcase " << sID << "\n" ; - } - } - if (internalSampler) { - // Check if sampler has normalized setting. - O << "\tand r0.x, " << tReg2 << ".x, l0.y\n" - << "\tif_logicalz r0.x\n" - << "\tflr " << tReg3 << ", " << tReg3 << "\n" - << "\tsample_resource(" << rID << ")_sampler(" - << sID << ")_coordtype(unnormalized) " - << tReg1 << ", " << tReg3 << " ; " << name.data() << "\n" - << "\telse\n" - << "\tiadd " << tReg1 << ".y, " << tReg1 << ".x, l0.y\n" - << "\titof " << tReg2 << ", cb1[" << tReg1 << ".x].xyz\n" - << "\tmul " << tReg3 << ", " << tReg3 << ", " << tReg2 << "\n" - << "\tflr " << tReg3 << ", " << tReg3 << "\n" - << "\tmul " << tReg3 << ", " << tReg3 << ", cb1[" - << tReg1 << ".y].xyz\n" - << "\tsample_resource(" << rID << ")_sampler(" - << sID << ")_coordtype(normalized) " - << tReg1 << ", " << tReg3 << " ; " << name.data() << "\n" - << "\tendif\n"; - } else { - O << "\tiadd " << tReg1 << ".y, " << tReg1 << ".x, l0.y\n" - // Check if sampler has normalized setting. - << "\tand r0, " << tReg2 << ".x, l0.y\n" - // Convert image dimensions to float. - << "\titof " << tReg4 << ", cb1[" << tReg1 << ".x].xyz\n" - // Move into R0 1 if unnormalized or dimensions if normalized. - << "\tcmov_logical r0, r0, " << tReg4 << ", r1.1111\n" - // Make coordinates unnormalized. - << "\tmul " << tReg3 << ", r0, " << tReg3 << "\n" - // Get linear filtering if set. - << "\tand " << tReg4 << ", " << tReg2 << ".x, l6.x\n" - // Save unnormalized coordinates in R0. - << "\tmov r0, " << tReg3 << "\n" - // Floor the coordinates due to HW incompatibility with precision - // requirements. - << "\tflr " << tReg3 << ", " << tReg3 << "\n" - // get Origianl coordinates (without floor) if linear filtering - << "\tcmov_logical " << tReg3 << ", " << tReg4 - << ".xxxx, r0, " << tReg3 << "\n" - // Normalize the coordinates with multiplying by 1/dimensions - << "\tmul " << tReg3 << ", " << tReg3 << ", cb1[" - << tReg1 << ".y].xyz\n" - << "\tsample_resource(" << rID << ")_sampler(" - << sID << ")_coordtype(normalized) " - << tReg1 << ", " << tReg3 << " ; " << name.data() << "\n"; - } - if (SamplerCount - 1) { - O << "\tbreak\n"; - } - } - if (SamplerCount - 1) { - O << "\tendswitch\n"; - } - if (ImageCount - 1) { - O << "\tbreak\n"; - } - } - if (ImageCount - 1) { - O << "\tendswitch\n"; - } -#endif -} - void -AMDILImageExpansion::expandImageLoad(MachineBasicBlock *mBB, MachineInstr *MI) -{ - uint32_t imageID = getPointerID(MI); - MI->getOperand(1).ChangeToImmediate(imageID); - saveInst = true; -} - void -AMDILImageExpansion::expandImageStore(MachineBasicBlock *mBB, MachineInstr *MI) -{ - uint32_t imageID = getPointerID(MI); - mKM->setOutputInst(); - MI->getOperand(0).ChangeToImmediate(imageID); - saveInst = true; -} - void -AMDILImageExpansion::expandImageParam(MachineBasicBlock *mBB, MachineInstr *MI) -{ - MachineBasicBlock::iterator I = *MI; - uint32_t ID = getPointerID(MI); - DebugLoc DL = MI->getDebugLoc(); - BuildMI(*mBB, I, DL, mTII->get(AMDIL::CBLOAD), - MI->getOperand(0).getReg()) - .addImm(ID) - .addImm(1); -} |