aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-28 17:42:09 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-28 17:42:09 +0000
commiteb9025d6984ba3d322deb156811c9fb7e73c17eb (patch)
tree09fdd8d579b8ada879fdf45f6e09cb69bb29ecaf /llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
parent02e831cf2f15196839c7a924465621f6bebc5dbd (diff)
downloadllvm-eb9025d6984ba3d322deb156811c9fb7e73c17eb.zip
llvm-eb9025d6984ba3d322deb156811c9fb7e73c17eb.tar.gz
llvm-eb9025d6984ba3d322deb156811c9fb7e73c17eb.tar.bz2
AMDGPU: Fix global isel crashes
llvm-svn: 274039
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 2ba5416..74014e5 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -14,16 +14,17 @@
//===----------------------------------------------------------------------===//
#include "AMDGPUTargetMachine.h"
-#include "AMDGPUTargetObjectFile.h"
#include "AMDGPU.h"
+#include "AMDGPUCallLowering.h"
+#include "AMDGPUTargetObjectFile.h"
#include "AMDGPUTargetTransformInfo.h"
#include "R600ISelLowering.h"
#include "R600InstrInfo.h"
#include "R600MachineScheduler.h"
#include "SIISelLowering.h"
#include "SIInstrInfo.h"
+
#include "llvm/Analysis/Passes.h"
-#include "llvm/CodeGen/GlobalISel/CallLowering.h"
#include "llvm/CodeGen/GlobalISel/IRTranslator.h"
#include "llvm/CodeGen/MachineFunctionAnalysis.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
@@ -198,8 +199,8 @@ const R600Subtarget *R600TargetMachine::getSubtargetImpl(
#ifdef LLVM_BUILD_GLOBAL_ISEL
namespace {
struct SIGISelActualAccessor : public GISelAccessor {
- std::unique_ptr<CallLowering> CallLoweringInfo;
- const CallLowering *getCallLowering() const override {
+ std::unique_ptr<AMDGPUCallLowering> CallLoweringInfo;
+ const AMDGPUCallLowering *getCallLowering() const override {
return CallLoweringInfo.get();
}
};
@@ -232,6 +233,8 @@ const SISubtarget *GCNTargetMachine::getSubtargetImpl(const Function &F) const {
GISelAccessor *GISel = new GISelAccessor();
#else
SIGISelActualAccessor *GISel = new SIGISelActualAccessor();
+ GISel->CallLoweringInfo.reset(
+ new AMDGPUCallLowering(*I->getTargetLowering()));
#endif
I->setGISelAccessor(*GISel);