[llvm] [SandboxIR] sandboxir::Use operands (part 1) and uses (part 2) (PR #98251)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 10 13:59:56 PDT 2024
================
@@ -71,6 +71,98 @@ namespace sandboxir {
class Function;
class Context;
class Instruction;
+class User;
+class Value;
+
+/// Represents a Def-use/Use-def edge in SandboxIR.
+/// NOTE: Unlike llvm::Use, this is not an integral part of the use-def chains.
+/// It is also not uniqued and is currently passed by value, so you can have
+/// more than one sandboxir::Use objects for the same use-def edge.
+class Use {
+ llvm::Use *LLVMUse;
+ User *User;
+ Context *Ctx;
+
+ /// Don't allow the user to create a sandboxir::Use directly.
+ Use(llvm::Use *LLVMUse, class User *User, Context &Ctx)
----------------
vporpo wrote:
It's because of `User *User;` member variable, triggering this error:
```
error: must use 'class' tag to refer to type 'User' in this scope
note: class 'User' is hidden by a non-type declaration of 'User' here
```
So I either have to rename the `User` member variable or use `class User *User` or `sandboxir::User *User` in the arguments.
https://github.com/llvm/llvm-project/pull/98251
More information about the llvm-commits
mailing list