LLVM
4.0.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
llvm.src
include
llvm
DebugInfo
DWARF
DWARFAcceleratorTable.h
Go to the documentation of this file.
1
//===--- DWARFAcceleratorTable.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
#ifndef LLVM_LIB_DEBUGINFO_DWARFACCELERATORTABLE_H
11
#define LLVM_LIB_DEBUGINFO_DWARFACCELERATORTABLE_H
12
13
#include "
llvm/ADT/SmallVector.h
"
14
#include "
llvm/DebugInfo/DWARF/DWARFFormValue.h
"
15
#include "
llvm/DebugInfo/DWARF/DWARFRelocMap.h
"
16
#include "
llvm/Support/Dwarf.h
"
17
#include <cstdint>
18
19
namespace
llvm {
20
21
class
DWARFAcceleratorTable
{
22
23
struct
Header {
24
uint32_t
Magic
;
25
uint16_t
Version
;
26
uint16_t HashFunction;
27
uint32_t
NumBuckets;
28
uint32_t
NumHashes;
29
uint32_t
HeaderDataLength;
30
};
31
32
struct
HeaderData {
33
typedef
uint16_t AtomType;
34
typedef
dwarf::Form
Form
;
35
uint32_t
DIEOffsetBase;
36
SmallVector<std::pair<AtomType, Form>
, 3> Atoms;
37
};
38
39
struct
Header Hdr;
40
struct
HeaderData HdrData;
41
DataExtractor
AccelSection;
42
DataExtractor
StringSection;
43
const
RelocAddrMap
& Relocs;
44
public
:
45
DWARFAcceleratorTable
(
DataExtractor
AccelSection,
DataExtractor
StringSection,
46
const
RelocAddrMap
&Relocs)
47
: AccelSection(AccelSection), StringSection(StringSection), Relocs(Relocs) {}
48
49
bool
extract
();
50
void
dump
(
raw_ostream
&OS)
const
;
51
};
52
53
}
54
55
#endif
llvm::DWARFAcceleratorTable
Definition:
DWARFAcceleratorTable.h:21
llvm::DWARFAcceleratorTable::extract
bool extract()
Definition:
DWARFAcceleratorTable.cpp:17
llvm::dwarf::Form
Form
Definition:
Dwarf.h:101
llvm::DenseMap< uint64_t, std::pair< uint8_t, int64_t > >
DWARFFormValue.h
llvm::DWARFAcceleratorTable::DWARFAcceleratorTable
DWARFAcceleratorTable(DataExtractor AccelSection, DataExtractor StringSection, const RelocAddrMap &Relocs)
Definition:
DWARFAcceleratorTable.h:45
llvm::DataExtractor
Definition:
DataExtractor.h:17
Magic
static const char *const Magic
Definition:
Archive.cpp:25
uint32_t
llvm::SmallVector
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
Definition:
SmallVector.h:843
DWARFRelocMap.h
Dwarf.h
llvm::DWARFAcceleratorTable::dump
void dump(raw_ostream &OS) const
Definition:
DWARFAcceleratorTable.cpp:49
SmallVector.h
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition:
raw_ostream.h:44
llvm::IndexedInstrProf::Version
const uint64_t Version
Definition:
InstrProf.h:799
Generated on Wed Mar 8 2017 17:08:07 for LLVM by
1.8.6