diff options
author | Eric Christopher <echristo@gmail.com> | 2014-05-20 23:59:50 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2014-05-20 23:59:50 +0000 |
commit | 4f6d26dbe89d51362b665fe8fb0f206434e52471 (patch) | |
tree | 5a8a56dc301ac59d51362fd454b8a03f81fbfba8 | |
parent | b38059ab25cdabc9bcf4819cd82ab5955e8d3e3e (diff) | |
download | llvm-4f6d26dbe89d51362b665fe8fb0f206434e52471.tar.gz llvm-4f6d26dbe89d51362b665fe8fb0f206434e52471.tar.bz2 llvm-4f6d26dbe89d51362b665fe8fb0f206434e52471.tar.xz |
Move the verbose asm option to be part of the options struct and
set appropriately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209258 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCTargetOptions.h | 4 | ||||
-rw-r--r-- | include/llvm/MC/MCTargetOptionsCommandFlags.h | 4 | ||||
-rw-r--r-- | include/llvm/Target/TargetMachine.h | 4 | ||||
-rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 18 | ||||
-rw-r--r-- | lib/MC/MCTargetOptions.cpp | 2 | ||||
-rw-r--r-- | lib/Target/TargetMachine.cpp | 14 | ||||
-rw-r--r-- | tools/llc/llc.cpp | 7 |
7 files changed, 20 insertions, 33 deletions
diff --git a/include/llvm/MC/MCTargetOptions.h b/include/llvm/MC/MCTargetOptions.h index ad34958ae3..b4f5a97972 100644 --- a/include/llvm/MC/MCTargetOptions.h +++ b/include/llvm/MC/MCTargetOptions.h @@ -28,6 +28,7 @@ public: unsigned MCUseDwarfDirectory : 1; unsigned ShowMCEncoding : 1; unsigned ShowMCInst : 1; + unsigned AsmVerbose : 1; MCTargetOptions(); }; @@ -39,7 +40,8 @@ inline bool operator==(const MCTargetOptions &LHS, const MCTargetOptions &RHS) { ARE_EQUAL(MCSaveTempLabels) && ARE_EQUAL(MCUseDwarfDirectory) && ARE_EQUAL(ShowMCEncoding) && - ARE_EQUAL(ShowMCInst)); + ARE_EQUAL(ShowMCInst) && + ARE_EQUAL(AsmVerbose)); #undef ARE_EQUAL } diff --git a/include/llvm/MC/MCTargetOptionsCommandFlags.h b/include/llvm/MC/MCTargetOptionsCommandFlags.h index 1edf8f75b1..55ac142157 100644 --- a/include/llvm/MC/MCTargetOptionsCommandFlags.h +++ b/include/llvm/MC/MCTargetOptionsCommandFlags.h @@ -47,6 +47,9 @@ cl::opt<bool> ShowMCEncoding("show-mc-encoding", cl::Hidden, cl::opt<bool> ShowMCInst("show-mc-inst", cl::Hidden, cl::desc("Show instruction structure in .s output")); +cl::opt<bool> AsmVerbose("asm-verbose", cl::desc("Add comments to directives."), + cl::init(false)); + static inline MCTargetOptions InitMCTargetOptionsFromFlags() { MCTargetOptions Options; Options.SanitizeAddress = @@ -57,6 +60,7 @@ static inline MCTargetOptions InitMCTargetOptionsFromFlags() { Options.MCSaveTempLabels = SaveTempLabels; Options.ShowMCEncoding = ShowMCEncoding; Options.ShowMCInst = ShowMCInst; + Options.AsmVerbose = AsmVerbose; return Options; } diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index 17ebd07e5d..b263c571d9 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -187,11 +187,11 @@ public: /// getAsmVerbosityDefault - Returns the default value of asm verbosity. /// - static bool getAsmVerbosityDefault(); + bool getAsmVerbosityDefault() const ; /// setAsmVerbosityDefault - Set the default value of asm verbosity. Default /// is false. - static void setAsmVerbosityDefault(bool); + void setAsmVerbosityDefault(bool); /// getDataSections - Return true if data objects should be emitted into their /// own section, corresponds to -fdata-sections. diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index c8211b76be..a5ac0578ab 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -43,19 +43,6 @@ static cl::opt<cl::boolOrDefault> EnableFastISelOption("fast-isel", cl::Hidden, cl::desc("Enable the \"fast\" instruction selector")); -static cl::opt<cl::boolOrDefault> -AsmVerbose("asm-verbose", cl::desc("Add comments to directives."), - cl::init(cl::BOU_UNSET)); - -static bool getVerboseAsm() { - switch (AsmVerbose) { - case cl::BOU_UNSET: return TargetMachine::getAsmVerbosityDefault(); - case cl::BOU_TRUE: return true; - case cl::BOU_FALSE: return false; - } - llvm_unreachable("Invalid verbose asm state"); -} - void LLVMTargetMachine::initAsmInfo() { MCAsmInfo *TmpAsmInfo = TheTarget.createMCAsmInfo(*getRegisterInfo(), TargetTriple); @@ -188,8 +175,9 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM, MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(), TargetCPU); MCStreamer *S = getTarget().createAsmStreamer( - *Context, Out, getVerboseAsm(), Options.MCOptions.MCUseDwarfDirectory, - InstPrinter, MCE, MAB, Options.MCOptions.ShowMCInst); + *Context, Out, Options.MCOptions.AsmVerbose, + Options.MCOptions.MCUseDwarfDirectory, InstPrinter, MCE, MAB, + Options.MCOptions.ShowMCInst); AsmStreamer.reset(S); break; } diff --git a/lib/MC/MCTargetOptions.cpp b/lib/MC/MCTargetOptions.cpp index e1b6a5889d..8e946d57f7 100644 --- a/lib/MC/MCTargetOptions.cpp +++ b/lib/MC/MCTargetOptions.cpp @@ -14,6 +14,6 @@ namespace llvm { MCTargetOptions::MCTargetOptions() : SanitizeAddress(false), MCRelaxAll(false), MCNoExecStack(false), MCSaveTempLabels(false), MCUseDwarfDirectory(false), - ShowMCEncoding(false), ShowMCInst(false) {} + ShowMCEncoding(false), ShowMCInst(false), AsmVerbose(false) {} } // end namespace llvm diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 4ccf519494..dbd433d524 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -29,14 +29,6 @@ using namespace llvm; //--------------------------------------------------------------------------- -// Command-line options that tend to be useful on more than one back-end. -// - -namespace llvm { - bool AsmVerbosityDefault(false); -} - -//--------------------------------------------------------------------------- // TargetMachine Class // @@ -162,12 +154,12 @@ void TargetMachine::setOptLevel(CodeGenOpt::Level Level) const { CodeGenInfo->setOptLevel(Level); } -bool TargetMachine::getAsmVerbosityDefault() { - return AsmVerbosityDefault; +bool TargetMachine::getAsmVerbosityDefault() const { + return Options.MCOptions.AsmVerbose; } void TargetMachine::setAsmVerbosityDefault(bool V) { - AsmVerbosityDefault = V; + Options.MCOptions.AsmVerbose = V; } bool TargetMachine::getFunctionSections() const { diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index 269a5df904..abdc1ab634 100644 --- a/tools/llc/llc.cpp +++ b/tools/llc/llc.cpp @@ -273,6 +273,10 @@ static int compileModule(char **argv, LLVMContext &Context) { TargetOptions Options = InitTargetOptionsFromCodeGenFlags(); Options.DisableIntegratedAS = NoIntegratedAssembler; + // Override default to generate verbose assembly unless we've seen the flag. + if (AsmVerbose.getNumOccurrences() == 0) + Options.MCOptions.AsmVerbose = true; + std::unique_ptr<TargetMachine> target( TheTarget->createTargetMachine(TheTriple.getTriple(), MCPU, FeaturesStr, Options, RelocModel, CMModel, OLvl)); @@ -309,9 +313,6 @@ static int compileModule(char **argv, LLVMContext &Context) { mod->setDataLayout(DL); PM.add(new DataLayoutPass(mod)); - // Override default to generate verbose assembly. - Target.setAsmVerbosityDefault(true); - if (RelaxAll.getNumOccurrences() > 0 && FileType != TargetMachine::CGFT_ObjectFile) errs() << argv[0] |