THeWake-Fiuggi Fly and High Performance Automatic Parallel Compiler
Today's commercial compilers optimize code at various stages. Most of the optimizations for the program are at the intermediate code level, including redundancy removal, computational strength reduction, basic fast merging, loop optimization, etc. Most of the optimizations for the back-end are at the code generation level, including register allocation, LTO, etc. Most of the back-end optimizations are focused on the code generation level, including register allocation, LTO, etc. However, the development of compilers is still focused on supporting the back-end hardware, and the optimization for the code side is still very limited and relies on manual optimization, especially for multi-core and heterogeneous parallelizable programs. With this as a benchmark, fly and compilers were born.
Feiwa compiler is based on LLVM, adding internal IP to the latest open source compiler, designing a new middle layer to load more program information, breaking the independence of each optimization tool and choosing profiling independently to achieve program optimization for multi-core parallelization and heterogeneous systems.