LLVM
20.0.0git
include
llvm
DebugInfo
DWARF
DWARFRelocMap.h
Go to the documentation of this file.
1
//===- DWARFRelocMap.h ------------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_DEBUGINFO_DWARF_DWARFRELOCMAP_H
10
#define LLVM_DEBUGINFO_DWARF_DWARFRELOCMAP_H
11
12
#include "
llvm/ADT/DenseMap.h
"
13
#include "
llvm/Object/ObjectFile.h
"
14
#include "
llvm/Object/RelocationResolver.h
"
15
#include <cstdint>
16
17
namespace
llvm
{
18
19
/// RelocAddrEntry contains relocated value and section index.
20
/// Section index is -1LL if relocation points to absolute symbol.
21
struct
RelocAddrEntry
{
22
uint64_t
SectionIndex
;
23
object::RelocationRef
Reloc
;
24
uint64_t
SymbolValue
;
25
std::optional<object::RelocationRef>
Reloc2
;
26
uint64_t
SymbolValue2
;
27
object::RelocationResolver
Resolver
;
28
};
29
30
/// In place of applying the relocations to the data we've read from disk we use
31
/// a separate mapping table to the side and checking that at locations in the
32
/// dwarf where we expect relocated values. This adds a bit of complexity to the
33
/// dwarf parsing/extraction at the benefit of not allocating memory for the
34
/// entire size of the debug info sections.
35
using
RelocAddrMap
=
DenseMap<uint64_t, RelocAddrEntry>
;
36
37
}
// end namespace llvm
38
39
#endif
// LLVM_DEBUGINFO_DWARF_DWARFRELOCMAP_H
DenseMap.h
This file defines the DenseMap class.
ObjectFile.h
RelocationResolver.h
llvm::DenseMap
Definition:
DenseMap.h:777
llvm::object::RelocationRef
This is a value type class that represents a single relocation in the list of relocations in the obje...
Definition:
ObjectFile.h:52
uint64_t
llvm::object::RelocationResolver
uint64_t(*)(uint64_t Type, uint64_t Offset, uint64_t S, uint64_t LocData, int64_t Addend) RelocationResolver
Definition:
RelocationResolver.h:30
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::RelocAddrEntry
RelocAddrEntry contains relocated value and section index.
Definition:
DWARFRelocMap.h:21
llvm::RelocAddrEntry::SectionIndex
uint64_t SectionIndex
Definition:
DWARFRelocMap.h:22
llvm::RelocAddrEntry::Reloc2
std::optional< object::RelocationRef > Reloc2
Definition:
DWARFRelocMap.h:25
llvm::RelocAddrEntry::SymbolValue
uint64_t SymbolValue
Definition:
DWARFRelocMap.h:24
llvm::RelocAddrEntry::Resolver
object::RelocationResolver Resolver
Definition:
DWARFRelocMap.h:27
llvm::RelocAddrEntry::Reloc
object::RelocationRef Reloc
Definition:
DWARFRelocMap.h:23
llvm::RelocAddrEntry::SymbolValue2
uint64_t SymbolValue2
Definition:
DWARFRelocMap.h:26
Generated on Mon Oct 7 2024 00:59:48 for LLVM by
1.9.6