mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-24 23:29:41 +00:00
Don't repeat names in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234427 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4b72aeb95c
commit
ca3d6c0fe6
@ -58,9 +58,9 @@ using legacy::PassManagerBase;
|
|||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
///
|
///
|
||||||
/// TargetMachine - Primary interface to the complete machine description for
|
/// Primary interface to the complete machine description for the target
|
||||||
/// the target machine. All target-specific information should be accessible
|
/// machine. All target-specific information should be accessible through this
|
||||||
/// through this interface.
|
/// interface.
|
||||||
///
|
///
|
||||||
class TargetMachine {
|
class TargetMachine {
|
||||||
TargetMachine(const TargetMachine &) = delete;
|
TargetMachine(const TargetMachine &) = delete;
|
||||||
@ -70,25 +70,25 @@ protected: // Can only create subclasses.
|
|||||||
StringRef TargetTriple, StringRef CPU, StringRef FS,
|
StringRef TargetTriple, StringRef CPU, StringRef FS,
|
||||||
const TargetOptions &Options);
|
const TargetOptions &Options);
|
||||||
|
|
||||||
/// TheTarget - The Target that this machine was created for.
|
/// The Target that this machine was created for.
|
||||||
const Target &TheTarget;
|
const Target &TheTarget;
|
||||||
|
|
||||||
/// DataLayout - For ABI type size and alignment.
|
/// For ABI type size and alignment.
|
||||||
const DataLayout DL;
|
const DataLayout DL;
|
||||||
|
|
||||||
/// TargetTriple, TargetCPU, TargetFS - Triple string, CPU name, and target
|
/// Triple string, CPU name, and target feature strings the TargetMachine
|
||||||
/// feature strings the TargetMachine instance is created with.
|
/// instance is created with.
|
||||||
std::string TargetTriple;
|
std::string TargetTriple;
|
||||||
std::string TargetCPU;
|
std::string TargetCPU;
|
||||||
std::string TargetFS;
|
std::string TargetFS;
|
||||||
|
|
||||||
/// CodeGenInfo - Low level target information such as relocation model.
|
/// Low level target information such as relocation model. Non-const to
|
||||||
/// Non-const to allow resetting optimization level per-function.
|
/// allow resetting optimization level per-function.
|
||||||
MCCodeGenInfo *CodeGenInfo;
|
MCCodeGenInfo *CodeGenInfo;
|
||||||
|
|
||||||
/// AsmInfo - Contains target specific asm information.
|
/// Contains target specific asm information.
|
||||||
///
|
|
||||||
const MCAsmInfo *AsmInfo;
|
const MCAsmInfo *AsmInfo;
|
||||||
|
|
||||||
const MCRegisterInfo *MRI;
|
const MCRegisterInfo *MRI;
|
||||||
const MCInstrInfo *MII;
|
const MCInstrInfo *MII;
|
||||||
const MCSubtargetInfo *STI;
|
const MCSubtargetInfo *STI;
|
||||||
@ -106,8 +106,8 @@ public:
|
|||||||
StringRef getTargetCPU() const { return TargetCPU; }
|
StringRef getTargetCPU() const { return TargetCPU; }
|
||||||
StringRef getTargetFeatureString() const { return TargetFS; }
|
StringRef getTargetFeatureString() const { return TargetFS; }
|
||||||
|
|
||||||
/// getSubtargetImpl - virtual method implemented by subclasses that returns
|
/// Virtual method implemented by subclasses that returns a reference to that
|
||||||
/// a reference to that target's TargetSubtargetInfo-derived member variable.
|
/// target's TargetSubtargetInfo-derived member variable.
|
||||||
virtual const TargetSubtargetInfo *getSubtargetImpl(const Function &) const {
|
virtual const TargetSubtargetInfo *getSubtargetImpl(const Function &) const {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -115,15 +115,15 @@ public:
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// getSubtarget - This method returns a pointer to the specified type of
|
/// This method returns a pointer to the specified type of
|
||||||
/// TargetSubtargetInfo. In debug builds, it verifies that the object being
|
/// TargetSubtargetInfo. In debug builds, it verifies that the object being
|
||||||
/// returned is of the correct type.
|
/// returned is of the correct type.
|
||||||
template <typename STC> const STC &getSubtarget(const Function &F) const {
|
template <typename STC> const STC &getSubtarget(const Function &F) const {
|
||||||
return *static_cast<const STC*>(getSubtargetImpl(F));
|
return *static_cast<const STC*>(getSubtargetImpl(F));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// getDataLayout - This method returns a pointer to the DataLayout for
|
/// This method returns a pointer to the DataLayout for the target. It should
|
||||||
/// the target. It should be unchanging for every subtarget.
|
/// be unchanging for every subtarget.
|
||||||
const DataLayout *getDataLayout() const { return &DL; }
|
const DataLayout *getDataLayout() const { return &DL; }
|
||||||
|
|
||||||
/// \brief Reset the target options based on the function's attributes.
|
/// \brief Reset the target options based on the function's attributes.
|
||||||
@ -131,16 +131,14 @@ public:
|
|||||||
// from TargetMachine.
|
// from TargetMachine.
|
||||||
void resetTargetOptions(const Function &F) const;
|
void resetTargetOptions(const Function &F) const;
|
||||||
|
|
||||||
/// getMCAsmInfo - Return target specific asm information.
|
/// Return target specific asm information.
|
||||||
///
|
|
||||||
const MCAsmInfo *getMCAsmInfo() const { return AsmInfo; }
|
const MCAsmInfo *getMCAsmInfo() const { return AsmInfo; }
|
||||||
|
|
||||||
const MCRegisterInfo *getMCRegisterInfo() const { return MRI; }
|
const MCRegisterInfo *getMCRegisterInfo() const { return MRI; }
|
||||||
const MCInstrInfo *getMCInstrInfo() const { return MII; }
|
const MCInstrInfo *getMCInstrInfo() const { return MII; }
|
||||||
const MCSubtargetInfo *getMCSubtargetInfo() const { return STI; }
|
const MCSubtargetInfo *getMCSubtargetInfo() const { return STI; }
|
||||||
|
|
||||||
/// getIntrinsicInfo - If intrinsic information is available, return it. If
|
/// If intrinsic information is available, return it. If not, return null.
|
||||||
/// not, return null.
|
|
||||||
///
|
|
||||||
virtual const TargetIntrinsicInfo *getIntrinsicInfo() const {
|
virtual const TargetIntrinsicInfo *getIntrinsicInfo() const {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -148,20 +146,18 @@ public:
|
|||||||
bool requiresStructuredCFG() const { return RequireStructuredCFG; }
|
bool requiresStructuredCFG() const { return RequireStructuredCFG; }
|
||||||
void setRequiresStructuredCFG(bool Value) { RequireStructuredCFG = Value; }
|
void setRequiresStructuredCFG(bool Value) { RequireStructuredCFG = Value; }
|
||||||
|
|
||||||
/// getRelocationModel - Returns the code generation relocation model. The
|
/// Returns the code generation relocation model. The choices are static, PIC,
|
||||||
/// choices are static, PIC, and dynamic-no-pic, and target default.
|
/// and dynamic-no-pic, and target default.
|
||||||
Reloc::Model getRelocationModel() const;
|
Reloc::Model getRelocationModel() const;
|
||||||
|
|
||||||
/// getCodeModel - Returns the code model. The choices are small, kernel,
|
/// Returns the code model. The choices are small, kernel, medium, large, and
|
||||||
/// medium, large, and target default.
|
/// target default.
|
||||||
CodeModel::Model getCodeModel() const;
|
CodeModel::Model getCodeModel() const;
|
||||||
|
|
||||||
/// getTLSModel - Returns the TLS model which should be used for the given
|
/// Returns the TLS model which should be used for the given global variable.
|
||||||
/// global variable.
|
|
||||||
TLSModel::Model getTLSModel(const GlobalValue *GV) const;
|
TLSModel::Model getTLSModel(const GlobalValue *GV) const;
|
||||||
|
|
||||||
/// getOptLevel - Returns the optimization level: None, Less,
|
/// Returns the optimization level: None, Less, Default, or Aggressive.
|
||||||
/// Default, or Aggressive.
|
|
||||||
CodeGenOpt::Level getOptLevel() const;
|
CodeGenOpt::Level getOptLevel() const;
|
||||||
|
|
||||||
/// \brief Overrides the optimization level.
|
/// \brief Overrides the optimization level.
|
||||||
@ -198,19 +194,19 @@ public:
|
|||||||
/// uses this to answer queries about the IR.
|
/// uses this to answer queries about the IR.
|
||||||
virtual TargetIRAnalysis getTargetIRAnalysis();
|
virtual TargetIRAnalysis getTargetIRAnalysis();
|
||||||
|
|
||||||
/// CodeGenFileType - These enums are meant to be passed into
|
/// These enums are meant to be passed into addPassesToEmitFile to indicate
|
||||||
/// addPassesToEmitFile to indicate what type of file to emit, and returned by
|
/// what type of file to emit, and returned by it to indicate what type of
|
||||||
/// it to indicate what type of file could actually be made.
|
/// file could actually be made.
|
||||||
enum CodeGenFileType {
|
enum CodeGenFileType {
|
||||||
CGFT_AssemblyFile,
|
CGFT_AssemblyFile,
|
||||||
CGFT_ObjectFile,
|
CGFT_ObjectFile,
|
||||||
CGFT_Null // Do not emit any output.
|
CGFT_Null // Do not emit any output.
|
||||||
};
|
};
|
||||||
|
|
||||||
/// addPassesToEmitFile - Add passes to the specified pass manager to get the
|
/// Add passes to the specified pass manager to get the specified file
|
||||||
/// specified file emitted. Typically this will involve several steps of code
|
/// emitted. Typically this will involve several steps of code generation.
|
||||||
/// generation. This method should return true if emission of this file type
|
/// This method should return true if emission of this file type is not
|
||||||
/// is not supported, or false on success.
|
/// supported, or false on success.
|
||||||
virtual bool addPassesToEmitFile(PassManagerBase &,
|
virtual bool addPassesToEmitFile(PassManagerBase &,
|
||||||
formatted_raw_ostream &,
|
formatted_raw_ostream &,
|
||||||
CodeGenFileType,
|
CodeGenFileType,
|
||||||
@ -220,10 +216,10 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// addPassesToEmitMC - Add passes to the specified pass manager to get
|
/// Add passes to the specified pass manager to get machine code emitted with
|
||||||
/// machine code emitted with the MCJIT. This method returns true if machine
|
/// the MCJIT. This method returns true if machine code is not supported. It
|
||||||
/// code is not supported. It fills the MCContext Ctx pointer which can be
|
/// fills the MCContext Ctx pointer which can be used to build custom
|
||||||
/// used to build custom MCStreamer.
|
/// MCStreamer.
|
||||||
///
|
///
|
||||||
virtual bool addPassesToEmitMC(PassManagerBase &,
|
virtual bool addPassesToEmitMC(PassManagerBase &,
|
||||||
MCContext *&,
|
MCContext *&,
|
||||||
@ -237,8 +233,8 @@ public:
|
|||||||
MCSymbol *getSymbol(const GlobalValue *GV, Mangler &Mang) const;
|
MCSymbol *getSymbol(const GlobalValue *GV, Mangler &Mang) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// LLVMTargetMachine - This class describes a target machine that is
|
/// This class describes a target machine that is implemented with the LLVM
|
||||||
/// implemented with the LLVM target-independent code generator.
|
/// target-independent code generator.
|
||||||
///
|
///
|
||||||
class LLVMTargetMachine : public TargetMachine {
|
class LLVMTargetMachine : public TargetMachine {
|
||||||
protected: // Can only create subclasses.
|
protected: // Can only create subclasses.
|
||||||
@ -255,23 +251,21 @@ public:
|
|||||||
/// generator to answer queries about the IR.
|
/// generator to answer queries about the IR.
|
||||||
TargetIRAnalysis getTargetIRAnalysis() override;
|
TargetIRAnalysis getTargetIRAnalysis() override;
|
||||||
|
|
||||||
/// createPassConfig - Create a pass configuration object to be used by
|
/// Create a pass configuration object to be used by addPassToEmitX methods
|
||||||
/// addPassToEmitX methods for generating a pipeline of CodeGen passes.
|
/// for generating a pipeline of CodeGen passes.
|
||||||
virtual TargetPassConfig *createPassConfig(PassManagerBase &PM);
|
virtual TargetPassConfig *createPassConfig(PassManagerBase &PM);
|
||||||
|
|
||||||
/// addPassesToEmitFile - Add passes to the specified pass manager to get the
|
/// Add passes to the specified pass manager to get the specified file
|
||||||
/// specified file emitted. Typically this will involve several steps of code
|
/// emitted. Typically this will involve several steps of code generation.
|
||||||
/// generation.
|
|
||||||
bool addPassesToEmitFile(PassManagerBase &PM, formatted_raw_ostream &Out,
|
bool addPassesToEmitFile(PassManagerBase &PM, formatted_raw_ostream &Out,
|
||||||
CodeGenFileType FileType, bool DisableVerify = true,
|
CodeGenFileType FileType, bool DisableVerify = true,
|
||||||
AnalysisID StartAfter = nullptr,
|
AnalysisID StartAfter = nullptr,
|
||||||
AnalysisID StopAfter = nullptr) override;
|
AnalysisID StopAfter = nullptr) override;
|
||||||
|
|
||||||
/// addPassesToEmitMC - Add passes to the specified pass manager to get
|
/// Add passes to the specified pass manager to get machine code emitted with
|
||||||
/// machine code emitted with the MCJIT. This method returns true if machine
|
/// the MCJIT. This method returns true if machine code is not supported. It
|
||||||
/// code is not supported. It fills the MCContext Ctx pointer which can be
|
/// fills the MCContext Ctx pointer which can be used to build custom
|
||||||
/// used to build custom MCStreamer.
|
/// MCStreamer.
|
||||||
///
|
|
||||||
bool addPassesToEmitMC(PassManagerBase &PM, MCContext *&Ctx,
|
bool addPassesToEmitMC(PassManagerBase &PM, MCContext *&Ctx,
|
||||||
raw_ostream &OS, bool DisableVerify = true) override;
|
raw_ostream &OS, bool DisableVerify = true) override;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user