Constant propagation. Also detects use of variable before any possible def.
Do copy propagation. Copy propagation elems are of the form OPvar=OPvar, and they are in go.expnod[].
Mark all dead variables. Only worry about register candidates. Compute live ranges for register candidates. Be careful not to compute live ranges for members of structures (CLMOS).
Remove side effect of assignment elem.
Find e in Elemdata list.
Look for initialization and increment expressions in loop. Very similar to intranges().
Find all the reaching defs of OPvar e.
Copyright (C) 1986-1998 by Symantec Copyright (C) 2000-2023 by The D Language Foundation, All Rights Reserved
Distributed under the Boost Software License, Version 1.0. https://www.boost.org/LICENSE_1_0.txt
Other global optimizations