//===--- ModRef.cpp - Memory effect modeling --------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file implements ModRef and MemoryEffects misc functions. // //===----------------------------------------------------------------------===// #include "llvm/Support/ModRef.h" #include "llvm/ADT/STLExtras.h" using namespace llvm; raw_ostream &llvm::operator<<(raw_ostream &OS, ModRefInfo MR) { switch (MR) { case ModRefInfo::NoModRef: OS << "NoModRef"; break; case ModRefInfo::Ref: OS << "Ref"; break; case ModRefInfo::Mod: OS << "Mod"; break; case ModRefInfo::ModRef: OS << "ModRef"; break; } return OS; } raw_ostream &llvm::operator<<(raw_ostream &OS, MemoryEffects ME) { interleaveComma(MemoryEffects::locations(), OS, [&](IRMemLocation Loc) { switch (Loc) { case IRMemLocation::ArgMem: OS << "ArgMem: "; break; case IRMemLocation::InaccessibleMem: OS << "InaccessibleMem: "; break; case IRMemLocation::Other: OS << "Other: "; break; } OS << ME.getModRef(Loc); }); return OS; }