毕昇编译器介绍
前言
本手册提供毕昇编译器的使用方法以及构建业务场景的注意事项。
概述
毕昇编译器是华为编译器实验室针对鲲鹏等通用处理器架构场景,打造的一款高性能、高可信及易扩展的编译器工具链,增强和引入了多种编译优化技术,支持C/C++/Fortran等编程语言及对应编程语言的OpenMP扩展。
功能介绍
除LLVM通用功能和优化外,毕昇编译器的工具链对中端及后端的关键技术点进行了深度优化,并集成Auto-tuner特性支持编译器自动调优。自动调优操作指导可以参考《Autotuner特性指南》。
部分通用信息请参考LLVM的用户指导https://llvm.org/docs/UserGuides.html,毕昇编译器新增的自定义选项参考自定义优化选项章节。
支持的编程语言
LLVM是一种涵盖多种编程语言和目标处理器的编译器,毕昇编译器聚焦于对C、C++、Fortran语言的支持,利用LLVM的Clang作为C和C++的编译和驱动程序,Flang作为Fortran语言的编译和驱动程序。同步支持上述编程语言的OpenMP拓展。
C,C++程序
Clang不仅仅是可以将C, C++程序编译为LLVM中间表示的IR,它也是一个驱动程序,会调用所有以代码生成为目标的LLVM优化遍,直到生成最终的二进制文件。毕昇编译器提供了端到端编译程序所需的所有工具和库。
Fortran程序
Flang是专为LLVM集成而设计的Fortran前端,由两个组件flang1和flang2组成。它也是一个驱动程序,将源代码转换为LLVM IR,前端驱动程序将IR传输下去进行优化和目标代码生成。