原创

LLVM Language Reference Manual---阅读笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://llvm-cn.blog.csdn.net/article/details/8074737

文档地址:http://llvm.org/docs/LangRef.html

LLVM IR的标示符有两种基本类型,全局的和局部的。全局标示符以@开头,局部标示符以%开头。LLVM IR的标示符有三种形式:命名的,未命名的,常量。

每一个Moudule都是由函数、全局变量和符号表组成的。
全局变量表现为指向为一块内存的指针。
全局变量和函数都会有一个linkage type, 就像:private, internal, linkonce等。
一个函数的声明只能使用external, dellimport, extern_weak这三种linkage type.
引用(aliases)只能使用external, internal, weak, weak_odr这四种linkage type.
Calling Converntions
所有的全局变量和函数都有一个visibility styles: default, hidden, protected.
Named Types:
Note that type names are aliases for the structural type that they indicate, and that you can therefore specify multiple names for the same type. This often leads to confusing behavior when dumping out a .ll file. Since LLVM IR uses structural typing, the name is not part of the type. When printing out LLVM IR, the printer will pick one name to render all types of a particular shape. This means that if you have code where two different source types end up having the same LLVM type, that the dumper will sometimes print the "wrong" or unexpected type. This is an important design point and isn't going to change.

随手记得一些东西,没有仔细的总结和分析,后续有时间的话进行总结。
文章最后发布于: 2012-10-15 21:09:28
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览