21 case ModRefInfo::NoModRef:
30 case ModRefInfo::ModRef:
40 case IRMemLocation::ArgMem:
43 case IRMemLocation::InaccessibleMem:
44 OS <<
"InaccessibleMem: ";
46 case IRMemLocation::Other:
63 OS << LS <<
"address_is_null";
65 OS << LS <<
"address";
67 OS << LS <<
"read_provenance";
69 OS << LS <<
"provenance";
83 OS << LS <<
"ret: " << Ret;
std::optional< std::vector< StOtherPiece > > Other
Represents which components of the pointer may be captured in which location.
CaptureComponents getOtherComponents() const
Get components potentially captured through locations other than the return value.
CaptureComponents getRetComponents() const
Get components potentially captured by the return value.
ModRefInfo getModRef(Location Loc) const
Get ModRefInfo for the given Location.
static auto locations()
Returns iterator over all supported location kinds.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
bool capturesReadProvenanceOnly(CaptureComponents CC)
bool capturesAddressIsNullOnly(CaptureComponents CC)
bool capturesAddress(CaptureComponents CC)
void interleaveComma(const Container &c, StreamT &os, UnaryFunctor each_fn)
bool capturesFullProvenance(CaptureComponents CC)
CaptureComponents
Components of the pointer that may be captured.
ModRefInfo
Flags indicating whether a memory access modifies or references memory.
IRMemLocation
The locations at which a function might access memory.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
bool capturesNothing(CaptureComponents CC)