forked from OSchip/llvm-project
Move the verbose asm option to be part of the options struct and
set appropriately. llvm-svn: 209258
This commit is contained in:
parent
5719614b77
commit
eb71972887
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
//
|
||||
|
@ -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 {
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Reference in New Issue