- 博客(6)
- 收藏
- 关注
原创 Host Clang must be able to find libstdc++4.7 or newer!
这个问题的出现是我在用LLVM开发自己的编译后端时遇到的。当手抖敲了rm -rf * 后,导致配置好的环境被破坏,在试图还原时升级了gcc版本。后来再用LLVM时就出现了该问题。问题具体是出在当把自己的后端加入LLVM后进行编译时,即运行:cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=D...
2018-04-18 16:37:59
720
原创 Centos7下安装Tkinter的一些问题
最近想在Centos7下使用Python3系列软件,其中在安装Tkinter步骤上折腾了好几天才终于弄好。这里记录几个带坑的地方,以免忘记。 首先就是Centos7自带了Python2的版本,网上教程都是建议保留自带版本,因为系统的一些软件会对该版本有依赖。所以就在保留的基础上安装了。这里就是各种版本理不清的源头了。 之后遇到的问题就是安装Tkinter模块了。网上说Ubunt...
2018-04-01 10:58:38
3791
1
原创 LLVM指令的选择
对指令选择过程中一些代码的解释: 1、这里的指令选择发生在SelectionDAG阶段的后段,即DAG图已经转成了目标机器的DAG并完成了Schedule(指令调度);但在寄存分配之前。此阶段其实就是发射机器指令了。 这个阶段中是采用BuildMI方法(定义在: llvm\include\llvm\Codgen\MachineBuilder.h)进行由前者到后者的转...
2018-03-19 07:51:28
1548
原创 llvm中的XXXInstrInfo.td
全文基于作者主观理解,仅供参考: XXXInstrInfo.td文件中定义的是目标机的指令格式。这种td文件会被TableGen自动生成c++类型文件。下面主要是要讨论该文件中的代码含义。 1、def CPU0Ret : SDNode<"CPU0ISD::Ret", SDTNone, [SDNPHasChain,SDNoptInGl...
2018-03-07 16:46:04
1379
原创 LLVM指令流程的变化--从IR到Assembly code
本文由作者主观理解,只供参考: LLVM中的IR代码是可以由前端的工具(如Clang)生成的,所以这里以此为起点进行解释。 从LLVM IR开始要经历的阶段有: LLVM IR----1--->SelectionDAG----2-->MachineDAG----3--->MachineInstr---4--->MCInst 官方文档中Targ...
2018-03-05 16:45:51
1604
原创 LLVM的参考资料
想用LLVM写后端编译器时,收集了一些资料。关于LLVM的中文资料并不多,当然LLVM自己的官方文档倒是非常的全,不过是全英文。 1、关于LLVM和Clang的基本介绍就不说了,这个资料还是很比较多且容易理解的。 2、有一个关于 后端开发的译本 ,这是翻译自官方文档的。不过像是机器翻译的,有些语句读起来不太通顺。 3、还有一个博主写的LLVM的介绍和学习历程,信息挺多的。...
2018-03-04 22:31:21
484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人