#include "bolt/Rewrite/JITLinkLinker.h"
#include "bolt/Core/BinaryContext.h"
#include "bolt/Core/BinaryData.h"
#include "bolt/Core/BinarySection.h"
#include "llvm/ExecutionEngine/JITLink/ELF_riscv.h"
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h"
#include "llvm/Support/Debug.h"
#define DEBUG_TYPE …
namespace llvm {
namespace bolt {
namespace {
bool hasSymbols(const jitlink::Block &B) { … }
Error markSectionsLive(jitlink::LinkGraph &G) { … }
void reassignSectionAddress(jitlink::LinkGraph &LG,
const BinarySection &BinSection, uint64_t Address) { … }
}
struct JITLinkLinker::Context : jitlink::JITLinkContext { … };
JITLinkLinker::JITLinkLinker(BinaryContext &BC,
std::unique_ptr<ExecutableFileMemoryManager> MM)
: … { … }
JITLinkLinker::~JITLinkLinker() { … }
void JITLinkLinker::loadObject(MemoryBufferRef Obj,
SectionsMapper MapSections) { … }
std::optional<JITLinkLinker::SymbolInfo>
JITLinkLinker::lookupSymbolInfo(StringRef Name) const { … }
SmallVector<jitlink::Block *, 2>
JITLinkLinker::orderedBlocks(const jitlink::Section &Section) { … }
size_t JITLinkLinker::sectionSize(const jitlink::Section &Section) { … }
}
}