1//===--- ModRef.cpp - Memory effect modeling --------------------*- C++ -*-===// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7//===----------------------------------------------------------------------===// 9// This file implements ModRef and MemoryEffects misc functions. 11//===----------------------------------------------------------------------===// 21case ModRefInfo::NoModRef:
30case ModRefInfo::ModRef:
40case IRMemLocation::ArgMem:
43case IRMemLocation::InaccessibleMem:
44OS <<
"InaccessibleMem: ";
46case IRMemLocation::Other:
63OS << LS <<
"address_is_null";
67OS << LS <<
"read_provenance";
69OS << LS <<
"provenance";
83OS << LS <<
"ret: " << Ret;
std::optional< std::vector< StOtherPiece > > Other
This file contains some templates that are useful if you are working with the STL at all.
This file contains some functions that are useful when dealing with strings.
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)