CN104750533B - C程序编译方法及编译器 - Google Patents
C程序编译方法及编译器 Download PDFInfo
- Publication number
- CN104750533B CN104750533B CN201310751856.8A CN201310751856A CN104750533B CN 104750533 B CN104750533 B CN 104750533B CN 201310751856 A CN201310751856 A CN 201310751856A CN 104750533 B CN104750533 B CN 104750533B
- Authority
- CN
- China
- Prior art keywords
- function
- program
- symbol
- intermediate code
- analysis
- 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.)
- Active
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明实施例提供一种C程序编译方法及编译器,该方法包括:依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,将经过所述语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;对经过所述中间代码优化的C程序进行目标代码生成。能够降低后端阶段的耗时,从而提高C程序编译效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种C程序编译方法及编译器。
背景技术
C语言被广泛应用于开发各种系统软件,如操作系统、编译器、嵌入式系统、并行计算等,因此,针对各种目标机器的C程序编译器也层出不穷。C程序编译器的功能就是将用户的C程序转换成语义等价的目标机程序。在经典编译架构中,编译过程通常被划分为5个串行的模块,即:词法分析、语法分析、语义分析及中间代码生成、中间代码优化、目标代码生成。通常将词法分析、语法分析、语义分析及中间代码生成阶段合称为前端,将中间代码优化、目标代码生成阶段合称为后端。前端主要完成与源语言相关的各类分析工作,而后端主要涉及与目标机相关的各类转换、生成工作。随着用户C程序规模及复杂程度不断增大,编译过程将耗费更多的时间。
现有技术中,中间代码优化和目标代码生成均是以C程序的文件为单位执行的,需要逐一的处理文件中的各个函数,速度很慢,导致编译过程中后端的阶段非常耗时。因此,降低后端阶段的耗时,减少C程序编译时间,从而提高C程序编译效率成为亟待解决的问题。
发明内容
本发明提供一种C程序编译方法及编译器,能够降低后端阶段的耗时,从而提高C程序编译效率。
一方面,本发明提供一种C程序编译方法,包括:依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,
将经过所述语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;
对经过所述中间代码优化的C程序进行目标代码生成。
另一方面,本发明提供一种C程序编译器,包括:用于对C程序进行词法分析的词法分析器、用于对词法分析后的C程序进行语法分析的语法分析器、用于对语法分析后的C程序进行语义分析及中间代码生成的语义分析及中间代码生成器、中间代码优化器和目标代码生成器,
所述中间代码优化器,用于将经过所述语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;
所述目标代码生成器,用于对经过所述中间代码优化的C程序进行目标代码生成。
本发明提供的C程序编译方法及编译器,依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,将经过语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;对经过中间代码优化的C程序进行目标代码生成。这样一来,编译器在进行中间代码优化时,可以以函数为单位,在提供的至少两个线程上并行的处理各函数,加快了优化的速度,进而减少了C程序编译时间,提高了C程序编译效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的C程序编译方法的流程示意图;
图2为本发明提供的另一C程序编译方法的流程示意图;
图3为本发明提供的符号系统的结构示意图;
图4为本发明提供的编译并行方法的流程示意图;
图5为本发明C程序编译器的结构示意图;
图6为本发明另一C程序编译器的结构示意图;
图7为本发明再一C程序编译器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的C程序编译方法的流程示意图,如图1所示,该方法包括:
S101、C程序编译器依次对C程序进行词法分析、语法分析、语义分析及中间代码生成。
需要说明的是,词法分析、语法分析、语义分析及中间代码生成,主要完成与源语言相关的各类分析工作,如对组成C程序文件的各个函数进行分析以得到各个函数的信息如函数长度等等。
S102、C程序编译器将经过语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化。
进一步地,编译器可以将中间代码以函数为单位独立组织,即为每个函数分配一个优化线程,并将所有线程加入线程池,由操作系统统一调度,如,中央处理器(CenterProcess Unit,CPU)可支持的线程为4个,该的包括的函数为6个,其函数长度经过前端分析确定为:一个较长的函数,三个很短的函数和两个中等长度的函数,这时,可以将较长的函数分配到一个线程上,其他两个中等长度的函数各分配一个线程,最后将三个很短的函数分配到同一个线程上;或者,将较长的函数分配到一个线程上,其他两个中等长度的函数各分配一个线程,并在其各自的线程上也分别分配一个很短的函数,将最后一个很短的线程分配到另一个空置的线程上等等,此处仅仅举例说明可以根据函数的长度分配到不同的线程上,但不以上述分配方式做任何限定。且保护范围不限于上述举例,以前端分析得出的其他函数信息的分配方法均在保护范围之内。
进一步地,在线程上的函数可以以各函数为单位分别优化,优化可以使得C程序编译出的执行程序执行加快或者C程序编译出的文件较小,分别优化可以加快优化的速度。
S103、C程序编译器对经过中间代码优化的C程序进行目标代码生成。
进一步地,编译器可以对上述优化后的C程序进行目标代码生成,C程序可以是分别利用上述线程以函数为单位并行进行代码生成,还可以是以其他方式分配在不同线程上以函数为单位并行进行代码生成。
本发明提供的C程序编译方法,依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,将经过语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;对经过中间代码优化的C程序进行目标代码生成。这样一来,编译器在进行中间代码优化时,可以以函数为单位,在提供的至少两个线程上并行的处理各函数,加快了优化的速度,进而减少了C程序编译时间,提高了C程序编译效率。
下面采用具体的实施例,对图1所示方法实施例的技术方案进行详细说明。
图2为本发明提供的另一C程序编译方法的流程示意图,如图2所示,该方法包括:
S201、C程序编译器依次对C程序进行词法分析、语法分析、语义分析及中间代码生成获取C程序中各函数的信息。
S202、C程序编译器根据获取的C程序中各函数的信息将各函数分配在CPU可支持的至少两个线程上。
举例来说,各函数的信息可以是函数长度,或者该函数执行优化的历史参照时间长短等。
S203、C程序编译器为各函数对应分配一个符号访问接口,符号访问接口与全局符号数据相连,且与函数对应的局部符号数据相连。
举例来说,图3为本发明提供的符号系统的结构示意图,符号系统是编译器的数据中心,主要定义了编译过程中各种数据结构及其访问接口,如符号信息、类型系统、抽象语法树等。如图3所示,本发明考虑到后端多线程对符号系统的并发访问,因此对于符号系统设计也是以函数为并发控制粒度设计的:为C程序中的每个函数提供一个符号访问接口,该符号访问接口与全局符号数据相连,使得函数可以改写全局符号,且该符号访问接口与该函数对应的局部符号数据相连,使得该函数可以改写自己的局部符号。
S204、C程序编译器在分配到的线程上对各函数进行优化,优化至少包括各函数分别通过对应的符号访问接口对全局符号中函数需改写的符号进行标记,并通过符号访问接口在函数对应的局部符号中改写需改写的符号。
进一步地,本实施例只是描绘了在编译优化过程中针对并行编译模式设计的一个数据访问控制机制,并不是以此概括所有的编译优化方法,优化并不以此举例为限定。
举例来说,符号可以是变量、变量类型、变量结构信息,字段,访问权限等等,改写可以是函数对符号的使用或对符号的定义,如函数XX1通过XX1函数的符号访问接口使用了一次其函数自身的局部变量,该局部变量会记录下这次使用,或者,也可以是对全局变量的改写或定义。
进一步地,在函数在各线程上并发优化时,符号系统会为全局符号建立一份完整的映射,再针对每个函数的形成属于该函数的局部符号,这部分的数据是可以改写的。即为每个函数提供一个独立的符号访问接口,该符号访问接口数据相连的符号系统提供的全局符号可读取且可标记需改写的内容,局部符号可改写,使得在线程上并行优化的各函数可以分别通过相应的符号访问接口同时与符号系统交互,读取全局符号并分别改写其对应的局部符号。除了函数符号访问接口之外,符号系统还提供了一个全局符号更新接口,该接口主要用于编译过程中对全局符号进行更新。
S205、C程序编译器对各线程上完成优化的函数进行数据维护,数据维护为根据全局符号中各符号上的标记更新全局符号。
进一步地,为保证符号信息及中间代码的一致性、完整性,所有优化线程执行完毕后,可以对各线程的优化结果合并、整理,并通知符号系统进行数据维护。
举例来说,编译器可以将所有函数对某个全局符号的改写整合在一起,如对于一个全局变量a,标记有函数XX1对它进行了一次定义,函数XX2使用了它一次,那么整合的时候可以将函数XX1对它进行了一次定义,函数XX2使用了它一次对应记录在这个全局符号a里,并保留这个全局符号a;如对某一个全局变量b,没有任何标记,即函数XX1没有对它进行改写,函数XX2也没有对它进行改写,统计发现也没有任何该C程序中的其他函数对b进行过改写,那么整合的时候可以全局符号里的b删除。这样可以根据符号的信息将优化等编译过程中对符号的改写记录下来,一方面可以删除不需要的符号节省资源,另一方面可以提高后续调试的准确度。
S206、C程序编译器对经过中间代码优化的C程序进行目标代码生成。
举例来说,编译器可以根据前端获取的函数的信息将各函数分配在CPU可支持的线程上,在分配到的线程上对各函数进行目标代码生成。如根据函数的长度分配到不同的CPU可支持的线程上,以使得各线程上的函数接近同一时间完成目标代码生成等。或者,编译器也可以根据进行优化时各函数所分配到的线程将各函数分配在对应的线程上,并在分配到的线程上对各函数进行目标代码生成。
S207、C程序编译器将目标代码生成后的各函数按照进行词法分析前的C程序的函数排序顺序进行排序整理。
需要说明的是,各函数在相同或不同的线程上并行优化后,需要将打乱的函数按照C程序的函数进入前端时的排序顺序进行排序整理,以保证最终输出的编译结果与输入的C程序具有一致性。
进一步地,编译器也可以在中间代码优化之后进行排序整理,此处仅以此举例说明,但不做任何限定。为保证目标代码的一致性、完整性,所有目标代码线程执行完毕后,可以对各线程的生成结果合并、整理。
举例来说,图4为本发明提供的C程序编译后端并行方法的流程示意图,如图4所示,编译器对C程序进行了前端处理之后,还可以将中间代码以函数为单位独立组织,为每个函数分配一个优化线程,并将所有线程加入线程池,由操作系统统一调度执行;在优化线程执行过程中,所有对符号系统的访问请求都由符号访问接口统一处理。全局符号信息的访问必须遵守严格的互斥约束,而局部符号信息的可以相对宽松。为保证符号及中间代码的一致性、完整性,所有优化线程执行完毕后,对优化结果综合,如对各线程的优化结果合并、整理,并通知符号系统进行数据维护。结束中间代码优化后,将优化后的C程序继续以函数为单位独立组织,为每个函数分配一个优化线程,并将所有线程加入线程池,由操作系统统一调度执行,最后进行代码生成综合,如对各线程的生成结果合并、整理等。进一步地,如果在执行前端或后端时出错,则进入出错处理程序对C程序进行错误处理。
本发明提供的C程序编译方法,依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,将经过语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;对经过中间代码优化的C程序进行目标代码生成。这样一来,编译器在进行中间代码优化时,可以以函数为单位,在提供的至少两个线程上并行的处理各函数,加快了优化的速度,进而减少了C程序编译时间,提高了C程序编译效率。
图5为本发明C程序编译器的结构示意图,如图5所示,本C程序编译器30可以包括:用于对C程序进行词法分析的词法分析器301、用于对词法分析后的C程序进行语法分析的语法分析器302、用于对语法分析后的C程序进行语义分析及中间代码生成的语义分析及中间代码生成器303、中间代码优化器304和目标代码生成器305。
中间代码优化器304,用于将经过语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化。
目标代码生成器305,用于对经过中间代码优化的C程序进行目标代码生成。
举例来说,目标代码生成器305可以用于将经过进行所述词法分析的C程序以各函数为单位分配在至少两个线程上,以分别进行目标代码生成。
进一步地,目标代码生成器305,还用于将目标代码生成后的各函数按照前端处理前的C程序的函数排序顺序进行排序整理。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明另一C程序编译器的结构示意图,如图6所示,本实施例的C程序编译器30在图6所示装置结构的基础上,进一步地,还可以包括:线程控制器306和处理器307。
线程控制器306,用于根据所述词法分析、所述语法分析、所述语义分析及中间代码生成获取的C程序中各函数的信息将各函数分配在CPU可支持的至少两个线程上。
处理器307,用于为各函数对应分配一个符号访问接口,符号访问接口与全局符号数据相连,且与函数对应的局部符号数据相连。
举例来说,中间代码优化器304可以在分配到的线程上对各函数进行优化,优化至少包括各函数分别通过对应的符号访问接口对全局符号中函数需改写的符号进行标记,并通过符号访问接口在函数对应的局部符号中改写需改写的符号。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步地,图7为本发明又一C程序编译器的结构示意图,如图7所示,本实施例的C程序编译器30在图6所示装置结构的基础上,进一步地,还可以包括:优化结果综合器308。
优化结果综合器308,用于对各线程上完成优化的函数进行数据维护,数据维护为根据全局符号中各符号上的标记更新全局符号。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明提供的C程序编译器,依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,将经过语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;对经过中间代码优化的C程序进行目标代码生成。这样一来,编译器在进行中间代码优化时,可以以函数为单位,在提供的至少两个线程上并行的处理各函数,加快了优化的速度,进而减少了C程序编译时间,提高了C程序编译效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (3)
1.一种C程序编译方法,包括:依次对C程序进行词法分析、语法分析、语义分析及中间代码生成,其特征在于,
根据所述词法分析、所述语法分析、所述语义分析及中间代码生成获取的所述C程序中各函数的信息将所述各函数分配在中央处理器CPU可支持的至少两个线程上;
为各函数对应分配一个符号访问接口,所述符号访问接口与全局符号数据相连,且与所述函数对应的局部符号数据相连;
在分配到的线程上对各函数进行优化,所述优化至少包括各函数分别通过对应的符号访问接口对全局符号中所述函数需改写的符号进行标记,并通过所述符号访问接口在所述函数对应的所述局部符号中改写需改写的符号;
对各线程上完成优化的函数进行数据维护,数据维护为根据全局符号中各符号上的标记更新全局符号;
对经过所述中间代码优化的C程序进行目标代码生成;
将目标代码生成后的各函数按照进行所述词法分析前的C程序的函数排序顺序进行排序整理。
2.根据权利要求1所述的方法,其特征在于,所述改写为对所述符号的使用或对所述符号的定义。
3.一种C程序编译器,包括:用于对C程序进行词法分析的词法分析器、用于对词法分析后的C程序进行语法分析的语法分析器、用于对语法分析后的C程序进行语义分析及中间代码生成的语义分析及中间代码生成器、中间代码优化器和目标代码生成器,其特征在于,
所述中间代码优化器,用于将经过所述语义分析及中间代码生成的C程序以函数为单位分配在至少两个线程上,以分别进行中间代码优化;
所述目标代码生成器,用于对经过所述中间代码优化的C程序进行目标代码生成;
还包括:
线程控制器,用于根据所述词法分析、所述语法分析、所述语义分析及中间代码生成获取的所述C程序中各函数的信息将各函数分配在中央处理器CPU可支持的至少两个线程上;
处理器,用于为各函数对应分配一个符号访问接口,所述符号访问接口与全局符号数据相连,且与所述函数对应的局部符号数据相连;
所述中间代码优化器,具体用于在分配到的线程上对各函数进行优化,所述优化至少包括各函数分别通过对应的符号访问接口对全局符号中所述函数需改写的符号进行标记,并通过所述符号访问接口在所述函数对应的所述局部符号中改写需改写的符号;
所述目标代码生成器,还用于将目标代码生成后的各函数按照进行所述词法分析前的C程序的函数排序顺序进行排序整理;
还包括:
优化结果综合器,用于对各线程上完成优化的所述函数进行数据维护,所述数据维护为根据所述全局符号中各符号上的所述标记更新所述全局符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751856.8A CN104750533B (zh) | 2013-12-31 | 2013-12-31 | C程序编译方法及编译器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751856.8A CN104750533B (zh) | 2013-12-31 | 2013-12-31 | C程序编译方法及编译器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750533A CN104750533A (zh) | 2015-07-01 |
CN104750533B true CN104750533B (zh) | 2018-10-19 |
Family
ID=53590281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310751856.8A Active CN104750533B (zh) | 2013-12-31 | 2013-12-31 | C程序编译方法及编译器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750533B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491667A (zh) * | 2018-12-21 | 2019-03-19 | 芯海科技(深圳)股份有限公司 | 一种c语言编译效率优化的方法 |
CN110018816B (zh) * | 2019-04-12 | 2022-04-22 | 王晨 | 一种基于c/c++编译系统的虚拟机控制系统及其控制方法 |
CN110908668A (zh) * | 2019-11-21 | 2020-03-24 | 深圳市新威尔电子有限公司 | 用于编译电池检测系统脚本程序的编译器 |
CN115167868B (zh) * | 2022-07-29 | 2022-12-09 | 阿里巴巴(中国)有限公司 | 代码编译方法、装置、设备及计算机存储介质 |
CN116301906A (zh) * | 2023-05-22 | 2023-06-23 | 安徽华可智能科技有限公司 | 一种模块化的c语言通用编译器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369233A (zh) * | 2007-08-14 | 2009-02-18 | 国际商业机器公司 | 程序编译方法和编译器 |
CN101667135A (zh) * | 2009-09-30 | 2010-03-10 | 浙江大学 | 一种交互式并行化编译系统及其编译方法 |
CN102195773A (zh) * | 2010-03-03 | 2011-09-21 | 中国人民解放军信息工程大学 | 一种分组密码算法分析方法及系统 |
CN102222004A (zh) * | 2011-07-01 | 2011-10-19 | 福建富士通信息软件有限公司 | 交换机专用语言转换为c语言的方法 |
CN102265257A (zh) * | 2008-12-25 | 2011-11-30 | 松下电器产业株式会社 | 程序变换装置及程序变换方法 |
CN102334094A (zh) * | 2009-05-28 | 2012-01-25 | 松下电器产业株式会社 | 多线程处理器、编译器装置及操作系统装置 |
CN102449605A (zh) * | 2010-06-14 | 2012-05-09 | 松下电器产业株式会社 | 多线程并行执行装置、广播流再现装置、广播流储存装置、储存流再现装置、储存流再编码装置、集成电路、多线程并行执行方法、多线程编译器 |
CN102508689A (zh) * | 2011-11-08 | 2012-06-20 | 上海交通大学 | 高级语言程序数据流图提取中依赖关系保持数据处理系统 |
-
2013
- 2013-12-31 CN CN201310751856.8A patent/CN104750533B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369233A (zh) * | 2007-08-14 | 2009-02-18 | 国际商业机器公司 | 程序编译方法和编译器 |
CN102265257A (zh) * | 2008-12-25 | 2011-11-30 | 松下电器产业株式会社 | 程序变换装置及程序变换方法 |
CN102334094A (zh) * | 2009-05-28 | 2012-01-25 | 松下电器产业株式会社 | 多线程处理器、编译器装置及操作系统装置 |
CN101667135A (zh) * | 2009-09-30 | 2010-03-10 | 浙江大学 | 一种交互式并行化编译系统及其编译方法 |
CN102195773A (zh) * | 2010-03-03 | 2011-09-21 | 中国人民解放军信息工程大学 | 一种分组密码算法分析方法及系统 |
CN102449605A (zh) * | 2010-06-14 | 2012-05-09 | 松下电器产业株式会社 | 多线程并行执行装置、广播流再现装置、广播流储存装置、储存流再现装置、储存流再编码装置、集成电路、多线程并行执行方法、多线程编译器 |
CN102222004A (zh) * | 2011-07-01 | 2011-10-19 | 福建富士通信息软件有限公司 | 交换机专用语言转换为c语言的方法 |
CN102508689A (zh) * | 2011-11-08 | 2012-06-20 | 上海交通大学 | 高级语言程序数据流图提取中依赖关系保持数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104750533A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103858099B (zh) | 用于执行应用的方法和系统、具有机器指令的电路 | |
CN104750533B (zh) | C程序编译方法及编译器 | |
CN103348323B (zh) | 用于在计算机系统中执行目标程序的方法和系统 | |
AU2013290313B2 (en) | Method and system for automated improvement of parallelism in program compilation | |
EP3465428B1 (en) | Sample driven profile guided optimization with precise correlation | |
US8806463B1 (en) | Feedback-directed inter-procedural optimization | |
CN1664779B (zh) | 软件开发基础架构 | |
CN108874438A (zh) | 补丁生成方法、装置、电子设备及计算机程序产品 | |
CN102193811B (zh) | 消除内存访问冲突的编译装置及其实现方法 | |
CN107209677B (zh) | 精细粒度需求驱动的ipo基础架构 | |
JP2015201119A (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
CN104572260A (zh) | 用于实现事务内存区域提升的代码版本控制的方法和设备 | |
CN115495095B (zh) | 张量程序的整程序编译方法、装置、设备、介质及集群 | |
CN103699365A (zh) | 一种众核处理器结构上避免无关依赖的线程划分方法 | |
US20110231830A1 (en) | Loop Transformation for Computer Compiler Optimization | |
Larsen et al. | Tensorflow graph optimizations | |
CN105447285B (zh) | 一种提高OpenCL硬件执行效率的方法 | |
CN100559344C (zh) | 一种支持用规则记录变量访问专用寄存器组的处理方法 | |
CN112558977B (zh) | 面向异构众核后端基于代价模型的多面体优化方法 | |
CN102662720B (zh) | 一种多发射嵌入式处理器编译器的优化方法 | |
CN112527304A (zh) | 基于异构平台的自适应节点融合编译优化方法 | |
US10949209B2 (en) | Techniques for scheduling instructions in compiling source code | |
Koizumi et al. | Reduction of instruction increase overhead by STRAIGHT compiler | |
CN118132090B (zh) | 基于llvm编译器的指令选择优化方法 | |
Antoy et al. | A target implementation for high-performance functional programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 200235 Shanghai city Xuhui District Longcao Road No. 299 Tianhua Information Technology Park Building 2 floor A block 5 Applicant after: SHANGHAI EASTSOFT MICROELECTRONICS CO., LTD. Address before: 200235 Shanghai city Xuhui District Longcao Road No. 299 Tianhua Information Technology Park Building 2 floor A block 5 Applicant before: Shanghai Hair Group Integated Circuit Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |