LLVM 22.0.0git
XCOFFLinkGraphBuilder.h
Go to the documentation of this file.
1//===----- XCOFFLinkGraphBuilder.h - XCOFF LinkGraph builder ----*- 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// Generic XCOFF LinkGraph building code.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LIB_EXECUTIONENGINE_JITLINK_XCOFFLINKGRAPHBUILDER_H
14#define LIB_EXECUTIONENGINE_JITLINK_XCOFFLINKGRAPHBUILDER_H
15
21#include <memory>
22
23namespace llvm {
24namespace jitlink {
25
27public:
28 virtual ~XCOFFLinkGraphBuilder() = default;
30
31public:
33 std::shared_ptr<orc::SymbolStringPool> SSP, Triple TT,
34 SubtargetFeatures Features,
36 LinkGraph &getGraph() const { return *G; }
37 const object::XCOFFObjectFile &getObject() const { return Obj; }
38
39private:
40 Error processSections();
41 Error processCsectsAndSymbols();
42 Error processRelocations();
43
44private:
45 const object::XCOFFObjectFile &Obj;
46 std::unique_ptr<LinkGraph> G;
47
48 Section *UndefSection;
49
50 struct SectionEntry {
52 object::SectionRef SectionData;
53 };
54
57 DenseMap<uint32_t, Symbol *> SymbolIndexTable;
58};
59
60} // namespace jitlink
61} // namespace llvm
62
63#endif // LIB_EXECUTIONENGINE_JITLINK_XCOFFLINKGRAPHBUILDER_H
Lightweight error class with error context and mandatory checking.
Definition: Error.h:159
Tagged union holding either a T or a Error.
Definition: Error.h:485
SectionEntry - represents a section emitted into memory by the dynamic linker.
Manages the enabling and disabling of subtarget specific features.
Triple - Helper class for working with autoconf configuration names.
Definition: Triple.h:47
This is a value type class that represents a single section in the list of sections in the object fil...
Definition: ObjectFile.h:83
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18