13#ifndef LLVM_EXECUTIONENGINE_JITLINK_TABLEMANAGER_H
14#define LLVM_EXECUTIONENGINE_JITLINK_TABLEMANAGER_H
33 assert(
Target.hasName() &&
"Edge cannot point to anonymous target");
38 if (EntryI == Entries.end()) {
39 auto &Entry = impl().createEntry(
G,
Target);
41 dbgs() <<
" Created " << impl().getSectionName() <<
" entry for "
44 EntryI = Entries.insert(std::make_pair(
Target.
getName(), &Entry)).first;
47 assert(EntryI != Entries.end() &&
"Could not get entry symbol");
49 dbgs() <<
" Using " << impl().getSectionName() <<
" entry "
50 << *EntryI->second <<
"\n";
52 return *EntryI->second;
62 assert(
Target.hasName() &&
"Edge cannot point to anonymous target");
63 auto Res = Entries.insert({
71 TableManagerImplT &impl() {
return static_cast<TableManagerImplT &
>(*this); }
#define DEBUG_WITH_TYPE(TYPE,...)
DEBUG_WITH_TYPE macro - This macro should be used by passes to emit debug information.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Target - Wrapper for Target specific information.
const char * getName() const
getName - Get the target name.
A CRTP base for tables that are built on demand, e.g.
Symbol & getEntryForTarget(LinkGraph &G, Symbol &Target)
Return the constructed entry.
bool registerPreExistingEntry(Symbol &Target, Symbol &Entry)
Register a pre-existing entry.
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.