LLVM的基本库

这篇文章详细描述了LLVM库体系中的关键模块,包括libLLVMCore处理IR逻辑,libLLVMAnalysis进行IR分析,libLLVMCodeGen负责代码生成,libLLVMTarget提供目标机器接口,libLLVMSupport支持通用工具和特定后端,libclang和libclangDriver则涉及C接口和编译器驱动,libclangAnalysis则包含前端分析工具。
摘要由CSDN通过智能技术生成
  1. libLLVMCore:该库包含与LLVM IR相关的所有逻辑:IR构造(数据布局、指令、基本块和函数)以及IR校验器。它还负责编管理译器中各种编译流程
  2. libLLVMAnalysis:该库包含几个IR分析过程,如别名分析,依赖分析,常量折叠,循环信息、内存依赖分析和指令简化
  3. libLLVMCodeGen:该库实现与目标无关的代码生成和机器级别(LLVM IR 的更低级版本)的分析和转换
  4. libLLVMTarget:该库通过通用目标抽象来提供对目标机器信息的访问接口。这些高级抽象位libLLVMCodeGen中实现的通用后端算法与为下一个库保留的特定于目标的逻辑之间进行通信提供网关
  5. libLLVMSupport:该库具有特定x86目标的代码生成信息、转换、和分析过程,它们组成x86后端。注意:每个目标机器都有一个不同的库,比如分别实现ARM和MIPS后端的LLVMARMCodeGen和LLVMMipsCodeGen库
  6. libLLVMSupport:该库包括一个通用工具集合。错误、整数和浮点处理、命令行解析、调试、文件支持和字符串处理都是在这个库中实现的算法实例,它们在LLVM各组件中通用
  7. libclang:该库实现一个C接口(而不是C++接口),它是LLVM代码的默认实现语言,可以访问Clang的大部分前端功能:诊断报告、AST遍历、代码完成、游标映射和源代码。由于它使用C语言,使用更简单的接口,因此它允许以其他语言(如python)编写的项目更容易地使用Clang功能,当然C接口设计更为稳定,并允许外部项目依赖它。该库仅涵盖内部LLVM组件所使用的C++接口的一个子集
  8. libclangDriver:该库包含编译器驱动程序工具使用的一组类,用于理解类似于GCC的命令行参数,以便为外部工具完成编译的不同步骤准备作业和组织足够的参数。它可以根据目标平台管理不同的编译策略。
  9. libclangAnalysis:该库由Clang提供的一组前端分析器。它具有CFG和调用图结构、代码可达性、格式字符串安全性等

下面这链接中介绍了LLVM库之间的依赖关系
https://releases.llvm.org/3.0/docs/UsingLibraries.html
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Back~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值