| //===--- 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" | |
| 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) { | |
| for (IRMemLocation Loc : MemoryEffects::locations()) { | |
| 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; | |
| } |