|
LLVM
3.7.0
|
#include "DwarfDebug.h"#include "ByteStreamer.h"#include "DIEHash.h"#include "DebugLocEntry.h"#include "DwarfCompileUnit.h"#include "DwarfExpression.h"#include "DwarfUnit.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/Statistic.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/Triple.h"#include "llvm/CodeGen/DIE.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineModuleInfo.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DIBuilder.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/DebugInfo.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/Module.h"#include "llvm/IR/ValueHandle.h"#include "llvm/MC/MCAsmInfo.h"#include "llvm/MC/MCSection.h"#include "llvm/MC/MCStreamer.h"#include "llvm/MC/MCSymbol.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/Dwarf.h"#include "llvm/Support/Endian.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/FormattedStream.h"#include "llvm/Support/LEB128.h"#include "llvm/Support/MD5.h"#include "llvm/Support/Path.h"#include "llvm/Support/Timer.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetFrameLowering.h"#include "llvm/Target/TargetLoweringObjectFile.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Target/TargetOptions.h"#include "llvm/Target/TargetRegisterInfo.h"#include "llvm/Target/TargetSubtargetInfo.h"Go to the source code of this file.
Classes | |
| struct | ArangeSpan |
Macros | |
| #define | DEBUG_TYPE "dwarfdebug" |
Enumerations | |
| enum | DefaultOnOff |
Functions | |
| static bool | isObjCClass (StringRef Name) |
| static bool | hasObjCCategory (StringRef Name) |
| static void | getObjCClassCategory (StringRef In, StringRef &Class, StringRef &Category) |
| static StringRef | getObjCMethodName (StringRef In) |
| template<typename Func > | |
| void | forBothCUs (DwarfCompileUnit &CU, Func F) |
| static DebugLocEntry::Value | getDebugLocValue (const MachineInstr *MI) |
| static bool | piecesOverlap (const DIExpression *P1, const DIExpression *P2) |
| Determine whether two variable pieces overlap. More... | |
| static DebugLoc | findPrologueEndLoc (const MachineFunction *MF) |
| static dwarf::PubIndexEntryDescriptor | computeIndexValue (DwarfUnit *CU, const DIE *Die) |
| computeIndexValue - Compute the gdb index value for the DIE and CU. More... | |
| static void | emitDebugLocValue (const AsmPrinter &AP, const DIBasicType *BT, ByteStreamer &Streamer, const DebugLocEntry::Value &Value, unsigned PieceOffsetInBits) |
| static uint64_t | makeTypeSignature (StringRef Identifier) |
Variables | |
| static cl::opt< bool > | DisableDebugInfoPrinting ("disable-debug-info-print", cl::Hidden, cl::desc("Disable debug info printing")) |
| static cl::opt< bool > | UnknownLocations ("use-unknown-locations", cl::Hidden, cl::desc("Make an absence of debug location information explicit."), cl::init(false)) |
| static cl::opt< bool > | GenerateGnuPubSections ("generate-gnu-dwarf-pub-sections", cl::Hidden, cl::desc("Generate GNU-style pubnames and pubtypes"), cl::init(false)) |
| static cl::opt< bool > | GenerateARangeSection ("generate-arange-section", cl::Hidden, cl::desc("Generate dwarf aranges"), cl::init(false)) |
| static cl::opt< DefaultOnOff > | DwarfAccelTables ("dwarf-accel-tables", cl::Hidden, cl::desc("Output prototype dwarf accelerator tables."), cl::values(clEnumVal(Default,"Default for platform"), clEnumVal(Enable,"Enabled"), clEnumVal(Disable,"Disabled"), clEnumValEnd), cl::init(Default)) |
| static cl::opt< DefaultOnOff > | SplitDwarf ("split-dwarf", cl::Hidden, cl::desc("Output DWARF5 split debug info."), cl::values(clEnumVal(Default,"Default for platform"), clEnumVal(Enable,"Enabled"), clEnumVal(Disable,"Disabled"), clEnumValEnd), cl::init(Default)) |
| static cl::opt< DefaultOnOff > | DwarfPubSections ("generate-dwarf-pub-sections", cl::Hidden, cl::desc("Generate DWARF pubnames and pubtypes sections"), cl::values(clEnumVal(Default,"Default for platform"), clEnumVal(Enable,"Enabled"), clEnumVal(Disable,"Disabled"), clEnumValEnd), cl::init(Default)) |
| static const char *const | DWARFGroupName = "DWARF Emission" |
| static const char *const | DbgTimerName = "DWARF Debug Writer" |
| static LLVM_CONSTEXPR DwarfAccelTable::Atom | TypeAtoms [] |
| #define DEBUG_TYPE "dwarfdebug" |
Definition at line 58 of file DwarfDebug.cpp.
| enum DefaultOnOff |
Definition at line 80 of file DwarfDebug.cpp.
|
static |
computeIndexValue - Compute the gdb index value for the DIE and CU.
Definition at line 1336 of file DwarfDebug.cpp.
References llvm::dwarf::DW_AT_external, llvm::dwarf::DW_AT_specification, llvm::DIE::findAttribute(), llvm::DwarfUnit::getLanguage(), llvm::DIE::getTag(), llvm::dwarf::GIEK_FUNCTION, llvm::dwarf::GIEK_NONE, llvm::dwarf::GIEK_TYPE, llvm::dwarf::GIEK_VARIABLE, llvm::dwarf::GIEL_EXTERNAL, and llvm::dwarf::GIEL_STATIC.
|
static |
Definition at line 1471 of file DwarfDebug.cpp.
References llvm::DwarfExpression::AddSignedConstant(), llvm::AsmPrinter::EmitDwarfRegOp(), llvm::DIExpression::expr_op_begin(), llvm::DIExpression::expr_op_end(), llvm::AsmPrinter::getDwarfDebug(), llvm::DwarfDebug::getDwarfVersion(), llvm::DIBasicType::getEncoding(), llvm::DebugLocEntry::Value::getExpression(), llvm::DebugLocEntry::Value::getInt(), llvm::DebugLocEntry::Value::getLoc(), llvm::DIExpression::getNumElements(), llvm::MachineLocation::getOffset(), llvm::MachineLocation::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::DebugLocEntry::Value::isInt(), llvm::DebugLocEntry::Value::isLocation(), and llvm::AsmPrinter::MF.
Referenced by llvm::DebugLocEntry::finalize().
|
static |
Definition at line 1058 of file DwarfDebug.cpp.
References llvm::MachineInstr::FrameSetup, and llvm::AArch64CC::MI.
Referenced by llvm::DwarfDebug::beginFunction().
| void forBothCUs | ( | DwarfCompileUnit & | CU, |
| Func | F | ||
| ) |
Definition at line 334 of file DwarfDebug.cpp.
References F(), and llvm::DwarfCompileUnit::getSkeleton().
|
static |
Definition at line 733 of file DwarfDebug.cpp.
References llvm::MachineOperand::getCImm(), llvm::MachineInstr::getDebugExpression(), llvm::MachineOperand::getFPImm(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isCImm(), llvm::MachineOperand::isFPImm(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), llvm_unreachable, and llvm::MachineLocation::set().
Definition at line 259 of file DwarfDebug.cpp.
References llvm::StringRef::find(), hasObjCCategory(), and llvm::StringRef::slice().
Referenced by llvm::DwarfDebug::addSubprogramNames().
Definition at line 272 of file DwarfDebug.cpp.
References llvm::StringRef::find(), and llvm::StringRef::slice().
Referenced by llvm::DwarfDebug::addSubprogramNames().
Definition at line 252 of file DwarfDebug.cpp.
References llvm::StringRef::find(), isObjCClass(), and llvm::StringRef::npos.
Referenced by getObjCClassCategory().
Definition at line 248 of file DwarfDebug.cpp.
References llvm::StringRef::startswith().
Referenced by llvm::DwarfDebug::addSubprogramNames(), and hasObjCCategory().
|
static |
Definition at line 1887 of file DwarfDebug.cpp.
References llvm::MD5::final(), fuzzer::Hash(), llvm::support::endian::read64le(), and llvm::MD5::update().
Referenced by llvm::DwarfDebug::addDwarfTypeUnitType().
|
static |
Determine whether two variable pieces overlap.
Definition at line 758 of file DwarfDebug.cpp.
References llvm::DIExpression::getBitPieceOffset(), llvm::DIExpression::getBitPieceSize(), and llvm::DIExpression::isBitPiece().
Referenced by llvm::DwarfDebug::beginFunction().
Definition at line 108 of file DwarfDebug.cpp.
Referenced by llvm::DwarfDebug::DwarfDebug().
|
static |
Referenced by llvm::DwarfDebug::beginModule().
|
static |
Referenced by llvm::DwarfDebug::DwarfDebug().
Definition at line 107 of file DwarfDebug.cpp.
Referenced by llvm::DwarfDebug::DwarfDebug().
|
static |
Referenced by llvm::DwarfDebug::DwarfDebug().
|
static |
Referenced by llvm::DwarfDebug::endModule().
|
static |
Referenced by llvm::DwarfDebug::endModule().
|
static |
Referenced by llvm::DwarfDebug::DwarfDebug().
|
static |
Definition at line 189 of file DwarfDebug.cpp.
1.8.6