[发明专利]即时编译引擎自适应函数加载方法有效
| 申请号: | 201910903889.7 | 申请日: | 2019-09-24 |
| 公开(公告)号: | CN112558976B | 公开(公告)日: | 2022-07-12 |
| 发明(设计)人: | 沈莉;周文浩;王飞;吴伟;武文浩 | 申请(专利权)人: | 无锡江南计算技术研究所 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/445 |
| 代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
| 地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 即时 编译 引擎 自适应 函数 加载 方法 | ||
1.一种即时编译引擎自适应函数加载方法,其特征在于:面向异构众核平台,包括以下步骤:
S1、对于一个函数符号,执行引擎检查其是否为外部函数,具体如下:
S11、对于一个函数符号,执行引擎在用户程序代码段查找该函数符号的定义,若找到,则标记该用户程序代码段中的函数符号为内部函数符号,执行引擎从用户程序代码段获取该内部函数入口地址,并跳转到S4;
S12、对于一个函数符号,若在用户程序代码段未找到该函数符号的定义,则标记该函数符号为外部函数符号,执行S2;
S2、对于一个S12中标记的外部函数符号,执行引擎检查其是否为从核函数,并使用对应的动态链接库加载函数加载包含该外部函数符号的动态链接库,具体如下:
S21、从操作系统环境变量指定的动态链接库查找路径中查找包含该外部函数符号的动态链接库;
S22、判断包含该外部函数符号的动态链接库中是否包含有从核函数;
S23、如果包含从核函数,则该动态链接库为混合链接,使用混合链接的动态链接库加载函数dlopen_hybrid加载该动态链接库;
S24、如果不包含从核函数,则该动态链接库为纯主核链接,使用主核链接的动态链接库加载函数dlopen加载该动态链接库;
S25、跳转到S3;
S3、从步骤S2中加载的动态链接库中获取外部函数入口地址,具体如下:
S31、通过获取动态链接库符号地址函数dlsym从步骤S2加载的动态链接库中获取外部函数入口地址;
S32、跳转到S4;
S4、使用步骤S3中获取的外部函数入口地址,对用户程序代码段进行GOT表覆写和重定位回填,具体如下:
S41、将步骤S11中获取的内部函数入口地址或者步骤S31中获取的外部函数入口地址传递给运行时链接器;
S42、运行时链接器使用步骤S41传入的入口地址,对用户程序代码段进行GOT表覆写和重定位回填。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910903889.7/1.html,转载请声明来源钻瓜专利网。





