[發(fā)明專利]函數(shù)的參數(shù)優(yōu)化方法、編譯器、芯片及電子設備在審
| 申請?zhí)枺?/td> | 201910487030.2 | 申請日: | 2019-06-05 |
| 公開(公告)號: | CN112052004A | 公開(公告)日: | 2020-12-08 |
| 發(fā)明(設計)人: | 曹嵐健;朱輝 | 申請(專利權)人: | 深圳市匯頂科技股份有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 上海晨皓知識產(chǎn)權代理事務所(普通合伙) 31260 | 代理人: | 成麗杰 |
| 地址: | 518045 廣東省深*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 函數(shù) 參數(shù) 優(yōu)化 方法 編譯器 芯片 電子設備 | ||
1.一種函數(shù)的參數(shù)優(yōu)化方法,其特征在于,包括:
對待編譯代碼中的被調(diào)用函數(shù)以及所述被調(diào)用函數(shù)的調(diào)用函數(shù)分別進行寄存器壓力評估,得到所述被調(diào)用函數(shù)的寄存器壓力余量以及所述調(diào)用函數(shù)的寄存器壓力余量;
獲取用于傳遞所述被調(diào)用函數(shù)的聚合量參數(shù)的參數(shù)寄存器的余量;
將所述被調(diào)用函數(shù)的寄存器壓力余量、所述調(diào)用函數(shù)的寄存器壓力余量以及所述參數(shù)寄存器的余量中的最小值,作為所述被調(diào)用函數(shù)的寄存器余量;
對于每個需要使用棧傳遞的所述聚合量參數(shù),根據(jù)所述聚合量參數(shù)的長度和所述寄存器余量,對所述聚合量參數(shù)進行優(yōu)化以得到優(yōu)化后的聚合物參數(shù),其中至少部分所述優(yōu)化后的聚合量參數(shù)為標量。
2.如權利要求1所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述對待編譯代碼中被調(diào)用函數(shù)以及所述被調(diào)用函數(shù)的調(diào)用函數(shù)分別進行寄存器壓力評估,得到所述被調(diào)用函數(shù)以及所述調(diào)用函數(shù)的寄存器壓力余量,包括:
對于每個函數(shù),獲取保存所述函數(shù)中的數(shù)據(jù)需要消耗寄存器的數(shù)量,所述數(shù)據(jù)包括所述函數(shù)的變量、所述函數(shù)的目標參數(shù)與所述函數(shù)的返回值;其中所述函數(shù)為所述被調(diào)用函數(shù)或所述調(diào)用函數(shù),所述目標參數(shù)為所述函數(shù)中需要使用所述參數(shù)寄存器傳遞的參數(shù);
根據(jù)保存所述數(shù)據(jù)需要消耗寄存器的數(shù)量,得到所述函數(shù)的寄存器壓力余量。
3.如權利要求2所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述變量包括所述函數(shù)中的靜態(tài)單賦值形式變量與所述函數(shù)中的局部變量。
4.如權利要求3所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述變量包括所述靜態(tài)單賦值形式變量中去除保存到棧的所述靜態(tài)單賦值形式變量后剩余的部分與所述目標局部變量中去除保存到棧的所述目標局部變量后剩余的部分。
5.如權利要求2所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述根據(jù)保存所述數(shù)據(jù)需要消耗寄存器的數(shù)量,得到所述函數(shù)的寄存器壓力余量,具體為:
將保存所述數(shù)據(jù)需要消耗寄存器的數(shù)量代入公式K=S+A+T–N,計算所述函數(shù)的寄存器壓力余量;
其中,K表示所述函數(shù)的寄存器壓力余量,S表示所述被調(diào)用函數(shù)保存的寄存器的數(shù)量,A表示所述參數(shù)寄存器的數(shù)量,T表示臨時寄存器的數(shù)量,N表示保存所述數(shù)據(jù)需要消耗寄存器的數(shù)量。
6.如權利要求1所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述聚合量參數(shù)包括多個分量;所述根據(jù)所述聚合量參數(shù)的長度和所述寄存器余量,對所述聚合量參數(shù)進行優(yōu)化,包括:
判斷所述聚合量參數(shù)的長度除以所述參數(shù)寄存器長度的商值是否小于或等于所述寄存器余量;
若所述聚合量參數(shù)的長度除以所述參數(shù)寄存器長度的商值小于或等于所述寄存器余量,將所述聚合量參數(shù)替換為所述多個分量對應的多個標量,并根據(jù)所述商值,更新所述寄存器余量;
若所述聚合量參數(shù)的長度除以所述參數(shù)寄存器長度的商值大于所述寄存器余量,將所述聚合量參數(shù)替換為預設數(shù)量的所述分量對應的標量與新聚合量參數(shù)的組合;所述預設數(shù)量小于或等于所述寄存器余量,所述新聚合量參數(shù)由所述聚合量參數(shù)去除所述預設數(shù)量的所述分量后得到。
7.如權利要求1所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述被調(diào)用函數(shù)為局部函數(shù)。
8.如權利要求1所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,在所述根據(jù)所述聚合量參數(shù)的長度和所述寄存器余量,對所述聚合量參數(shù)進行優(yōu)化之后,還包括:
根據(jù)被優(yōu)化所述聚合量參數(shù)后的所述被調(diào)用函數(shù),修改所述待編譯代碼中所述調(diào)用函數(shù)對所述被調(diào)用函數(shù)的調(diào)用方式。
9.如權利要求1所述的函數(shù)的參數(shù)優(yōu)化方法,其特征在于,所述標量使用所述參數(shù)寄存器傳遞。
10.一種編譯器,其特征在于,用于執(zhí)行權利要求1至9中任一項所述的函數(shù)的參數(shù)優(yōu)化方法。
11.一種芯片,其特征在于,包括權利要求10所述的編譯器。
12.一種電子設備,其特征在于,包括權利要求11所述的芯片。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市匯頂科技股份有限公司,未經(jīng)深圳市匯頂科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910487030.2/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。





