LLVM学习笔记①

LLVM标识符:
(两种类型)
1、全局标识符(函数、全局变量),以‘@’字符开头
2、本地标识符(寄存器名称、类型),以‘%’字符开头
(三种格式)
1、有命名值:表示带有浅醉的字符串,例如%foo, @DivisionByZero, %a.really.long.identifier。实际上使用的是正则表达式’[% @][-a-zA-z . ] [ − a − z A − Z ._][-a-zA-Z .][azAZ._0-9]*’
2、未命名值:表示为带前缀的无符号数值,例如%2,@3
3、常量
这样的话可以避免与系统保留字冲突。
例子:

%result = mul i32 %X, 8   ;乘法命令
%result = shl i32 %X, 3	;左移三
%0 = add i32 %X, %X           ; yields i32:%0
%1 = add i32 %0, %0           ; yields i32:%1
%result = add i32 %1, %1

由以上三种方法可以总结:
1、指令以遇到’;‘结尾,注解以’;'开头
2、当计算结果没有被赋值给指定命名值时,将创建未命名的临时变量
3、未命名的临时变量序号是按顺序编号的,从0开始,基本块以及未命名的函数参数都会被编号
它还显示了我们在本文档中遵循的约定。在演示指令时,我们将在指令后面加上注释,注释定义生成的值的类型和名称。

翻译自
[1]: https://llvm.org/docs/LangRef.html#abstract

你可能感兴趣的:(LLVM,llvm)