aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CIR/CodeGen/Address.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CIR/CodeGen/Address.h')
-rw-r--r--clang/lib/CIR/CodeGen/Address.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/CIR/CodeGen/Address.h b/clang/lib/CIR/CodeGen/Address.h
index 6f76c3e..6c927e9 100644
--- a/clang/lib/CIR/CodeGen/Address.h
+++ b/clang/lib/CIR/CodeGen/Address.h
@@ -101,6 +101,17 @@ public:
}
clang::CharUnits getAlignment() const { return alignment; }
+
+ /// Get the operation which defines this address.
+ mlir::Operation *getDefiningOp() const {
+ if (!isValid())
+ return nullptr;
+ return getPointer().getDefiningOp();
+ }
+
+ template <typename OpTy> OpTy getDefiningOp() const {
+ return mlir::dyn_cast_or_null<OpTy>(getDefiningOp());
+ }
};
} // namespace clang::CIRGen