LLVM相关、核心库

#LLVM核心库
libLLVMCore:与LLVM IR相关的逻辑:IR的构造(数据布局、指令、基础块、函数)和IR检验器。也提供Pass 管理器

libLLVMCore: This contains all the logic related to the LLVM IR: IR construction (data layout, instructions, basic blocks, and functions)and the IR verifer. It also provides the pass manager

libLLVMAnalysis: 将IR分析pass进行分组,如别名分析、依赖分析、常数合并、循环信息、内存依赖分析、指令简化

libLLVMAnalysis: This groups several IR analysis passes, such as alias analysis, dependence analysis, constant folding, loop info, memory dependence analysis, and instruction simplify

libLLVMCodeGen:生成目标依赖的代码和机器指令级(比LLVM IR更低级的)分析和转换

libLLVMCodeGen:This implements target-independent code generation and machine level—the lower level version of the LLVM IR—analyses and transformations.

libLLVMTarget: 通过同用的目标抽象提供目标机信息的访问。高级抽象提供了 libLLVMCodeGen中 实现的通用后端算法与保留在下一库中的特定目标逻辑之间的通信gateway

libLLVMTarget: This provides access to the target machine information by generic target abstractions. These high-level abstractions provide the communication gateway between generic backend algorithms implemented in libLLVMCodeGen and the target-specifc logic that is reserved for the next library.

libLLVMX86CodeGen:包含构成x86后端的x86特定目标的代码生成信息、转换和分析pasaes。注:每一个机器目标都有一个不同的lib,例:LLVMARMCodeGen、LLVMMipsCodeGen分别实现了ARM和MIPS的后端。

libLLVMX86CodeGen: This has the x86 target-specifc code generation information, transformation, and analysis passes, which compose the x86 backend. Note that there is a different library for each machine target, such as LLVMARMCodeGen and LLVMMipsCodeGen, implementing ARM and MIPS backends, respectively.

libLLVMSupport:包含通用工具集合。报错、整数和浮点数处理、注释行解析、degug、文件支持和字符串操作都在该库中实现。在LLVM组件中被广泛使用。

libLLVMSupport: : This comprises a collection of general utilities. Error, integer and floating point handling, command-line parsing, debugging,file support, and string manipulation are examples of algorithms that are implemented in this library, which is universally used across LLVM components.

libclang:为了访问Clang的许多前端功能,诊断报告、AST遍历、代码完成、游标之间的映射和源代码,实现了C接口而非LLVM的默认实现语言C++。因为它是一个C语言的、更简单的接口,所以它允许用例如Python这样的其他语言编写的项目,使其更容易地使用Clang功能,尽管C语言的接口设计得更稳定,允许外部项目依赖它。这只涵盖了内部LLVM组件使用的c++接口的一个子集。

libclang: This implements a C interface, as opposed to C++, which is the default implementation language of LLVM code, to access much of Clang’s frontend functionalities—diagnostic reporting, AST traversing, code completion, mapping between cursors, and source code. Since it is a C, simpler interface, it allows projects written in other languages, such as Python, to use the Clang functionality more easily, albeit the C interface is designed to be more stable and allow external projects to depend on it. This only covers a subset of the C++ interface used by internal LLVM components.

libclangDriver:包含一组用于编译器驱动工具类,被用来理解类似于gcc的命令行参数,以准备作业并为外部工具组织足够的参数,以确定编译的不同步骤。它可以根据目标平台管理不同的编译策略。

libclangDriver: This contains the set of classes used by the compiler driver tool to understand GCC-like command-line parameters to prepare jobs and to organize adequate parameters for external tools to finish different steps of the compilation. It can manage different strategies for the compilation, depending on the target platform.

libclangAnalysis:Clang提供的前端分析集合。它具有CFG和调用图结构、可访问代码、格式字符串安全性等功能。

libclangAnalysis: : This is a set of frontend level analyses provided by Clang. It features CFG and call-graph construction, reachable code, format string security, among others.

http://releases.llvm.org/3.0/docs/UsingLibraries.html 其他库以及之间的关系

猜你喜欢

转载自blog.csdn.net/u011367210/article/details/83151521