Teach SRA heuristic about GlobalOpts stored-once pattern:
If
- a global location is initialized with 0
- all uses other than stores are accesses that would be UB if the zero value is used and
- And there's exactly one store to the location
the store can be removed and all uses can be updated to use the stored
value.
This patch is not complete: it misses precise tracking of accessed
locations for a global; given this is just a heuristic, that may be
fine to start with.
Depends on D144476.