[發明專利]基于LLVM中間表示程序切片技術的無用變量檢測方法有效
| 申請號: | 201710431448.2 | 申請日: | 2017-06-09 |
| 公開(公告)號: | CN107358099B | 公開(公告)日: | 2020-05-05 |
| 發明(設計)人: | 張迎周;王星;陳星昊;尹秀;趙蓮 | 申請(專利權)人: | 南京郵電大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56 |
| 代理公司: | 南京知識律師事務所 32207 | 代理人: | 張芳 |
| 地址: | 210003 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 llvm 中間 表示 程序 切片 技術 無用 變量 檢測 方法 | ||
1.基于LLVM中間表示程序切片技術的無用變量檢測方法,其特征在于,包括步驟:
S1、獲取可能插入了無用變量的源代碼;
S2、在LLVM下將S1中的源代碼轉化為LLVM中間表示的形式;
S3、利用程序切片技術,對S2中得到的LLVM中間表示進行切片分析,得到程序依賴圖;
S4、對程序依賴圖進行抽取和化簡,構建變量距離圖,其過程為:
S4-1、遍歷程序依賴圖中的節點,將所有變量作為節點添加到變量距離圖中,重復的節點只保留一個;
S4-2、遍歷程序依賴圖中的邊,對于程序依賴圖中的一條有向邊,設邊的起始節點中變量集合為B,邊的終止節點中變量集合為E,在變量距離圖中添加由集合B中變量指向集合E中變量的有向邊;重復的邊只保留一條;
S5、將源代碼中變量數量n設定為變量距離閾值r,在變量距離圖上計算其他變量與輸出變量之間的距離d,如果dr,則認為是與程序執行結果無關的無用變量。
2.根據權利要求1所述的無用變量檢測方法,其特征在于,S2中所述將源代碼轉化為LLVM中間表示的形式通過clang編譯器完成。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京郵電大學,未經南京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710431448.2/1.html,轉載請聲明來源鉆瓜專利網。





