CN117591122A - 一种针对申威平台.net运行时的结构体提升优化编译方法、装置、存储介质及设备 - Google Patents
一种针对申威平台.net运行时的结构体提升优化编译方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN117591122A CN117591122A CN202311550489.5A CN202311550489A CN117591122A CN 117591122 A CN117591122 A CN 117591122A CN 202311550489 A CN202311550489 A CN 202311550489A CN 117591122 A CN117591122 A CN 117591122A
- Authority
- CN
- China
- Prior art keywords
- variable
- compiling
- structural body
- optimizing
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000005457 optimization Methods 0.000 title claims abstract description 34
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001174 ascending effect Effects 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 239000004744 fabric Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种针对申威平台.NET运行时的结构体提升优化编译方法、装置、存储介质及设备,属于编译优化技术领域,优化过程在于设置进入结构体提升优化编译条件,包括:获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。本发明在结构体提升决策阶段,针对平台特点优化结构体提升编译优化的适用范围。
Description
技术领域
本发明涉及一种针对申威平台.NET运行时的结构体提升优化编译方法、装置、存储介质及设备,属于编译优化技术领域。
背景技术
主流平台如X86、ARM的.NET运行时即时编译器在处理结构体类型的局部变量时,均采用一种称为结构体提升(或聚合量标量替换)的优化编译方法。该方法先将结构体类型变量内部所有字段提升为局部变量并参与优化编译,再为提升后的结构体字段分配寄存器以便于访问。该方法既可减少对结构体字段的栈上访问次数,又可提升对结构体字段的访问速度。申威平台的.NET运行时目前采用结构体默认编译方式。
X86、ARM平台的.NET运行时在启用结构体提升优化编译之前会经历结构体提升决策阶段,此阶段对结构体类型变量的特征进行检查,只有当结构体类型的特征完全满足结构体提升优化编译的前提条件,即时编译器才会执行结构体提升优化编译。
X86、ARM平台的.NET运行时中虽支持结构体提升优化编译,但此项优化编译开启的前提条件是通过结构体提升决策阶段的所有检查。结构体提升决策阶段基于结构体类型变量的特征,对结构体提升优化编译的开启做了诸多限制,包括:结构体内部所有字段必须为基元类型、结构体内部字段数量不超过设定值、结构体所占用字节数不超过设定值等。当结构体变量的特征不满足其中任一条件,.NET运行时则关闭结构体提升优化编译。
结构体提升决策阶段未充分考虑平台差异,限制了结构体提升优化编译的适用范围。对于未通过决策阶段所有检查的结构体,即时编译器关闭结构体提升编译优化并采用结构体默认编译方式。结构体默认编译方式将结构体局部变量作为一个聚合量,在涉及结构体内部字段操作时,需在方法栈上先生成整个结构体变量数据,再对目标字段进行访存读取后进行操作,一方面导致较多的访存操作,一方面导致部分寄存器被闲置,降低了结构体字段的访问效率。申威平台的.NET运行时目前采用结构体默认编译方式。
发明内容
本发明的目的在于提供一种针对申威平台.NET运行时的结构体提升优化编译方法、装置、存储介质及设备,解决现有技术中存在的适用范围小的问题。
为实现以上目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种针对申威平台.NET运行时的结构体提升优化编译方法,包括:
获取语法树中的结构体变量;
若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
结合第一方面,进一步的,所述结构体变量通过以下方法得到:
获取IL代码,逐条解析出IL代码中的IL指令并将其转换为语法树的节点,从而生成初始语法树,,遍历初始语法树中所有的局部变量,筛选出其中的结构体变量。
结合第一方面,进一步的,所述结构体提升优化编译包括:
将结构体变量中的所有字段根据预设的偏移量进行升序排序;
对排序后的每个字段进行提升得到各自对应的临时局部变量,并为所述临时局部变量分配空闲的临时寄存器;
将语法树中访问字段的节点替换成访问临时局部变量的节点;
替换节点后的语法树对所述结构体变量进行优化生成优化语法树;
为优化语法树中所述访问临时局部变量的节点生成指令描述对象,将指令描述对象存入指令组对象;
将指令组对象中的指令描述对象按照申威平台指令格式编码成指令机器码,完成结构体提升优化编译。
结合第一方面,进一步的,在所述对排序后的每个字段进行提升后,原来的结构体变量仍保留。
结合第一方面,进一步的,还包括:若所述结构体变量不满足预设的进入结构体提升优化编译条件,对所述结构体变量采用结构体默认编译方式。
结合第一方面,进一步的,所述为优化语法树中所述访问临时局部变量的节点生成指令描述对象,包括:将对节点对应的临时局部变量的存取指令操作和为该临时局部变量分配的临时寄存器的编号保存到生成的指令描述对象中。
结合第一方面,进一步的,所述将指令组对象中的指令描述对象按照申威平台指令格式编码成指令机器码,包括:将指令描述对象中的存取指令操作和临时寄存器的编号按照申威平台指令格式编码成指令机器码。
第二方面,本发明还提供了一种针对申威平台.NET运行时的结构体提升优化编译装置,包括:
变量获取模块,被配置为:获取语法树中的结构体变量;
结构体提升优化编译模块,被配置为:若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
第三方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如第一方面任一项所述的针对申威平台.NET运行时的结构体提升优化编译方法。
第四方面,本发明还提供了一种设备,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述设备执行实现如第一方面任一项所述的针对申威平台.NET运行时的结构体提升优化编译方法的操作。
与现有技术相比,本发明所达到的有益效果是:
本发明提供的一种针对申威平台.NET运行时的结构体提升优化编译方法、装置、存储介质及设备,在结构体提升决策阶段,根据当前平台CPU寄存器使用规范中定义的临时寄存器数量,再结合结构体字段数量和类型、结构体大小决定是否启用结构体提升编译优化,针对平台特点优化结构体提升编译优化的适用范围;
在语法树变形阶段,将结构体变量中的字段提升为临时局部变量,使其参与即时编译器后续阶段的优化编译步骤;在寄存器分配阶段,提升后的结构体字段被保存于寄存器中,减少了对结构体字段的栈上访问次数,同时提高了对结构体字段的访问速度。
附图说明
图1是本发明实施例提供的一种针对申威平台.NET运行时的结构体提升优化编译方法的流程图之一;
图2是本发明实施例提供的一种针对申威平台.NET运行时的结构体提升优化编译方法的流程图之二;
图3是本发明实施例提供的结构体提升决策阶段的流程图;
图4是本发明实施例提供的结构体提升前后的语法树与局部变量表。
具体实施方式
下面结合附图对本发明作进一步描述,以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1
如图1所示,本发明提供了一种针对申威平台.NET运行时的结构体提升优化编译方法,包括以下步骤:
S1、获取语法树中的结构体变量。
结构体变量通过以下方法得到:
获取IL代码,逐条解析出IL代码中的IL指令并将其转换为语法树的节点,从而生成初始的语法树,遍历初始的语法树中所有的局部变量,筛选出其中的结构体变量。
S2、若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译。
如图3所示,预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
若结构体变量不满足预设的进入结构体提升优化编译条件,对结构体变量采用结构体默认编译方式。
对结构体变量进行结构体提升优化编译,包括:
将结构体变量中的所有字段根据预设的偏移量进行升序排序;
对排序后的每个字段进行提升得到各自对应的临时局部变量,并为所述临时局部变量分配空闲的临时寄存器,原来的结构体变量仍保留;
将语法树中访问字段的节点替换成访问临时局部变量的节点;
替换节点后的语法树对所述结构体变量进行优化生成优化语法树;
为优化语法树中所述访问临时局部变量的节点生成指令描述对象,将对节点对应的临时局部变量的存取指令操作和为该临时局部变量分配的临时寄存器的编号保存到生成的指令描述对象中,将指令描述对象存入指令组对象;
将指令组对象中的指令描述对象按照申威平台指令格式编码成指令机器码,即将指令描述对象中的存取指令操作和临时寄存器的编号按照申威平台指令格式编码成指令机器码,完成结构体提升优化编译。
实施例2
如图2所示,本发明实施例还提供了一种针对申威平台.NET运行时的结构体提升优化编译方法,包括语法树生成、结构体提升决策、语法树变形、寄存器分配、机器码生成五个步骤:
一、语法树生成阶段。
S1:构建初始语法树。
读取IL代码,逐条解析出IL代码中的IL指令并将其转换为语法树节点,从而生成初始语法树和局部变量表。
二、结构体提升决策阶段。
S2:检查初始语法树中局部变量。
遍历初始语法树中所有的局部变量,若该变量为结构体类型局部变量(结构体变量),则跳转到S3对该结构体变量是否采用结构体提升优化编译进行决策。
S3:平台自适应的结构体提升决策方法。
首先获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,接着按以下顺序对结构体变量中的特征依次检查并决定是否进行结构体提升优化编译:
结构体字段个数不超过M;
结构体大小不超过M*8个字节;
结构体中字段均为基元类型;
结构体中不包含特殊对齐的字段;
结构体的字段未参与SMID指令(例如vector类型的构造体);
当结构体变量的特征不满足其中任一条件时,即时编译器关闭结构体提升优化编译并采用结构体默认编译方式。具体流程见图3。
三、语法树变形阶段。
S4:对结构体中字段进行排序。
对语法树中结构体变量里的所有字段列表根据偏移量进行升序排序。
S5:结构体字段提升并生成临时局部变量。
遍历上一步结构体中排好序的所有字段,在局部变量表中为结构体中的每个字段新生成对应的类型的临时局部变量,而原本的结构体变量仍会保留,见图4。
S6:替换语法树中节点。
将语法树中访问结构体字段的语法树节点替换成访问临时局部变量的节点。图4是提升前后的语法树和局部变量表的对比图。
S7:进一步优化语法树。
替换后的语法树继续进行后续针对局部变量的优化,生成最终优化完成的语法树。
四、寄存器分配阶段。
S8:为局部变量分配寄存器
遍历优化后的语法树,结合寄存器分配算法为局部变量表中的变量尝试分配寄存器。如果该局部变量为结构体变量,且在S3决策步骤满足优化条件,并在S5步骤中为结构体所有字段生成了临时局部变量,则尝试为结构体字段对应的临时局部变量分配空闲的临时寄存器;如果该结构体变量在S3决策步骤未能满足优化条件,则将结构体变量的所有字段分配到栈上。
五、机器码生成阶段。
S9:生成指令对象。
创建指令组对象(insGroup),分析优化后的语法树并为语法树节点生成指令描述对象(instrDesc)。若语法树节点为S6步骤生成临时局部变量节点,则将对该临时局部变量的存取指令操作、S8步骤中为其分配的空闲临时寄存器编号保存到指令描述对象。最后将生成的指令描述对象依次存入指令组对象中。
S10:编码成指令机器码。
逐个处理指令组对象中的指令描述对象,根据指令描述对象中保存的存取指令操作和寄存器编号,按照申威平台指令格式编码成指令机器码。
实施例3
本发明提供了一种针对申威平台.NET运行时的结构体提升优化编译装置,包括:
变量获取模块,被配置为:获取语法树中的结构体变量;
结构体提升优化编译模块,被配置为:若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
实施例4
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如实施例1提供的针对申威平台.NET运行时的结构体提升优化编译方法:
获取语法树中的结构体变量;
若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
实施例5
本发明还提供了一种设备,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述设备执行实现如实施例1提供的针对申威平台.NET运行时的结构体提升优化编译方法的操作:
获取语法树中的结构体变量;
若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,包括:
获取语法树中的结构体变量;
若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
2.根据权利要求1所述的针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,所述结构体变量通过以下方法得到:
获取IL代码,逐条解析出IL代码中的IL指令并将其转换为语法树的节点,从而生成初始语法树,遍历初始语法树中所有的局部变量,筛选出其中的结构体变量。
3.根据权利要求1所述的针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,所述结构体提升优化编译包括:
将结构体变量中的所有字段根据预设的偏移量进行升序排序;
对排序后的每个字段进行提升得到各自对应的临时局部变量,并为所述临时局部变量分配空闲的临时寄存器;
将语法树中访问字段的节点替换成访问临时局部变量的节点;
替换节点后的语法树对所述结构体变量进行优化生成优化语法树;
为优化语法树中所述访问临时局部变量的节点生成指令描述对象,将指令描述对象存入指令组对象;
将指令组对象中的指令描述对象按照申威平台指令格式编码成指令机器码,完成结构体提升优化编译。
4.根据权利要求3所述的针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,在所述对排序后的每个字段进行提升后,原来的结构体变量仍保留。
5.根据权利要求1所述的针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,还包括:若所述结构体变量不满足预设的进入结构体提升优化编译条件,对所述结构体变量采用结构体默认编译方式。
6.根据权利要求3所述的针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,所述为优化语法树中所述访问临时局部变量的节点生成指令描述对象,包括:将对节点对应的临时局部变量的存取指令操作和为该临时局部变量分配的临时寄存器的编号保存到生成的指令描述对象中。
7.根据权利要求3所述的针对申威平台.NET运行时的结构体提升优化编译方法,其特征在于,所述将指令组对象中的指令描述对象按照申威平台指令格式编码成指令机器码,包括:将指令描述对象中的存取指令操作和临时寄存器的编号按照申威平台指令格式编码成指令机器码。
8.一种针对申威平台.NET运行时的结构体提升优化编译装置,其特征在于,包括:
变量获取模块,被配置为:获取语法树中的结构体变量;
结构体提升优化编译模块,被配置为:若所述结构体变量满足预设的进入结构体提升优化编译条件,则对所述结构体变量进行结构体提升优化编译;
所述预设的进入结构体提升优化编译条件,包括:
获取当前平台CPU寄存器使用规范中定义的临时寄存器数量并将其设为M,然后按照以下顺序对结构体变量依次检查:结构体变量中字段个数不超过M、结构体变量的大小不超过M*8个字节、结构体变量中字段均为基元类型、结构体变量中不包含特殊对齐的字段和结构体变量中字段未参与SMID指令,若结构体变量满足以上所有条件,则满足进入结构体提升优化编译条件。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1-7任一项所述的针对申威平台.NET运行时的结构体提升优化编译方法。
10.一种设备,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述设备执行实现如权利要求1-7任一项所述的针对申威平台.NET运行时的结构体提升优化编译方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311550489.5A CN117591122A (zh) | 2023-11-21 | 2023-11-21 | 一种针对申威平台.net运行时的结构体提升优化编译方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311550489.5A CN117591122A (zh) | 2023-11-21 | 2023-11-21 | 一种针对申威平台.net运行时的结构体提升优化编译方法、装置、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591122A true CN117591122A (zh) | 2024-02-23 |
Family
ID=89917581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311550489.5A Pending CN117591122A (zh) | 2023-11-21 | 2023-11-21 | 一种针对申威平台.net运行时的结构体提升优化编译方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591122A (zh) |
-
2023
- 2023-11-21 CN CN202311550489.5A patent/CN117591122A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019237811A1 (zh) | 一种神经网络的内存分配方法及装置 | |
CN106325967B (zh) | 一种硬件加速方法、编译器以及设备 | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
CN111104120B (zh) | 神经网络编译方法、系统及相应异构计算平台 | |
CN106547520B (zh) | 一种代码路径分析方法及装置 | |
US20130218299A1 (en) | MCP Scheduling For Parallelization Of LAD/FBD Control Program In Multi-Core PLC | |
US6925639B2 (en) | Method and system for register allocation | |
US20060005194A1 (en) | Program parallelizing apparatus, program parallelizing method, and program parallelizing program | |
CN108139898B (zh) | 数据处理图编译 | |
CN111797010A (zh) | 一种应用改进遗传算法的智能合约测试用例生成方法 | |
US8732679B2 (en) | Loop transformation for computer compiler optimization | |
CN113031954A (zh) | 代码编译方法、装置、电子设备、存储介质及异构系统 | |
CN106991007A (zh) | 一种基于gpu片上的数据处理方法 | |
CN115016938A (zh) | 一种基于强化学习的计算图自动划分方法 | |
CN117591122A (zh) | 一种针对申威平台.net运行时的结构体提升优化编译方法、装置、存储介质及设备 | |
CN105487911B (zh) | 一种基于编译指导的众核数据分片方法 | |
CN115461718A (zh) | 神经网络中的内存分配 | |
WO2012069010A1 (zh) | 静态存储的分配方法和装置 | |
CN116594622A (zh) | 基于类型推导与数据流分析的Python程序编译方法及系统 | |
CN116360790A (zh) | 一种基于虚拟机的代码编译方法、装置及执行方法、装置 | |
CN115794103A (zh) | 变量编译方法、装置、电子设备及可读存储介质 | |
CN112015426A (zh) | 一种代码管理方法、装置及设备 | |
CN112416362B (zh) | 一种pdk编译功能的实现方法 | |
CN117009092B (zh) | 基于多重多臂老虎机的编译时间资源动态分配方法及系统 | |
CN117892836A (zh) | 支持多后端计算硬件的深度学习机器指令生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |