![](https://img-blog.csdnimg.cn/20190920102633796.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LLVM
这里记录LLVM的深入教程
Yurii.Huang
哀吾生之须臾,羡长江以无穷
展开
-
libClang前端语法解析(CXCursor使用)
# std::Maptemplate<class InputIt>using iter_key_t = std::remove_const_t<typename std::iterator_traits<InputIt>::value_type::first_type>;template<class InputIt>using iter_val_t = typename std::iterator_traits<InputIt>::v.原创 2022-06-02 18:46:30 · 776 阅读 · 0 评论 -
LLVM 的编译框架基本流程探索(Clang)
先CMake + vs2019 编译llvm和clang。在上一篇文章中已经记录的相应的流程。创建clangSetEnvPath.cmd内容如下set CLANG_EXE=E:\workspace\llvm-project-master\clang\out\install\x64-Release\bin&set PATH=%PATH%;%CLANG_EXE%;上面那...原创 2019-08-15 17:14:33 · 1195 阅读 · 0 评论 -
LLVM 编译源码
为什么要学习LLVM?适当的站在巨人的肩膀上,可以事半功倍。这并不能成为自己固步自封的借口,常走在SDK的边缘,造IDE,各种轮子。当中除了工作还有参杂着自己的一些兴趣,存在即更好的探究这个世界。我先阐述一下clang和llvm的关系。clang是隶属于llvm的子项目,在C/C++体系中常用的编译器。这是连载系列的文章,在后面了解LLVM中可能会直接提及clang,不要怀疑。clang ...原创 2019-08-14 16:11:41 · 5197 阅读 · 0 评论 -
LLVM 的编译框架基本流程探索(Clang AST语法树)
上一篇文章末尾提到 AST语法树。语句如下clang -fmodules -fsyntax-only -Xclang -ast-dump src.ppCompStream.cpp#include <iostream>int main(){ int a = 10; int b = 20; int c = a + b; std::...原创 2019-09-10 14:49:56 · 4164 阅读 · 2 评论 -
LLVM Frontend构造(实现自定义静态语法检查)
这里先提到一个C++的插件模式。具体的相关知识,就不给予解释了。大致就是继承一个纯虚抽象class范式,编写逻辑形成动态库,在main.cpp loop中进行相应的加载管理。官方clang插件文档=============Clang Plugins=============Clang Plugins make it possible to run extra user d...原创 2019-09-10 18:00:48 · 633 阅读 · 0 评论