Wanted: good definition of the term “lowering” in the context of compilers

后端 未结 3 1794
难免孤独
难免孤独 2021-02-02 10:31

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

3条回答
  •  眼角桃花
    2021-02-02 11:07

    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.

提交回复
热议问题