Is there a difference between "lower" and "legalize" in TIR?

The goal is to rewrite the TIR into a way that the target’s codegen can handle. Rewriting exp into llvm.exp can be seen as legalization too. There can be targets that can generate code directly for exp. In fact, the translation from exp to llvm.exp is only there for convenience (automation). The LLVM code generator could be changed to handle exp just fine.

The distinction, as presented so far, is very subjective, and IMO unnecessary.