作者: Lal George , Florent Guillame , John H. Reppy
关键词: Compiler 、 Software architecture description 、 Instruction set 、 Register allocation 、 Porting 、 Computer science 、 Dynamic programming 、 Abstract machine 、 Programming language 、 Machine code 、 Computer architecture
摘要: There are two major goals that must be addressed in a portable back end: good sequence of instructions selected making full use the capabilities machine, and it possible to orchestrate target-specific optimizations. A key first problem is language MLRISC, intended part, represent simplest most basic operations implementable hardware. The importance MLRISC provides common representation for expressing instruction set any hardware platform. Bottom-up tree pattern matching with dynamic programming, expressed using succinct clear specifications target set, used generate machine code from an program. Target-specific optimizations performed by parameterizing off-the-shelf optimization modules concepts across architectures. specification variety architectures, ability mix match sophisticated algorithms shown. resulting end independent intermediate SML/NJ, could principle compiler source quite different SML. We argue porting new architecture requires substantially less effort than existing abstract approach, report significant gains preliminary description driven