summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-05-15 01:10:50 +0000
committerEric Christopher <echristo@gmail.com>2014-05-15 01:10:50 +0000
commit475ac5d302ba84ac13d34a9215c29c1a38ca5690 (patch)
tree04ad263f42a75a3c7990f052edc7fac9961025bf
parentafc6099348a77ec9c9b81fe90824975dca9f2d75 (diff)
Unify command line handling of MCTargetOptions and remove extra
options and code. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208833 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/CommandFlags.h8
-rw-r--r--include/llvm/MC/MCTargetOptionsCommandFlags.h29
-rw-r--r--tools/llc/llc.cpp12
-rw-r--r--tools/llvm-mc/llvm-mc.cpp9
4 files changed, 25 insertions, 33 deletions
diff --git a/include/llvm/CodeGen/CommandFlags.h b/include/llvm/CodeGen/CommandFlags.h
index 619826cf622..ac789e4af8a 100644
--- a/include/llvm/CodeGen/CommandFlags.h
+++ b/include/llvm/CodeGen/CommandFlags.h
@@ -70,11 +70,6 @@ CMModel("code-model",
"Large code model"),
clEnumValEnd));
-cl::opt<bool>
-RelaxAll("mc-relax-all",
- cl::desc("When used with filetype=obj, "
- "relax all fixups in the emitted object file"));
-
cl::opt<TargetMachine::CodeGenFileType>
FileType("filetype", cl::init(TargetMachine::CGFT_AssemblyFile),
cl::desc("Choose a file type (not all types are supported by all targets):"),
@@ -87,9 +82,6 @@ FileType("filetype", cl::init(TargetMachine::CGFT_AssemblyFile),
"Emit nothing, for performance testing"),
clEnumValEnd));
-cl::opt<bool> EnableDwarfDirectory("enable-dwarf-directory", cl::Hidden,
- cl::desc("Use .file directives with an explicit directory."));
-
cl::opt<bool>
DisableRedZone("disable-red-zone",
cl::desc("Do not emit code that uses the red zone."),
diff --git a/include/llvm/MC/MCTargetOptionsCommandFlags.h b/include/llvm/MC/MCTargetOptionsCommandFlags.h
index b26fd944d82..0dddc2fdfb1 100644
--- a/include/llvm/MC/MCTargetOptionsCommandFlags.h
+++ b/include/llvm/MC/MCTargetOptionsCommandFlags.h
@@ -20,22 +20,37 @@
using namespace llvm;
cl::opt<MCTargetOptions::AsmInstrumentation> AsmInstrumentation(
- "asm-instrumentation",
- cl::desc("Instrumentation of inline assembly and "
- "assembly source files"),
+ "asm-instrumentation", cl::desc("Instrumentation of inline assembly and "
+ "assembly source files"),
cl::init(MCTargetOptions::AsmInstrumentationNone),
- cl::values(clEnumValN(MCTargetOptions::AsmInstrumentationNone,
- "none",
+ cl::values(clEnumValN(MCTargetOptions::AsmInstrumentationNone, "none",
"no instrumentation at all"),
- clEnumValN(MCTargetOptions::AsmInstrumentationAddress,
- "address",
+ clEnumValN(MCTargetOptions::AsmInstrumentationAddress, "address",
"instrument instructions with memory arguments"),
clEnumValEnd));
+cl::opt<bool> RelaxAll("mc-relax-all",
+ cl::desc("When used with filetype=obj, "
+ "relax all fixups in the emitted object file"));
+
+cl::opt<bool> EnableDwarfDirectory(
+ "enable-dwarf-directory", cl::Hidden,
+ cl::desc("Use .file directives with an explicit directory."));
+
+cl::opt<bool> NoExecStack("mc-no-exec-stack",
+ cl::desc("File doesn't need an exec stack"));
+
+static cl::opt<bool>
+SaveTempLabels("L", cl::desc("Don't discard temporary labels"));
+
static inline MCTargetOptions InitMCTargetOptionsFromFlags() {
MCTargetOptions Options;
Options.SanitizeAddress =
(AsmInstrumentation == MCTargetOptions::AsmInstrumentationAddress);
+ Options.MCRelaxAll = RelaxAll;
+ Options.MCUseDwarfDirectory = EnableDwarfDirectory;
+ Options.MCNoExecStack = NoExecStack;
+ Options.MCSaveTempLabels = SaveTempLabels;
return Options;
}
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index 712817d9347..269a5df9041 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -287,9 +287,6 @@ static int compileModule(char **argv, LLVMContext &Context) {
assert(mod && "Should have exited if we didn't have a module!");
TargetMachine &Target = *target.get();
- if (EnableDwarfDirectory)
- Target.setMCUseDwarfDirectory(true);
-
if (GenerateSoftFloatCalls)
FloatABIForCalls = FloatABI::Soft;
@@ -315,13 +312,10 @@ static int compileModule(char **argv, LLVMContext &Context) {
// Override default to generate verbose assembly.
Target.setAsmVerbosityDefault(true);
- if (RelaxAll) {
- if (FileType != TargetMachine::CGFT_ObjectFile)
- errs() << argv[0]
+ if (RelaxAll.getNumOccurrences() > 0 &&
+ FileType != TargetMachine::CGFT_ObjectFile)
+ errs() << argv[0]
<< ": warning: ignoring -mc-relax-all because filetype != obj";
- else
- Target.setMCRelaxAll(true);
- }
{
formatted_raw_ostream FOS(Out->os());
diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp
index 364ae73401e..e87f1eef282 100644
--- a/tools/llvm-mc/llvm-mc.cpp
+++ b/tools/llvm-mc/llvm-mc.cpp
@@ -65,12 +65,6 @@ static cl::opt<unsigned>
OutputAsmVariant("output-asm-variant",
cl::desc("Syntax variant to use for output printing"));
-static cl::opt<bool>
-RelaxAll("mc-relax-all", cl::desc("Relax all fixups"));
-
-static cl::opt<bool>
-NoExecStack("mc-no-exec-stack", cl::desc("File doesn't need an exec stack"));
-
enum OutputFileType {
OFT_Null,
OFT_AssemblyFile,
@@ -148,9 +142,6 @@ NoInitialTextSection("n", cl::desc("Don't assume assembly file starts "
"in the text section"));
static cl::opt<bool>
-SaveTempLabels("L", cl::desc("Don't discard temporary labels"));
-
-static cl::opt<bool>
GenDwarfForAssembly("g", cl::desc("Generate dwarf debugging info for assembly "
"source files"));