diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2016-04-14 19:09:28 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2016-04-14 19:09:28 +0000 |
commit | 000c5af3e65bcd32305d51a32ccdbe6fdf7d3fdf (patch) | |
tree | 959ef307f75403f2bf48327f70012034022c5829 /llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | |
parent | 3151d8959598d6da4f9373fc6965fedac16dc835 (diff) | |
download | llvm-000c5af3e65bcd32305d51a32ccdbe6fdf7d3fdf.zip llvm-000c5af3e65bcd32305d51a32ccdbe6fdf7d3fdf.tar.gz llvm-000c5af3e65bcd32305d51a32ccdbe6fdf7d3fdf.tar.bz2 |
AMDGPU: Add skeleton GlobalIsel implementation
Summary:
This adds the necessary target code to be able to run the ir translator.
Lowering function arguments and returns is a nop and there is no support
for RegBankSelect.
Reviewers: arsenm, qcolombet
Subscribers: arsenm, joker.eph, vkalintiris, llvm-commits
Differential Revision: http://reviews.llvm.org/D19077
llvm-svn: 266356
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index 29faf83..08254ba 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -23,6 +23,7 @@ #include "SIISelLowering.h" #include "SIInstrInfo.h" #include "llvm/Analysis/Passes.h" +#include "llvm/CodeGen/GlobalISel/IRTranslator.h" #include "llvm/CodeGen/MachineFunctionAnalysis.h" #include "llvm/CodeGen/TargetLoweringObjectFileImpl.h" #include "llvm/CodeGen/MachineModuleInfo.h" @@ -202,6 +203,10 @@ public: : AMDGPUPassConfig(TM, PM) { } bool addPreISel() override; bool addInstSelector() override; +#ifdef LLVM_BUILD_GLOBAL_ISEL + bool addIRTranslator() override; + bool addRegBankSelect() override; +#endif void addFastRegAlloc(FunctionPass *RegAllocPass) override; void addOptimizedRegAlloc(FunctionPass *RegAllocPass) override; void addPreRegAlloc() override; @@ -326,6 +331,17 @@ bool GCNPassConfig::addInstSelector() { return false; } +#ifdef LLVM_BUILD_GLOBAL_ISEL +bool GCNPassConfig::addIRTranslator() { + addPass(new IRTranslator()); + return false; +} + +bool GCNPassConfig::addRegBankSelect() { + return false; +} +#endif + void GCNPassConfig::addPreRegAlloc() { const AMDGPUSubtarget &ST = *getAMDGPUTargetMachine().getSubtargetImpl(); |