diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-05-13 10:04:48 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2018-05-13 10:04:48 +0000 |
| commit | 432aaea63fedbd7081e0714d438f4de3fe39de00 (patch) | |
| tree | 5bf46e6aa02627cc7b413439af86f02112b98e42 /llvm/lib | |
| parent | dfb88dfe30824c19e0299bf4a640aecf20dd9ac7 (diff) | |
| download | bcm5719-llvm-432aaea63fedbd7081e0714d438f4de3fe39de00.tar.gz bcm5719-llvm-432aaea63fedbd7081e0714d438f4de3fe39de00.zip | |
AMDGPU: Rename OpenCL lowering pass to be R600 specific.
This pass is
a) broken.
b) r600 specific.
Fixing (a) is a bit more non-trivial, but fixing (b)
is easy. Move this pass to being R600 only for now.
This pass does pass all the unit tests, however clang
no longer generates code that looks like the unit test
input, so fixing the pass requires fixing the tests and
the pass as one, and checking it works with clang still.
Patch by Dave Airlie
llvm-svn: 332196
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPU.h | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp (renamed from llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp) | 14 |
4 files changed, 11 insertions, 10 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.h b/llvm/lib/Target/AMDGPU/AMDGPU.h index c0f950aa5c4..510e9351a16 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPU.h +++ b/llvm/lib/Target/AMDGPU/AMDGPU.h @@ -143,7 +143,7 @@ FunctionPass *createAMDGPUISelDag( TargetMachine *TM = nullptr, CodeGenOpt::Level OptLevel = CodeGenOpt::Default); ModulePass *createAMDGPUAlwaysInlinePass(bool GlobalOpt = true); -ModulePass *createAMDGPUOpenCLImageTypeLoweringPass(); +ModulePass *createR600OpenCLImageTypeLoweringPass(); FunctionPass *createAMDGPUAnnotateUniformValues(); ModulePass* createAMDGPUUnifyMetadataPass(); diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index 45f75d4bc74..eee757824dc 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -620,7 +620,8 @@ void AMDGPUPassConfig::addIRPasses() { } // Handle uses of OpenCL image2d_t, image3d_t and sampler_t arguments. - addPass(createAMDGPUOpenCLImageTypeLoweringPass()); + if (TM.getTargetTriple().getArch() == Triple::r600) + addPass(createR600OpenCLImageTypeLoweringPass()); // Replace OpenCL enqueued block function pointers with global variables. addPass(createAMDGPUOpenCLEnqueuedBlockLoweringPass()); diff --git a/llvm/lib/Target/AMDGPU/CMakeLists.txt b/llvm/lib/Target/AMDGPU/CMakeLists.txt index e3f0f3ebf30..dbcd2809815 100644 --- a/llvm/lib/Target/AMDGPU/CMakeLists.txt +++ b/llvm/lib/Target/AMDGPU/CMakeLists.txt @@ -45,7 +45,6 @@ add_llvm_target(AMDGPUCodeGen AMDGPUMacroFusion.cpp AMDGPUMCInstLower.cpp AMDGPUOpenCLEnqueuedBlockLowering.cpp - AMDGPUOpenCLImageTypeLoweringPass.cpp AMDGPUPromoteAlloca.cpp AMDGPURegAsmNames.inc.cpp AMDGPURegisterBankInfo.cpp @@ -73,6 +72,7 @@ add_llvm_target(AMDGPUCodeGen R600ISelLowering.cpp R600MachineFunctionInfo.cpp R600MachineScheduler.cpp + R600OpenCLImageTypeLoweringPass.cpp R600OptimizeVectorRegisters.cpp R600Packetizer.cpp R600RegisterInfo.cpp diff --git a/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp b/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp index cd71f19760b..7de5e2c9577 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp +++ b/llvm/lib/Target/AMDGPU/R600OpenCLImageTypeLoweringPass.cpp @@ -1,4 +1,4 @@ -//===- AMDGPUOpenCLImageTypeLoweringPass.cpp ------------------------------===// +//===- R600OpenCLImageTypeLoweringPass.cpp ------------------------------===// // // The LLVM Compiler Infrastructure // @@ -153,7 +153,7 @@ PushArgMD(KernelArgMD &MD, const MDVector &V) { namespace { -class AMDGPUOpenCLImageTypeLoweringPass : public ModulePass { +class R600OpenCLImageTypeLoweringPass : public ModulePass { static char ID; LLVMContext *Context; @@ -364,7 +364,7 @@ class AMDGPUOpenCLImageTypeLoweringPass : public ModulePass { } public: - AMDGPUOpenCLImageTypeLoweringPass() : ModulePass(ID) {} + R600OpenCLImageTypeLoweringPass() : ModulePass(ID) {} bool runOnModule(Module &M) override { Context = &M.getContext(); @@ -376,14 +376,14 @@ public: } StringRef getPassName() const override { - return "AMDGPU OpenCL Image Type Pass"; + return "R600 OpenCL Image Type Pass"; } }; } // end anonymous namespace -char AMDGPUOpenCLImageTypeLoweringPass::ID = 0; +char R600OpenCLImageTypeLoweringPass::ID = 0; -ModulePass *llvm::createAMDGPUOpenCLImageTypeLoweringPass() { - return new AMDGPUOpenCLImageTypeLoweringPass(); +ModulePass *llvm::createR600OpenCLImageTypeLoweringPass() { + return new R600OpenCLImageTypeLoweringPass(); } |

