mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-23 17:32:49 +00:00
[C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207501 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5bbe6121c3
commit
d4657fb0c1
@ -42,7 +42,7 @@ public:
|
|||||||
const MemoryObject ®ion,
|
const MemoryObject ®ion,
|
||||||
uint64_t address,
|
uint64_t address,
|
||||||
raw_ostream &vStream,
|
raw_ostream &vStream,
|
||||||
raw_ostream &cStream) const;
|
raw_ostream &cStream) const override;
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,8 @@ public:
|
|||||||
void printInstruction(const MCInst *MI, raw_ostream &O);
|
void printInstruction(const MCInst *MI, raw_ostream &O);
|
||||||
static const char *getRegisterName(unsigned RegNo);
|
static const char *getRegisterName(unsigned RegNo);
|
||||||
|
|
||||||
virtual void printRegName(raw_ostream &OS, unsigned RegNo) const;
|
void printRegName(raw_ostream &OS, unsigned RegNo) const override;
|
||||||
virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot);
|
void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot) override;
|
||||||
private:
|
private:
|
||||||
void printInlineJT(const MCInst *MI, int opNum, raw_ostream &O);
|
void printInlineJT(const MCInst *MI, int opNum, raw_ostream &O);
|
||||||
void printInlineJT32(const MCInst *MI, int opNum, raw_ostream &O);
|
void printInlineJT32(const MCInst *MI, int opNum, raw_ostream &O);
|
||||||
|
@ -21,7 +21,7 @@ namespace llvm {
|
|||||||
class Target;
|
class Target;
|
||||||
|
|
||||||
class XCoreMCAsmInfo : public MCAsmInfoELF {
|
class XCoreMCAsmInfo : public MCAsmInfoELF {
|
||||||
virtual void anchor();
|
void anchor() override;
|
||||||
public:
|
public:
|
||||||
explicit XCoreMCAsmInfo(StringRef TT);
|
explicit XCoreMCAsmInfo(StringRef TT);
|
||||||
};
|
};
|
||||||
|
@ -59,7 +59,7 @@ namespace {
|
|||||||
: AsmPrinter(TM, Streamer), Subtarget(TM.getSubtarget<XCoreSubtarget>()),
|
: AsmPrinter(TM, Streamer), Subtarget(TM.getSubtarget<XCoreSubtarget>()),
|
||||||
MCInstLowering(*this) {}
|
MCInstLowering(*this) {}
|
||||||
|
|
||||||
virtual const char *getPassName() const {
|
const char *getPassName() const override {
|
||||||
return "XCore Assembly Printer";
|
return "XCore Assembly Printer";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,18 +71,18 @@ namespace {
|
|||||||
void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
|
void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
|
||||||
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||||
unsigned AsmVariant, const char *ExtraCode,
|
unsigned AsmVariant, const char *ExtraCode,
|
||||||
raw_ostream &O);
|
raw_ostream &O) override;
|
||||||
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
|
bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
|
||||||
unsigned AsmVariant, const char *ExtraCode,
|
unsigned AsmVariant, const char *ExtraCode,
|
||||||
raw_ostream &O) override;
|
raw_ostream &O) override;
|
||||||
|
|
||||||
void emitArrayBound(MCSymbol *Sym, const GlobalVariable *GV);
|
void emitArrayBound(MCSymbol *Sym, const GlobalVariable *GV);
|
||||||
virtual void EmitGlobalVariable(const GlobalVariable *GV);
|
void EmitGlobalVariable(const GlobalVariable *GV) override;
|
||||||
|
|
||||||
void EmitFunctionEntryLabel();
|
void EmitFunctionEntryLabel() override;
|
||||||
void EmitInstruction(const MachineInstr *MI);
|
void EmitInstruction(const MachineInstr *MI) override;
|
||||||
void EmitFunctionBodyStart();
|
void EmitFunctionBodyStart() override;
|
||||||
void EmitFunctionBodyEnd();
|
void EmitFunctionBodyEnd() override;
|
||||||
};
|
};
|
||||||
} // end of anonymous namespace
|
} // end of anonymous namespace
|
||||||
|
|
||||||
|
@ -27,29 +27,30 @@ namespace llvm {
|
|||||||
|
|
||||||
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into
|
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into
|
||||||
/// the function.
|
/// the function.
|
||||||
void emitPrologue(MachineFunction &MF) const;
|
void emitPrologue(MachineFunction &MF) const override;
|
||||||
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
|
void emitEpilogue(MachineFunction &MF,
|
||||||
|
MachineBasicBlock &MBB) const override;
|
||||||
|
|
||||||
bool spillCalleeSavedRegisters(MachineBasicBlock &MBB,
|
bool spillCalleeSavedRegisters(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator MI,
|
MachineBasicBlock::iterator MI,
|
||||||
const std::vector<CalleeSavedInfo> &CSI,
|
const std::vector<CalleeSavedInfo> &CSI,
|
||||||
const TargetRegisterInfo *TRI) const;
|
const TargetRegisterInfo *TRI) const override;
|
||||||
bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
|
bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator MI,
|
MachineBasicBlock::iterator MI,
|
||||||
const std::vector<CalleeSavedInfo> &CSI,
|
const std::vector<CalleeSavedInfo> &CSI,
|
||||||
const TargetRegisterInfo *TRI) const;
|
const TargetRegisterInfo *TRI) const override;
|
||||||
|
|
||||||
void eliminateCallFramePseudoInstr(MachineFunction &MF,
|
void eliminateCallFramePseudoInstr(MachineFunction &MF,
|
||||||
MachineBasicBlock &MBB,
|
MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I) const;
|
MachineBasicBlock::iterator I) const override;
|
||||||
|
|
||||||
bool hasFP(const MachineFunction &MF) const;
|
bool hasFP(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
|
void processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
|
||||||
RegScavenger *RS = nullptr) const;
|
RegScavenger *RS = nullptr) const override;
|
||||||
|
|
||||||
void processFunctionBeforeFrameFinalized(MachineFunction &MF,
|
void processFunctionBeforeFrameFinalized(MachineFunction &MF,
|
||||||
RegScavenger *RS = nullptr) const;
|
RegScavenger *RS = nullptr) const override;
|
||||||
|
|
||||||
//! Stack slot size (4 bytes)
|
//! Stack slot size (4 bytes)
|
||||||
static int stackSlotSize() {
|
static int stackSlotSize() {
|
||||||
|
@ -26,9 +26,9 @@ namespace {
|
|||||||
static char ID;
|
static char ID;
|
||||||
XCoreFTAOElim() : MachineFunctionPass(ID) {}
|
XCoreFTAOElim() : MachineFunctionPass(ID) {}
|
||||||
|
|
||||||
virtual bool runOnMachineFunction(MachineFunction &Fn);
|
bool runOnMachineFunction(MachineFunction &Fn) override;
|
||||||
|
|
||||||
virtual const char *getPassName() const {
|
const char *getPassName() const override {
|
||||||
return "XCore FRAME_TO_ARGS_OFFSET Elimination";
|
return "XCore FRAME_TO_ARGS_OFFSET Elimination";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -44,7 +44,7 @@ namespace {
|
|||||||
: SelectionDAGISel(TM, OptLevel),
|
: SelectionDAGISel(TM, OptLevel),
|
||||||
Subtarget(*TM.getSubtargetImpl()) { }
|
Subtarget(*TM.getSubtargetImpl()) { }
|
||||||
|
|
||||||
SDNode *Select(SDNode *N);
|
SDNode *Select(SDNode *N) override;
|
||||||
SDNode *SelectBRIND(SDNode *N);
|
SDNode *SelectBRIND(SDNode *N);
|
||||||
|
|
||||||
/// getI32Imm - Return a target constant with the specified value, of type
|
/// getI32Imm - Return a target constant with the specified value, of type
|
||||||
@ -70,7 +70,7 @@ namespace {
|
|||||||
bool SelectInlineAsmMemoryOperand(const SDValue &Op, char ConstraintCode,
|
bool SelectInlineAsmMemoryOperand(const SDValue &Op, char ConstraintCode,
|
||||||
std::vector<SDValue> &OutOps) override;
|
std::vector<SDValue> &OutOps) override;
|
||||||
|
|
||||||
virtual const char *getPassName() const {
|
const char *getPassName() const override {
|
||||||
return "XCore DAG->DAG Pattern Instruction Selection";
|
return "XCore DAG->DAG Pattern Instruction Selection";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,31 +97,30 @@ namespace llvm {
|
|||||||
explicit XCoreTargetLowering(XCoreTargetMachine &TM);
|
explicit XCoreTargetLowering(XCoreTargetMachine &TM);
|
||||||
|
|
||||||
using TargetLowering::isZExtFree;
|
using TargetLowering::isZExtFree;
|
||||||
virtual bool isZExtFree(SDValue Val, EVT VT2) const;
|
bool isZExtFree(SDValue Val, EVT VT2) const override;
|
||||||
|
|
||||||
|
|
||||||
virtual unsigned getJumpTableEncoding() const;
|
unsigned getJumpTableEncoding() const override;
|
||||||
virtual MVT getScalarShiftAmountTy(EVT LHSTy) const { return MVT::i32; }
|
MVT getScalarShiftAmountTy(EVT LHSTy) const override { return MVT::i32; }
|
||||||
|
|
||||||
/// LowerOperation - Provide custom lowering hooks for some operations.
|
/// LowerOperation - Provide custom lowering hooks for some operations.
|
||||||
virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const;
|
SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const override;
|
||||||
|
|
||||||
/// ReplaceNodeResults - Replace the results of node with an illegal result
|
/// ReplaceNodeResults - Replace the results of node with an illegal result
|
||||||
/// type with new values built out of custom code.
|
/// type with new values built out of custom code.
|
||||||
///
|
///
|
||||||
virtual void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>&Results,
|
void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>&Results,
|
||||||
SelectionDAG &DAG) const;
|
SelectionDAG &DAG) const override;
|
||||||
|
|
||||||
/// getTargetNodeName - This method returns the name of a target specific
|
/// getTargetNodeName - This method returns the name of a target specific
|
||||||
// DAG node.
|
// DAG node.
|
||||||
virtual const char *getTargetNodeName(unsigned Opcode) const;
|
const char *getTargetNodeName(unsigned Opcode) const override;
|
||||||
|
|
||||||
virtual MachineBasicBlock *
|
MachineBasicBlock *
|
||||||
EmitInstrWithCustomInserter(MachineInstr *MI,
|
EmitInstrWithCustomInserter(MachineInstr *MI,
|
||||||
MachineBasicBlock *MBB) const;
|
MachineBasicBlock *MBB) const override;
|
||||||
|
|
||||||
virtual bool isLegalAddressingMode(const AddrMode &AM,
|
bool isLegalAddressingMode(const AddrMode &AM, Type *Ty) const override;
|
||||||
Type *Ty) const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const XCoreTargetMachine &TM;
|
const XCoreTargetMachine &TM;
|
||||||
@ -176,44 +175,44 @@ namespace llvm {
|
|||||||
// Inline asm support
|
// Inline asm support
|
||||||
std::pair<unsigned, const TargetRegisterClass*>
|
std::pair<unsigned, const TargetRegisterClass*>
|
||||||
getRegForInlineAsmConstraint(const std::string &Constraint,
|
getRegForInlineAsmConstraint(const std::string &Constraint,
|
||||||
MVT VT) const;
|
MVT VT) const override;
|
||||||
|
|
||||||
// Expand specifics
|
// Expand specifics
|
||||||
SDValue TryExpandADDWithMul(SDNode *Op, SelectionDAG &DAG) const;
|
SDValue TryExpandADDWithMul(SDNode *Op, SelectionDAG &DAG) const;
|
||||||
SDValue ExpandADDSUB(SDNode *Op, SelectionDAG &DAG) const;
|
SDValue ExpandADDSUB(SDNode *Op, SelectionDAG &DAG) const;
|
||||||
|
|
||||||
virtual SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const;
|
SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const override;
|
||||||
|
|
||||||
virtual void computeMaskedBitsForTargetNode(const SDValue Op,
|
void computeMaskedBitsForTargetNode(const SDValue Op,
|
||||||
APInt &KnownZero,
|
APInt &KnownZero,
|
||||||
APInt &KnownOne,
|
APInt &KnownOne,
|
||||||
const SelectionDAG &DAG,
|
const SelectionDAG &DAG,
|
||||||
unsigned Depth = 0) const;
|
unsigned Depth = 0) const override;
|
||||||
|
|
||||||
virtual SDValue
|
SDValue
|
||||||
LowerFormalArguments(SDValue Chain,
|
LowerFormalArguments(SDValue Chain,
|
||||||
CallingConv::ID CallConv,
|
CallingConv::ID CallConv,
|
||||||
bool isVarArg,
|
bool isVarArg,
|
||||||
const SmallVectorImpl<ISD::InputArg> &Ins,
|
const SmallVectorImpl<ISD::InputArg> &Ins,
|
||||||
SDLoc dl, SelectionDAG &DAG,
|
SDLoc dl, SelectionDAG &DAG,
|
||||||
SmallVectorImpl<SDValue> &InVals) const;
|
SmallVectorImpl<SDValue> &InVals) const override;
|
||||||
|
|
||||||
virtual SDValue
|
SDValue
|
||||||
LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
||||||
SmallVectorImpl<SDValue> &InVals) const;
|
SmallVectorImpl<SDValue> &InVals) const override;
|
||||||
|
|
||||||
virtual SDValue
|
SDValue
|
||||||
LowerReturn(SDValue Chain,
|
LowerReturn(SDValue Chain,
|
||||||
CallingConv::ID CallConv, bool isVarArg,
|
CallingConv::ID CallConv, bool isVarArg,
|
||||||
const SmallVectorImpl<ISD::OutputArg> &Outs,
|
const SmallVectorImpl<ISD::OutputArg> &Outs,
|
||||||
const SmallVectorImpl<SDValue> &OutVals,
|
const SmallVectorImpl<SDValue> &OutVals,
|
||||||
SDLoc dl, SelectionDAG &DAG) const;
|
SDLoc dl, SelectionDAG &DAG) const override;
|
||||||
|
|
||||||
virtual bool
|
bool
|
||||||
CanLowerReturn(CallingConv::ID CallConv, MachineFunction &MF,
|
CanLowerReturn(CallingConv::ID CallConv, MachineFunction &MF,
|
||||||
bool isVarArg,
|
bool isVarArg,
|
||||||
const SmallVectorImpl<ISD::OutputArg> &ArgsFlags,
|
const SmallVectorImpl<ISD::OutputArg> &ArgsFlags,
|
||||||
LLVMContext &Context) const;
|
LLVMContext &Context) const override;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,55 +32,55 @@ public:
|
|||||||
/// such, whenever a client has an instance of instruction info, it should
|
/// such, whenever a client has an instance of instruction info, it should
|
||||||
/// always be able to get register info as well (through this method).
|
/// always be able to get register info as well (through this method).
|
||||||
///
|
///
|
||||||
virtual const TargetRegisterInfo &getRegisterInfo() const { return RI; }
|
const TargetRegisterInfo &getRegisterInfo() const { return RI; }
|
||||||
|
|
||||||
/// isLoadFromStackSlot - If the specified machine instruction is a direct
|
/// isLoadFromStackSlot - If the specified machine instruction is a direct
|
||||||
/// load from a stack slot, return the virtual or physical register number of
|
/// load from a stack slot, return the virtual or physical register number of
|
||||||
/// the destination along with the FrameIndex of the loaded stack slot. If
|
/// the destination along with the FrameIndex of the loaded stack slot. If
|
||||||
/// not, return 0. This predicate must return 0 if the instruction has
|
/// not, return 0. This predicate must return 0 if the instruction has
|
||||||
/// any side effects other than loading from the stack slot.
|
/// any side effects other than loading from the stack slot.
|
||||||
virtual unsigned isLoadFromStackSlot(const MachineInstr *MI,
|
unsigned isLoadFromStackSlot(const MachineInstr *MI,
|
||||||
int &FrameIndex) const;
|
int &FrameIndex) const override;
|
||||||
|
|
||||||
/// isStoreToStackSlot - If the specified machine instruction is a direct
|
/// isStoreToStackSlot - If the specified machine instruction is a direct
|
||||||
/// store to a stack slot, return the virtual or physical register number of
|
/// store to a stack slot, return the virtual or physical register number of
|
||||||
/// the source reg along with the FrameIndex of the loaded stack slot. If
|
/// the source reg along with the FrameIndex of the loaded stack slot. If
|
||||||
/// not, return 0. This predicate must return 0 if the instruction has
|
/// not, return 0. This predicate must return 0 if the instruction has
|
||||||
/// any side effects other than storing to the stack slot.
|
/// any side effects other than storing to the stack slot.
|
||||||
virtual unsigned isStoreToStackSlot(const MachineInstr *MI,
|
unsigned isStoreToStackSlot(const MachineInstr *MI,
|
||||||
int &FrameIndex) const;
|
int &FrameIndex) const override;
|
||||||
|
|
||||||
virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
|
bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
|
||||||
MachineBasicBlock *&FBB,
|
MachineBasicBlock *&FBB,
|
||||||
SmallVectorImpl<MachineOperand> &Cond,
|
SmallVectorImpl<MachineOperand> &Cond,
|
||||||
bool AllowModify) const;
|
bool AllowModify) const override;
|
||||||
|
|
||||||
virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
|
unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
|
||||||
MachineBasicBlock *FBB,
|
MachineBasicBlock *FBB,
|
||||||
const SmallVectorImpl<MachineOperand> &Cond,
|
const SmallVectorImpl<MachineOperand> &Cond,
|
||||||
DebugLoc DL) const;
|
DebugLoc DL) const override;
|
||||||
|
|
||||||
virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const;
|
unsigned RemoveBranch(MachineBasicBlock &MBB) const override;
|
||||||
|
|
||||||
virtual void copyPhysReg(MachineBasicBlock &MBB,
|
void copyPhysReg(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I, DebugLoc DL,
|
MachineBasicBlock::iterator I, DebugLoc DL,
|
||||||
unsigned DestReg, unsigned SrcReg,
|
unsigned DestReg, unsigned SrcReg,
|
||||||
bool KillSrc) const;
|
bool KillSrc) const override;
|
||||||
|
|
||||||
virtual void storeRegToStackSlot(MachineBasicBlock &MBB,
|
void storeRegToStackSlot(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator MI,
|
MachineBasicBlock::iterator MI,
|
||||||
unsigned SrcReg, bool isKill, int FrameIndex,
|
unsigned SrcReg, bool isKill, int FrameIndex,
|
||||||
const TargetRegisterClass *RC,
|
const TargetRegisterClass *RC,
|
||||||
const TargetRegisterInfo *TRI) const;
|
const TargetRegisterInfo *TRI) const override;
|
||||||
|
|
||||||
virtual void loadRegFromStackSlot(MachineBasicBlock &MBB,
|
void loadRegFromStackSlot(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator MI,
|
MachineBasicBlock::iterator MI,
|
||||||
unsigned DestReg, int FrameIndex,
|
unsigned DestReg, int FrameIndex,
|
||||||
const TargetRegisterClass *RC,
|
const TargetRegisterClass *RC,
|
||||||
const TargetRegisterInfo *TRI) const;
|
const TargetRegisterInfo *TRI) const override;
|
||||||
|
|
||||||
virtual bool ReverseBranchCondition(
|
bool ReverseBranchCondition(
|
||||||
SmallVectorImpl<MachineOperand> &Cond) const;
|
SmallVectorImpl<MachineOperand> &Cond) const override;
|
||||||
|
|
||||||
// Emit code before MBBI to load immediate value into physical register Reg.
|
// Emit code before MBBI to load immediate value into physical register Reg.
|
||||||
// Returns an iterator to the new instruction.
|
// Returns an iterator to the new instruction.
|
||||||
|
@ -48,7 +48,7 @@ namespace {
|
|||||||
|
|
||||||
bool lowerGlobal(GlobalVariable *GV);
|
bool lowerGlobal(GlobalVariable *GV);
|
||||||
|
|
||||||
bool runOnModule(Module &M);
|
bool runOnModule(Module &M) override;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,22 +29,23 @@ public:
|
|||||||
|
|
||||||
/// Code Generation virtual methods...
|
/// Code Generation virtual methods...
|
||||||
|
|
||||||
const MCPhysReg *getCalleeSavedRegs(const MachineFunction *MF =nullptr) const;
|
const MCPhysReg *
|
||||||
|
getCalleeSavedRegs(const MachineFunction *MF =nullptr) const override;
|
||||||
|
|
||||||
BitVector getReservedRegs(const MachineFunction &MF) const;
|
BitVector getReservedRegs(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
bool requiresRegisterScavenging(const MachineFunction &MF) const;
|
bool requiresRegisterScavenging(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
bool trackLivenessAfterRegAlloc(const MachineFunction &MF) const;
|
bool trackLivenessAfterRegAlloc(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
bool useFPForScavengingIndex(const MachineFunction &MF) const;
|
bool useFPForScavengingIndex(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
void eliminateFrameIndex(MachineBasicBlock::iterator II,
|
void eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||||
int SPAdj, unsigned FIOperandNum,
|
int SPAdj, unsigned FIOperandNum,
|
||||||
RegScavenger *RS = nullptr) const;
|
RegScavenger *RS = nullptr) const override;
|
||||||
|
|
||||||
// Debug information queries.
|
// Debug information queries.
|
||||||
unsigned getFrameRegister(const MachineFunction &MF) const;
|
unsigned getFrameRegister(const MachineFunction &MF) const override;
|
||||||
|
|
||||||
//! Return whether to emit frame moves
|
//! Return whether to emit frame moves
|
||||||
static bool needsFrameMoves(const MachineFunction &MF);
|
static bool needsFrameMoves(const MachineFunction &MF);
|
||||||
|
@ -25,14 +25,14 @@ public:
|
|||||||
explicit XCoreSelectionDAGInfo(const XCoreTargetMachine &TM);
|
explicit XCoreSelectionDAGInfo(const XCoreTargetMachine &TM);
|
||||||
~XCoreSelectionDAGInfo();
|
~XCoreSelectionDAGInfo();
|
||||||
|
|
||||||
virtual SDValue
|
SDValue
|
||||||
EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl,
|
EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc dl,
|
||||||
SDValue Chain,
|
SDValue Chain,
|
||||||
SDValue Op1, SDValue Op2,
|
SDValue Op1, SDValue Op2,
|
||||||
SDValue Op3, unsigned Align, bool isVolatile,
|
SDValue Op3, unsigned Align, bool isVolatile,
|
||||||
bool AlwaysInline,
|
bool AlwaysInline,
|
||||||
MachinePointerInfo DstPtrInfo,
|
MachinePointerInfo DstPtrInfo,
|
||||||
MachinePointerInfo SrcPtrInfo) const;
|
MachinePointerInfo SrcPtrInfo) const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -46,9 +46,9 @@ public:
|
|||||||
return getTM<XCoreTargetMachine>();
|
return getTM<XCoreTargetMachine>();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool addPreISel();
|
bool addPreISel() override;
|
||||||
virtual bool addInstSelector();
|
bool addInstSelector() override;
|
||||||
virtual bool addPreEmitPass();
|
bool addPreEmitPass() override;
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@ -37,28 +37,28 @@ public:
|
|||||||
Reloc::Model RM, CodeModel::Model CM,
|
Reloc::Model RM, CodeModel::Model CM,
|
||||||
CodeGenOpt::Level OL);
|
CodeGenOpt::Level OL);
|
||||||
|
|
||||||
virtual const XCoreInstrInfo *getInstrInfo() const { return &InstrInfo; }
|
const XCoreInstrInfo *getInstrInfo() const override { return &InstrInfo; }
|
||||||
virtual const XCoreFrameLowering *getFrameLowering() const {
|
const XCoreFrameLowering *getFrameLowering() const override {
|
||||||
return &FrameLowering;
|
return &FrameLowering;
|
||||||
}
|
}
|
||||||
virtual const XCoreSubtarget *getSubtargetImpl() const { return &Subtarget; }
|
const XCoreSubtarget *getSubtargetImpl() const override { return &Subtarget; }
|
||||||
virtual const XCoreTargetLowering *getTargetLowering() const {
|
const XCoreTargetLowering *getTargetLowering() const override {
|
||||||
return &TLInfo;
|
return &TLInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const XCoreSelectionDAGInfo* getSelectionDAGInfo() const {
|
const XCoreSelectionDAGInfo* getSelectionDAGInfo() const override {
|
||||||
return &TSInfo;
|
return &TSInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const TargetRegisterInfo *getRegisterInfo() const {
|
const TargetRegisterInfo *getRegisterInfo() const override {
|
||||||
return &InstrInfo.getRegisterInfo();
|
return &InstrInfo.getRegisterInfo();
|
||||||
}
|
}
|
||||||
virtual const DataLayout *getDataLayout() const { return &DL; }
|
const DataLayout *getDataLayout() const override { return &DL; }
|
||||||
|
|
||||||
// Pass Pipeline Configuration
|
// Pass Pipeline Configuration
|
||||||
virtual TargetPassConfig *createPassConfig(PassManagerBase &PM);
|
TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
|
||||||
|
|
||||||
virtual void addAnalysisPasses(PassManagerBase &PM);
|
void addAnalysisPasses(PassManagerBase &PM) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
@ -22,7 +22,7 @@ static const unsigned CodeModelLargeSize = 256;
|
|||||||
const MCSection *ReadOnlySectionLarge;
|
const MCSection *ReadOnlySectionLarge;
|
||||||
const MCSection *DataRelROSectionLarge;
|
const MCSection *DataRelROSectionLarge;
|
||||||
public:
|
public:
|
||||||
void Initialize(MCContext &Ctx, const TargetMachine &TM);
|
void Initialize(MCContext &Ctx, const TargetMachine &TM) override;
|
||||||
|
|
||||||
const MCSection *
|
const MCSection *
|
||||||
getExplicitSectionGlobal(const GlobalValue *GV,
|
getExplicitSectionGlobal(const GlobalValue *GV,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user