may_write() || op->may_cache() ?