华为云计算 云知识 LLVM是什么

LLVM是什么

简介

LLVM是一个自由软件项目,它是一种编译器基础设施,以C++写成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、运行时期以及“闲置时期”的最优化。

配置编译流程

1.配置编译环境

1)安装wget依赖工具。

yum install wget -y

2)升级GCC版本。

鲲鹏默认的GCC版本为4.8.5,编译llvm时候,需要不低于GCC5.1的版本。请参考https://www.huaweicloud.com/kunpeng/software/gcc.html对GCC版本进行升级

3)升级CMake版本。

配置要求CMake最低版本为3.4.3,请参考https://www.huaweicloud.com/kunpeng/software/cmake.html对CMake进行安装或者版本升级。

----结束

2.获取源码

获取“llvm-9.0.0”源码包。

cd /usr/local/src
mkdir llvm
cd llvm
wget http://releases.llvm.org/9.0.0/llvm-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/cfe-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/compiler-rt-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/libcxx-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/libcxxabi-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/libunwind-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/lld-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/lldb-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/openmp-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/polly-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/clang-tools-extra-9.0.0.src.tar.xz
wget http://releases.llvm.org/9.0.0/test-suite-9.0.0.src.tar.xz

3.编译和安装

1)解压软件包。

tar -xvf llvm-9.0.0.src.tar.xz

2)进入gcc的安装目录。

cd llvm-9.0.0.src
mkdir b
cd b

3)生成Makefile文件

cmake ..  -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON

4)编译安装llvm。

“-j”参数可利用多核CPU加快编译速度,在本示例中,使用的是2核CPU,所以此处为“-j2”。

可通过下述命令查询CPU核数:

cat /proc/cpuinfo| grep "processor"| wc -l
make -j2
make install
----结束

4.运行和验证

1)查询安装的llvm工具。

输入llvm-然后按Tab键,回显信息如下,则表示llvm安装了如下工具。

llvm-addr2line   llvm-config      llvm-cxxmap      llvm-elfabi      llvm-lipo        llvm-mt          llvm-profdata    llvm-size        llvm-tblgen      
llvm-ar          llvm-cov         llvm-diff        llvm-exegesis    llvm-lto         llvm-nm          llvm-ranlib      llvm-split       llvm-undname     
llvm-as          llvm-c-test      llvm-dis         llvm-extract     llvm-lto2        llvm-objcopy     llvm-rc          llvm-stress      llvm-xray        
llvm-bcanalyzer  llvm-cvtres      llvm-dlltool     llvm-jitlink     llvm-mc          llvm-objdump     llvm-readelf     llvm-strings     
llvm-cat         llvm-cxxdump     llvm-dwarfdump   llvm-lib         llvm-mca         llvm-opt-report  llvm-readobj     llvm-strip       
llvm-cfi-verify  llvm-cxxfilt     llvm-dwp         llvm-link        llvm-modextract  llvm-pdbutil     llvm-rtdyld      llvm-symbolizer

2)选择一个工具查看版本信息。

llvm-nm --version

回显信息如下,则表示该工具安装成功,其他工具验证类似。

LLVM (http://llvm.org/):
  LLVM version 9.0.0
  Optimized build with assertions.
  Default target: aarch64-unknown-linux-gnu
  Host CPU: tsv110
----结束

上一篇:拓课云直播后台管理系统操作与说明(三) 下一篇:域名和url的区别与联系是什么?