太感谢你了,我会一一改正。 在 2012年11月6日 下午12:22,???f任 (Wei-Ren Chen) <chenwj@xxxxxxxxxxxxxxxxx>写道: > Hi, > > See below, > > --- > p6 基本编译流程 (2) > > -march=XX 中的 XX 建议标上色,之后的范例是以 XX 当作例子。 > 这里上色可以强调一下。 > > p7 LLVM 的后端部分 > > (1) - (4) 有相关文字叙述吗? > > p8 后端代码生成流程 > > 每个方框标上颜色有什么用意? > > p9 划分代码生成流程 > > "Machine Code Layer" 漏了上色? 我觉得 p8 - p9 如果能弄成一页 > 那是最好不过了,比较 focus。又或者,你可以在这一页加个简图: > > LLVM IR -> MachineInstr -> MCInst > > "Machine Code Layer" 改成 "Machine Code Layer (又称 MCInstr)" > 我觉得跟后面比较一致。 > > p11 描述后端第一部分(2) > > platform built-in? 你觉得 "各平台共用" 如何? 我想你说的 platform > built-in 是指 LLVM 自带的代码? > > p14 DAG 示例 > > 这里如果能以依序对每一个节点稍做描述会比较理想。 > > p15 操作 SelectionDAG 的接口 > > p15 可以挑一个 getNode 搭配 p16 解释参数用意,我觉得就底下这一个吧 > > SDValue getNode(unsigned Opcode, DebugLoc DL, EVT VT, SDValue N1, > SDValue N2); > > 我自己是觉得特别是 VT 这个参数可能需要解释一下。 > 什么是 EVT 和 p16 上的 MVT? > > p16 改写DAG:拆分乘累加指令 > > ?祟}改成 > > 改写 (Lowering) DAG: > 拆分乘累加指令 > > 这里可能要提一下目标可能不支援 MAD,故有这一步。 > > p17 基本数据结构 (3):MachiInstr > > 能先提一下 tblgen 在 LLVM 的角色吗? tblgen 的例子最好能 > 简单解释一下。??例是?⑹颤N map 到什?N? > > p18 MachineInstr的从属关系 > > 这一页想表达的是什么? > > p24 后端代码组织模式 > > 能否用图来描述 TargetMachine,MC 和 AsmPrinter 之间的关系? > > p34 用TableGen定义指令 > > "描述指令匹配的语义模式" 这句话有点拗口。?@?又v如何: > > "描述如何从 DAG 对应到 asm"。这里我自己不太有把握这样讲恰不恰当。 > 另外,无码系列,列的小项如果可以跟后面标题一致,我觉得比较好。例如 > 将 "描述指令的构成" 改成跟 p35 标题一致,"定义指令"。 > > p36 理解指令定义中的语义模式 > > 标题有点拗口。 > > "输出操作数的传递: set" 可以加上伪码: > > $d = add $s1, $s2 > > p40 输出二进制目标文件 (2) > > 把新增代码 "field ..." 标记起来,强调一下。 > > p43 小贴士:类命名习惯 > > "比如上表中的XXMCCodeEmitter",我?]看到 "上表"。 > > p48 工具链平台的其它内容 > > ???Y器可以?臀壹由? MCLinker 的 url ??? > http://code.google.com/p/mclinker/ > 可以的,我顺便学习下。 祝好! > --- > > 韦任 > > -- > Wei-Ren Chen (???f任) > Computer Systems Lab, Institute of Information Science, > Academia Sinica, Taiwan (R.O.C.) > Tel:886-2-2788-3799 #1667 > Homepage: http://people.cs.nctu.edu.tw/~chenwj > -- 杨勇勇 (Yang Yongyong)