diff options
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfLabel.h')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfLabel.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfLabel.h b/lib/CodeGen/AsmPrinter/DwarfLabel.h new file mode 100644 index 0000000..b493903 --- /dev/null +++ b/lib/CodeGen/AsmPrinter/DwarfLabel.h @@ -0,0 +1,56 @@ +//===--- lib/CodeGen/DwarfLabel.h - Dwarf Label -----------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// DWARF Labels. +// +//===----------------------------------------------------------------------===// + +#ifndef CODEGEN_ASMPRINTER_DWARFLABEL_H__ +#define CODEGEN_ASMPRINTER_DWARFLABEL_H__ + +#include "llvm/Support/Compiler.h" +#include <iosfwd> +#include <vector> + +namespace llvm { + class FoldingSetNodeID; + + //===--------------------------------------------------------------------===// + /// DWLabel - Labels are used to track locations in the assembler file. + /// Labels appear in the form @verbatim <prefix><Tag><Number> @endverbatim, + /// where the tag is a category of label (Ex. location) and number is a value + /// unique in that category. + class VISIBILITY_HIDDEN DWLabel { + /// Tag - Label category tag. Should always be a statically declared C + /// string. + /// + const char *Tag; + + /// Number - Value to make label unique. + /// + unsigned Number; + public: + DWLabel(const char *T, unsigned N) : Tag(T), Number(N) {} + + // Accessors. + const char *getTag() const { return Tag; } + unsigned getNumber() const { return Number; } + + /// Profile - Used to gather unique data for the folding set. + /// + void Profile(FoldingSetNodeID &ID) const; + +#ifndef NDEBUG + void print(std::ostream *O) const; + void print(std::ostream &O) const; +#endif + }; +} // end llvm namespace + +#endif |