全局变量

@.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