avoid generating multiple access_once between two sequence points

- don't generate code like foo(ACCESS_ONCE(x), ACCESS_ONCE(x);
- also restrict ACCESS_ONCE wrapper to only global vars;