[发明专利]引用计数的实现方法和装置在审
申请号: | 201910229091.9 | 申请日: | 2019-03-25 |
公开(公告)号: | CN111736925A | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 周志德;丁阳;汤伟;杨飞;蒋奕;张超 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F8/41;G06F12/02 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 王洪 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 引用 计数 实现 方法 装置 | ||
1.一种引用计数的实现方法,其特征在于,包括:
对源代码进行变量使用定义分析获取所述源代码的中间表达;
对所述中间表达进行分析确定需要进行引用计数RC的引用变量和对所述引用变量要进行的RC操作,所述RC操作包括计数加一incref操作或计数减一decref操作;
对所述RC操作进行消除优化获取优化后的RC操作;
在所述中间表达中插入所述优化后的RC操作。
2.根据权利要求1所述的方法,其特征在于,所述对所述RC操作进行消除优化获取优化后的RC操作,包括:
消除对第一引用变量的decref操作,所述第一引用变量为所述中间表达中没有被定义过的本地引用变量;
消除对第二引用变量的decref操作,所述第二引用变量为在所述中间表达中的函数退出语句或函数返回语句之前没有被赋值过的本地引用变量。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述RC操作进行消除优化获取优化后的RC操作,包括:
消除对第三引用变量的incref操作和对第四引用变量的decref操作,所述第三引用变量和所述第四引用变量为指向同一个资源的引用变量。
4.根据权利要求3所述的方法,其特征在于,所述对第三引用变量的incref操作为对所述第三引用变量赋值之后进行的RC操作,所述对第四引用变量的decref操作包括对所述第四引用变量赋值之前的RC操作或者在所述中间表达中的函数退出语句或函数返回语句之前的RC操作。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述对所述RC操作进行消除优化获取优化后的RC操作,包括:
消除对第一执行路径中的第五引用变量的decref操作,所述第五引用变量为在所述第一执行路径中取值为空的本地引用变量,所述第一执行路径为所述中间表达的任一执行路径;
消除对第二执行路径中的第六引用变量的incref操作和/或decref操作,所述第六引用变量为在所述第二执行路径中取值不在资源管理范围内的本地引用变量,所述第二执行路径为所述中间表达的任一执行路径。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述引用变量为所述中间表达中定义的指向资源的引用变量;所述对所述中间表达进行分析确定对所述引用变量要进行的RC操作,包括:
在赋值语句之前插入对第七引用变量的decref操作,所述赋值语句为将第八引用变量的取值赋值给第九引用变量,所述第七引用变量为赋值前的所述第九引用变量;
在所述赋值语句之后插入对所述第九引用变量的incref操作;
在所述中间表达中的函数退出语句或函数返回语句之前插入对第十引用变量的decref操作,所述第十引用变量为所述引用变量中除所述第七引用变量和待返回的引用变量外的引用变量。
7.一种引用计数的实现装置,其特征在于,包括:
构建模块,用于对源代码进行变量使用定义分析获取变量的使用和定义之间的对应关系,并根据所述对应关系获取所述源代码的中间表达;
确定模块,用于对所述中间表达进行分析确定需要进行引用计数RC的引用变量和对所述引用变量要进行的RC操作,所述RC操作包括计数加一incref操作或计数减一decref操作;
优化模块,用于对所述RC操作进行消除优化获取优化后的RC操作;
实现模块,用于在所述中间表达中插入所述优化后的RC操作。
8.根据权利要求7所述的装置,其特征在于,所述优化模块,具体用于消除对第一引用变量的decref操作,所述第一引用变量为所述中间表达中没有被定义过的本地引用变量;消除对第二引用变量的decref操作,所述第二引用变量为在所述中间表达中的函数退出语句或函数返回语句之前没有被赋值过的本地引用变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910229091.9/1.html,转载请声明来源钻瓜专利网。