Advertisement

LLVM某些编程语法和语义特性

阅读量:

LLVM中的编程语法语义特性

; External prototype of the puts function is declared as i32 @puts(i8* nocapture) nounwind.

; Definition of main function
define i32 @main() { ; i32()*
; Convert [13 x i8]* to i8*…
%cast210 = getelementptr [13 x i8], [13 x i8]* @.str, i64 0, i64 0

调用" puts "函数以将字符串写入目标端口.
调用i32类型的寄存器并指向系统调用" puts ". 将i32类型的值返回.

! named metadata
!0 = !{i32 42, null, !"string"}
!foo = !{!0}
该示例通过将全局变量命名为" .str"来实现,在外部声明" puts"函数中定义名为" main"的函数,并将其命名为元数据" foo".
一般情况下, 模块由一组全局值构成(其中包含函数和全局变量).这些全局值通过指向内存位置的指针来表示(在此情境下, 指针指向字符数组, 并指向函数).
命名元数据
命名元数据构成了集合的形式, 其中每个节点(除

全部评论 (0)

还没有任何评论哟~