nothing subtarget dependent about the intrinsic support in any
backend as far as I can tell.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214738
91177308-0d34-0410-b5e6-
96231b3b80d8
FrameLowering(TargetFrameLowering::StackGrowsUp,
64 * 16, // Maximum stack alignment (long16)
0),
- IntrinsicInfo(), InstrItins(getInstrItineraryForCPU(GPU)) {
+ InstrItins(getInstrItineraryForCPU(GPU)) {
if (getGeneration() <= AMDGPUSubtarget::NORTHERN_ISLANDS) {
InstrInfo.reset(new R600InstrInfo(*this));
const DataLayout DL;
AMDGPUFrameLowering FrameLowering;
- AMDGPUIntrinsicInfo IntrinsicInfo;
std::unique_ptr<AMDGPUTargetLowering> TLInfo;
std::unique_ptr<AMDGPUInstrInfo> InstrInfo;
InstrItineraryData InstrItins;
AMDGPUSubtarget &initializeSubtargetDependencies(StringRef GPU, StringRef FS);
const AMDGPUFrameLowering *getFrameLowering() const { return &FrameLowering; }
- const AMDGPUIntrinsicInfo *getIntrinsicInfo() const { return &IntrinsicInfo; }
const AMDGPUInstrInfo *getInstrInfo() const { return InstrInfo.get(); }
const AMDGPURegisterInfo *getRegisterInfo() const {
return &InstrInfo->getRegisterInfo();
CodeModel::Model CM,
CodeGenOpt::Level OptLevel)
: LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OptLevel),
- Subtarget(TT, CPU, FS, *this) {
+ Subtarget(TT, CPU, FS, *this), IntrinsicInfo() {
setRequiresStructuredCFG(true);
initAsmInfo();
}
namespace llvm {
class AMDGPUTargetMachine : public LLVMTargetMachine {
-
AMDGPUSubtarget Subtarget;
+ AMDGPUIntrinsicInfo IntrinsicInfo;
public:
AMDGPUTargetMachine(const Target &T, StringRef TT, StringRef FS,
return getSubtargetImpl()->getFrameLowering();
}
const AMDGPUIntrinsicInfo *getIntrinsicInfo() const override {
- return getSubtargetImpl()->getIntrinsicInfo();
+ return &IntrinsicInfo;
}
const AMDGPUInstrInfo *getInstrInfo() const override {
return getSubtargetImpl()->getInstrInfo();