[發(fā)明專利]指針別名關系判斷方法和代碼多版本優(yōu)化方法有效
| 申請?zhí)枺?/td> | 201210439950.5 | 申請日: | 2012-11-06 |
| 公開(公告)號: | CN102981837A | 公開(公告)日: | 2013-03-20 |
| 發(fā)明(設計)人: | 李中升;馬曉東;尉紅梅;吳佩華;顧龍 | 申請(專利權(quán))人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 駱蘇華 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 指針 別名 關系 判斷 方法 代碼 版本 優(yōu)化 | ||
技術領域
本發(fā)明涉及代碼多版本優(yōu)化技術,特別涉及一種指針別名關系判斷方法和代碼多版本優(yōu)化方法。
背景技術
隨著計算機體系結(jié)構(gòu)和硬件技術的發(fā)展,應用程序的代碼量逐年增加,其程序行為在整個執(zhí)行期間變化復雜,對編譯優(yōu)化的要求也越來也高。優(yōu)化技術可分為兩類:靜態(tài)優(yōu)化和動態(tài)優(yōu)化。其中,代碼多版本技術是動態(tài)優(yōu)化技術的一種,在編譯時為指定的程序段利用不同算法或不同優(yōu)化技術生成多個版本,在運行時根據(jù)輸入數(shù)據(jù)集或執(zhí)行環(huán)境等選擇一個最佳的版本執(zhí)行。因此,代碼多版本技術的優(yōu)點是能夠為熱點代碼段動態(tài)選擇最合適的目標碼,實現(xiàn)靜態(tài)分析時難以解決的優(yōu)化問題。
然而,代碼多版本技術需增加額外計算以獲得執(zhí)行在版本間進行選擇的條件信息。在C、C++和Fortran的語言編譯環(huán)境中,由指針而引發(fā)的別名信息就是代碼多版本技術執(zhí)行在版本間進行選擇的重要條件信息。
在常用的指針別名關系判斷方法中是以保守的方法計算近似的別名信息,也就是說所計算的結(jié)果中,會把一些本來不是別名的表達式視為別名。這些不精確的別名分析結(jié)果會導致冗余數(shù)據(jù)依賴關系的產(chǎn)生,限制了版本間的切換調(diào)度以及后繼優(yōu)化手段的效果,從而降低了所生成的目標碼的性能,使得目標碼占用過多內(nèi)存,以及導致目標碼在執(zhí)行時占用過大帶寬,或處理速度慢。
因此需要提出一種新的指針別名關系判斷方法和代碼多版本優(yōu)化方法,以獲得更為精確的別名信息,從而增強代碼動態(tài)多版本優(yōu)化的優(yōu)化效率。
發(fā)明內(nèi)容
本發(fā)明解決的問題是提出一種新的指針別名關系判斷方法和代碼多版本優(yōu)化方法,以獲得更為精確的別名信息,從而增強代碼動態(tài)多版本優(yōu)化的優(yōu)化效率。
為解決上述問題,本發(fā)明的實施例提供了一種指針別名關系判斷方法,所述方法包括:判斷第一循環(huán)體在執(zhí)行一次循環(huán)操作時所述第一循環(huán)體內(nèi)的第一指針所指向的第一地址段偏移和第二循環(huán)體在執(zhí)行相同次循環(huán)操作時第二循環(huán)體內(nèi)的第二指針所指向的第二地址段偏移是否重合,所述第一循環(huán)體和第二循環(huán)體是根據(jù)待優(yōu)化循環(huán)體生成的兩個不同版本;判斷所述第一循環(huán)體在結(jié)束上一次循環(huán)操作轉(zhuǎn)入下一次循環(huán)操作時所述第一指針指向的第一地址段跨步和所述第二循環(huán)體在結(jié)束上一次循環(huán)操作轉(zhuǎn)入下一次循環(huán)操作時所述第二指針指向的第二地址段跨步是否相等;以及如果上述兩個判斷步驟結(jié)果均為是,則確定所述第一指針和所述第二指針互為指針別名關系。
可選地,所述待優(yōu)化循環(huán)體為循環(huán)體大小大于預定標準的循環(huán)體。
可選地,所述待優(yōu)化循環(huán)體為循環(huán)次數(shù)大于預定次數(shù)的循環(huán)體。
可選地,所述待優(yōu)化循環(huán)體為所包含的指針信息比重大于預定比重的循環(huán)體,所述指針信息比重為所述待優(yōu)化循環(huán)體中所有指針讀和指針寫操作所指向的位置數(shù)的總和。
可選地,判斷所述第一地址段偏移和所述第二地址段偏移是否重合的方法包括:分別計算出在第一循環(huán)體執(zhí)行一次循環(huán)操作時所述第一循環(huán)體內(nèi)的第一指針所指向的第一地址段的上界和下界,和在第二循環(huán)體執(zhí)行相同次循環(huán)操作時第二循環(huán)體內(nèi)的第二指針所指向的第二地址段的上界和下界;判斷所述第一地址段和第二地址段的上界和下界是否重合。
本發(fā)明的實施例還提供了一種代碼多版本優(yōu)化方法,所述方法包括:選擇待優(yōu)化的循環(huán)體;根據(jù)所述待優(yōu)化循環(huán)體生成多個不同版本;生成在所述多個版本相互之間進行切換的測試條件;以及根據(jù)所述測試條件來在所述多個版本中進行切換。
可選地,生成在所述多個版本相互之間進行切換的測試條件的方法包括:判斷所述多個版本之間的指針別名關系;以及根據(jù)所述指針別名關系進一步確定所述多個版本之間的選擇和切換機制。
可選地,選擇待優(yōu)化的循環(huán)體的方法包括:選擇循環(huán)體大小大于預定標準的循環(huán)體作為所述待優(yōu)化循環(huán)體。
可選地,選擇待優(yōu)化的循環(huán)體的方法包括:選擇循環(huán)次數(shù)大于預定次數(shù)的循環(huán)體作為所述待優(yōu)化循環(huán)體。
可選地,選擇待優(yōu)化的循環(huán)體的方法包括:選擇包含指針信息比重大于預定比重的循環(huán)體作為所述待優(yōu)化循環(huán)體,且所述指針信息比重為所述待優(yōu)化循環(huán)體中所有指針讀和指針寫操作所指向的位置數(shù)的總和。
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于無錫江南計算技術研究所,未經(jīng)無錫江南計算技術研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210439950.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種變焦距光刻物鏡系統(tǒng)
- 下一篇:一種天文潮和風暴潮分離方法





