Skip to content

Commit

Permalink
Move the verbose asm option to be part of the options struct and
Browse files Browse the repository at this point in the history
set appropriately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209258 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
echristo committed May 20, 2014
1 parent b38059a commit 4f6d26d
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 33 deletions.
4 changes: 3 additions & 1 deletion include/llvm/MC/MCTargetOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ class MCTargetOptions {
unsigned MCUseDwarfDirectory : 1;
unsigned ShowMCEncoding : 1;
unsigned ShowMCInst : 1;
unsigned AsmVerbose : 1;
MCTargetOptions();
};

Expand All @@ -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
}

Expand Down
4 changes: 4 additions & 0 deletions include/llvm/MC/MCTargetOptionsCommandFlags.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 =
Expand All @@ -57,6 +60,7 @@ static inline MCTargetOptions InitMCTargetOptionsFromFlags() {
Options.MCSaveTempLabels = SaveTempLabels;
Options.ShowMCEncoding = ShowMCEncoding;
Options.ShowMCInst = ShowMCInst;
Options.AsmVerbose = AsmVerbose;
return Options;
}

Expand Down
4 changes: 2 additions & 2 deletions include/llvm/Target/TargetMachine.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,11 +187,11 @@ class TargetMachine {

/// 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.
Expand Down
18 changes: 3 additions & 15 deletions lib/CodeGen/LLVMTargetMachine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/MC/MCTargetOptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
14 changes: 3 additions & 11 deletions lib/Target/TargetMachine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,6 @@
#include "llvm/Target/TargetLoweringObjectFile.h"
using namespace llvm;

//---------------------------------------------------------------------------
// Command-line options that tend to be useful on more than one back-end.
//

namespace llvm {
bool AsmVerbosityDefault(false);
}

//---------------------------------------------------------------------------
// TargetMachine Class
//
Expand Down Expand Up @@ -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 {
Expand Down
7 changes: 4 additions & 3 deletions tools/llc/llc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down Expand Up @@ -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]
Expand Down

0 comments on commit 4f6d26d

Please sign in to comment.