This distinction is assumed in many semantics texts. The basic distinction distinguishes between instances where the speaker speaks in a neutral factually accurate way and instances where the speaker deliberately describes something in untrue or impossible terms in order to achieve a special effect. Thus, if one afternoon you and felling the effects of missing lunch, you might speak literally as in (1), or non-literally as in (2),(4):
(1) I'm hungry.
(2) I'm starving.
(3) I could eat a horse.
(4) My stomach thinks my throat's cut