This adds basic dead store elimination to NewGVN. Unlike our current
DSE, it will happily do cross-block DSE if it meets our requirements.
We get a bunch of DSE's simple.ll cases, and some stuff it doesn't.
Unlike DSE, however, we only try to eliminate stores of the same value
to the same memory location, not just general stores to the same
memory location.
I would use "dead/redundant stores eliminated" here, but up to you.