国产第1页_91在线亚洲_中文字幕成人_99久久久久久_五月宗合网_久久久久国产一区二区三区四区

讀書月攻略拿走直接抄!
歡迎光臨中圖網(wǎng) 請 | 注冊
> >>
計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程

包郵 計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程

出版社:機(jī)械工業(yè)出版社出版時(shí)間:2018-04-01
開本: 16開 頁數(shù): 212
中 圖 價(jià):¥50.8(6.4折) 定價(jià)  ¥79.0 登錄后可看到會員價(jià)
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程 版權(quán)信息

計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程 本書特色

LLVM是一個(gè)*水平的編譯器框架。它包含有豐富軟件庫,可以為編譯器的初學(xué)者提供良好的學(xué)習(xí)體驗(yàn),并大大降低編譯器開發(fā)的學(xué)習(xí)門檻。
本書的前半部分將向您介紹怎么樣去配置、構(gòu)建、和安裝LLVM的不同軟件庫、工具和外部項(xiàng)目。接下來,本書的后半部分將向您介紹LLVM的各種設(shè)計(jì)細(xì)節(jié),并逐步地講解LLVM的各個(gè)編譯步驟:前段、中間表示(IR)、后端、即時(shí)編譯(JIT)引擎、跨平臺編譯和插件接口。本書包含有大量翔實(shí)的示例和代碼片段,以幫助讀者平穩(wěn)順利的掌握LLVM的編譯器開發(fā)環(huán)境。

計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程 內(nèi)容簡介

LLVM是一個(gè)靠前水平的編譯器框架。它包含有豐富軟件庫,可以為編譯器的初學(xué)者提供良好的學(xué)習(xí)體驗(yàn),并大大降低編譯器開發(fā)的學(xué)習(xí)門檻。本書的前半部分將向您介紹怎么樣去配置、構(gòu)建、和安裝LLVM的不同軟件庫、工具和外部項(xiàng)目。接下來,本書的后半部分將向您介紹LLVM的各種設(shè)計(jì)細(xì)節(jié),并逐步地講解LLVM的各個(gè)編譯步驟:前段、中間表示(IR)、后端、即時(shí)編譯(JIT)引擎、跨平臺編譯和插件接口。本書包含有大量翔實(shí)的示例和代碼片段,以幫助讀者平穩(wěn)順利的掌握LLVM的編譯器開發(fā)環(huán)境。

計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程 目錄

出版者的話
譯者序
前言
關(guān)于作者
關(guān)于審稿人
第1章 構(gòu)建和安裝LLVM 1
1.1 了解LLVM版本 1
1.2 獲取預(yù)構(gòu)建包 2
1.2.1 獲取官方預(yù)構(gòu)建二進(jìn)制文件 2
1.2.2 使用軟件包管理器 3
1.3 從源代碼構(gòu)建 4
1.3.1 系統(tǒng)要求 4
1.3.2 獲取源代碼 4
1.3.3 構(gòu)建和安裝LLVM 5
1.3.4 Windows和Microsoft Visual Studio 10
1.3.5 Mac OS X和Xcode 12
1.4 總結(jié) 14
第2章 外部項(xiàng)目 15
2.1 Clang外部項(xiàng)目介紹 15
2.1.1 構(gòu)建和安裝Clang外部工具 16
2.1.2 理解Compiler-RT 17
2.1.3 實(shí)驗(yàn)Compiler-RT 17
2.2 使用DragonEgg插件 18
2.2.1 構(gòu)建DragonEgg 19
2.2.2 使用DragonEgg和LLVM工具了解編譯流程 19
2.2.3 理解LLVM測試套件 20
2.2.4 使用LLDB 21
2.2.5 libc 標(biāo)準(zhǔn)庫介紹 23
2.3 總結(jié) 25
第3章 工具和設(shè)計(jì) 26
3.1 LLVM的基本設(shè)計(jì)原理及其歷史 26
3.2 理解目前的LLVM 27
3.3 與編譯器驅(qū)動程序交互 29
3.4 使用獨(dú)立工具 30
3.5 深入LLVM內(nèi)部設(shè)計(jì) 33
3.5.1 了解LLVM的基本庫 33
3.5.2 介紹LLVM的C 慣例 34
3.5.3 演示可插拔的流程接口 37
3.6 編寫你的**個(gè)LLVM項(xiàng)目 38
3.6.1 編寫Makefile 38
3.6.2 編寫代碼 40
3.7 關(guān)于LLVM源代碼的一般建議 41
3.7.1 將代碼理解為文檔 42
3.7.2 請求社區(qū)的幫助 42
3.7.3 應(yīng)對更新:使用SVN日志作為文檔 42
3.7.4 結(jié)束語 44
3.8 總結(jié) 44
第4章 前端 45
4.1 Clang簡介 45
4.1.1 前端操作 46
4.1.2 庫 47
4.1.3 理解Clang診斷 49
4.2 Clang前端階段介紹 52
4.2.1 詞法分析 52
4.2.2 語法分析 58
4.2.3 語義分析 63
4.2.4 生成LLVM IR代碼 65
4.3 完整的例子 65
4.4 總結(jié) 68
第5章 LLVM中間表示 69
5.1 概述 69
5.2 操作IR格式的基本工具示例 71
5.3 LLVM IR語法介紹 71
5.4 編寫自定義的LLVM IR生成器 76
5.4.1 構(gòu)建和運(yùn)行IR生成器 79
5.4.2 使用C 后端編寫代碼來生成IR構(gòu)造 80
5.5 在IR層執(zhí)行優(yōu)化 80
5.5.1 編譯時(shí)優(yōu)化和鏈接時(shí)優(yōu)化 80
5.5.2 發(fā)現(xiàn)*佳編譯器流程 82
5.5.3 流程間的依賴關(guān)系 83
5.5.4 了解流程API 85
5.5.5 自定義流程 85
5.6 總結(jié) 89
第6章 后端 90
6.1 概述 90
6.2 后端代碼結(jié)構(gòu)介紹 92
6.3 后端庫介紹 93
6.4 如何使用TableGen實(shí)現(xiàn)LLVM后端 94
6.4.1 TableGen語言 95
6.4.2 代碼生成器.td文件介紹 96
6.5 指令選擇階段介紹 100
6.5.1 SelectionDAG類 100
6.5.2 降級 102
6.5.3 DAG合并以及合法化 103
6.5.4 DAG到DAG指令選擇 104
6.5.5 指令選擇過程可視化 107
6.5.6 快速指令選擇 107
6.6 調(diào)度器 107
6.6.1 指令執(zhí)行進(jìn)程表 108
6.6.2 競爭檢測 109
6.6.3 調(diào)度單元 109
6.7 機(jī)器指令 109
6.8 寄存器分配 110
6.8.1 寄存器合并器 111
6.8.2 虛擬寄存器重寫 114
6.8.3 編譯目標(biāo)的信息 115
6.9 前序代碼和結(jié)束代碼 116
6.10  機(jī)器代碼框架介紹 116
6.10.1  MC指令 116
6.10.2  代碼輸出 117
6.11  自定義機(jī)器流程 119
6.12 總結(jié) 121
第7章 即時(shí)編譯器 122
7.1 LLVM JIT引擎的基礎(chǔ)知識介紹 122
7.1.1 介紹執(zhí)行引擎 123
7.1.2 內(nèi)存管理 124
7.2 llvm::JIT框架介紹 124
7.2.1 將二進(jìn)制大對象寫入內(nèi)存 125
7.2.2 使用JITMemoryManager 125
7.2.3 目標(biāo)代碼輸出器 125
7.2.4 目標(biāo)信息 127
7.2.5 學(xué)習(xí)如何使用JIT類 127
7.3 llvm::MCJIT框架介紹 131
7.3.1 MCJIT引擎 131
7.3.2 MCJIT中模塊編譯過程 132
7.3.3 使用MCJIT引擎 135
7.4 使用LLVM JIT編譯工具 137
7.4.1 使用lli工具 137
7.4.2 使用llvm-rtdyld工具 138
7.5 其他資源 139
7.6 總結(jié) 139
第8章 跨平臺編譯 140
8.1 GCC和LLVM對比 140
8.2 目標(biāo)三元組介紹 141
8.3 準(zhǔn)備自己的工具鏈 142
8.3.1 標(biāo)準(zhǔn)C/C 庫 143
8.3.2 運(yùn)行時(shí)庫 143
8.3.3 匯編器和鏈接器 144
8.3.4 Clang前端 144
8.4 用Clang命令行參數(shù)進(jìn)行交叉編譯 145
8.4.1 針對目標(biāo)的驅(qū)動程序選項(xiàng) 145
8.4.2 依賴包 145
8.4.3 交叉編譯 146
8.4.4 更改系統(tǒng)根目錄 148
8.5 生成Clang交叉編譯器 149
8.5.1 配置選項(xiàng) 149
8.5.2 構(gòu)建和安裝基于Clang的交叉編譯器 149
8.5.3 其他構(gòu)建方法 150
8.6 測試 151
8.6.1 開發(fā)板 151
8.6.2 模擬器 151
8.7 其他資源 152
8.8 總結(jié) 152
第9章 Clang靜態(tài)分析器 153
9.1 靜態(tài)分析器的作用 153
9.1.1 傳統(tǒng)警告信息和Clang靜態(tài)分析器比較 153
9.1.2 符號執(zhí)行引擎的高效性 156
9.2 測試靜態(tài)分析器 158
9.2.1 使用驅(qū)動程序與使用編譯器 158
9.2.2 了解可用的檢查器 158
9.2.3 在Xcode IDE中使用靜態(tài)分析器 160
9.2.4 生成HTML格式的圖形
9.2.5 處理大型項(xiàng)目 161
9.3 使用自定義的檢查器擴(kuò)展靜態(tài)分析器 164
9.3.1 熟悉項(xiàng)目架構(gòu) 164
9.3.2 自定義檢查器
展開全部

計(jì)算機(jī)科學(xué)叢書LLVM編譯器實(shí)戰(zhàn)教程 作者簡介

布魯諾·卡多索·洛佩斯(Bruno Cardoso Lopes)在巴西坎皮納斯大學(xué)獲得計(jì)算機(jī)科學(xué)博士學(xué)位。自2007年以來,他一直是LLVM的貢獻(xiàn)者,從頭開始實(shí)現(xiàn)MIPS后端,并且已經(jīng)維護(hù)了幾年。另外,他還編寫了x86 AVX支持方案,并改進(jìn)了ARM匯編器。他的研究興趣包括代碼壓縮技術(shù)和對ISA進(jìn)行位寬壓縮。之前他還開發(fā)了Linux和FreeBSD操作系統(tǒng)的驅(qū)動程序。

拉斐爾·奧勒(Rafael Auler)是巴西坎皮納斯大學(xué)的博士生,并擁有該大學(xué)計(jì)算機(jī)科學(xué)碩士學(xué)位和計(jì)算機(jī)工程學(xué)士學(xué)位。在作為碩士生期間,他編寫了一個(gè)可以根據(jù)體系結(jié)構(gòu)描述文件自動生成LLVM后端的概念驗(yàn)證工具。目前,他的博士研究課題包括動態(tài)二進(jìn)制翻譯、即時(shí)編譯器和計(jì)算機(jī)體系結(jié)構(gòu)。 Rafael還是微軟研究院2013年研究生研究獎(jiǎng)學(xué)金獲得者。

商品評論(0條)
暫無評論……
書友推薦
編輯推薦
返回頂部
中圖網(wǎng)
在線客服
主站蜘蛛池模板: 久草视频免费 | 久久69| 久久精品视频一区 | 亚洲av乱码一区二区三区 | 在线观看黄色小视频 | 中文字幕久久久久一区 | 男女爱爱好爽视频免费看 | 久久99精品国产99久久6男男 | 狠狠色噜噜狠狠狠狠777米奇 | 最近中文字幕在线视频 | 日韩人妻不卡一区二区三区 | 四虎影视在线观看2413 | 搡老女人老妇老熟女hd | 欧美激情肉欲高潮视频 | 亚洲精品久 | 青春草在线视频免费观看 | aaa黄色大片 | 日日摸狠狠的摸夜夜摸 | 久久久久亚洲av综合波多野结衣 | 欧美一级美片在线观看免费 | 最新欧美伦禁片在线观看 | 亚洲日韩精品欧美一区二区 | 国产欧美日韩高清专区ho | a级毛片免费观看视频 | 五月综合激情婷婷六月色窝 | 免费在线视频你懂的 | 国产丝袜美女 | 日本免费一级 | 射精专区一区二区朝鲜 | 一级做a爱过程免费视频时看 | 国产欧美精品一区二区三区–老狼 | a级毛片毛片免费观看永久 a级毛片毛片免费很很综合 | 国内一级特黄女人精品片 | 欧美变态捆绑在线dvd | 91免费精品国自产拍在线可以看 | 全球中文成人在线 | 丁香成人区 | 国产亚洲欧美久久精品 | 四虎4hu永久在线观看 | 欧美一级特黄高清免费 | 国产伦子沙发午休系列资源曝光 |