CN100370424C - 优化编译器生成的程序代码的方法 - Google Patents

优化编译器生成的程序代码的方法 Download PDF

Info

Publication number
CN100370424C
CN100370424C CNB038084724A CN03808472A CN100370424C CN 100370424 C CN100370424 C CN 100370424C CN B038084724 A CNB038084724 A CN B038084724A CN 03808472 A CN03808472 A CN 03808472A CN 100370424 C CN100370424 C CN 100370424C
Authority
CN
China
Prior art keywords
program code
code
program
bank
storage area
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.)
Expired - Fee Related
Application number
CNB038084724A
Other languages
English (en)
Other versions
CN1703674A (zh
Inventor
迈克尔·鲍尔迪希韦勒
沃纳·尼斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Publication of CN1703674A publication Critical patent/CN1703674A/zh
Application granted granted Critical
Publication of CN100370424C publication Critical patent/CN100370424C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • G06F8/4436Exlining; Procedural abstraction

Abstract

本发明涉及一种用于编译器生成的程序代码(38)的优化的方法。由编译器生成的程序代码(38)由程序代码段(42)检查,程序代码段(42)至少有关其动作而对应包含在预定库(28)中的库代码段(30x)。因此,通过分别调用对应的库代码段(30x),替换找到的程序代码段(42)。一种计算机程序产品,包括用于执行所述方法的程序指令。一种移动数据载体(10),包括根据所述方法优化的程序代码(44),并且包括库。本发明使得移动数据载体(10)中可用的存储器能够有效使用,并且对程序修改和/或对相对小量的数据载体(10)的生产提供高度适应性。

Description

优化编译器生成的程序代码的方法
技术领域
本发明涉及便携数据载体的编程,并涉及通过便携数据载体的程序执行。便携数据载体在本申请的意义内具体可以是各种设计的芯片卡(smart card,灵通卡)或者芯片模块。
背景技术
便携数据载体在当今共同使用时,具有处理器核心和以不同技术生产的多个存储器。在典型配置中,例如,提供掩膜编程的(mask-programmed)ROM、电可擦写和可编程EEPROM和可写RAM。RAM用作为运行程序期间的工作存储器,而处理器核心要执行的程序代码可存储在ROM和/或EEPROM中。数据载体的这些和类似设计描述在W.Rankl and W.Effing,Hanser Verlag的书“Handbuch der Chipkarten”1999年第三版的3.4节。
一般地,EEPROM中的存储单元占据大约4倍的ROM存储单元的芯片面积。为了节省芯片面积,或者为了以同样面积取得更大的可用存储容量,因此可希望在ROM中尽可能广地容纳可执行程序代码。然而,有必要早在掩膜编程的ROM的生产阶段,为大量数据载体不可改变地定义掩膜编程的ROM的内容。比较起来,写入EEPROM,仅仅在完成和初始化一系列数据载体后,或者在个性化单独的数据载体时执行。因此,由于更大的适应性,可执行程序代码尽可能广地存储在EEPROM中是有利的。这既适用于数据载体的较小产量的编程,也适用于在大产量情形的错误修正和附加功能的引入。
因而在便携载体的编程中存在问题:一方面,尽可能广地使用掩膜编程的ROM和同等存储器;另一方面,对程序变化和/或对较小产量的数据载体的生产取得尽可能大的适应性。
发明内容
根据本发明,通过具有权利要求1的特征的方法、根据权利要求8的计算机程序产品和根据权利要求10的便携数据载体,完全或部分地解决了此问题。各从属权利要求定义本发明的优选发展。在有关方法的各权利要求中条目化各步骤的顺序不被理解为对保护范围的限制。而是,提供了本发明的各开发,其中这些步骤以不同顺序、或者完全或部分并行地、或者彼此完全或部分交织地执行。
本发明来自使用包括用于优化程序代码目的的多重库代码段的预定库的基本思想。在根据本发明的优化方法中,为在其效果或功能上分别对应一个库代码段的程序代码段,一方面,搜索要优化的程序代码。这样的程序代码段分别由对应的库代码段的一个调用替换。优化的程序代码存储在数据载体的第一存储区域中(例如在EEPROM中),而为在第二存储区域中(例如在ROM中)的存储提供库。
在发明人进行的测试中,根据本发明的优化过程导致对第一存储区域提供的程序代码的规模的显著减少。该结果是未预料到的,因为我们会直观地假定:使用实际范围的库,仅会找到少部分程序代码对应库代码段。
本发明产生的代码规模的减少具有结果:在具有预定量的存储器的数据载体的情形,在第一存储区域中可包括用于附加功能的程序代码。如果第一存储区域设计为EEPROM或以等同技术设计,在数据载体的个性化或完成或初始化之后,只需要装载该程序代码。由于其简洁而实现多重功能的程序代码,因此可既迅速而且甚至对小产量的各数据载体、或甚至对单一数据载体进行改变或重写。
根据本发明,预定库位于第二存储区域中,即例如在掩膜编程的ROM中。通常,根据本发明通过优化得到的程序代码的节省(saving)少于库的大小。然而,即使在此情形,由于更好地利用有价值的第一存储区域,应用本发明也是有利的。如果在编译器生成的程序代码中存在多个代码段,那么其各组在每个情形可分别通过一个单一库代码段替换,而如果库仅仅包含少数不需要的代码段,那么优化可导致程序代码收缩甚至多于库的长度。在此情形,即使第一和第二存储区域仅仅是同样的物理存储区域(field)的概念部分,应用本发明也是有利的。
根据本发明,为了优化目的,为程序代码段进行搜索,即搜索可由对应的库代码段替换的编译器生成的程序代码中的部分。在程序生成期间,编程人员不需要考虑随后的优化过程;特别是,编程人员不需要在用于库例程的调用的程序中预作安排。因此,本发明不以任何方式使编程更难。
在这里使用的术语的选择中,术语“程序代码”或“代码段”的意图在于不仅表示在链接(linkage)前或后的可执行机器代码,而且表示对应的汇编源代码。换言之,在本发明的不同开发中,根据本发明的优化过程既可根据编译器生成的汇编源代码执行,也可根据已经汇编的机器代码执行。在前者的情形,汇编和必要时的链接仅仅在优化后执行。同样地,库可以在优化期间作为汇编源代码和/或作为已经汇编的机器代码是可用的。
一般,无论何时两个代码段执行相互对应的功能,库代码段对程序代码段的替换就是可能的。就此而论,可就代码段的准确效果进行复杂计算,以便例如初始化替换过程,即使代码段中的个别指令以无害方式交换。在具体地简单示范性的各实施例中,作为对照,仅仅在代码段在由其定义的机器代码方面是相同的条件下进行替换。然而,甚至在此简单开发的情形,由于例如可能一般不替换具有带有不在该代码段中的跳转目的地的跳转的代码段的事实,也需要代码段的某些分析。
如果使用以类似过程调用的方式包含一个或多个参数(例如存储地址或者数值)的参数化的代码段,附加的替换可能跟着发生。
最好,通过插入程序代码中的子程序调用指令,正常地调用库代码段。然后紧跟库代码段之后,在库中提供返回指令。如果要替换的代码段干扰程序流,该规则的例外就可应用在有些实施例中。例如,如果代码段以子程序返回指令结束,该调用就可通过跳转指令正常被实现。
根据本发明,预定义使用的库,即不依赖在当前优化运行中处理的程序代码。然而,为了实现可能的最好优化结果,最好设计库使其包含适当的条目用于程序代码的频繁出现的结构。这样的频繁出现的代码部分可具体依赖于数据载体的硬件和/或操作系统和/或依赖于在编译器生成的程序代码的生成中使用的编译器。
根据本发明提供的计算机程序产品具体可以是计算机可读数据载体,如例如电子或磁或光存储介质,但其不限于物理数据载体。电或光信号(例如通信链路的电压电平)也理解为这里使用的意义上的计算机程序产品。计算机程序产品包括执行根据本发明的优化步骤的程序代码。最好,计算机程序产品还包括编译器和/或汇编器和/或链接器和/或装载器程序。
根据本发明的计算机程序产品和根据本发明的便携数据载体最好被开发具有对应上述和/或在有关方法的各权利要求中所述的特征的特征。
附图说明
本发明的进一步的特征、目的和优点通过示范实施例和多个替代实施例的以下说明来揭示。参照示意图,其中唯一的图(图1)说明本发明的示范实施例中的程序代码的不同版本的表示和便携数据载体的表示。
具体实施方式
本发明用于便携数据载体10的编程中,便携数据载体10在这里描述的示范实施例中设计为芯片卡。数据载体10以其自身已知的方式包括具有处理器核心12的半导体芯片、掩膜编程的ROM14、EEPROM16、RAM18和用于非接触或接触绑定(contact-bound)通信的接口20。所述各部件经由总线22彼此连接。在各替代实施例中,三个存储区域14、16、18可以其它技术设计;具体地,FLASH技术可用于ROM14和/或EEPROM16。
第一和第二存储区域24、26概念性地提供在存储区域14、16、18中。第一存储区域24用作接收可执行机器代码形式的优化的程序代码。同样可执行机器代码形式的预定库28存储在第二存储区域26中。在这里描述的示范实施例中,第一存储区域24位于EEPROM16中,而第二存储区域26位于ROM14中。除了第二存储区域26,ROM14以其自身已知的方式还包括固定预定义的、组成例如数据载体10的操作系统的例程。EEPROM16还包括文件系统,用于要存储为数据载体10中的非易失性数据的数据。
库28具有多重预定义的库代码段30A、30B、30C、......,其在下面总地表示为30x。在图1中,为了清楚表示的原因,库代码段30x表示为汇编源代码。通常,每个库代码段30x后紧跟子程序返回指令32A、32B、......(在下面总地表示为32x)。然而,如果由于以下事实,子程序返回指令32x在库代码段30x的执行中不能达到,那么子程序返回指令32x可省略,该事实是例如库代码段30x的每个程序流在出口结束或者结束在包含在库代码段30x中的子程序返回指令。
用于便携数据载体10的程序开发源于高级语言源代码34,其在图1中以编程语言C示范表示。图1所示的部分等待直到出自单位位置(out from unitposition)的输入寄存器INPORT的第三位达到值“0”,然后设置输出寄存器OUTPORT为16进制值“FF”。自身已知的编译器36将高级语言源代码34转换为编译器生成的程序代码38,其在图1中以用于6805指令集的汇编源代码形式表示。分别根据处理器核心12的其它指令集在各替代实施例中提供。
优化程序40执行对本示范实施例必需的优化步骤。优化程序40处理编译器生成的程序代码38,并且访问有关包含在库28中的库代码段30x的信息。在不同的实施例变体中,该信息可包含例如汇编源代码的库28的拷贝和/或可执行机器代码的库28的拷贝和/或适当描述语言的各个库代码段30x的效果的规范。进而,可提供附加信息如例如索引或hash表,以便加速优化程序40进行的搜索过程。
优化程序40识别包含在编译器生成的程序代码38中的程序代码段42,其在处理器核心12的执行中具有等同于包含在库28中的库代码段30x的功能。相对简单的过程在本示范实施例中用于此目的,在该过程中,在汇编器源文本级比较编译器生成的程序代码38与库28中的各条目。对于缩写形式的指令和地址和值信息,在此情形可执行文本比较。作为对照,在比较前,符号跳转目的地必须转换为标准形式或者数值相对值。在各替代实施例中,作为对照,可根据已经以汇编的机器代码的形式表示的编译器生成的程序代码38执行优化。
对其在比较过程中已经找到对应的库代码段30x的程序代码段42,在优化过程中通过调用该库代码段30x替换。在图1中,例如,除了跳转目的地的符号目的地之外,程序代码段42和库代码段30B相同。因此,在优化的程序代码44中,优化程序40通过调用该库代码段30B替换该程序代码段42。在本例中,该调用设计为子程序调用指令46。因为在本例中程序代码段42对应7字节长度的机器代码,而子程序调用指令46仅仅需要3字节,所以优化的程序代码44需要的存储空间已经基本上通过替换被减少。
完成优化后,优化的程序代码44由汇编器48转换为可由处理器核心12执行的机器代码。跟随可能必要的与进一步的程序部分的链接操作,在数据载体10的完成或者初始化或者个性化后,将代码装入第一存储区域24。从产生用于数据载体10的芯片之时,第二存储区域26中已经存在库28。因此数据载体10准备好使用。上述转换(translation)、优化和汇编步骤由通用计算机(未显示在图1中)执行,通用计算机执行编译器36、优化程序40和汇编器48。
在数据载体10的操作中,在处理器核心12的程序执行到达第一存储区域24中的子程序调用指令46的位置时,第二存储区域26中的库代码段30B作为子程序执行。在其效果上,执行的指令准确对应优化期间去除的程序代码段42。执行这些指令后,由子程序返回命令32B触发,处理器核心12执行返回,返回到紧随子程序调用指令46之后的、第一存储区域24中的指令。
优化期间必须确保不改变各程序功能。因此,例如,具有特定跳转指令的程序代码段42应该仅仅根据精确的分析来替换,该跳转指令可能具有位于程序代码段42之外的跳转目的地。如果程序代码段42的每个可能流结束于出口或者子程序返回,替换是可允许的。但是在这样的情形,通过正常的跳转指令而不是通过子程序调用指令,来调用对应的库代码段30x。这些考虑甚至还可在生成库28时包括,使得后者仅仅包含可没有进一步限制而使用的库代码段30x。
库28应该具有这样的构造:其尽可能经常地提供适当的库代码段30x,因而提供尽可能多的优化可能。因此,例如图1的库代码段30B匹配数据载体10的硬件特性。如果该库代码段30B中请求的输入位对应频繁需要的信号值,就假设:甚至对数据载体10的很大不同的应用,对应的程序代码段42在编译器生成的程序代码38中也反复出现。类似地,频繁的操作系统调用可由对应的库代码段30x代替(cover)。用于在编译器生成的程序代码38中重复代码段的进一步的源(source)来源于以下事实:根据某些模式(schema)执行编译器36中的代码生成,并且作为结果生成递归(recurring)代码结构。
因此,总地来说,为了生成库28,对为数据载体10的硬件和操作系统指定的多重应用、统计地评估由编译器36生成的程序代码38是有利的。

Claims (7)

1.优化编译器生成的程序代码(38)的方法,该编译器生成的程序代码计划用于具有处理器核心(12)和第一和第二存储区域(24、26)的便携数据载体(10):
提供第一存储区域(24)以接收优化的程序代码(44);
提供第二存储区域(26)以接收具有多重库代码段(30x)的预定库(28);以及
对至少有关其效果分别对应一个库代码段(30x)的程序代码段(42),搜索编译器生成的程序代码(38),由此找到的程序代码段(42)分别被对应的库代码段(30x)的一个调用替换。
2.根据权利要求1所述的方法,其特征在于:仅仅在两个代码段(42、30x)在作为可执行机器代码的形式上相同的条件下,程序代码段(42)由库代码段(30x)替换。
3.根据权利要求1所述的方法,其特征在于:至少有些库代码段(30x)被参数化。
4.根据权利要求1-3的任一所述的方法,其特征在于:至少在程序代码段(42)不干扰程序流的条件下,通过对对应的库代码段(30x)的子程序调用指令(46),替换要替换的程序代码段(42)。
5.根据权利要求1-3的任一所述的方法,其特征在于:编译器生成的程序代码(38)以汇编源代码形式存在,并且优化过程在源代码级上执行。
6.根据权利要求1-3的任一所述的方法,其特征在于:预定库(28)匹配于便携数据载体(10)的硬件、和/或便携数据载体(10)的操作系统、和/或在编译器生成的程序代码(38)的生成中使用的编译器(36)。
7.根据权利要求1-3的任一所述的方法,其特征在于:第一存储区域(24)是电可编程的,和/或第二存储区域(26)是掩膜可编程的,和/或在便携数据载体(10)中,第一存储区域(24)比第二存储区域(26)每个存储单元占据更多芯片面积。
CNB038084724A 2002-04-15 2003-04-11 优化编译器生成的程序代码的方法 Expired - Fee Related CN100370424C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10216602.1 2002-04-15
DE10216602A DE10216602A1 (de) 2002-04-15 2002-04-15 Optimierung von compilergeneriertem Programmcode

Publications (2)

Publication Number Publication Date
CN1703674A CN1703674A (zh) 2005-11-30
CN100370424C true CN100370424C (zh) 2008-02-20

Family

ID=28685070

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038084724A Expired - Fee Related CN100370424C (zh) 2002-04-15 2003-04-11 优化编译器生成的程序代码的方法

Country Status (9)

Country Link
US (1) US7805718B2 (zh)
EP (1) EP1497722B1 (zh)
JP (1) JP4632666B2 (zh)
CN (1) CN100370424C (zh)
AU (1) AU2003222291A1 (zh)
DE (1) DE10216602A1 (zh)
ES (1) ES2442842T3 (zh)
IL (1) IL164582A (zh)
WO (1) WO2003088039A2 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004014885B4 (de) * 2004-03-26 2016-04-14 Giesecke & Devrient Gmbh Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers
US20060242631A1 (en) * 2005-04-22 2006-10-26 Andersen Jakob R Process and system for sharing program fragments
GB0607068D0 (en) * 2006-04-07 2006-05-17 Symbian Software Ltd Improvement relating to method of embedding software in computing devices
EP1994466A1 (en) * 2006-03-01 2008-11-26 Symbian Software Limited Code size reduction by outlining specific functions in a library
WO2007099322A2 (en) * 2006-03-01 2007-09-07 Symbian Software Limited Procedural abstraction for executable code
WO2007099324A1 (en) * 2006-03-01 2007-09-07 Symbian Software Limited Duplicate code detection
JP4968325B2 (ja) * 2007-03-08 2012-07-04 富士通セミコンダクター株式会社 ソフトウェア最適化装置、および最適化方法
US8359586B1 (en) * 2007-08-20 2013-01-22 The Mathworks, Inc. Code generation
CN102998541B (zh) * 2011-09-08 2015-04-15 立讯精密工业(昆山)有限公司 连接线自动测量方法及装置
JP2013210920A (ja) * 2012-03-30 2013-10-10 Nec Corp コンパイル装置、コンパイル方法及びコンパイラ
CN102902548B (zh) * 2012-10-24 2016-08-03 中国科学院声学研究所 汇编级内存复制标准库函数的生成方法及装置
CN103049302B (zh) * 2012-12-28 2016-03-16 中国科学院声学研究所 由程序生成优化的strcpy标准库函数汇编代码的方法
CN103901810B (zh) * 2012-12-31 2017-04-12 施耐德电器工业公司 可编程控制器用户应用的优化系统及方法
CN105247480B (zh) * 2013-06-28 2020-03-06 英特尔公司 跨独立应用商店的网络应用的兼容及优化
GB2505564B (en) 2013-08-02 2015-01-28 Somnium Technologies Ltd Software development tool
US9280339B1 (en) * 2013-12-12 2016-03-08 Amazon Technologies, Inc. Class replacer during application installation
US9495138B1 (en) * 2016-01-04 2016-11-15 International Business Machines Corporation Scheme for verifying the effects of program optimizations
CN106874577A (zh) * 2017-01-20 2017-06-20 上海新储集成电路有限公司 一种存储器编译器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1158459A (zh) * 1995-12-08 1997-09-03 太阳微系统有限公司 在保密解译程序中优化运行时调用专用变量函数的系统和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55137360A (en) * 1979-04-16 1980-10-27 Nissan Motor Co Ltd Controller for automobile
JPH0795275B2 (ja) * 1987-11-13 1995-10-11 富士通株式会社 コンパイル処理装置
JPH03291786A (ja) * 1990-04-10 1991-12-20 Matsushita Electric Ind Co Ltd Icカード
US5339428A (en) * 1991-09-04 1994-08-16 Digital Equipment Corporation Compiler allocating a register to a data item used between a use and store of another data item previously allocated to the register
JPH08263299A (ja) * 1995-03-27 1996-10-11 Sanyo Electric Co Ltd プログラム変換方法
US5815721A (en) * 1996-04-25 1998-09-29 Hewlett-Packard Company Method and apparatus for optimizing complex control structures using abstract web patterns
WO1998019237A1 (en) * 1996-10-25 1998-05-07 Schlumberger Systemes Using a high level programming language with a microcontroller
US5903795A (en) * 1997-05-23 1999-05-11 Eastman Kodak Company Photographic processor
US5903759A (en) * 1997-06-04 1999-05-11 3 Com Corporation Software performance analysis using hardware analyzer
AU2069199A (en) 1998-01-22 1999-08-09 Mondex International Limited Codelets
JPH11327887A (ja) * 1998-05-13 1999-11-30 Nec Corp 自動部品化機能付コンパイラシステムおよび記録媒体
FR2783065B1 (fr) * 1998-09-07 2001-01-19 Rue Cartes Et Systemes De Procede de compression de code interpretable
US6263429B1 (en) 1998-09-30 2001-07-17 Conexant Systems, Inc. Dynamic microcode for embedded processors
FR2785695B1 (fr) * 1998-11-06 2003-01-31 Bull Cp8 Procede de compactage d'un programme de type code objet intermediaire executable dans un systeme embarque muni de ressources de traitement de donnees, systeme compacteur et systeme embarque multi-applications correspondants
JP3507728B2 (ja) * 1999-06-07 2004-03-15 エヌイーシーソフト沖縄株式会社 メモリ削減方法および装置
JP4041248B2 (ja) * 1999-07-09 2008-01-30 松下電器産業株式会社 コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法
US6718543B2 (en) * 1999-11-08 2004-04-06 Hewlett-Packard Development Company, L.P. Method and apparatus for optimization of the performance of an application program in a computer system while preserving the system behavior
JP3650713B2 (ja) * 2000-02-04 2005-05-25 松下電器産業株式会社 プログラム変換装置、プログラム変換方法及びプログラム記憶媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1158459A (zh) * 1995-12-08 1997-09-03 太阳微系统有限公司 在保密解译程序中优化运行时调用专用变量函数的系统和方法

Also Published As

Publication number Publication date
IL164582A (en) 2012-03-29
US20050235268A1 (en) 2005-10-20
JP4632666B2 (ja) 2011-02-16
CN1703674A (zh) 2005-11-30
WO2003088039A2 (de) 2003-10-23
WO2003088039A3 (de) 2004-11-04
EP1497722A2 (de) 2005-01-19
JP2005522772A (ja) 2005-07-28
ES2442842T3 (es) 2014-02-13
DE10216602A1 (de) 2003-10-30
US7805718B2 (en) 2010-09-28
EP1497722B1 (de) 2013-11-13
IL164582A0 (zh) 2005-12-18
AU2003222291A1 (en) 2003-10-27

Similar Documents

Publication Publication Date Title
CN100370424C (zh) 优化编译器生成的程序代码的方法
US6077315A (en) Compiling system and method for partially reconfigurable computing
US5790861A (en) Method and apparatus for generating executable code from object-oriented C++ source code
Leupers et al. Retargetable compiler technology for embedded systems: tools and applications
US20070157178A1 (en) Cross-module program restructuring
KR101213275B1 (ko) 무선 장치에서 사용할모놀리식(monolithic)이미지를 제공하기 위한시스템 및 방법
CN107077379B (zh) 一种虚拟机创建方法和装置
CN102063634B (zh) 一种掩膜智能卡的功能扩展方法及智能卡
EP1253515A2 (en) Method for verifying basic instruction arrangement in VLIW instructions for variable length VLIW processor
US6738966B1 (en) Compiling device, computer-readable recording medium on which a compiling program is recorded and a compiling method
Edler von Koch et al. Exploiting function similarity for code size reduction
CN106598647B (zh) 一种智能装置开发平台
US5625822A (en) Using sorting to do matchup in smart recompilation
CN115617687B (zh) 程序插桩方法、装置、设备和存储介质
US20080288919A1 (en) Encoding of Symbol Table in an Executable
CN100458606C (zh) 匹配用于控制工作过程的函数的方法和装置
Plevyak et al. Type directed cloning for object-oriented programs
US5446899A (en) Hint generation in smart recompilation
GB2366399A (en) Recognition of command related items in object code
Liem et al. Register assignment through resource classification for ASIP microcode generation
US20030212914A1 (en) Power efficiency in microprocessor systems
US8549466B2 (en) Tiered register allocation
Balfour Efficient embedded computing
CN115639984A (zh) 一种前端线上编译引擎的实现方法及系统
US7133993B1 (en) Inferring size of a processor memory address based on pointer usage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080220

Termination date: 20160411