: Flags(Flags), State(static_cast<uint8_t>(SymbolState::NeverSearched)),
MaterializerAttached(false), PendingRemoval(false) {}
- JITTargetAddress getAddress() const { return Addr; }
+ ExecutorAddr getAddress() const { return Addr; }
JITSymbolFlags getFlags() const { return Flags; }
SymbolState getState() const { return static_cast<SymbolState>(State); }
bool hasMaterializerAttached() const { return MaterializerAttached; }
bool isPendingRemoval() const { return PendingRemoval; }
- void setAddress(JITTargetAddress Addr) { this->Addr = Addr; }
+ void setAddress(ExecutorAddr Addr) { this->Addr = Addr; }
void setFlags(JITSymbolFlags Flags) { this->Flags = Flags; }
void setState(SymbolState State) {
assert(static_cast<uint8_t>(State) < (1 << 6) &&
}
JITEvaluatedSymbol getSymbol() const {
- return JITEvaluatedSymbol(Addr, Flags);
+ return JITEvaluatedSymbol(Addr.getValue(), Flags);
}
private:
- JITTargetAddress Addr = 0;
+ ExecutorAddr Addr;
JITSymbolFlags Flags;
uint8_t State : 6;
uint8_t MaterializerAttached : 1;
"Resolving symbol with materializer attached?");
assert(SymI->second.getState() == SymbolState::Materializing &&
"Symbol should be materializing");
- assert(SymI->second.getAddress() == 0 &&
+ assert(SymI->second.getAddress() == ExecutorAddr() &&
"Symbol has already been resolved");
if (SymI->second.getFlags().hasError())
// Resolved symbols can not be weak: discard the weak flag.
JITSymbolFlags ResolvedFlags = ResolvedSym.getFlags();
- SymI->second.setAddress(ResolvedSym.getAddress());
+ SymI->second.setAddress(ExecutorAddr(ResolvedSym.getAddress()));
SymI->second.setFlags(ResolvedFlags);
SymI->second.setState(SymbolState::Resolved);
for (auto &KV : Symbols) {
OS << " \"" << *KV.first << "\": ";
if (auto Addr = KV.second.getAddress())
- OS << format("0x%016" PRIx64, Addr);
+ OS << Addr;
else
OS << "<not resolved> ";
// whether it has a materializer attached, and if so prepare to run
// it.
if (SymI->second.hasMaterializerAttached()) {
- assert(SymI->second.getAddress() == 0 &&
+ assert(SymI->second.getAddress() == ExecutorAddr() &&
"Symbol not resolved but already has address?");
auto UMII = JD.UnmaterializedInfos.find(Name);
assert(UMII != JD.UnmaterializedInfos.end() &&