[llvm] [SandboxIR][NFC] Move sandboxir::Use into a separate file (PR #99074)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 16 12:22:21 PDT 2024
https://github.com/vporpo updated https://github.com/llvm/llvm-project/pull/99074
>From f3229a5e29bf3d6ec7b861679362651b19e22831 Mon Sep 17 00:00:00 2001
From: Vasileios Porpodas <vporpodas at google.com>
Date: Fri, 12 Jul 2024 10:35:30 -0700
Subject: [PATCH 1/4] [SandboxIR][NFC] Move sandboxir::Use into a separate file
This helps avoid circular dependencies in a follow-up patch.
---
llvm/include/llvm/SandboxIR/SandboxIR.h | 37 +-----------------
llvm/include/llvm/SandboxIR/Use.h | 52 +++++++++++++++++++++++++
2 files changed, 53 insertions(+), 36 deletions(-)
create mode 100644 llvm/include/llvm/SandboxIR/Use.h
diff --git a/llvm/include/llvm/SandboxIR/SandboxIR.h b/llvm/include/llvm/SandboxIR/SandboxIR.h
index d4ab8c3548a3c..d9e2e93b0c42b 100644
--- a/llvm/include/llvm/SandboxIR/SandboxIR.h
+++ b/llvm/include/llvm/SandboxIR/SandboxIR.h
@@ -61,6 +61,7 @@
#include "llvm/IR/Function.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
+#include "llvm/SandboxIR/Use.h"
#include "llvm/Support/raw_ostream.h"
#include <iterator>
@@ -75,42 +76,6 @@ 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 *Usr;
- Context *Ctx;
-
- /// Don't allow the user to create a sandboxir::Use directly.
- Use(llvm::Use *LLVMUse, User *Usr, Context &Ctx)
- : LLVMUse(LLVMUse), Usr(Usr), Ctx(&Ctx) {}
- Use() : LLVMUse(nullptr), Ctx(nullptr) {}
-
- friend class Value; // For constructor
- friend class User; // For constructor
- friend class OperandUseIterator; // For constructor
- friend class UserUseIterator; // For accessing members
-
-public:
- operator Value *() const { return get(); }
- Value *get() const;
- class User *getUser() const { return Usr; }
- unsigned getOperandNo() const;
- Context *getContext() const { return Ctx; }
- bool operator==(const Use &Other) const {
- assert(Ctx == Other.Ctx && "Contexts differ!");
- return LLVMUse == Other.LLVMUse && Usr == Other.Usr;
- }
- bool operator!=(const Use &Other) const { return !(*this == Other); }
-#ifndef NDEBUG
- void dump(raw_ostream &OS) const;
- void dump() const;
-#endif // NDEBUG
-};
-
/// Returns the operand edge when dereferenced.
class OperandUseIterator {
sandboxir::Use Use;
diff --git a/llvm/include/llvm/SandboxIR/Use.h b/llvm/include/llvm/SandboxIR/Use.h
new file mode 100644
index 0000000000000..a1b48ac3b966a
--- /dev/null
+++ b/llvm/include/llvm/SandboxIR/Use.h
@@ -0,0 +1,52 @@
+#ifndef LLVM_TRANSFORMS_SANDBOXIR_USE_H
+#define LLVM_TRANSFORMS_SANDBOXIR_USE_H
+
+#include "llvm/IR/Use.h"
+#include "llvm/Support/raw_ostream.h"
+
+namespace llvm {
+namespace sandboxir {
+
+class Context;
+class Value;
+class User;
+
+/// 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 *Usr;
+ Context *Ctx;
+
+ /// Don't allow the user to create a sandboxir::Use directly.
+ Use(llvm::Use *LLVMUse, User *Usr, Context &Ctx)
+ : LLVMUse(LLVMUse), Usr(Usr), Ctx(&Ctx) {}
+ Use() : LLVMUse(nullptr), Ctx(nullptr) {}
+
+ friend class Value; // For constructor
+ friend class User; // For constructor
+ friend class OperandUseIterator; // For constructor
+ friend class UserUseIterator; // For accessing members
+
+public:
+ operator Value *() const { return get(); }
+ Value *get() const;
+ class User *getUser() const { return Usr; }
+ unsigned getOperandNo() const;
+ Context *getContext() const { return Ctx; }
+ bool operator==(const Use &Other) const {
+ assert(Ctx == Other.Ctx && "Contexts differ!");
+ return LLVMUse == Other.LLVMUse && Usr == Other.Usr;
+ }
+ bool operator!=(const Use &Other) const { return !(*this == Other); }
+#ifndef NDEBUG
+ void dump(raw_ostream &OS) const;
+ void dump() const;
+#endif // NDEBUG
+};
+} // namespace sandboxir
+} // namespace llvm
+
+#endif // LLVM_TRANSFORMS_SANDBOXIR_USE_H
>From 8eaee322e7109ab69f6a0e6cbe1902d2c961ce7c Mon Sep 17 00:00:00 2001
From: Vasileios Porpodas <vporpodas at google.com>
Date: Tue, 16 Jul 2024 12:06:32 -0700
Subject: [PATCH 2/4] fixup! [SandboxIR][NFC] Move sandboxir::Use into a
separate file
---
llvm/include/llvm/SandboxIR/Use.h | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/llvm/include/llvm/SandboxIR/Use.h b/llvm/include/llvm/SandboxIR/Use.h
index a1b48ac3b966a..dac42ead33dcc 100644
--- a/llvm/include/llvm/SandboxIR/Use.h
+++ b/llvm/include/llvm/SandboxIR/Use.h
@@ -4,8 +4,7 @@
#include "llvm/IR/Use.h"
#include "llvm/Support/raw_ostream.h"
-namespace llvm {
-namespace sandboxir {
+namespace llvm::sandboxir {
class Context;
class Value;
@@ -46,7 +45,7 @@ class Use {
void dump() const;
#endif // NDEBUG
};
-} // namespace sandboxir
-} // namespace llvm
+
+} // namespace llvm::sandboxir
#endif // LLVM_TRANSFORMS_SANDBOXIR_USE_H
>From 3efe1be617b89b9133af4e0caaf3e984ff7a9a4a Mon Sep 17 00:00:00 2001
From: Vasileios Porpodas <vporpodas at google.com>
Date: Tue, 16 Jul 2024 12:17:52 -0700
Subject: [PATCH 3/4] fixup! fixup! [SandboxIR][NFC] Move sandboxir::Use into a
separate file
---
llvm/include/llvm/SandboxIR/Use.h | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/llvm/include/llvm/SandboxIR/Use.h b/llvm/include/llvm/SandboxIR/Use.h
index dac42ead33dcc..33afb54c1ff29 100644
--- a/llvm/include/llvm/SandboxIR/Use.h
+++ b/llvm/include/llvm/SandboxIR/Use.h
@@ -1,5 +1,17 @@
-#ifndef LLVM_TRANSFORMS_SANDBOXIR_USE_H
-#define LLVM_TRANSFORMS_SANDBOXIR_USE_H
+//===- Use.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
+//
+//===----------------------------------------------------------------------===//
+//
+// Sandbox IR Use.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SANDBOXIR_USE_H
+#define LLVM_SANDBOXIR_USE_H
#include "llvm/IR/Use.h"
#include "llvm/Support/raw_ostream.h"
@@ -48,4 +60,4 @@ class Use {
} // namespace llvm::sandboxir
-#endif // LLVM_TRANSFORMS_SANDBOXIR_USE_H
+#endif // LLVM_SANDBOXIR_USE_H
>From 8557d000de4275c0ae3fcf6de9815f713475e601 Mon Sep 17 00:00:00 2001
From: Vasileios Porpodas <vporpodas at google.com>
Date: Tue, 16 Jul 2024 12:21:05 -0700
Subject: [PATCH 4/4] fixup! fixup! fixup! [SandboxIR][NFC] Move sandboxir::Use
into a separate file
---
llvm/include/llvm/SandboxIR/SandboxIR.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/llvm/include/llvm/SandboxIR/SandboxIR.h b/llvm/include/llvm/SandboxIR/SandboxIR.h
index d9e2e93b0c42b..fcb581211736e 100644
--- a/llvm/include/llvm/SandboxIR/SandboxIR.h
+++ b/llvm/include/llvm/SandboxIR/SandboxIR.h
@@ -55,8 +55,8 @@
// } // namespace sandboxir
//
-#ifndef LLVM_TRANSFORMS_SANDBOXIR_SANDBOXIR_H
-#define LLVM_TRANSFORMS_SANDBOXIR_SANDBOXIR_H
+#ifndef LLVM_SANDBOXIR_SANDBOXIR_H
+#define LLVM_SANDBOXIR_SANDBOXIR_H
#include "llvm/IR/Function.h"
#include "llvm/IR/User.h"
@@ -729,4 +729,4 @@ class Function : public sandboxir::Value {
} // namespace sandboxir
} // namespace llvm
-#endif // LLVM_TRANSFORMS_SANDBOXIR_SANDBOXIR_H
+#endif // LLVM_SANDBOXIR_SANDBOXIR_H
More information about the llvm-commits
mailing list