1616#include " ARCFrameLowering.h"
1717#include " ARCISelLowering.h"
1818#include " ARCInstrInfo.h"
19- #include " llvm/CodeGen/SelectionDAGTargetInfo.h"
2019#include " llvm/CodeGen/TargetSubtargetInfo.h"
2120#include < string>
2221
@@ -33,7 +32,7 @@ class ARCSubtarget : public ARCGenSubtargetInfo {
3332 ARCInstrInfo InstrInfo;
3433 ARCFrameLowering FrameLowering;
3534 ARCTargetLowering TLInfo;
36- SelectionDAGTargetInfo TSInfo;
35+ std::unique_ptr< const SelectionDAGTargetInfo> TSInfo;
3736
3837 // ARC processor extensions
3938 bool Xnorm = false ;
@@ -44,6 +43,8 @@ class ARCSubtarget : public ARCGenSubtargetInfo {
4443 ARCSubtarget (const Triple &TT, const std::string &CPU, const std::string &FS,
4544 const TargetMachine &TM);
4645
46+ ~ARCSubtarget () override ;
47+
4748 // / Parses features string setting specified subtarget options.
4849 // / Definition of function is auto generated by tblgen.
4950 void ParseSubtargetFeatures (StringRef CPU, StringRef TuneCPU, StringRef FS);
@@ -58,9 +59,8 @@ class ARCSubtarget : public ARCGenSubtargetInfo {
5859 const ARCRegisterInfo *getRegisterInfo () const override {
5960 return &InstrInfo.getRegisterInfo ();
6061 }
61- const SelectionDAGTargetInfo *getSelectionDAGInfo () const override {
62- return &TSInfo;
63- }
62+
63+ const SelectionDAGTargetInfo *getSelectionDAGInfo () const override ;
6464
6565 bool hasNorm () const { return Xnorm; }
6666};
0 commit comments