美文网首页
LLVM的中间代码(IR)

LLVM的中间代码(IR)

作者: it小小菜鸟 | 来源:发表于2020-07-24 16:57 被阅读0次
Objective-C在变为机器代码之前,会被LLVM编译器转换为中间代码

OC -> 中间代码(.ll) -> 汇编、机器代码

可以使用以下命令行指令生成中间代码
  • 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

相关文章

  • Clang命令

    xcrun -sdk iphoneos指定平台 -arch arm64指定架构 查看LLVM的中间代码IR (In...

  • LLVM的中间代码(IR)

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

  • 教你使用swift写编译器玩具(3)

    前言 本章对应官方教程第3章,本章介绍如何将抽象语法树(AST)转换为中间代码(LLVM IR)。 教程如下: 教...

  • 教你使用swift写编译器玩具(4)

    前言 本章对应官方教程第4章,本章介绍如何为中间代码(LLVM IR)添加优化以及添加JIT编译器支持。 教程如下...

  • LLVM

    Mac安装llvm 软链接相应工具(未列出的可以自己去找一下): C转LLVM IR LLVM IR转bitcod...

  • llvm学习日记六:LLVM IR 在内存中的模块

    参考书:《Getting Started with LLVM Core Libraries》 LLVM IR 内存...

  • LLVM IR

    LLVM Intermediate Representation,链接 LLVM 前端和后端的桥梁,与编程语言和运...

  • Impala中 LLVM 的交叉编译、调用过程

    [TOC] 本文主要介绍通过gen_ir_descriptions.py引入的 LLVM IR 函数(交叉编译)。...

  • LLVM IR介绍

    官方链接 标识符 LLVM的标识符有两类:全局标识符和局部标识符。全局标识符以符号@开头,局部标识符由符号%开头。...

  • 代码混淆

    LLVM编译过程: 预处理,词法分析,token,语法分析,AST,代码生成,LLVM IR,优化,生成,汇编代码...

网友评论

      本文标题:LLVM的中间代码(IR)

      本文链接:https://www.haomeiwen.com/subject/iufslktx.html