16#ifndef LLVM_ADT_EPOCHTRACKER_H
17#define LLVM_ADT_EPOCHTRACKER_H
19#include "llvm/Config/abi-breaking.h"
25#if LLVM_ENABLE_ABI_BREAKING_CHECKS
26#define LLVM_DEBUGEPOCHBASE_HANDLEBASE_EMPTYBASE
41 DebugEpochBase() =
default;
60 const uint64_t *EpochAddress =
nullptr;
66 explicit HandleBase(
const DebugEpochBase *Parent)
67 : EpochAddress(&Parent->Epoch), EpochAtCreation(Parent->Epoch) {}
72 bool isHandleInSync()
const {
return *EpochAddress == EpochAtCreation; }
83#define LLVM_DEBUGEPOCHBASE_HANDLEBASE_EMPTYBASE __declspec(empty_bases)
85#define LLVM_DEBUGEPOCHBASE_HANDLEBASE_EMPTYBASE
const void * getEpochAddress() const
HandleBase(const DebugEpochBase *)
bool isHandleInSync() const
This is an optimization pass for GlobalISel generic memory operations.