[發(fā)明專利]一種指令優(yōu)化方法有效
| 申請?zhí)枺?/td> | 201810328972.1 | 申請日: | 2018-04-13 |
| 公開(公告)號: | CN108733410B | 公開(公告)日: | 2021-10-01 |
| 發(fā)明(設計)人: | 熊蕙;陳宏君;張磊;文繼鋒;譚良良;周磊;徐睿;曾凱;劉坤;顧熹;譚林豐 | 申請(專利權)人: | 南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 南京經緯專利商標代理有限公司 32200 | 代理人: | 葛瀟敏 |
| 地址: | 211102 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 指令 優(yōu)化 方法 | ||
1.一種指令優(yōu)化方法,其特征在于包括如下步驟:
步驟1,獲取結構化文本程序編譯后的指令文件,獲取數(shù)據(jù)區(qū)、指令區(qū)內容;
步驟2,分析數(shù)據(jù)區(qū),提取變量信息;
步驟3,分三次遍歷指令區(qū),依次采用賦值優(yōu)化、代數(shù)簡化、引用點處理的優(yōu)化方法,對指令進行合并、刪除、調整操作;
賦值優(yōu)化的具體內容是:對于右值變量都為常量類型的指令,直接計算常量表達式,并將運算指令修改為賦值指令;對于賦值指令,若賦值的右值變量為臨時變量,并且該臨時變量為前一條指令的左值變量,則刪除該條賦值指令,將前一條指令的左值變量修改為被刪除的賦值指令的左值變量;
代數(shù)簡化的具體內容是:若加法指令的加數(shù)為0,則修改為賦值指令;若減法指令的減數(shù)為0,則修改為賦值指令;若乘法指令的乘數(shù)為0,則修改為賦值為0的指令;若乘法指令的乘數(shù)為1,則刪除該指令;若除法指令的除數(shù)為1,則刪除該指令;若或運算的1個右值形參為FALSE,則修改為賦值指令;若或運算的1個右值形參為TRUE,則修改為賦值為TRUE的指令;若與運算的1個右值形參為FALSE,則修改為賦值為FALSE的指令;若與運算的1個右值形參為TRUE,則修改為賦值指令;
引用點處理的具體內容是:統(tǒng)計各條指令的左值變量在后續(xù)指令中被作為右值變量的計數(shù),若引用計數(shù)為0,則刪除該條指令;
步驟4,將優(yōu)化后的數(shù)據(jù)、指令信息存儲為文件;
步驟5,反匯編優(yōu)化前后的指令文件,進行偽指令的文本對比,實現(xiàn)優(yōu)化前后的白盒驗證。
2.如權利要求1所述的一種指令優(yōu)化方法,其特征在于:所述步驟1中,編譯后的指令文件包括文件頭、數(shù)據(jù)區(qū)和指令區(qū),數(shù)據(jù)區(qū)中包括引用的外部變量、ST程序定義的變量、編譯產生的臨時變量,指令區(qū)采用三地址碼表達式。
3.如權利要求2所述的一種指令優(yōu)化方法,其特征在于:所述指令區(qū)三地址碼表達式的格式是:指令類型、左操作數(shù)在數(shù)據(jù)區(qū)地址、右操作數(shù)在數(shù)據(jù)區(qū)地址。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司,未經南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810328972.1/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。





