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 {}