Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/SandboxIR/Use.cpp
213766 views
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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "llvm/SandboxIR/Use.h"
10
#include "llvm/SandboxIR/Context.h"
11
#include "llvm/SandboxIR/User.h"
12
13
namespace llvm::sandboxir {
14
15
Value *Use::get() const { return Ctx->getValue(LLVMUse->get()); }
16
17
void Use::set(Value *V) {
18
Ctx->getTracker().emplaceIfTracking<UseSet>(*this);
19
LLVMUse->set(V->Val);
20
}
21
22
unsigned Use::getOperandNo() const { return Usr->getUseOperandNo(*this); }
23
24
void Use::swap(Use &OtherUse) {
25
Ctx->getTracker().emplaceIfTracking<UseSwap>(*this, OtherUse);
26
LLVMUse->swap(*OtherUse.LLVMUse);
27
}
28
29
#ifndef NDEBUG
30
void Use::dumpOS(raw_ostream &OS) const {
31
Value *Def = nullptr;
32
if (LLVMUse == nullptr)
33
OS << "<null> LLVM Use! ";
34
else
35
Def = Ctx->getValue(LLVMUse->get());
36
OS << "Def: ";
37
if (Def == nullptr)
38
OS << "NULL";
39
else
40
OS << *Def;
41
OS << "\n";
42
43
OS << "User: ";
44
if (Usr == nullptr)
45
OS << "NULL";
46
else
47
OS << *Usr;
48
OS << "\n";
49
50
OS << "OperandNo: ";
51
if (Usr == nullptr)
52
OS << "N/A";
53
else
54
OS << getOperandNo();
55
OS << "\n";
56
}
57
58
void Use::dump() const { dumpOS(dbgs()); }
59
#endif // NDEBUG
60
61
} // namespace llvm::sandboxir
62
63