diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-03-25 01:47:28 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-03-25 01:47:28 +0000 |
commit | 5e5a63cf8f9ba2c46239961d0d4443795790eab4 (patch) | |
tree | 5b04a3c2ad679084ff9dd30e6ff436bb1946e60d /llvm/lib/CodeGen/AsmPrinter | |
parent | 9966403e900ce6c78c1d1e9dbb54337b0a84ea41 (diff) | |
download | bcm5719-llvm-5e5a63cf8f9ba2c46239961d0d4443795790eab4.tar.gz bcm5719-llvm-5e5a63cf8f9ba2c46239961d0d4443795790eab4.zip |
CodeGen still defaults to non-verbose asm, but llc now overrides it and default to verbose.
llvm-svn: 67668
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp | 8 |
2 files changed, 17 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index e6205957c7f..48085d59a26 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -21,6 +21,7 @@ #include "llvm/CodeGen/MachineJumpTableInfo.h" #include "llvm/CodeGen/MachineModuleInfo.h" #include "llvm/CodeGen/DwarfWriter.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/Mangler.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetAsmInfo.h" @@ -35,13 +36,23 @@ #include <cerrno> using namespace llvm; +static cl::opt<cl::boolOrDefault> +AsmVerbose("asm-verbose", cl::desc("Add comments to directives."), + cl::init(cl::BOU_UNSET)); + char AsmPrinter::ID = 0; AsmPrinter::AsmPrinter(raw_ostream &o, TargetMachine &tm, - const TargetAsmInfo *T, bool F) + const TargetAsmInfo *T, bool F, bool VDef) : MachineFunctionPass(&ID), FunctionNumber(0), Fast(F), O(o), TM(tm), TAI(T), TRI(tm.getRegisterInfo()), IsInTextSection(false) -{} +{ + switch (AsmVerbose) { + case cl::BOU_UNSET: VerboseAsm = VDef; break; + case cl::BOU_TRUE: VerboseAsm = true; break; + case cl::BOU_FALSE: VerboseAsm = false; break; + } +} AsmPrinter::~AsmPrinter() { for (gcp_iterator I = GCMetadataPrinters.begin(), diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index 4dbab67da71..ab4fe728bf0 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -1072,7 +1072,7 @@ public: Asm->EOL("Offset"); } else if (Reg < 64) { Asm->EmitInt8(DW_CFA_offset + Reg); - if (VerboseAsm) + if (Asm->isVerbose()) Asm->EOL("DW_CFA_offset + Reg (" + utostr(Reg) + ")"); else Asm->EOL(); @@ -2197,7 +2197,7 @@ private: // Emit the code (index) for the abbreviation. Asm->EmitULEB128Bytes(AbbrevNumber); - if (VerboseAsm) + if (Asm->isVerbose()) Asm->EOL(std::string("Abbrev [" + utostr(AbbrevNumber) + "] 0x" + utohexstr(Die->getOffset()) + @@ -2487,7 +2487,7 @@ private: // Isolate current sections line info. const std::vector<SrcLineInfo> &LineInfos = SectionSourceLines[j]; - if (VerboseAsm) { + if (Asm->isVerbose()) { const Section* S = SectionMap[j + 1]; O << '\t' << TAI->getCommentString() << " Section" << S->getName() << '\n'; @@ -2504,7 +2504,7 @@ private: unsigned LabelID = MMI->MappedLabel(LineInfo.getLabelID()); if (!LabelID) continue; - if (!VerboseAsm) + if (!Asm->isVerbose()) Asm->EOL(); else { std::pair<unsigned, unsigned> SourceID = |