Allow op-assigned local variables to be eliminated.

I realized that we were over-protective of expressions like `a += b`
because the `a` was being marked as read-write, but in practice, the
expression's result was being discarded. That is, we were writing,
but we weren't actually reading. An ExpressionStatement will now
look for assignment expressions like this one, and demote the
assignment variable from "read-write" to "write." This gives us
exciting new opportunities for dead local-variable elimination.

Change-Id: I841d001128f0a18e6670a81ff9915aa5a2e44ee0
Reviewed-by: Michael Ludwig <>
Auto-Submit: John Stiles <>
Commit-Queue: John Stiles <>
11 files changed