diff options
Diffstat (limited to 'contrib/llvm/lib/Target/TargetMachine.cpp')
| -rw-r--r-- | contrib/llvm/lib/Target/TargetMachine.cpp | 67 | 
1 files changed, 18 insertions, 49 deletions
| diff --git a/contrib/llvm/lib/Target/TargetMachine.cpp b/contrib/llvm/lib/Target/TargetMachine.cpp index 74a1f4e8da56..fe8a7cebd0a0 100644 --- a/contrib/llvm/lib/Target/TargetMachine.cpp +++ b/contrib/llvm/lib/Target/TargetMachine.cpp @@ -40,8 +40,6 @@ namespace llvm {    bool JITExceptionHandling;    bool JITEmitDebugInfo;    bool JITEmitDebugInfoToDisk; -  Reloc::Model RelocationModel; -  CodeModel::Model CMModel;    bool GuaranteedTailCallOpt;    unsigned StackAlignmentOverride;    bool RealignStack; @@ -49,6 +47,7 @@ namespace llvm {    bool StrongPHIElim;    bool HasDivModLibcall;    bool AsmVerbosityDefault(false); +  bool EnableSegmentedStacks;  }  static cl::opt<bool, true> @@ -143,38 +142,6 @@ EmitJitDebugInfoToDisk("jit-emit-debug-to-disk",    cl::location(JITEmitDebugInfoToDisk),    cl::init(false)); -static cl::opt<llvm::Reloc::Model, true> -DefRelocationModel("relocation-model", -  cl::desc("Choose relocation model"), -  cl::location(RelocationModel), -  cl::init(Reloc::Default), -  cl::values( -    clEnumValN(Reloc::Default, "default", -               "Target default relocation model"), -    clEnumValN(Reloc::Static, "static", -               "Non-relocatable code"), -    clEnumValN(Reloc::PIC_, "pic", -               "Fully relocatable, position independent code"), -    clEnumValN(Reloc::DynamicNoPIC, "dynamic-no-pic", -               "Relocatable external references, non-relocatable code"), -    clEnumValEnd)); -static cl::opt<llvm::CodeModel::Model, true> -DefCodeModel("code-model", -  cl::desc("Choose code model"), -  cl::location(CMModel), -  cl::init(CodeModel::Default), -  cl::values( -    clEnumValN(CodeModel::Default, "default", -               "Target default code model"), -    clEnumValN(CodeModel::Small, "small", -               "Small code model"), -    clEnumValN(CodeModel::Kernel, "kernel", -               "Kernel code model"), -    clEnumValN(CodeModel::Medium, "medium", -               "Medium code model"), -    clEnumValN(CodeModel::Large, "large", -               "Large code model"), -    clEnumValEnd));  static cl::opt<bool, true>  EnableGuaranteedTailCallOpt("tailcallopt",    cl::desc("Turn fastcc calls into tail calls by (potentially) changing ABI."), @@ -212,13 +179,20 @@ static cl::opt<bool>  FunctionSections("ffunction-sections",    cl::desc("Emit functions into separate sections"),    cl::init(false)); +static cl::opt<bool, true> +SegmentedStacks("segmented-stacks", +  cl::desc("Use segmented stacks if possible."), +  cl::location(EnableSegmentedStacks), +  cl::init(false)); +                           //---------------------------------------------------------------------------  // TargetMachine Class  //  TargetMachine::TargetMachine(const Target &T,                               StringRef TT, StringRef CPU, StringRef FS) -  : TheTarget(T), TargetTriple(TT), TargetCPU(CPU), TargetFS(FS), AsmInfo(0), +  : TheTarget(T), TargetTriple(TT), TargetCPU(CPU), TargetFS(FS), +    CodeGenInfo(0), AsmInfo(0),      MCRelaxAll(false),      MCNoExecStack(false),      MCSaveTempLabels(false), @@ -231,29 +205,24 @@ TargetMachine::TargetMachine(const Target &T,  }  TargetMachine::~TargetMachine() { +  delete CodeGenInfo;    delete AsmInfo;  }  /// getRelocationModel - Returns the code generation relocation model. The  /// choices are static, PIC, and dynamic-no-pic, and target default. -Reloc::Model TargetMachine::getRelocationModel() { -  return RelocationModel; -} - -/// setRelocationModel - Sets the code generation relocation model. -void TargetMachine::setRelocationModel(Reloc::Model Model) { -  RelocationModel = Model; +Reloc::Model TargetMachine::getRelocationModel() const { +  if (!CodeGenInfo) +    return Reloc::Default; +  return CodeGenInfo->getRelocationModel();  }  /// getCodeModel - Returns the code model. The choices are small, kernel,  /// medium, large, and target default. -CodeModel::Model TargetMachine::getCodeModel() { -  return CMModel; -} - -/// setCodeModel - Sets the code model. -void TargetMachine::setCodeModel(CodeModel::Model Model) { -  CMModel = Model; +CodeModel::Model TargetMachine::getCodeModel() const { +  if (!CodeGenInfo) +    return CodeModel::Default; +  return CodeGenInfo->getCodeModel();  }  bool TargetMachine::getAsmVerbosityDefault() { | 
