llvm入门到放弃
karishima
这个作者很懒,什么都没留下…
展开
-
LLVM学习日记7——Building a JIT(Chapter 2&3 Lazy compile)
Building a JIT: Adding Optimizations – An introduction to ORC LayersAdd IRTransformLayerclass KaleidoscopeJIT {private: ExecutionSession ES; RTDyldObjectLinkingLayer ObjectLayer; IRCompileLayer CompileLayer; // add layer IRTransformLayer Trans原创 2020-09-13 18:25:22 · 288 阅读 · 0 评论 -
LLVM学习日记6——Building a JIT in LLVM
说实话学完了上个教程,还是没有特别多的收获,主要是刚接触LLVM,上手还是略微复杂的,而且因为复杂,后面的练习也难以开始,也被上个教程的总结一张里一个个陌生的名词吓到。但是冷静一下,继续学习,肯定会越来越上手的,等到能够开始练习了就越来越上道了。那么话不多说就开始第二个教程:Building a JIT in LLVMLLVM JITlegacy JIT(now deleted) => MCJIT => ORC(now)JIT APIError addModule(std::uniq原创 2020-09-13 13:18:05 · 378 阅读 · 0 评论 -
LLVM学习日记5——compile to OBJ & Debug Info
第八章 Compiling to OBJ查看当前target:$ clang --version | grep TargetTarget: x86_64-unknown-linux-gnuLLVM获取target triple(<arch><sub>-<vendor>-<sys>-<abi>) API:auto TargetTriple = sys::getDefaultTargetTriple();查看LLVM支持的指定targe原创 2020-09-12 09:46:25 · 494 阅读 · 0 评论 -
LLVM学习日记4——KaleidoScope Chapter7 SSA
第七章LLVM does require all register values to be in SSA form,it does not require (or permit) memory objects to be in SSA formint G, H;int test(_Bool Condition) { int X; if (Condition) X = G; else X = H; return X;}有PHI的IR@G = weak glob原创 2020-09-12 08:36:51 · 278 阅读 · 0 评论 -
LLVM学习日记3——KaleidoScope JIT
学习第四章void InitializeModuleAndPassManager(void) { // Open a new module. TheModule = std::make_unique<Module>("my cool jit", TheContext); // setup the data layout for the JIT TheModule->setDataLayout(TheJIT->getTargetMachine().createData原创 2020-09-06 09:58:20 · 319 阅读 · 0 评论 -
LLVM学习日记2——Build llvm, clang & Starting Chapters
内存不足的问题又出现了。然后搜了一下原因,发现自己build的是Debug版本。是因为没有细看文档,默认是build Debug版本的。最后顺利build了一个Release版本,但可能RelWithDebInfo才是最适合的,短时间内估计用不上debug info,就先不考虑这个问题了。% cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=type SRC_ROOTtype:Debug:默认选项,没有优化,有debug info和asserts;Rel原创 2020-08-30 22:41:54 · 727 阅读 · 1 评论 -
LLVM学习日记1——开幕式
今天开始【并不是,试图入门很多个礼拜了】学习LLVM。为了能及时记录心得,并且督促自己学习,开一个博客来写。今天的内容:必须是 Getting Started with the LLVM System: http://llvm.org/docs/GettingStarted.html试过用Ninja来编译但是有编译错误,因为之前没有接触过Ninja,所以也没仔细看错误是什么,改用了make。但是因为虚拟机容量配置太小(内存以及磁盘大小)导致编译中断好几次,使得本来就很慢的过程雪上加霜。现在的配置是原创 2020-08-29 22:50:25 · 173 阅读 · 0 评论