~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to lib/CodeGen/AsmPrinter/AsmPrinterHandler.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//===-- lib/CodeGen/AsmPrinter/AsmPrinterHandler.h -------------*- C++ -*--===//
 
2
//
 
3
//                     The LLVM Compiler Infrastructure
 
4
//
 
5
// This file is distributed under the University of Illinois Open Source
 
6
// License. See LICENSE.TXT for details.
 
7
//
 
8
//===----------------------------------------------------------------------===//
 
9
//
 
10
// This file contains a generic interface for AsmPrinter handlers,
 
11
// like debug and EH info emitters.
 
12
//
 
13
//===----------------------------------------------------------------------===//
 
14
 
 
15
#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_ASMPRINTERHANDLER_H
 
16
#define LLVM_LIB_CODEGEN_ASMPRINTER_ASMPRINTERHANDLER_H
 
17
 
 
18
#include "llvm/Support/DataTypes.h"
 
19
 
 
20
namespace llvm {
 
21
 
 
22
class MachineFunction;
 
23
class MachineInstr;
 
24
class MCSymbol;
 
25
 
 
26
/// \brief Collects and handles AsmPrinter objects required to build debug
 
27
/// or EH information.
 
28
class AsmPrinterHandler {
 
29
public:
 
30
  virtual ~AsmPrinterHandler();
 
31
 
 
32
  /// \brief For symbols that have a size designated (e.g. common symbols),
 
33
  /// this tracks that size.
 
34
  virtual void setSymbolSize(const MCSymbol *Sym, uint64_t Size) = 0;
 
35
 
 
36
  /// \brief Emit all sections that should come after the content.
 
37
  virtual void endModule() = 0;
 
38
 
 
39
  /// \brief Gather pre-function debug information.
 
40
  /// Every beginFunction(MF) call should be followed by an endFunction(MF)
 
41
  /// call.
 
42
  virtual void beginFunction(const MachineFunction *MF) = 0;
 
43
 
 
44
  // \brief Emit any of function marker (like .cfi_endproc). This is called
 
45
  // before endFunction and cannot switch sections.
 
46
  virtual void markFunctionEnd();
 
47
 
 
48
  /// \brief Gather post-function debug information.
 
49
  /// Please note that some AsmPrinter implementations may not call
 
50
  /// beginFunction at all.
 
51
  virtual void endFunction(const MachineFunction *MF) = 0;
 
52
 
 
53
  /// \brief Process beginning of an instruction.
 
54
  virtual void beginInstruction(const MachineInstr *MI) = 0;
 
55
 
 
56
  /// \brief Process end of an instruction.
 
57
  virtual void endInstruction() = 0;
 
58
};
 
59
} // End of namespace llvm
 
60
 
 
61
#endif