mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 16:19:52 +00:00
Introduce MCCodeGenInfo, which keeps information that can affect codegen
(including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#ifndef LLVM_TARGET_TARGETMACHINE_H
|
||||
#define LLVM_TARGET_TARGETMACHINE_H
|
||||
|
||||
#include "llvm/MC/MCCodeGenInfo.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
@@ -23,6 +24,7 @@ namespace llvm {
|
||||
class InstrItineraryData;
|
||||
class JITCodeEmitter;
|
||||
class MCAsmInfo;
|
||||
class MCCodeGenInfo;
|
||||
class MCContext;
|
||||
class Pass;
|
||||
class PassManager;
|
||||
@@ -41,16 +43,6 @@ class TargetSubtargetInfo;
|
||||
class formatted_raw_ostream;
|
||||
class raw_ostream;
|
||||
|
||||
// Relocation model types.
|
||||
namespace Reloc {
|
||||
enum Model {
|
||||
Default,
|
||||
Static,
|
||||
PIC_, // Cannot be named PIC due to collision with -DPIC
|
||||
DynamicNoPIC
|
||||
};
|
||||
}
|
||||
|
||||
// Code model types.
|
||||
namespace CodeModel {
|
||||
enum Model {
|
||||
@@ -108,6 +100,10 @@ protected: // Can only create subclasses.
|
||||
std::string TargetCPU;
|
||||
std::string TargetFS;
|
||||
|
||||
/// CodeGenInfo - Low level target information such as relocation model.
|
||||
///
|
||||
const MCCodeGenInfo *CodeGenInfo;
|
||||
|
||||
/// AsmInfo - Contains target specific asm information.
|
||||
///
|
||||
const MCAsmInfo *AsmInfo;
|
||||
@@ -214,11 +210,7 @@ public:
|
||||
|
||||
/// getRelocationModel - Returns the code generation relocation model. The
|
||||
/// choices are static, PIC, and dynamic-no-pic, and target default.
|
||||
static Reloc::Model getRelocationModel();
|
||||
|
||||
/// setRelocationModel - Sets the code generation relocation model.
|
||||
///
|
||||
static void setRelocationModel(Reloc::Model Model);
|
||||
Reloc::Model getRelocationModel() const;
|
||||
|
||||
/// getCodeModel - Returns the code model. The choices are small, kernel,
|
||||
/// medium, large, and target default.
|
||||
@@ -309,7 +301,7 @@ public:
|
||||
class LLVMTargetMachine : public TargetMachine {
|
||||
protected: // Can only create subclasses.
|
||||
LLVMTargetMachine(const Target &T, StringRef TargetTriple,
|
||||
StringRef CPU, StringRef FS);
|
||||
StringRef CPU, StringRef FS, Reloc::Model RM);
|
||||
|
||||
private:
|
||||
/// addCommonCodeGenPasses - Add standard LLVM codegen passes used for
|
||||
|
||||
Reference in New Issue
Block a user