I also noticed that in some situations we were creating
.GLOBAL_VAR unnecessarily. The problem is that once we create
.GLOBAL_VAR, we are stuck with it (this is a limitation that we
should remove, but removing symbols from referenced_vars may be
too intrusive for 4.0).
We were creating .GLOBAL_VAR before comptuing aliases to avoid
the initial SSA creation to deal with too many virtual operands.
So, we do an IL scan, and if we find a lot of function calls, we
would create .GLOBAL_VAR. A better solution is to just not
bother adding virtual operands at call sites if aliases have not
been computed. This gives us a minor speedup in operand
scanning and SSA rewriting.