华为方舟编译器官网

  • 0权重
  • 0360
  • 0搜狗
  • 12579排名
  • 3480热度
  • 0入站数
  • 50出站数
  • 2024-03-28日期
网站介绍:华为方舟编译器(OpenArkCompiler)正式开源,官网已上线,源代码包、二进制包已提供下载,相关文档、演示等资料也一应俱全。   本次方舟编译器开源的是编译器框架部分源码,包括编译器中间表示(IR)和语言编译实现,同时搭配编译器其他二进制组件,实现Java程序到aarch64汇编指令的编译过程。   开发者可基于开源代码+二进制,编译构建出编译器工具链,尝试对Java程序进行编译。   社区参与者可以通过框架源码学习方舟编译器的编译器中间表达(IR)及基本的中端编译框架,熟悉方舟编译器的架构思想,并参与诸如对编译器中端优化的贡献。   [方舟编译器的优势]   按照华为的介绍,方舟编译器是为支持多种编程语言、多种芯片平台的联合编译、运行而设计的统一编程平台,包含编译器、工具链、运行时等关键部件,目前还在持续演进中,上述能力将陆续实现和开源。   通过多语言统一IR表示,方舟编译器可实现应用中多种编程语言联合编译优化提升性能,而且在支持多平台的同时,根据设备特征提供便捷的开发与部署策略提升效率。   华为方舟编译器提供了全新的系统及应用的编译和运行机制,从动态编译变为静态编译,就是直接将高级语言直接编译成机器码,彻底消除了虚拟机动态编译的额外开销,实现了开发和运行效率的兼容并举。   1、多语言联合   将同一应用中的不同语言代码联合编译、联合优化,消除语言间的性能“鸿沟”,降低开发者的优化成本   2、轻量运行时   通过编译器的语言实现能力和优化能力增强,应用运行时的开销更小   3、软硬件协同   编译器与芯片实现软硬件协同优化,充分发挥硬件能效,应用体验更佳   4、多平台支持   支持面向多样化的终端设备平台进行编译和运行,根据设备特征提供便捷的开发与部署策略,提高开发效率   [方舟编译器的架构设计]   当前方舟编译器支持Java/Kotlin程序字节码的前端输入,C/C++/JS等其它编程语言的支持还在规划中。   方舟编译器的中间表示(IR)转换器将前端输入转换成方舟IR,并输送给后端的优化器,最终生成二进制文件,二进制文件与编译器运行时库文件链接生成可执行文件,在方舟的运行环境中就可执行该文件。   方舟编译器IR是支持程序编译和运行的中间程序表示。程序源代码中的任何信息对于程序分析和优化都是有帮助的,所以方舟IR的目标是尽可能完整详细地提供源程序的信息。   [方舟编译器的环境配置]   - 硬件配置推荐   方舟编译器的硬件配置需求不高,最低只需2GHz双核心处理器、2GB内存、200GB硬盘空间,当然要获得最高效率,更高配置是强烈推荐的。   - 开发环境推荐   需要64位版本的Linux,尤其推荐Ubuntu 16.04   sudo apt-get -y install openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip lib32z1-dev qemu g++-multilib gcc-multilib python3-paramiko python-paramiko python-jenkins python-requests python-xlwt libglib2.0-dev libpixman-1-dev linux-libc-dev:i386   sudo apt-get -y install gcc-5-aarch64-linux-gnu g++-5-aarch64-linux-gnu   - Clang编译器   主要用于编译方舟编译器代码。   下载clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04,地址:   http://releases.llvm.org/download.html#8.0.0   放置到openarkcompiler/tools目录,打开openarkcompiler/build/config/BUILDCONFIG.gn文件,将GN_C_COMPILER、GN_CXX_COMPILER和GN_AR三个变量配置为Clang编译器所在路径。例如:   GN_C_COMPILER = “${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang”   GN_CXX_COMPILER = “${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/clang++”   GN_AR = “${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar”   其中${MAPLE_ROOT}为openarkcompiler源码根目录。   安装Ninja、GN并完成配置   - Ninja、GN   下载Ninja(v1.9.0)及GN(Linux Version) Ninja,地址:   https://github.com/ninja-build/ninja/releases   GN下载地址:   https://archive.softwareheritage.org/browse/content/sha1_git:2dc0d5b26caef44f467de8120b26f8aad8b878be/raw/?filename=gn   将GN和Ninja可执行程序放置到openarkcompiler/tools目录,打开openarkcompiler/Makefile文件,将GN和NINJA两个变量配置为GN和Ninja可执行程序所在路径。例如:   GN := ${MAPLE_ROOT}/tools/gn/gn   NINJA := ${MAPLE_ROOT}/tools/ninja_1.9.0/ninja
当前位置:站长啦网站目录 » 分类目录 » 电脑网络 » 编程 » 程序编程 » 站点详细

推荐网站