brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · ffbd41d Raw
62 lines · cpp
1//===- Use.cpp ------------------------------------------------------------===//2//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/SandboxIR/Use.h"10#include "llvm/SandboxIR/Context.h"11#include "llvm/SandboxIR/User.h"12 13namespace llvm::sandboxir {14 15Value *Use::get() const { return Ctx->getValue(LLVMUse->get()); }16 17void Use::set(Value *V) {18  Ctx->getTracker().emplaceIfTracking<UseSet>(*this);19  LLVMUse->set(V->Val);20}21 22unsigned Use::getOperandNo() const { return Usr->getUseOperandNo(*this); }23 24void Use::swap(Use &OtherUse) {25  Ctx->getTracker().emplaceIfTracking<UseSwap>(*this, OtherUse);26  LLVMUse->swap(*OtherUse.LLVMUse);27}28 29#ifndef NDEBUG30void Use::dumpOS(raw_ostream &OS) const {31  Value *Def = nullptr;32  if (LLVMUse == nullptr)33    OS << "<null> LLVM Use! ";34  else35    Def = Ctx->getValue(LLVMUse->get());36  OS << "Def:  ";37  if (Def == nullptr)38    OS << "NULL";39  else40    OS << *Def;41  OS << "\n";42 43  OS << "User: ";44  if (Usr == nullptr)45    OS << "NULL";46  else47    OS << *Usr;48  OS << "\n";49 50  OS << "OperandNo: ";51  if (Usr == nullptr)52    OS << "N/A";53  else54    OS << getOperandNo();55  OS << "\n";56}57 58void Use::dump() const { dumpOS(dbgs()); }59#endif // NDEBUG60 61} // namespace llvm::sandboxir62