llvm 常用命令备忘

2024-06-05 22:04
文章标签 常用命令 备忘 llvm

本文主要是介绍llvm 常用命令备忘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

执行 IR 上的指令合并优化 pass
$ opt –S –instcombine testfile.ll –o output1.ll

执行无效参数优化 pass
$ opt –S –deadargelim testfile.ll –o output2.ll

C 语言生成 IR 文件
$ clang -emit-llvm -S multiply.c -o multiply.ll


C 语言生成 IR 文件
$ clang -cc1 -emit-llvm testfile.c -o testfile.ll

IR 到 bitcode
$ llvm-as test.ll –o test.bc


bitcode 到 目标 asm
$ llc test.bc –o test.s

$ clang -S test.bc -o test.s –fomit-frame-pointer

bitcode 到 IR
$ llvm-dis test.bc –o test.ll

optimization 的格式:
$opt –passname input.ll –o output.ll


重复,C 语言 到 IR
$ clang -emit-llvm -S multiply.c -o multiply.ll


执行内存提升为寄存器优化 pass
$ opt -mem2reg -S multiply.ll -o multiply1.ll


链接 bitcode
$ llvm-link test1.bc test2.bc –o output.bc

虚拟机运行 bitcode
$ lli output.bc

第一轮预处理展开
$ clang test.c -E

抽象语法树
$ clang -cc1 test.c -ast-dump


将 LLVMIR 输出到屏幕
$ clang test.c -S -emit-llvm -o -


将 ASM 输出到屏幕
$ clang -S test.c -o -

这篇关于llvm 常用命令备忘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034292

相关文章

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

linux运维排查常用命令(开发专享)

cd: 进入到某个目录下 cd hikvision ll:详细展示该目录下有的文件 ll su 用户名:切换用户名 例子: su root 根据字符串在文件中查找信息:Grep –a –i 字符串 文件名 例子: grep -a -i 'indexCode=4a28a0dfe0244c0cbabcd9b2c3b60327' nms.nmsweb.debug.log cat 文

Linux概述、远程连接、常用命令

Linux介绍 Linux操作系统介绍 Linux操作系统的特点 开源免费安全稳定可移植性好 Linux可以安装在不同的设备上 高性能 Linux的使用领域 应用服务器数据库服务器网络服务器虚拟化云计算嵌入式领域个人PC移动手机 Linux文件系统和目录 /:根目录,唯一/home:用户目录/root:系统管理员root目录/usr:应用程序/etc:系统配置boot:内核文件/tm

LLVM IR指令VM混淆分析

未混淆编译  编写一个最简单的测试代码,对 test_add函数用于对两个数相加: int __attribute((__annotate__("vm"))) test_add(int a, int b) {int c = a + b;return c;}int main(void) {int c = test_add(1, 2);return c;} 编译成中间代码:  未加

maven学习笔记【常用命令】

mvn构建web项目 mvn archetype:create -DgroupId=com.mycompany.webapp -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp mvn依赖管理 例:加入servlet-api.jar   <dependency>       <groupId>javax.servl

cmd 常用命令总结

尽管图形用户界面已成为常态,但命令行工具仍然在许多场景下不可或缺。下面是 Windows 命令提示符(CMD)中的一些常用命令及其用法。 1. 导航命令 cd:改变当前工作目录。 cd /?:获取 cd 命令的帮助信息。 cd \:回到当前驱动器的根目录。 cd ..:返回上一级目录。 cd /d E:\software:切换到另一个驱动器并进入指定的目录。 D::切换到 D 驱动器

【linux 常用命令】查看gpu、显卡常用命令

1.查看显卡基本信息 lspci | grep -i nvidia 2.查看显卡驱动版本 nvidia-smi -a 3.查看gpu使用情况 nvidia-smi (spam) [dongli@dt-gpu-1 train]$ nvidia-smi Fri Sep 27 16:42:33 2019 +----------------------------------------

【linux 常用命令】常用命令整理

linux的命令操作1、日常操作命令 **查看当前所在的工作目录pwd**查看当前系统的时间 date**查看有谁在线(哪些人登陆到了服务器)who 查看当前在线last 查看最近的登陆历史记录2、文件系统操作**ls / 查看根目录下的子节点(文件夹和文件)信息ls -al -a是显示隐藏文件 -l是以更详细的列表形式显示**切换目录cd /home**创建文件

【linux yum常用命令】linux yum 命令

yum常用命令1.列出所有可更新的软件清单命令:yum check-update2.更新所有软件命令:yum update3.仅安装指定的软件命令:yum install <package_name>4.仅更新指定的软件命令:yum update <package_name>5.列出所有可安裝的软件清单命令:yum list 比如:利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?