What Can In-memory Computing Deliver, and What Are the Barriers?