#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/IntrinsicsARM.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include <optional>
usingnamespacellvm;
void LocationSize::print(raw_ostream &OS) const { … }
MemoryLocation MemoryLocation::get(const LoadInst *LI) { … }
MemoryLocation MemoryLocation::get(const StoreInst *SI) { … }
MemoryLocation MemoryLocation::get(const VAArgInst *VI) { … }
MemoryLocation MemoryLocation::get(const AtomicCmpXchgInst *CXI) { … }
MemoryLocation MemoryLocation::get(const AtomicRMWInst *RMWI) { … }
std::optional<MemoryLocation>
MemoryLocation::getOrNone(const Instruction *Inst) { … }
MemoryLocation MemoryLocation::getForSource(const MemTransferInst *MTI) { … }
MemoryLocation MemoryLocation::getForSource(const AtomicMemTransferInst *MTI) { … }
MemoryLocation MemoryLocation::getForSource(const AnyMemTransferInst *MTI) { … }
MemoryLocation MemoryLocation::getForDest(const MemIntrinsic *MI) { … }
MemoryLocation MemoryLocation::getForDest(const AtomicMemIntrinsic *MI) { … }
MemoryLocation MemoryLocation::getForDest(const AnyMemIntrinsic *MI) { … }
std::optional<MemoryLocation>
MemoryLocation::getForDest(const CallBase *CB, const TargetLibraryInfo &TLI) { … }
MemoryLocation MemoryLocation::getForArgument(const CallBase *Call,
unsigned ArgIdx,
const TargetLibraryInfo *TLI) { … }