diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-28 17:42:09 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-28 17:42:09 +0000 |
commit | eb9025d6984ba3d322deb156811c9fb7e73c17eb (patch) | |
tree | 09fdd8d579b8ada879fdf45f6e09cb69bb29ecaf /llvm/lib | |
parent | 02e831cf2f15196839c7a924465621f6bebc5dbd (diff) | |
download | bcm5719-llvm-eb9025d6984ba3d322deb156811c9fb7e73c17eb.tar.gz bcm5719-llvm-eb9025d6984ba3d322deb156811c9fb7e73c17eb.zip |
AMDGPU: Fix global isel crashes
llvm-svn: 274039
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 11 |
2 files changed, 9 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp index 622e14c0767..b49ddc6ee7f 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -13,7 +13,6 @@ //===----------------------------------------------------------------------===// #include "AMDGPUSubtarget.h" -#include "AMDGPUCallLowering.h" #include "R600ISelLowering.h" #include "R600InstrInfo.h" #include "SIFrameLowering.h" @@ -190,7 +189,8 @@ SISubtarget::SISubtarget(const Triple &TT, StringRef GPU, StringRef FS, AMDGPUSubtarget(TT, GPU, FS, TM), InstrInfo(*this), FrameLowering(TargetFrameLowering::StackGrowsUp, getStackAlignment(), 0), - TLInfo(TM, *this) {} + TLInfo(TM, *this), + GISel() {} unsigned R600Subtarget::getStackEntrySize() const { switch (getWavefrontSize()) { diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp index 2ba5416d4b6..74014e505f8 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); |