LLVM編譯系統(tǒng)結(jié)構(gòu)分析及ARCA3后端移植
發(fā)布時間:2021-10-28 07:21
編譯器移植機制的存在,使得微處理器廠商可以不必為新硬件平臺開發(fā)全新的編譯器,轉(zhuǎn)而復用已有的可移植開源編譯器,這對保留可移植編譯器優(yōu)異特性,減少廠商開發(fā)費用并縮短產(chǎn)品上市時間都有著重要的意義。本文基于伊利諾斯大學開源的LLVM編譯器架構(gòu)和我國具有自主知識產(chǎn)權(quán)的處理器ARCA3(方舟3),利用LLVM優(yōu)異的可重定目標特性,實現(xiàn)了ARCA3處理器的后端移植,完善了ARCA3處理器開發(fā)設計平臺的編譯器工具鏈。整個移植過程可以分為LLVM編譯系統(tǒng)結(jié)構(gòu)分析、ARCA3體系結(jié)構(gòu)分析和LLVM后端移植實現(xiàn)與系統(tǒng)總體測試三個部分。首先,從結(jié)構(gòu)上對LLVM編譯系統(tǒng)的整體架構(gòu)進行剖析,介紹了LLVM的各個組成部分,提取其優(yōu)于常規(guī)編譯器架構(gòu)的設計方法,并從結(jié)構(gòu)支持角度詳細地描述了其后端移植機制。其次,從數(shù)據(jù)組織、寄存器設置、指令集、幀棧布局和調(diào)用約束等方面對ARCA3體系結(jié)構(gòu)進行解析,完善LLVM后端移植接口描述中接口類所需的信息。最后,結(jié)合LLVM后端移植機制與ARCA3體系結(jié)構(gòu),給出了移植的方法和過程,完成后端移植工作,并利用LLVM的測試文件,在匯編代碼層次上對移植后的編譯系統(tǒng)進行驗證。最終生成的面向A...
【文章來源】:哈爾濱工業(yè)大學黑龍江省 211工程院校 985工程院校
【文章頁數(shù)】:60 頁
【學位級別】:碩士
【文章目錄】:
摘要
Abstract
第1章 緒論
1.1 課題背景
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 程序設計語言的發(fā)展
1.2.2 編譯技術的發(fā)展
1.2.3 編譯器移植技術發(fā)展
1.2.4 LLVM編譯系統(tǒng)發(fā)展
1.2.5 方舟系列處理器發(fā)展
1.3 本文研究內(nèi)容
1.4 論文結(jié)構(gòu)
第2章 LLVM編譯系統(tǒng)與ARCA3 體系結(jié)構(gòu)分析
2.1 LLVM編譯系統(tǒng)
2.1.1 LLVM編譯系統(tǒng)結(jié)構(gòu)
2.1.2 LLVM編譯系統(tǒng)組成部分
2.2 ARCA3 體系結(jié)構(gòu)探索
2.2.1 數(shù)據(jù)類型和組織形式
2.2.2 寄存器
2.2.3 指令集
2.2.4 整數(shù)指令集
2.2.5 幀棧布局
2.3 本章小結(jié)
第3章 LLVM后端移植機制
3.1 LLVM可重定目標特性的結(jié)構(gòu)支持
3.1.1 代碼生成器結(jié)構(gòu)支持
3.1.2 后端移植接口設計支持
3.1.3 TableGen工具支持
3.1.4 自編譯系統(tǒng)支持
3.2 LLVM后端移植原理與方法
3.2.1 目標機器全局描述
3.2.2 目標機器寄存器描述
3.2.3 目標機器指令集描述
3.2.4 目標機器指令選擇描述
3.2.5 目標機器匯編輸出器描述
3.3 本章小結(jié)
第4章 ARCA3 后端移植的實現(xiàn)
4.1 ARCA3 全局描述實現(xiàn)
4.2 ARCA3 寄存器描述實現(xiàn)
4.2.1 ARCA3 寄存器td描述實現(xiàn)
4.2.2 ARCA3 寄存器C++描述實現(xiàn)
4.3 ARCA3 指令集描述實現(xiàn)
4.3.1 ARCA3 指令集td描述實現(xiàn)
4.3.2 ARCA3 指令集C++描述實現(xiàn)
4.4 ARCA3 指令選擇實現(xiàn)
4.5 ARCA3 匯編輸出器實現(xiàn)
4.6 ARCA3 編譯系統(tǒng)支持實現(xiàn)
4.7 系統(tǒng)總體測試
4.8 本章小結(jié)
結(jié)論
參考文獻
攻讀學位期間發(fā)表的學術論文
致謝
【參考文獻】:
期刊論文
[1]基于C6x平臺的GCC編譯器移植[J]. 劉飛,孫永節(jié),孫海燕. 科技信息. 2010(07)
[2]GCC到Nios系統(tǒng)的移植研究與實現(xiàn)[J]. 吳克壽,任小西,李仁發(fā),黎雷生. 湖南大學學報(自然科學版). 2007(08)
[3]軟件流水領域二維數(shù)組的體差不等式測試算法[J]. 喬林,黃維通,孟威,湯志忠. 計算機工程. 2005(21)
[4]緩沖區(qū)溢出靜態(tài)分析中的指針分析算法[J]. 張明軍,羅軍. 計算機工程. 2005(18)
[5]編譯器前端構(gòu)造工具及JLUCC的實現(xiàn)[J]. 金龍飛,劉磊. 吉林大學學報(信息科學版). 2005(04)
[6]GCC在高性能微處理器DSP和CPU上的移植[J]. 王國棟,侯朝煥. 計算機工程與設計. 2005(04)
[7]方舟CPU體系結(jié)構(gòu)及其嵌入式SOC[J]. 張麗杰,呂少中. 現(xiàn)代電子技術. 2005(06)
[8]軟件流水中的循環(huán)展開優(yōu)化[J]. 李文龍,劉利,湯志忠. 北京航空航天大學學報. 2004(11)
[9]IA-64中軟件流水失敗的解決方法[J]. 林海波,李文龍,湯志忠. 清華大學學報(自然科學版). 2003(07)
[10]基于Range Test的交互式數(shù)據(jù)相關性分析技術[J]. 鄭豐宙,陳文光,楊博,鄭緯民. 清華大學學報(自然科學版). 2000(01)
博士論文
[1]面向高效能計算的編譯關鍵技術:精度、性能與功耗[D]. 楊燦群.國防科學技術大學 2007
碩士論文
[1]LLVM編譯系統(tǒng)結(jié)構(gòu)分析與后端移植[D]. 董峰.上海交通大學 2007
本文編號:3462472
【文章來源】:哈爾濱工業(yè)大學黑龍江省 211工程院校 985工程院校
【文章頁數(shù)】:60 頁
【學位級別】:碩士
【文章目錄】:
摘要
Abstract
第1章 緒論
1.1 課題背景
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 程序設計語言的發(fā)展
1.2.2 編譯技術的發(fā)展
1.2.3 編譯器移植技術發(fā)展
1.2.4 LLVM編譯系統(tǒng)發(fā)展
1.2.5 方舟系列處理器發(fā)展
1.3 本文研究內(nèi)容
1.4 論文結(jié)構(gòu)
第2章 LLVM編譯系統(tǒng)與ARCA3 體系結(jié)構(gòu)分析
2.1 LLVM編譯系統(tǒng)
2.1.1 LLVM編譯系統(tǒng)結(jié)構(gòu)
2.1.2 LLVM編譯系統(tǒng)組成部分
2.2 ARCA3 體系結(jié)構(gòu)探索
2.2.1 數(shù)據(jù)類型和組織形式
2.2.2 寄存器
2.2.3 指令集
2.2.4 整數(shù)指令集
2.2.5 幀棧布局
2.3 本章小結(jié)
第3章 LLVM后端移植機制
3.1 LLVM可重定目標特性的結(jié)構(gòu)支持
3.1.1 代碼生成器結(jié)構(gòu)支持
3.1.2 后端移植接口設計支持
3.1.3 TableGen工具支持
3.1.4 自編譯系統(tǒng)支持
3.2 LLVM后端移植原理與方法
3.2.1 目標機器全局描述
3.2.2 目標機器寄存器描述
3.2.3 目標機器指令集描述
3.2.4 目標機器指令選擇描述
3.2.5 目標機器匯編輸出器描述
3.3 本章小結(jié)
第4章 ARCA3 后端移植的實現(xiàn)
4.1 ARCA3 全局描述實現(xiàn)
4.2 ARCA3 寄存器描述實現(xiàn)
4.2.1 ARCA3 寄存器td描述實現(xiàn)
4.2.2 ARCA3 寄存器C++描述實現(xiàn)
4.3 ARCA3 指令集描述實現(xiàn)
4.3.1 ARCA3 指令集td描述實現(xiàn)
4.3.2 ARCA3 指令集C++描述實現(xiàn)
4.4 ARCA3 指令選擇實現(xiàn)
4.5 ARCA3 匯編輸出器實現(xiàn)
4.6 ARCA3 編譯系統(tǒng)支持實現(xiàn)
4.7 系統(tǒng)總體測試
4.8 本章小結(jié)
結(jié)論
參考文獻
攻讀學位期間發(fā)表的學術論文
致謝
【參考文獻】:
期刊論文
[1]基于C6x平臺的GCC編譯器移植[J]. 劉飛,孫永節(jié),孫海燕. 科技信息. 2010(07)
[2]GCC到Nios系統(tǒng)的移植研究與實現(xiàn)[J]. 吳克壽,任小西,李仁發(fā),黎雷生. 湖南大學學報(自然科學版). 2007(08)
[3]軟件流水領域二維數(shù)組的體差不等式測試算法[J]. 喬林,黃維通,孟威,湯志忠. 計算機工程. 2005(21)
[4]緩沖區(qū)溢出靜態(tài)分析中的指針分析算法[J]. 張明軍,羅軍. 計算機工程. 2005(18)
[5]編譯器前端構(gòu)造工具及JLUCC的實現(xiàn)[J]. 金龍飛,劉磊. 吉林大學學報(信息科學版). 2005(04)
[6]GCC在高性能微處理器DSP和CPU上的移植[J]. 王國棟,侯朝煥. 計算機工程與設計. 2005(04)
[7]方舟CPU體系結(jié)構(gòu)及其嵌入式SOC[J]. 張麗杰,呂少中. 現(xiàn)代電子技術. 2005(06)
[8]軟件流水中的循環(huán)展開優(yōu)化[J]. 李文龍,劉利,湯志忠. 北京航空航天大學學報. 2004(11)
[9]IA-64中軟件流水失敗的解決方法[J]. 林海波,李文龍,湯志忠. 清華大學學報(自然科學版). 2003(07)
[10]基于Range Test的交互式數(shù)據(jù)相關性分析技術[J]. 鄭豐宙,陳文光,楊博,鄭緯民. 清華大學學報(自然科學版). 2000(01)
博士論文
[1]面向高效能計算的編譯關鍵技術:精度、性能與功耗[D]. 楊燦群.國防科學技術大學 2007
碩士論文
[1]LLVM編譯系統(tǒng)結(jié)構(gòu)分析與后端移植[D]. 董峰.上海交通大學 2007
本文編號:3462472
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3462472.html
最近更新
教材專著