Reland 196270 "Generalize debug info / EH emission in AsmPrinter"

Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196288 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Timur Iskhodzhanov
2013-12-03 15:10:23 +00:00
parent 94f5a677f6
commit ac07cd54ed
11 changed files with 181 additions and 83 deletions

View File

@@ -22,6 +22,7 @@
#include "llvm/Support/ErrorHandling.h"
namespace llvm {
class AsmPrinterHandler;
class BlockAddress;
class GCStrategy;
class Constant;
@@ -110,13 +111,21 @@ namespace llvm {
/// function.
MachineLoopInfo *LI;
struct HandlerInfo {
AsmPrinterHandler *Handler;
const char *TimerName, *TimerGroupName;
HandlerInfo(AsmPrinterHandler *Handler, const char *TimerName,
const char *TimerGroupName)
: Handler(Handler), TimerName(TimerName),
TimerGroupName(TimerGroupName) {}
};
/// Handlers - a vector of all debug/EH info emitters we should use.
/// This vector maintains ownership of the emitters.
SmallVector<HandlerInfo, 1> Handlers;
/// DD - If the target supports dwarf debug info, this pointer is non-null.
DwarfDebug *DD;
/// DE - If the target supports dwarf exception info, this pointer is
/// non-null.
DwarfException *DE;
protected:
explicit AsmPrinter(TargetMachine &TM, MCStreamer &Streamer);