全局变量
@.str.9 = private unnamed_addr constant [12 x i8] c"jinjingTest\00", section "__TEXT,__cstring,cstring_literals", align 1
@示意全局变量 与之绝对应的%示意局部变量,以%前缀
private 示意公有的
unnamed_addr 示意地址不重要,只有内容.被标记成这样的常量如果领有雷同的初始化器,能够合并. 比如说下面的 "jinjingTest"能够和其余的内容为"jinjingTest"的常量合并.local_unnamed_addr示意地址在模块中被认为是不重要的
constant 示意常量
[12 x i8] 示意12个1字节(i8为8位)的数组,也可示意字符串,这里包含分隔符\00
c"jinjingTest\00" 为llvm里的初始化器,示意c字符串,\00为结尾符
section 示意存储在Mach-o中的section中央
align 1 示意内存对齐为1,就是其中有余1的依照1对齐
语法如下:
@<GlobalVarName> = [Linkage] [PreemptionSpecifier] [Visibility]
[DLLStorageClass] [ThreadLocal] [(unnamed_addr|local_unnamed_addr)] [AddrSpace] [ExternallyInitialized] <global | constant> <Type>[<InitializerConstant>] [, section "name"] [, comdat [($name)]] [, align <Alignment>] (, !name !N)*
Linkage 链接类型
PreemptionSpecifier 运行抢占阐明
Visibility 可见性规定
DLLStorageClass DLL存储类别
ThreadLocal 线程存储模型
[(unnamed_addr|local_unnamed_addr)] 地址不重要或模块中地址不重要
[AddrSpace] 地址空间?
[ExternallyInitialized] 内部曾经初始化?
<global | constant> 全局或常量
Type 类型
InitializerConstant 初始化器,即初始化值
,section "name" 寄存的section段,后面有","和后面宰割
,align <Alignment> 对齐类型, 后面有","和后面宰割
getelementptr 语法
getelementptr