llvm
beswkwangbo
这个作者很懒,什么都没留下…
展开
-
llvm 学习笔记 1 :gdb 调试 llvm
1. 编译出 llvm 系列的 debug 版本,不过据学长说比 release 版要慢 10倍。调试也可以在 release 版输出信息。2. 使用 -v 参数输出全部的参数信息。clang -flto -c hello.c -v 3. 使用 gdb clang 进入调试阶段。4. set args + 步骤2 中显示的参数 : -cc1 -triple x86_64-unkno原创 2015-03-05 09:49:20 · 3683 阅读 · 1 评论 -
llvm 学习笔记 2 : 添加 Pass 与调试
在BackendUtil.cpp 的 void EmitAssemblyHelper::EmitAssembly 函数中, if (PerFunctionPasses) 条件后 new 了自带的 Hello pass. 重新 make 时发生以下错误make[4]: Entering directory '/home/nightwish/code/GIT/llvm/release/tools原创 2015-03-08 15:45:22 · 2553 阅读 · 0 评论 -
clang LibTooling 的使用 (1)
根据官方文档,LibTooling 是可以用来实现编译器外部的前端工具。可以完成操作AST等工作。最先使用的 llvm 3.4.2,有几个 test 没通过,于是切换到最新的 llvm 3.7。cmake 时需要加上生成 compile database 的选项:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Rel原创 2015-05-20 13:38:00 · 3358 阅读 · 0 评论 -
llvm 学习笔记 3:相关命令
记录一些用到的命令llc:llc -march=cpp -o fork2.c fork.ll 通过 IR 生成对应llvm api 的 cpp 文件。原创 2015-03-09 10:43:26 · 708 阅读 · 0 评论 -
Clang 静态分析(Static Analyzer)工具使用的总结
woogle原创,转载注明出处。Clang作为LLVM(LowLevel VirtualMachine)编译器框架的前端,可以将C/C++、O-C/O-C++语言编译成为LLVM的中间表达式IR(IntermediateReresentation), 其结构图如下所示:上面的不是重点,本篇文章的重点是讲Clang静态分析工具的使用,Clang作为前端,最主要的转载 2015-10-16 15:34:31 · 10417 阅读 · 0 评论 -
LLVM自定义数据结构概述
自定义数据结构的好处在于,STL在不同平台的性能不一样,而且缺一些需要的数据结构,例如C++11之前没有HashMaps。同时专门的数据结构会比一般化的快。VectorSmallVector类似std::原创 2015-10-10 22:12:12 · 1254 阅读 · 0 评论