diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Target/CSKY/CSKYTargetMachine.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Target/CSKY/CSKYTargetMachine.cpp | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/contrib/llvm-project/llvm/lib/Target/CSKY/CSKYTargetMachine.cpp b/contrib/llvm-project/llvm/lib/Target/CSKY/CSKYTargetMachine.cpp index d19f28fddd53..c5a57f32e29a 100644 --- a/contrib/llvm-project/llvm/lib/Target/CSKY/CSKYTargetMachine.cpp +++ b/contrib/llvm-project/llvm/lib/Target/CSKY/CSKYTargetMachine.cpp @@ -12,6 +12,7 @@  #include "CSKYTargetMachine.h"  #include "CSKY.h" +#include "CSKYMachineFunctionInfo.h"  #include "CSKYSubtarget.h"  #include "CSKYTargetObjectFile.h"  #include "TargetInfo/CSKYTargetInfo.h" @@ -20,6 +21,7 @@  #include "llvm/CodeGen/TargetPassConfig.h"  #include "llvm/CodeGen/TargetSubtargetInfo.h"  #include "llvm/MC/TargetRegistry.h" +#include <optional>  using namespace llvm; @@ -28,6 +30,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeCSKYTarget() {    PassRegistry *Registry = PassRegistry::getPassRegistry();    initializeCSKYConstantIslandsPass(*Registry); +  initializeCSKYDAGToDAGISelPass(*Registry);  }  static std::string computeDataLayout(const Triple &TT) { @@ -48,8 +51,8 @@ static std::string computeDataLayout(const Triple &TT) {  CSKYTargetMachine::CSKYTargetMachine(const Target &T, const Triple &TT,                                       StringRef CPU, StringRef FS,                                       const TargetOptions &Options, -                                     Optional<Reloc::Model> RM, -                                     Optional<CodeModel::Model> CM, +                                     std::optional<Reloc::Model> RM, +                                     std::optional<CodeModel::Model> CM,                                       CodeGenOpt::Level OL, bool JIT)      : LLVMTargetMachine(T, computeDataLayout(TT), TT, CPU, FS, Options,                          RM.value_or(Reloc::Static), @@ -86,6 +89,13 @@ CSKYTargetMachine::getSubtargetImpl(const Function &F) const {    return I.get();  } +MachineFunctionInfo *CSKYTargetMachine::createMachineFunctionInfo( +    BumpPtrAllocator &Allocator, const Function &F, +    const TargetSubtargetInfo *STI) const { +  return CSKYMachineFunctionInfo::create<CSKYMachineFunctionInfo>(Allocator, F, +                                                                  STI); +} +  namespace {  class CSKYPassConfig : public TargetPassConfig {  public: @@ -113,7 +123,7 @@ void CSKYPassConfig::addIRPasses() {  }  bool CSKYPassConfig::addInstSelector() { -  addPass(createCSKYISelDag(getCSKYTargetMachine())); +  addPass(createCSKYISelDag(getCSKYTargetMachine(), getOptLevel()));    return false;  } | 
