summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-07-06 01:53:36 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-07-06 01:53:36 +0000
commit152ed053533b26194362994398c0ffad7e1c4109 (patch)
treedc1b5f01186e5c8cc1cdeb61a07467d95afb2b60 /lib
parent9e4692c61752313a01486594e8e1ccf573ad4a47 (diff)
downloadllvm-152ed053533b26194362994398c0ffad7e1c4109.tar.gz
llvm-152ed053533b26194362994398c0ffad7e1c4109.tar.bz2
llvm-152ed053533b26194362994398c0ffad7e1c4109.tar.xz
Added option -code-model to set code model (only used in 64-bit) mode. Valid
values include small, kernel, medium, large, and default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29009 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/TargetMachine.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp
index 507253722e..1fbad7d19a 100644
--- a/lib/Target/TargetMachine.cpp
+++ b/lib/Target/TargetMachine.cpp
@@ -28,6 +28,7 @@ namespace llvm {
bool UnsafeFPMath;
bool FiniteOnlyFPMathOption;
Reloc::Model RelocationModel;
+ CodeModel::Model CMModel;
}
namespace {
cl::opt<bool, true> PrintCode("print-machineinstrs",
@@ -70,6 +71,24 @@ namespace {
clEnumValN(Reloc::DynamicNoPIC, "dynamic-no-pic",
"Relocatable external references, non-relocatable code"),
clEnumValEnd));
+ cl::opt<llvm::CodeModel::Model, true>
+ DefCodeModel(
+ "code-model",
+ cl::desc("Choose relocation 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));
}
//---------------------------------------------------------------------------
@@ -94,6 +113,17 @@ void TargetMachine::setRelocationModel(Reloc::Model Model) {
RelocationModel = Model;
}
+/// 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;
+}
+
namespace llvm {
/// FiniteOnlyFPMath - This returns true when the -enable-finite-only-fp-math
/// option is specified on the command line. If this returns false (default),