diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py
index c68c8be537ba0ffce85057b0952071da1f1b19a0..0118795f5baedef1531fae0659bf7b2117adfd57 100644
--- a/loopy/transform/iname.py
+++ b/loopy/transform/iname.py
@@ -1600,9 +1600,9 @@ class _ReductionInameUniquifier(RuleAwareIdentityMapper):
         self.iname_to_nonsimultaneous_red_count = {}
 
     def get_cache_key(self, expr, expn_state):
-        return (super().get_cache_key(expr, expn_state)
-                + tuple(sorted(self.iname_to_red_count.items()))
-                + tuple(sorted(self.iname_to_nonsimultaneous_red_count.items()))
+        return (super().get_cache_key(expr, expn_state),
+                hash(frozenset(self.iname_to_red_count.items())),
+                hash(frozenset(self.iname_to_nonsimultaneous_red_count.items())),
                 )
 
     def map_reduction(self, expr, expn_state):