#ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_EXECUTORADDRESS_H
#define LLVM_EXECUTIONENGINE_ORC_SHARED_EXECUTORADDRESS_H
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/identity.h"
#include "llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <type_traits>
namespace llvm {
namespace orc {
ExecutorAddrDiff;
class ExecutorAddr { … };
inline ExecutorAddrDiff operator-(const ExecutorAddr &LHS,
const ExecutorAddr &RHS) { … }
inline ExecutorAddr operator+(const ExecutorAddr &LHS,
const ExecutorAddrDiff &RHS) { … }
inline ExecutorAddr operator+(const ExecutorAddrDiff &LHS,
const ExecutorAddr &RHS) { … }
inline ExecutorAddr operator-(const ExecutorAddr &LHS,
const ExecutorAddrDiff &RHS) { … }
inline ExecutorAddrDiff operator%(const ExecutorAddr &LHS,
const ExecutorAddrDiff &RHS) { … }
struct ExecutorAddrRange { … };
inline raw_ostream &operator<<(raw_ostream &OS, const ExecutorAddr &A) { … }
inline raw_ostream &operator<<(raw_ostream &OS, const ExecutorAddrRange &R) { … }
namespace shared {
class SPSExecutorAddr { … };
template <> class SPSSerializationTraits<SPSExecutorAddr, ExecutorAddr> { … };
SPSExecutorAddrRange;
template <>
class SPSSerializationTraits<SPSExecutorAddrRange, ExecutorAddrRange> { … };
SPSExecutorAddrRangeSequence;
}
}
template <> struct DenseMapInfo<orc::ExecutorAddr> { … };
}
#endif