[llvm-commits] CVS: llvm/lib/Target/TargetMachine.cpp
Evan Cheng
evan.cheng at apple.com
Wed Jul 5 18:53:49 PDT 2006
Changes in directory llvm/lib/Target:
TargetMachine.cpp updated: 1.48 -> 1.49
---
Log message:
Added option -code-model to set code model (only used in 64-bit) mode. Valid
values include small, kernel, medium, large, and default.
---
Diffs of the changes: (+30 -0)
TargetMachine.cpp | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+)
Index: llvm/lib/Target/TargetMachine.cpp
diff -u llvm/lib/Target/TargetMachine.cpp:1.48 llvm/lib/Target/TargetMachine.cpp:1.49
--- llvm/lib/Target/TargetMachine.cpp:1.48 Wed May 24 14:05:21 2006
+++ llvm/lib/Target/TargetMachine.cpp Wed Jul 5 20:53:35 2006
@@ -28,6 +28,7 @@
bool UnsafeFPMath;
bool FiniteOnlyFPMathOption;
Reloc::Model RelocationModel;
+ CodeModel::Model CMModel;
}
namespace {
cl::opt<bool, true> PrintCode("print-machineinstrs",
@@ -70,6 +71,24 @@
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 @@
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),
More information about the llvm-commits
mailing list