blob: 8dea38059ea471cf01397cf78a23ddaceddcee44 [file] [log] [blame]
//===-- GISelAccessor.h - GISel Accessor ------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
/// This file declares the API to access the various APIs related
/// to GlobalISel.
//
//===----------------------------------------------------------------------===/
#ifndef LLVM_CODEGEN_GLOBALISEL_GISELACCESSOR_H
#define LLVM_CODEGEN_GLOBALISEL_GISELACCESSOR_H
namespace llvm {
class CallLowering;
class InstructionSelector;
class LegalizerInfo;
class RegisterBankInfo;
/// The goal of this helper class is to gather the accessor to all
/// the APIs related to GlobalISel.
/// It should be derived to feature an actual accessor to the GISel APIs.
/// The reason why this is not simply done into the subtarget is to avoid
/// spreading ifdefs around.
struct GISelAccessor {
virtual ~GISelAccessor() {}
virtual const CallLowering *getCallLowering() const { return nullptr;}
virtual const InstructionSelector *getInstructionSelector() const {
return nullptr;
}
virtual const LegalizerInfo *getLegalizerInfo() const { return nullptr; }
virtual const RegisterBankInfo *getRegBankInfo() const { return nullptr;}
};
} // End namespace llvm;
#endif