首页 基于国产异构平台的自适应可变参数优化方法

基于国产异构平台的自适应可变参数优化方法

举报
开通vip

基于国产异构平台的自适应可变参数优化方法(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112527263A(43)申请公布日2021.03.19(21)申请号201910885748.7(22)申请日2019.09.19(71)申请人无锡江南计算技术研究所地址214083江苏省无锡市滨湖区山水东路699号(72)发明人吴伟 沈莉 王飞 巩令钦 朱琪 (74)专利代理机构苏州创元专利商标事务所有限公司32103代理人王健(51)Int.Cl.G06F8/30(2018.01)G06F8/41(2018.01)G06F16/2...

基于国产异构平台的自适应可变参数优化方法
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112527263A(43)申请公布日2021.03.19(21)申请号201910885748.7(22)申请日2019.09.19(71)申请人无锡江南计算技术研究所地址214083江苏省无锡市滨湖区山水东路699号(72)发明人吴伟 沈莉 王飞 巩令钦 朱琪 (74)专利代理机构苏州创元专利商标事务所有限公司32103代理人王健(51)Int.Cl.G06F8/30(2018.01)G06F8/41(2018.01)G06F16/25(2019.01)权利要求书1页 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 5页附图1页(54)发明名称基于国产异构平台的自适应可变参数优化 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 (57)摘要本发明公开一种基于国产异构平台的自适应可变参数优化方法,包括以下步骤:S1、根据 架构 酒店人事架构图下载公司架构图下载企业应用架构模式pdf监理组织架构图免费下载银行管理与it架构pdf 信息选择相应架构的ABI接口,编译器前端根据相应的ABI接口中的ABI约定对源程序进行处理,生成中间表示;S2、编译器后端扫描分析函数中的可变参函数,收集可变参函数的参数使用情况;S3、根据S2中扫描分析得到的信息,依据可变参数的数据类型和可变参数所存入的寄存器的不同,对可变参数进行后端对函数降级前的处理,为编译器后端的函数降级过程做准备;S4、编译器后端对可变参数的内建函数进行降级处理,获得降级后的中间表示;S5、生成汇编文件,即根据降级后的中间表示生成汇编指令。本发明实现了优化可变参函数的内存和减少访存指令的算法,提高了程序的性能。CN112527263ACN112527263A权 利 要 求 书1/1页1.一种基于国产异构平台的自适应可变参数优化方法,其特征在于:包括以下步骤:S1、编译器根据编译命令,判断架构信息是主核还是从核,根据架构信息选择相应架构的ABI接口,编译器前端根据相应的ABI接口中的ABI约定对源程序进行处理,通过词法分析、语法分析、语义分析,生成中间表示,具体如下:S11、编译器根据编译命令,判断架构信息是主核还是从核,根据相应架构的ABI接口,约定源程序中函数的参数传递方式、返回值处理方式、数据对齐处理方式及参数扩展方式;S12、编译器前端通过词法分析、语法分析、语义分析,将源程序转化为抽象语法树;S13、根据ABI约定,对函数进行参数类型合法化、参数传递方式约定、返回值处理方式约定、数据对齐方式约定及参数扩展方式约定,将S12中获得的抽象语法树转化为中间表示;S2、编译器后端扫描分析函数中的可变参函数,收集可变参函数的参数使用情况,具体如下:S21、编译器后端扫描S13中获得的中间表示中可变参函数的所有基本块,找到基本块内的VAARG节点,并记录VAARG节点的参数值类型;S22、编译器后端扫描S13中获得的中间表示中可变参函数的函数定义,根据可变参函数中参数的数据类型,计算偏移值,并通过偏移值计算可变参函数的参数列表中第一个可变参数的位置;S3、根据S2中扫描分析得到的信息,依据可变参数的数据类型和可变参数所存入的寄存器的不同,对可变参数进行后端对函数降级前的处理,为编译器后端的函数降级过程做准备,具体如下:S31、根据S1中架构对寄存器的使用定义,确定可变参数是否使用了参数寄存器,如果可变参数使用了参数寄存器,则执行S32,否则,执行S4;S32、判断S21中获得的VAARG节点的参数值类型是否全都是浮点类型,如果是,则为浮点类型可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,否则执行S33;S33、判断S21中获得的VAARG节点的参数值类型是否全都是定点类型,如果是,则为定点类型可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,否则,为浮点类型和定点类型的可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,转到S4;S4、编译器后端对可变参数的内建函数进行降级处理,获得降级后的中间表示,具体如下:S41、VASTART节点初始化VALIST结构体变量中的可变参数的基地址指针和偏移值;S42、VACOPY节点将S41初始化后的源VALIST结构体变量复制到目的VALIST结构体变量中;S43、VAARG节点根据VALIST结构体变量中的可变参数基地址指针和偏移值取出参数值,并将下一参数的地址写回VALIST结构体变量中;S44、VAEND节点将VALIST结构体变量置空,表明参数已经全部取完,完成对可变参数的内建函数进行降级处理;S5、生成汇编文件,即根据降级后的中间表示生成汇编指令。2CN112527263A说 明 书1/5页基于国产异构平台的自适应可变参数优化方法技术领域[0001]本发明涉及一种基于国产异构平台的自适应可变参数优化方法,属于编译器优化技术领域。背景技术[0002]ABI约定描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的接口。ABI约定与架构信息紧密相关,目前主流的架构,如MIPS、ARM、X86等均有适应自身架构的ABI约定。一个完整的ABI,允许支持它的操作系统上的程序不经修改就能在其他支持此ABI的操作系统上运行。ABI对可变参的约定主要是通过一些宏和内建接口来实现,这些宏和内建接口有valist、vastart、vaarg和vaend。其中,valist是一个结构体,该结构体包含一个基地址指针变量和一个偏移值变量,基地址指针变量用来指示第一个参数的地址,而偏移值变量用来指示参数偏移位置,所以使用基地址加上偏移值就可以到的下一参数的位置;vastart是一个内建函数,用来初始化基地址和偏移值;vaarg是一个用来获取参数值的内建函数;vaend函数用来将valist置空,表示当前参数已经全部取完。[0003]可变参函数不同于普通函数,可变参函数不仅参数类型可以变化,而且个数也可以变化,这对于增加函数的灵活性具有重要意义。由于可变参数的类型和个数不固定,所以通过寄存器传递参数时无法保证寄存器的使用顺序。可变参数的传递需要遵循ABI约定。当函数被正确调用时,函数的调用方和被调用方需要对函数参数如何传递,以及数据类型的大小、布局和对齐方式有着相同的约定,才能保证程序的兼容性。[0004]由于不同的调用约定,对参数传递规则、数据对齐方式和数据扩展方式的规定各不相同,所以需要函数的调用方和被调用方遵循同样的调用约定和数据处理约定。参数的调用约定是与架构信息相关的。[0005]目前,在国产异构平台上,尚未有一个适应异构平台本身特点的ABI调用约定来约束函数参数传递规则和返回值处理规则,这导致了国产异构平台上的编译器无法对参数返回值进行正确的处理,在参数的传递、返回值的处理、数据对接的处理以及参数扩展时出现错误。发明内容[0006]本发明的目的是提供一种基于国产异构平台的自适应可变参数优化方法,该基于国产异构平台的自适应可变参数优化方法实现了优化可变参函数的内存和减少访存指令的算法,提高了程序的性能。[0007]为达到上述目的,本发明采用的技术 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 是:一种基于国产异构平台的自适应可变参数优化方法,包括以下步骤:S1、编译器根据编译命令,判断架构信息是主核还是从核,根据架构信息选择相应架构的ABI接口,编译器前端根据相应的ABI接口中的ABI约定对源程序进行处理,通过词法分析、语法分析、语义分析,生成中间表示,具体如下:3CN112527263A说 明 书2/5页S11、编译器根据编译命令,判断架构信息是主核还是从核,根据相应架构的ABI接口,约定源程序中函数的参数传递方式、返回值处理方式、数据对齐处理方式及参数扩展方式;S12、编译器前端通过词法分析、语法分析、语义分析,将源程序转化为抽象语法树;S13、根据ABI约定,对函数进行参数类型合法化、参数传递方式约定、返回值处理方式约定、数据对齐方式约定及参数扩展方式约定,将S12中获得的抽象语法树转化为中间表示;S2、编译器后端扫描分析函数中的可变参函数,收集可变参函数的参数使用情况,具体如下:S21、编译器后端扫描S13中获得的中间表示中可变参函数的所有基本块,找到基本块内的VAARG节点,并记录VAARG节点的参数值类型;S22、编译器后端扫描S13中获得的中间表示中可变参函数的函数定义,根据可变参函数中参数的数据类型,计算偏移值,并通过偏移值计算可变参函数的参数列表中第一个可变参数的位置;S3、根据S2中扫描分析得到的信息,依据可变参数的数据类型和可变参数所存入的寄存器的不同,对可变参数进行后端对函数降级前的处理,为编译器后端的函数降级过程做准备,具体如下:S31、根据S1中架构对寄存器的使用定义,确定可变参数是否使用了参数寄存器,如果可变参数使用了参数寄存器,则执行S32,否则,执行S4;S32、判断S21中获得的VAARG节点的参数值类型是否全都是浮点类型,如果是,则为浮点类型可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,否则执行S33;S33、判断S21中获得的VAARG节点的参数值类型是否全都是定点类型,如果是,则为定点类型可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,否则,为浮点类型和定点类型的可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,转到S4;S4、编译器后端对可变参数的内建函数进行降级处理,获得降级后的中间表示,具体如下:S41、VASTART节点初始化VALIST结构体变量中的可变参数的基地址指针和偏移值;S42、VACOPY节点将S41初始化后的源VALIST结构体变量复制到目的VALIST结构体变量中;S43、VAARG节点根据VALIST结构体变量中的可变参数基地址指针和偏移值取出参数值,并将下一参数的地址写回VALIST结构体变量中;S44、VAEND节点将VALIST结构体变量置空,表明参数已经全部取完,完成对可变参数的内建函数进行降级处理;S5、生成汇编文件,即根据降级后的中间表示生成汇编指令。[0008]由于上述技术方案的运用,本发明与现有技术相比具有下列优点:本发明基于国产异构平台的自适应可变参数优化方法,其针对异构平台架构特点,自适应生出与异构平台架构紧密相关的主从核的可变参数ABI接口,并分别进行针对主从核的传参优化,实现了优化可变参函数的内存和减少访存指令的算法,提高了程序的性能。4CN112527263A说 明 书3/5页附图说明[0009]附图1为本发明基于国产异构平台的自适应可变参数优化方法流程示意图。具体实施方式[0010]实施例:一种基于国产异构平台的自适应可变参数优化方法,包括以下步骤:S1、编译器根据编译命令,判断架构信息是主核还是从核,根据架构信息选择相应架构的ABI接口,编译器前端根据相应的ABI接口中的ABI约定对源程序进行处理,通过词法分析、语法分析、语义分析,生成中间表示,具体如下:S11、编译器根据编译命令,判断架构信息是主核还是从核,根据相应架构的ABI接口,约定源程序中函数的参数传递方式、返回值处理方式、数据对齐处理方式及参数扩展方式;S12、编译器前端通过词法分析、语法分析、语义分析,将源程序转化为抽象语法树;S13、根据ABI约定,对函数进行参数类型合法化、参数传递方式约定、返回值处理方式约定、数据对齐方式约定及参数扩展方式约定,将S12中获得的抽象语法树转化为中间表示;S2、编译器后端扫描分析函数中的可变参函数,收集可变参函数的参数使用情况,具体如下:S21、编译器后端扫描S13中获得的中间表示中可变参函数的所有基本块,找到基本块内的VAARG节点,并记录VAARG节点的参数值类型;S22、编译器后端扫描S13中获得的中间表示中可变参函数的函数定义,根据可变参函数中参数的数据类型,计算偏移值,并通过偏移值计算可变参函数的参数列表中第一个可变参数的位置;S3、根据S2中扫描分析得到的信息,依据可变参数的数据类型和可变参数所存入的寄存器的不同,对可变参数进行后端对函数降级前的处理,为编译器后端的函数降级过程做准备,具体如下:S31、根据S1中架构对寄存器的使用定义,确定可变参数是否使用了参数寄存器,如果可变参数使用了参数寄存器,则执行S32,否则,执行S4;S32、判断S21中获得的VAARG节点的参数值类型是否全都是浮点类型,如果是,则为浮点类型可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,否则执行S33;S33、判断S21中获得的VAARG节点的参数值类型是否全都是定点类型,如果是,则为定点类型可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,否则,为浮点类型和定点类型的可变参数使用的参数寄存器申请栈空间,并使用访存节点将参数寄存器的值存入栈,转到S4;S4、编译器后端对可变参数的内建函数进行降级处理,获得降级后的中间表示,具体如下:S41、VASTART节点初始化VALIST结构体变量中的可变参数的基地址指针和偏移值,可变参数的内建函数通过VALIST结构体变量进行处理,可变参数的参数信息保存在VALIST中;S42、VACOPY节点将S41初始化后的源VALIST结构体变量复制到目的VALIST结构体变量5CN112527263A说 明 书4/5页中;S43、VAARG节点根据VALIST结构体变量中的可变参数基地址指针和偏移值取出参数值,并将下一参数的地址写回VALIST结构体变量中;S44、VAEND节点将VALIST结构体变量置空,表明参数已经全部取完,完成对可变参数的内建函数进行降级处理;S5、生成汇编文件,即根据降级后的中间表示生成汇编指令。[0011]实施例进一步解释如下:利用可变参函数代码中使用参数的信息,在中间表示中通过遍历的方式找到参数的传递信息和使用信息,将原有的需要为所有参数寄存器申请栈空间并将参数寄存器中的值存入栈中,优化为根据不同的参数值使用情况来申请栈空间和使用访存指令,实现了可变参优化并兼容相关的库函数,不会造成兼容性问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。[0012]具体流程如图1所示。[0013]主要包括针对异构平台,自适应生出主从核的可变参数ABI接口、生成中间表示、扫描分析可变参函数、根据扫描信息选择不同的处理流程、对可变参的内建函数进行降级处理和生成汇编文件。[0014](1)首先,判断架构信息是主核还是从核,根据架构信息选择相应架构的ABI接口。将源文件根据ABI约定,按照词法分析,语法分析,语义分析等编译步骤生成中间表示。具体如下:1、判断架构信息是主核还是从核,根据相应架构的ABI接口约定参数传递方式、返回值处理方式、数据对齐处理方式及参数扩展方式。[0015]2、按照词法分析、语法分析、语义分析等编译步骤将源程序转换为抽象语法树。[0016]3、根据ABI约定,将抽象语法树生成中间表示,进行一些参数数据类型合法化,参数传递方式约定等处理。[0017](2)接着扫描分析可变参函数,收集可变参函数的参数使用情况。具体如下:1、扫描可变参函数的所有基本块,找到VAARG节点并记录其参数值类型。[0018]2、扫描可变参函数的函数定义,计算可变参函数参数列表总第一个可变参数的位置。[0019](3)然后根据扫描分析得到的信息,进行不同的处理。具体如下:1、如果可变参数使用参数寄存器,则进行步骤2的处理,否则进行对可变参数的内建进行降级处理流程,转到步骤4。[0020]2、如果VAARG取可变参数全都是浮点类型,则为浮点类型可变参使用的参数寄存器,申请栈空间并使用访存节点将寄存器的值存入栈,否则进行步骤3。[0021]3、如果VAARG取可变参数全都是定点类型,则为定点类型可变参使用的参数寄存器,申请栈空间并使用访存节点将寄存器的值存入栈,否则为浮点类型和定点类型的可变参使用的参数寄存器申请栈空间并将值存入栈,转到步骤4。[0022]4、进行降级处理(4)对可变参的内建函数进行降级。具体如下:1、VASTART节点初始化VALIST结构体变量中的可变参数基地址指针和偏移值。[0023]2、VACOPY节点将源VALIST变量复制到目的VALIST变量中。6CN112527263A说 明 书5/5页[0024]3、VAARG节点根据VALIST结构体变量中的可变参数基地址指针和偏移值取出参数值,并将下一参数的地址写回VALIST结构体变量中。[0025]4、VAEND将VALIST变量置空,表明参数已经全部取完。[0026](5)生成汇编文件,根据降级后的中间表示生成汇编指令,本质上可以看成是一对一的翻译。[0027]采用上述基于国产异构平台的自适应可变参数优化方法时,其针对异构平台架构特点,自适应生出与异构平台架构紧密相关的主从核的可变参数ABI接口,并分别进行针对主从核的传参优化,实现了优化可变参函数的内存和减少访存指令的算法,提高了程序的性能。[0028]为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:异构:一个包含或者组成“异构网络”的产品,所谓的“异构网络”通常指不同厂家的产品所组成的网络。[0029]可变参数:参数的个数在函数原型中不确定。[0030]ABI:应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的接口。[0031]vastart是一个内建函数,用来初始化基地址和偏移值;vaarg是一个用来获取参数值的内建函数;vaend函数用来将valist置空,表示当前参数已经全部取完;valist是一个结构体,该结构体包含一个基地址指针变量和一个偏移值变量,基地址指针变量用来指示第一个参数的地址,而偏移值变量用来指示参数偏移位置,所以使用基地址加上偏移值就可以到的下一参数的位置;Va_copy是一个函数,用来拷贝valist结构体,该函数在DAG图中以VACOPY节点的形式存在。[0032]上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。7CN112527263A说 明 书 附 图1/1页图18
本文档为【基于国产异构平台的自适应可变参数优化方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥10.0 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
掌桥科研
掌桥科研向科研人提供中文文献、外文文献、中文专利、外文专利、政府科技报告、OA文献、外军国防科技文献等多种科研资源的推广、发现、揭示和辅助获取服务,以及自动文档翻译、人工翻译、文档格式转换、收录引证等科研服务,涵盖了理、工、医、农、社科、军事、法律、经济、哲学等诸多学科和行业的中外文献资源。
格式:pdf
大小:344KB
软件:PDF阅读器
页数:8
分类:
上传时间:2022-01-24
浏览量:0