From 3c6d335be427eaec0ff577b2958783e8f40cdbe4 Mon Sep 17 00:00:00 2001 From: Frodo Baggins Date: Mon, 21 Oct 2024 23:19:51 -0700 Subject: [PATCH] think this user iterator will work --- src/shader_recompiler/ir/value.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/shader_recompiler/ir/value.h b/src/shader_recompiler/ir/value.h index afe4a7f55..c239226a9 100644 --- a/src/shader_recompiler/ir/value.h +++ b/src/shader_recompiler/ir/value.h @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include "common/assert.h" #include "shader_recompiler/exception.h" @@ -211,6 +213,21 @@ public: return std::bit_cast(definition); } + auto users() { + return boost::adaptors::transform( + boost::unique(uses, + [](const IR::Use& a, const IR::Use& b) { return a.user == b.user; }), + [](const IR::Use& use) { return use.user; }); + } + + auto user_begin() { + return users().begin(); + } + + auto user_end() { + return users().end(); + } + private: struct NonTriviallyDummy { NonTriviallyDummy() noexcept {}