1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/CodeGen/AsmPrinter/DwarfException.h
Saleem Abdulrasool 9563db9981 CodeGen: refactor DwarfException
DwarfException served as a base class for exception handling directive emission.
However, this is also used by other exception models (e.g. Win64EH).  Rename
this class to EHStreamer and split it out of DwarfException.h.  NFC.

Use the opportunity to fix up some of the documentation comments to match
current LLVM style.  Also rename some functions to conform better with current
LLVM coding style.

llvm-svn: 210622
2014-06-11 01:19:03 +00:00

120 lines
3.7 KiB
C++

//===-- DwarfException.h - Dwarf Exception Framework -----------*- C++ -*--===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains support for writing dwarf exception info into asm files.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_ASMPRINTER_DWARFEXCEPTION_H
#define LLVM_CODEGEN_ASMPRINTER_DWARFEXCEPTION_H
#include "EHStreamer.h"
#include "llvm/CodeGen/AsmPrinter.h"
namespace llvm {
class MachineFunction;
class ARMTargetStreamer;
class DwarfCFIException : public EHStreamer {
/// shouldEmitPersonality - Per-function flag to indicate if .cfi_personality
/// should be emitted.
bool shouldEmitPersonality;
/// shouldEmitLSDA - Per-function flag to indicate if .cfi_lsda
/// should be emitted.
bool shouldEmitLSDA;
/// shouldEmitMoves - Per-function flag to indicate if frame moves info
/// should be emitted.
bool shouldEmitMoves;
AsmPrinter::CFIMoveType moveTypeModule;
public:
//===--------------------------------------------------------------------===//
// Main entry points.
//
DwarfCFIException(AsmPrinter *A);
virtual ~DwarfCFIException();
/// endModule - Emit all exception information that should come after the
/// content.
void endModule() override;
/// beginFunction - Gather pre-function exception information. Assumes being
/// emitted immediately after the function entry point.
void beginFunction(const MachineFunction *MF) override;
/// endFunction - Gather and emit post-function exception information.
void endFunction(const MachineFunction *) override;
};
class ARMException : public EHStreamer {
void emitTypeInfos(unsigned TTypeEncoding) override;
ARMTargetStreamer &getTargetStreamer();
/// shouldEmitCFI - Per-function flag to indicate if frame CFI info
/// should be emitted.
bool shouldEmitCFI;
public:
//===--------------------------------------------------------------------===//
// Main entry points.
//
ARMException(AsmPrinter *A);
virtual ~ARMException();
/// endModule - Emit all exception information that should come after the
/// content.
void endModule() override;
/// beginFunction - Gather pre-function exception information. Assumes being
/// emitted immediately after the function entry point.
void beginFunction(const MachineFunction *MF) override;
/// endFunction - Gather and emit post-function exception information.
void endFunction(const MachineFunction *) override;
};
class Win64Exception : public EHStreamer {
/// shouldEmitPersonality - Per-function flag to indicate if personality
/// info should be emitted.
bool shouldEmitPersonality;
/// shouldEmitLSDA - Per-function flag to indicate if the LSDA
/// should be emitted.
bool shouldEmitLSDA;
/// shouldEmitMoves - Per-function flag to indicate if frame moves info
/// should be emitted.
bool shouldEmitMoves;
public:
//===--------------------------------------------------------------------===//
// Main entry points.
//
Win64Exception(AsmPrinter *A);
virtual ~Win64Exception();
/// endModule - Emit all exception information that should come after the
/// content.
void endModule() override;
/// beginFunction - Gather pre-function exception information. Assumes being
/// emitted immediately after the function entry point.
void beginFunction(const MachineFunction *MF) override;
/// endFunction - Gather and emit post-function exception information.
void endFunction(const MachineFunction *) override;
};
} // End of namespace llvm
#endif