llvm/llvm/include/llvm/SandboxIR/Value.h

//===- Value.h --------------------------------------------------*- 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
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_SANDBOXIR_VALUE_H
#define LLVM_SANDBOXIR_VALUE_H

#include "llvm/IR/Value.h"
#include "llvm/SandboxIR/Use.h"

namespace llvm::sandboxir {

// Forward declare all classes to avoid some MSVC build errors.
#define DEF_INSTR
#define DEF_CONST
#define DEF_USER
#include "llvm/SandboxIR/Values.def"
class Context;
class FuncletPadInst;
class Type;
class GlobalValue;
class GlobalObject;
class Module;
class UnaryInstruction;
class CmpInst;

/// Iterator for the `Use` edges of a Value's users.
/// \Returns a `Use` when dereferenced.
class UserUseIterator {};

/// A SandboxIR Value has users. This is the base class.
class Value {};

} // namespace llvm::sandboxir

#endif // LLVM_SANDBOXIR_VALUE_H