mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Make references to HexagonTargetMachine "const".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181233 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -29,26 +29,25 @@ namespace llvm {
|
|||||||
class HexagonTargetMachine;
|
class HexagonTargetMachine;
|
||||||
class raw_ostream;
|
class raw_ostream;
|
||||||
|
|
||||||
FunctionPass *createHexagonISelDag(HexagonTargetMachine &TM,
|
FunctionPass *createHexagonISelDag(const HexagonTargetMachine &TM,
|
||||||
CodeGenOpt::Level OptLevel);
|
CodeGenOpt::Level OptLevel);
|
||||||
FunctionPass *createHexagonDelaySlotFillerPass(TargetMachine &TM);
|
FunctionPass *createHexagonDelaySlotFillerPass(const TargetMachine &TM);
|
||||||
FunctionPass *createHexagonFPMoverPass(TargetMachine &TM);
|
FunctionPass *createHexagonFPMoverPass(const TargetMachine &TM);
|
||||||
FunctionPass *createHexagonRemoveExtendArgs(HexagonTargetMachine &TM);
|
FunctionPass *createHexagonRemoveExtendArgs(const HexagonTargetMachine &TM);
|
||||||
FunctionPass *createHexagonCFGOptimizer(HexagonTargetMachine &TM);
|
FunctionPass *createHexagonCFGOptimizer(const HexagonTargetMachine &TM);
|
||||||
|
|
||||||
FunctionPass *createHexagonSplitTFRCondSets(HexagonTargetMachine &TM);
|
|
||||||
FunctionPass *createHexagonExpandPredSpillCode(HexagonTargetMachine &TM);
|
|
||||||
|
|
||||||
|
FunctionPass *createHexagonSplitTFRCondSets(const HexagonTargetMachine &TM);
|
||||||
|
FunctionPass *createHexagonExpandPredSpillCode(
|
||||||
|
const HexagonTargetMachine &TM);
|
||||||
FunctionPass *createHexagonHardwareLoops();
|
FunctionPass *createHexagonHardwareLoops();
|
||||||
FunctionPass *createHexagonPeephole();
|
FunctionPass *createHexagonPeephole();
|
||||||
FunctionPass *createHexagonFixupHwLoops();
|
FunctionPass *createHexagonFixupHwLoops();
|
||||||
FunctionPass *createHexagonPacketizer();
|
FunctionPass *createHexagonPacketizer();
|
||||||
FunctionPass *createHexagonNewValueJump();
|
FunctionPass *createHexagonNewValueJump();
|
||||||
|
|
||||||
|
|
||||||
/* TODO: object output.
|
/* TODO: object output.
|
||||||
MCCodeEmitter *createHexagonMCCodeEmitter(const Target &,
|
MCCodeEmitter *createHexagonMCCodeEmitter(const Target &,
|
||||||
TargetMachine &TM,
|
const TargetMachine &TM,
|
||||||
MCContext &Ctx);
|
MCContext &Ctx);
|
||||||
*/
|
*/
|
||||||
/* TODO: assembler input.
|
/* TODO: assembler input.
|
||||||
|
@ -31,16 +31,15 @@ namespace {
|
|||||||
class HexagonCFGOptimizer : public MachineFunctionPass {
|
class HexagonCFGOptimizer : public MachineFunctionPass {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
HexagonTargetMachine& QTM;
|
const HexagonTargetMachine& QTM;
|
||||||
const HexagonSubtarget &QST;
|
const HexagonSubtarget &QST;
|
||||||
|
|
||||||
void InvertAndChangeJumpTarget(MachineInstr*, MachineBasicBlock*);
|
void InvertAndChangeJumpTarget(MachineInstr*, MachineBasicBlock*);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static char ID;
|
static char ID;
|
||||||
HexagonCFGOptimizer(HexagonTargetMachine& TM) : MachineFunctionPass(ID),
|
HexagonCFGOptimizer(const HexagonTargetMachine& TM)
|
||||||
QTM(TM),
|
: MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {}
|
||||||
QST(*TM.getSubtargetImpl()) {}
|
|
||||||
|
|
||||||
const char *getPassName() const {
|
const char *getPassName() const {
|
||||||
return "Hexagon CFG Optimizer";
|
return "Hexagon CFG Optimizer";
|
||||||
@ -231,6 +230,6 @@ bool HexagonCFGOptimizer::runOnMachineFunction(MachineFunction &Fn) {
|
|||||||
// Public Constructor Functions
|
// Public Constructor Functions
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
FunctionPass *llvm::createHexagonCFGOptimizer(HexagonTargetMachine &TM) {
|
FunctionPass *llvm::createHexagonCFGOptimizer(const HexagonTargetMachine &TM) {
|
||||||
return new HexagonCFGOptimizer(TM);
|
return new HexagonCFGOptimizer(TM);
|
||||||
}
|
}
|
||||||
|
@ -44,12 +44,12 @@ using namespace llvm;
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class HexagonExpandPredSpillCode : public MachineFunctionPass {
|
class HexagonExpandPredSpillCode : public MachineFunctionPass {
|
||||||
HexagonTargetMachine& QTM;
|
const HexagonTargetMachine& QTM;
|
||||||
const HexagonSubtarget &QST;
|
const HexagonSubtarget &QST;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static char ID;
|
static char ID;
|
||||||
HexagonExpandPredSpillCode(HexagonTargetMachine& TM) :
|
HexagonExpandPredSpillCode(const HexagonTargetMachine& TM) :
|
||||||
MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {}
|
MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {}
|
||||||
|
|
||||||
const char *getPassName() const {
|
const char *getPassName() const {
|
||||||
@ -175,6 +175,7 @@ bool HexagonExpandPredSpillCode::runOnMachineFunction(MachineFunction &Fn) {
|
|||||||
// Public Constructor Functions
|
// Public Constructor Functions
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
FunctionPass *llvm::createHexagonExpandPredSpillCode(HexagonTargetMachine &TM) {
|
FunctionPass*
|
||||||
|
llvm::createHexagonExpandPredSpillCode(const HexagonTargetMachine &TM) {
|
||||||
return new HexagonExpandPredSpillCode(TM);
|
return new HexagonExpandPredSpillCode(TM);
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,11 @@ class HexagonDAGToDAGISel : public SelectionDAGISel {
|
|||||||
const HexagonSubtarget &Subtarget;
|
const HexagonSubtarget &Subtarget;
|
||||||
|
|
||||||
// Keep a reference to HexagonTargetMachine.
|
// Keep a reference to HexagonTargetMachine.
|
||||||
HexagonTargetMachine& TM;
|
const HexagonTargetMachine& TM;
|
||||||
const HexagonInstrInfo *TII;
|
const HexagonInstrInfo *TII;
|
||||||
DenseMap<const GlobalValue *, unsigned> GlobalAddressUseCountMap;
|
DenseMap<const GlobalValue *, unsigned> GlobalAddressUseCountMap;
|
||||||
public:
|
public:
|
||||||
explicit HexagonDAGToDAGISel(HexagonTargetMachine &targetmachine,
|
explicit HexagonDAGToDAGISel(const HexagonTargetMachine &targetmachine,
|
||||||
CodeGenOpt::Level OptLevel)
|
CodeGenOpt::Level OptLevel)
|
||||||
: SelectionDAGISel(targetmachine, OptLevel),
|
: SelectionDAGISel(targetmachine, OptLevel),
|
||||||
Subtarget(targetmachine.getSubtarget<HexagonSubtarget>()),
|
Subtarget(targetmachine.getSubtarget<HexagonSubtarget>()),
|
||||||
@ -180,7 +180,7 @@ inline SDValue XformUToUM1Imm(unsigned Imm) {
|
|||||||
/// createHexagonISelDag - This pass converts a legalized DAG into a
|
/// createHexagonISelDag - This pass converts a legalized DAG into a
|
||||||
/// Hexagon-specific DAG, ready for instruction scheduling.
|
/// Hexagon-specific DAG, ready for instruction scheduling.
|
||||||
///
|
///
|
||||||
FunctionPass *llvm::createHexagonISelDag(HexagonTargetMachine &TM,
|
FunctionPass *llvm::createHexagonISelDag(const HexagonTargetMachine &TM,
|
||||||
CodeGenOpt::Level OptLevel) {
|
CodeGenOpt::Level OptLevel) {
|
||||||
return new HexagonDAGToDAGISel(TM, OptLevel);
|
return new HexagonDAGToDAGISel(TM, OptLevel);
|
||||||
}
|
}
|
||||||
|
@ -78,6 +78,7 @@ bool HexagonRemoveExtendArgs::runOnFunction(Function &F) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
FunctionPass *llvm::createHexagonRemoveExtendArgs(HexagonTargetMachine &TM) {
|
FunctionPass*
|
||||||
|
llvm::createHexagonRemoveExtendArgs(const HexagonTargetMachine &TM) {
|
||||||
return new HexagonRemoveExtendArgs();
|
return new HexagonRemoveExtendArgs();
|
||||||
}
|
}
|
||||||
|
@ -52,12 +52,12 @@ using namespace llvm;
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
class HexagonSplitTFRCondSets : public MachineFunctionPass {
|
class HexagonSplitTFRCondSets : public MachineFunctionPass {
|
||||||
HexagonTargetMachine& QTM;
|
const HexagonTargetMachine &QTM;
|
||||||
const HexagonSubtarget &QST;
|
const HexagonSubtarget &QST;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static char ID;
|
static char ID;
|
||||||
HexagonSplitTFRCondSets(HexagonTargetMachine& TM) :
|
HexagonSplitTFRCondSets(const HexagonTargetMachine& TM) :
|
||||||
MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {}
|
MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {}
|
||||||
|
|
||||||
const char *getPassName() const {
|
const char *getPassName() const {
|
||||||
@ -211,6 +211,7 @@ bool HexagonSplitTFRCondSets::runOnMachineFunction(MachineFunction &Fn) {
|
|||||||
// Public Constructor Functions
|
// Public Constructor Functions
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
FunctionPass *llvm::createHexagonSplitTFRCondSets(HexagonTargetMachine &TM) {
|
FunctionPass*
|
||||||
|
llvm::createHexagonSplitTFRCondSets(const HexagonTargetMachine &TM) {
|
||||||
return new HexagonSplitTFRCondSets(TM);
|
return new HexagonSplitTFRCondSets(TM);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user