Runtime系列:LLVM的中间代码(IR)【07】

简介: Runtime系列:LLVM的中间代码(IR)

Objective-C在变为机器代码之前,会被LLVM编译器转换为中间代码(Intermediate Representation)


可以使用以下命令行指令生成中间代码:


clang -emit-llvm -S main.m

常用语法简介:


@ - 全局变量

% - 局部变量

alloca - 在当前执行的函数的堆栈帧中分配内存,当该函数返回到其调用者时,将自动释放内存

i32 - 32位4字节的整数

align - 对齐

load - 读出

store - 写入

icmp - 两个整数值比较,返回布尔

br - 选择分支,根据条件来转向label,不根据条件跳转的话类似 goto

label - 代码标签

call - 调用函数


具体参考官方文档:https://llvm.org/docs/LangRef.html


相关文章
|
机器学习/深度学习 自然语言处理 并行计算
多头注意力机制介绍
【10月更文挑战第4天】
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
924 8
|
SQL Java 关系型数据库
MySQL Like模糊查询速度太慢如何进行优化
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
839 0
MySQL Like模糊查询速度太慢如何进行优化
|
关系型数据库 MySQL Linux
Linux系统之部署Plik临时文件上传系统
【2月更文挑战第1天】Linux系统之部署Plik临时文件上传系统
291 1
|
数据安全/隐私保护
“Authentication is required”
“Authentication is required”
2742 2
|
运维 网络协议 Linux
linux/windows如何退出telnet
linux/windows如何退出telnet
769 0
|
4天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
13天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
下一篇
oss云网关配置