[發(fā)明專利]用于寄存器溢出的編譯方法、電子設(shè)備和介質(zhì)在審
| 申請?zhí)枺?/td> | 202211072873.4 | 申請日: | 2022-09-02 |
| 公開(公告)號: | CN115357230A | 公開(公告)日: | 2022-11-18 |
| 發(fā)明(設(shè)計)人: | 黃磊;張定飛 | 申請(專利權(quán))人: | 安謀科技(中國)有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41;G06F9/30 |
| 代理公司: | 上海華誠知識產(chǎn)權(quán)代理有限公司 31300 | 代理人: | 肖華 |
| 地址: | 200233 上海市閔行*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 寄存器 溢出 編譯 方法 電子設(shè)備 介質(zhì) | ||
本申請涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種用于寄存器溢出的編譯方法、電子設(shè)備和介質(zhì)。該方法應(yīng)用于電子設(shè)備,該方法包括:編譯器獲取待編譯程序;編譯器對待編譯程序進(jìn)行編譯,得到待執(zhí)行指令;其中,在編譯器對待編譯程序進(jìn)行編譯包括:對應(yīng)于待編譯程序所包括的第一變量對應(yīng)的第一寄存器發(fā)生溢出,將第一寄存器溢出的變量部分分配至第一寄存器對應(yīng)的第一存儲單元,對應(yīng)于待編譯程序所包括的第二變量對應(yīng)的第二寄存器發(fā)生溢出,將第二寄存器溢出的變量部分分配至第二寄存器對應(yīng)的第二存儲單元。本申請實施例提供的方法,可以降低寄存器溢出帶來的時間開銷,提高程序性能。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及一種用于寄存器溢出的編譯方法、電子設(shè)備和介質(zhì)。
背景技術(shù)
寄存器為處理器(例如中央處理器(central processing unit,CPU))內(nèi)部的存儲區(qū)域,用于存儲從內(nèi)存讀取而來的數(shù)據(jù)(包括指令)和處理器運(yùn)算的中間結(jié)果。寄存器分配是程序編譯過程中的一個階段,具體處于編譯器編譯的中間表示(IntermediateRepresentation,IR)階段,可執(zhí)行代碼輸出之前。在此階段,當(dāng)數(shù)據(jù)存儲需求量超過了寄存器可存儲或分配的數(shù)據(jù)量,將發(fā)生寄存器溢出。目前寄存器溢出,通常將數(shù)據(jù)存儲需求量超過寄存器可存儲數(shù)據(jù)量的對應(yīng)數(shù)據(jù)分配至電子設(shè)備的主存儲器。其中,主存儲器的訪問速度低于寄存器的訪問速度。
例如,電子設(shè)備的寄存器可以包括標(biāo)量寄存器和向量寄存器等,當(dāng)待存儲數(shù)據(jù)的數(shù)據(jù)存儲需求量超過標(biāo)量寄存器或向量寄存器可存儲數(shù)據(jù)量,則標(biāo)量寄存器或向量寄存器均需要進(jìn)行寄存器溢出,即該待存儲數(shù)據(jù)中超過標(biāo)量寄存器或向量寄存器可存儲數(shù)據(jù)量的部分?jǐn)?shù)據(jù)均會被分配至電子設(shè)備的主存儲器的棧上。在處理器執(zhí)行該部分?jǐn)?shù)據(jù)時,需要從主存儲器上讀取該部分待存儲數(shù)據(jù)。
可見,上述寄存器溢出的用于寄存器溢出的編譯方法,在執(zhí)行指令時會增加主存儲器的訪問時間,并且由于主存儲器的訪問速度較低,進(jìn)而會影響程序性能。
發(fā)明內(nèi)容
為解決上述寄存器溢出影響程序性能的問題,本申請實施例提供了一種用于寄存器溢出的編譯方法、電子設(shè)備和介質(zhì)。
第一方面,本申請實施例提供了一種用于寄存器溢出的編譯方法,應(yīng)用于電子設(shè)備,所述電子設(shè)備上安裝有編譯器,所述電子設(shè)備包括位于處理器中的多個寄存器、第一存儲單元和第二存儲單元;并且所述方法包括:
所述編譯器獲取待編譯程序;
所述編譯器對所述待編譯程序進(jìn)行編譯,得到待執(zhí)行指令;
其中,在所述編譯器對所述待編譯程序進(jìn)行編譯包括:
對應(yīng)于所述待編譯程序所包括的第一變量對應(yīng)的第一寄存器發(fā)生溢出,將所述第一寄存器溢出的變量部分分配至所述第一寄存器對應(yīng)的第一存儲單元;
對應(yīng)于所述待編譯程序所包括的第二變量對應(yīng)的第二寄存器發(fā)生溢出,將所述第二寄存器溢出的變量部分分配至所述第二寄存器對應(yīng)的第二存儲單元;
其中,所述處理器對所述第一存儲單元和所述第二存儲單元的訪問速度不同。
可以理解,在一些實施例中,電子設(shè)備中還可以包括第三存儲單元,并且對應(yīng)于待編譯程序所包括的第三變量對應(yīng)的第三寄存器發(fā)生溢出,編譯器可以將第三寄存器溢出的變量部分分配至第三寄存器對應(yīng)的第三存儲單元。其中,處理器對于第三存儲單元的訪問速度可以不同與第一存儲單元和第二存儲單元,或者,處理器對于第三存儲單元的訪問速度與第一存儲單元或第二存儲單元相同。即本申請實施例中的寄存器不限于上述第一寄存器和第二寄存器,電子設(shè)備的存儲單元也不限于第一存儲單元和第二存儲單元。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于安謀科技(中國)有限公司,未經(jīng)安謀科技(中國)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211072873.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





