As reported by @nikic
#114495 (comment)
This is likely because the checks are currently implemented to walk through the whole child nodes for every single assignments. We may be able to remove the overhead by rolling up the information about usage of counted_by or __builtin_counted_by_ref to the assignment, instead of re-visiting child nodes.