#include "MipsSubtarget.h"
#include "Mips.h"
#include "MipsCallLowering.h"
#include "MipsLegalizerInfo.h"
#include "MipsMachineFunction.h"
#include "MipsRegisterBankInfo.h"
#include "MipsRegisterInfo.h"
#include "MipsTargetMachine.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/Function.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacellvm;
#define DEBUG_TYPE …
#define GET_SUBTARGETINFO_TARGET_DESC
#define GET_SUBTARGETINFO_CTOR
#include "MipsGenSubtargetInfo.inc"
static cl::opt<bool>
Mixed16_32("mips-mixed-16-32", cl::init(false),
cl::desc("Allow for a mixture of Mips16 "
"and Mips32 code in a single output file"),
cl::Hidden);
static cl::opt<bool> Mips_Os16("mips-os16", cl::init(false),
cl::desc("Compile all functions that don't use "
"floating point as Mips 16"),
cl::Hidden);
static cl::opt<bool> Mips16HardFloat("mips16-hard-float", cl::NotHidden,
cl::desc("Enable mips16 hard float."),
cl::init(false));
static cl::opt<bool>
Mips16ConstantIslands("mips16-constant-islands", cl::NotHidden,
cl::desc("Enable mips16 constant islands."),
cl::init(true));
static cl::opt<bool>
GPOpt("mgpopt", cl::Hidden,
cl::desc("Enable gp-relative addressing of mips small data items"));
bool MipsSubtarget::DspWarningPrinted = …;
bool MipsSubtarget::MSAWarningPrinted = …;
bool MipsSubtarget::VirtWarningPrinted = …;
bool MipsSubtarget::CRCWarningPrinted = …;
bool MipsSubtarget::GINVWarningPrinted = …;
bool MipsSubtarget::MIPS1WarningPrinted = …;
void MipsSubtarget::anchor() { … }
MipsSubtarget::MipsSubtarget(const Triple &TT, StringRef CPU, StringRef FS,
bool little, const MipsTargetMachine &TM,
MaybeAlign StackAlignOverride)
: … { … }
bool MipsSubtarget::isPositionIndependent() const { … }
bool MipsSubtarget::enablePostRAScheduler() const { … }
void MipsSubtarget::getCriticalPathRCs(RegClassVector &CriticalPathRCs) const { … }
CodeGenOptLevel MipsSubtarget::getOptLevelToEnablePostRAScheduler() const { … }
MipsSubtarget &
MipsSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS,
const TargetMachine &TM) { … }
bool MipsSubtarget::useConstantIslands() { … }
Reloc::Model MipsSubtarget::getRelocationModel() const { … }
bool MipsSubtarget::isABI_N64() const { … }
bool MipsSubtarget::isABI_N32() const { … }
bool MipsSubtarget::isABI_O32() const { … }
const MipsABIInfo &MipsSubtarget::getABI() const { … }
const CallLowering *MipsSubtarget::getCallLowering() const { … }
const LegalizerInfo *MipsSubtarget::getLegalizerInfo() const { … }
const RegisterBankInfo *MipsSubtarget::getRegBankInfo() const { … }
InstructionSelector *MipsSubtarget::getInstructionSelector() const { … }