Can anyone point me to a good definition of the term \"lowering\" in the context of compilers?
From what I can tell, it is the translation of a higher-level operation in
The Dragon Book doesn't use the term. Kennedy+Allen's Optimizing Compilers for Modern Architectures A Dependence-based Approach doesn't use the term. Steve Muchnick's Advanced Compiler Design and Implementation doesn't use the term.
Engineering A Compiler uses the term but doesn't define it. Bob Morgan's Building an Optimizing Compiler (1998) uses the term a lot and defines it.
Lowering : The instructions are lowered so that each operation in the flow graph represents a single instruction in the target machine.
It is a more general term and there is no single definition. My own understand is that a compiler lowers an operation from a higher abstraction layer to a lower, for example, in LLVM lowering from MachineInstr to MCInst.