[發明專利]采用解碼時間指令優化編譯用于增強應用二進制接口(ABI)的代碼有效
| 申請號: | 201280048805.2 | 申請日: | 2012-09-14 |
| 公開(公告)號: | CN103858100A | 公開(公告)日: | 2014-06-11 |
| 發明(設計)人: | R.J.布萊尼;M.K.格施溫德;J.L.麥金尼斯;S.J.芒羅 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京市柳沈律師事務所 11105 | 代理人: | 黃劍飛 |
| 地址: | 美國紐*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 采用 解碼 時間 指令 優化 編譯 用于 增強 應用 二進制 接口 abi 代碼 | ||
技術領域
本發明涉及計算機系統,并且尤其涉及采用解碼時間指令優化編譯用于增強應用二進制接口(ABI)的代碼。
背景技術
在計算機軟件中,應用二進制接口(ABI)描述應用程序和操作系統之間或應用程序和另一應用之間的低級接口。ABI涉及諸如數據類型、大小以及對齊(alignment)的明細(details);控制如何傳遞函數變量以及如何搜索返回值的調用規則;系統調用號以及應用應如何使得系統調用操作系統;以及在完整操作系統ABI的情況下涉及目標文件的二進制格式、程序庫等等。如果存在必要的共享庫以及滿足相似的前提,幾種ABI(例如,容許在用于Intel?x86架構的各種Unix和Linux變化形式上運行的廣泛程序的交互式Unix?ABI)容許來自支持該ABI的一個操作系統的應用程序在不修改的情況下運行在任意其他這種系統上。
通常應用程序的程序開發周期包括寫源代碼、將源代碼編譯成目標文件、構建共享庫以及將目標文件鏈接到主可執行程序。在特定硬件平臺上執行該應用之前,還要進行額外準備,包括加載主可執行程序以及加載用于應用啟動的共享庫。
編譯器在某時對單一源文件(編譯單位)進行工作以便生成目標文件。編譯器生成目標代碼而不知道該代碼/數據的最終地址或位移。具體而言,編譯器生成在不知道TOC的最終大小或各種數據段的偏移/地址的情況下將為了變量值訪問TOC的目標代碼。用于這種信息的占位符被留在該目標代碼中并由連接器更新。TOC是變量地址參考表,其例如在AIX環境中被利用來以支持共享庫和數據位置獨立的方式存取程序變量。被稱之為全局偏移量表(GOT)的類似結構在LINUX環境中執行類似功能(例如,對變量的存?。?。TOC和GOT之間的差別在于TOC可以包含實際數據,而GOT僅僅包含數據的地址(指針)。在Power?Pc64-比特環境中,TOC含有GOT部分加小數據變量。
連接器將目標文件匯集(collect)成可執行程序/共享對象并為代碼/數據賦予偏移。連接器在程序開發期間解析內部引用并且外部引用在加載時間被解析。連接器匯集來自目標文件的TOC輸入項(entry)、賦予TOC偏移以及生成TOC段。連接器知曉TOC的最終尺寸但是不對編譯器生成的TOC存取代碼序列執行主編輯(major?edit)。連接器知曉具體內部引用TOC輸入項的偏移但是不知曉用于大部分外部引用TOC輸入項的最終解析值。該外部引用TOC輸入項由加載器/動態連接器解析。
于2010年7月23日發布的并“Power?ISATMVersion2.06Revision?B”教導了一種示例性精簡指令集計算機(RISC)指令集架構(ISA)。在此將使用所述Power?ISA來解釋例示實施例,不過,本發明并不限于Power?ISA或RISC架構。本領域技術人員將容易理解到本發明能用于各種架構。
的“z/Architecture?Principles?of?Operation”SA22-7832-08,第9版(2010年8月)教導了一種示例CISC(復雜指令集計算機)指令集架構。
IBM的“64-bit?PowerPC?ELF?Application?Binary?Interface?Supplement1.9”(2004)描述了可連接執行格式(ELF)ABI的64-比特補碼(supplement)。
power.org的“Power32-bit?Application?Binary?Interface?Supplement1.0”(2011年4月19日)以及“Power32-bit?Application?Binary?Interface?Supplement1.0-Embedded”(2011年4月19日)描述了32-比特ABI。
發明內容
根據示例性實施例,一種計算機程序產品、系統以及方法包括:通過計算機識別被配置為執行變量地址參考表函數的代碼序列,包括對在變量地址參考表中的位置的偏移外側處的變量的存取。代碼序列包括第一指令的內部表征(IR)以及第二指令的IR。第二指令取決于第一指令。與第一指令的IR和第二指令的IR中的至少一個相關聯的調度程序成本函數被修改。所述修改包括生成修改的調度程序成本函數,該修改的調度程序成本函數被配置為將第一指令置于第二指令的旁邊。響應于所述修改的調度程序成本函數生成目標文件。該目標文件包括被置于第二指令旁邊的第一指令。該目標文件被發出。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201280048805.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種薄膜氣缸
- 下一篇:一種太陽能LED手持小風扇





