llvm-llc生成riscv64文件并测试的流程
llvm-llc生成riscv64文件并测试的流程
环境:
- Ubuntu 18.04、Qemu 5.4、LLVM 11.0、GNU交叉编译工具链
- Benchmark:Mibench:http://vhosts.eecs.umich.edu/mibench/
- 配置过程见https://blog.csdn.net/qq_40037872/article/details/114667480
在上述环境下,修改LLVM中Codegen面相RISC-V的源码,并测试的流程如下:
在Clion下修改LLVM源码并build
找到测试文件——这里用Mibbench中的basicmath作为例子
cd ~/llvmwd/Mibench/automotive/basicmath
使用clang生成LLVM IR(.ll文件)
clang -O3 -emit-llvm --target=riscv64-unknown-linux-gnu --gcc-toolchain=/opt/riscv64 --sysroot=/opt/riscv64/sysroot/ -S *.c
使用llc命令生成汇编文件
llc -O3 --march=riscv64 --enable-machine-outliner=always basicmath_small.ll llc -O3 --march=riscv64 --enable-machine-outliner=always basicmath_large.ll llc -O3 --march=riscv64 --enable-machine-outliner=always cubic.ll llc -O3 --march=riscv64 --enable-machine-outliner=always rad2deg.ll llc -O3 --march=riscv64 --enable-machine-outliner=always isqrt.ll
使用clang命令进行汇编和链接
clang -O3 --target=riscv64-unknown-linux-gnu --gcc-toolchain=/opt/riscv64 --sysroot=/opt/riscv64/sysroot/ --static basicmath_large.s cubic.s isqrt.s rad2deg.s -lm
打开risc64-linux文件夹并挂载文件系统到rootfs
sudo mount -o loop rootfs.img ~/riscv64-linux/rootfs
将生成的可执行文件复制到文件系统中
sudo cp ~/llvmwd/Mibench/automotive/basicmath/basicmath rootfs/root/
取消挂载
sudo umount rootfs
启动qemu-riscv64并执行
qemu-system-riscv64 -M virt -m 256M -nographic -kernel linux/arch/riscv/boot/Image -drive file=rootfs.img,format=raw,id=hd0 -device v irtio-blk-device,drive=hd0 -append "root=/dev/vda rw console=ttyS0"./root/basicmath
关闭qemu
poweroff
llvm-llc生成riscv64文件并测试的流程相关推荐
- aidl生成java文件_Android AIDL自动生成Java文件测试
/******************************************************************************** * Android AIDL自动生成 ...
- STM32L051测试 (一、使用CubeMX生成工程文件 — ST系列芯片通用)
本文也适合STM32CubeMX 支持的所有芯片的设置 ..调整文章结构,添加图文说明 2022.2 ..增加其他应用章节,增加 ADC 设置说明 2023.3 CubeMX生成工程步骤 前言 一.时 ...
- NDK JNI Android Studio开发与调试DEMO(三)(生成 .so 文件)
Android Studio NDK 开发与调试(生成 .so 文件) 温馨提示:如果你的 Android Studio 版本在 3.0以上 , 建议你用 cMake /ndk-build 的新姿势进 ...
- python excel web_使用python在WEB页面上生成EXCEL文件
近日写的一个程序需要在WEB服务器上生成EXCEL文件供用户下载,研究了一下找到了以下比较可行的实现方案,下面以web.py为例,把相关代码贴出来供大家参考: 首先需要下载生成EXCEL的模块,推荐使 ...
- 数据库抽取,生成CSV文件导出,CSVUtils工具类
2019独角兽企业重金招聘Python工程师标准>>> 开发背景: 最近一直在忙一个任务调度系统,需求一直没定下来,需求一直变更,调度一直改,往往复复... 等这波忙完了可以写一下关 ...
- JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式
JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式,以及如何使用Eclips Memory Analyzer(MAT)插件进行堆内存分析. 方法一: jmap -du ...
- gsoap 学习 1-自己定义接口生成头文件
接口头文件的格式在向导中没有看到明确的说明性的内容,但通过看开发包中示例程序中头文件定义和通过wsdl生成的头文件的内容,可以发现,头文件中都会出现以下几行信息 //gsoap ns service ...
- 这是预编译工具生成的文件_组件化架构 10.编译优化
软件研发中,耗费最多时间的并不是编写代码,而是代码编译和代码不断调试的过程 软件试错时间 Android基础编译流程 编译构建的四个步骤: 代码编译:将源代码,R文件,AIDL生成的文件等 编译成.c ...
- 超详细的java生成excel文件并下载
在网上随手一搜,可以搜到很多java生成excel文件相关的博客,但每个都有不同,核心点说清楚了,但具体运用的时候,相信大家或多或少都没法一次直接运用,这样每次去找并且运用的时候很费时间,所以这也是我 ...
最新文章
- VUE还没生效,页面闪屏的问题解决办法 v-cloak
- c语言退出程序命令_C语言#error命令,阻止程序编译
- SQL 盲注GET /POST、布尔型,延时型Python脚本
- CCIE-LAB-第二篇-端口聚合LACP+RSTP
- 【sql绕过】Bypass waf notepad of def
- java 中class相关的问题
- Unity使用自定义资源(.asset)配置数据
- 如何自学python-如何自学python语言
- Navicat for Mysql安装及破解教程
- python编程音乐播放器_python 开发在线音乐播放器-简易版
- 计算机创业计划书800字大全,2017创业计划书范文800字
- Tor去匿名化?俄罗斯联邦安全局秘密项目因承包商被入侵遭曝光
- 手把手 | 用Python语言模型和LSTM做一个Drake饶舌歌词生成器
- 安装 kafka 配置 sasl 认证
- shell - 在文本中的前一行或后一行添加一行内容,指定行前后增加一行内容
- 【计算机网络】知识点整理 第四章 网络层(王道考研视频学习记录)
- EDM营销存在的六大问题
- cocos2d-x 使用位图工具BMFont自定义字体 fnt
- wps模板服务器无响应,WPS表格无响应
- <论文阅读>LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping