blob: accc00b8a054874fe014b026f0f4e80ba061282f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
//===- lib/ReaderWriter/ELF/AMDGPU/AMDGPUExecutableWriter.h ---------------===//
//
// The LLVM Linker
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef AMDGPU_EXECUTABLE_WRITER_H
#define AMDGPU_EXECUTABLE_WRITER_H
#include "ExecutableWriter.h"
#include "AMDGPULinkingContext.h"
#include "AMDGPUSymbolTable.h"
#include "AMDGPUTargetHandler.h"
namespace lld {
namespace elf {
class AMDGPUTargetLayout;
class AMDGPUExecutableWriter : public ExecutableWriter<ELF64LE> {
public:
AMDGPUExecutableWriter(AMDGPULinkingContext &ctx, AMDGPUTargetLayout &layout);
unique_bump_ptr<SymbolTable<ELF64LE>> createSymbolTable() override {
return unique_bump_ptr<SymbolTable<ELF64LE>>(new (this->_alloc)
AMDGPUSymbolTable(_ctx));
}
void createImplicitFiles(std::vector<std::unique_ptr<File>> &Result) override;
void finalizeDefaultAtomValues() override;
private:
AMDGPULinkingContext &_ctx;
};
} // namespace elf
} // namespace lld
#endif // AMDGPU_EXECUTABLE_WRITER_H
|