TWI501151B - 程式碼縮減方法與裝置 - Google Patents

程式碼縮減方法與裝置 Download PDF

Info

Publication number
TWI501151B
TWI501151B TW102123131A TW102123131A TWI501151B TW I501151 B TWI501151 B TW I501151B TW 102123131 A TW102123131 A TW 102123131A TW 102123131 A TW102123131 A TW 102123131A TW I501151 B TWI501151 B TW I501151B
Authority
TW
Taiwan
Prior art keywords
code
weight
mediation
module
processed
Prior art date
Application number
TW102123131A
Other languages
English (en)
Other versions
TW201443778A (zh
Inventor
kun hua Yang
Shao Chung Wang
Jenq Kuen Lee
Original Assignee
Nat Univ Tsing Hua
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 Nat Univ Tsing Hua filed Critical Nat Univ Tsing Hua
Publication of TW201443778A publication Critical patent/TW201443778A/zh
Application granted granted Critical
Publication of TWI501151B publication Critical patent/TWI501151B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/441Register allocation; Assignment of physical memory space to logical memory space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

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)

Description

程式碼縮減方法與裝置
本發明係關於一種程式碼縮減方法與裝置。
在計算機科學中,程式或軟體最佳化是一種修改軟體程式,讓軟體程式更有效率或使用更少資源的一種過程。通常,在最佳化後,電腦程式執行指令更快,運作時使用更少記憶體或其他資源,或者消耗更少電能。
編譯器(compiler)是一種將以高階程式語言所撰寫之原始碼轉換成低階語言程式碼。通常,編譯器包含三個主要部分:前端(front end)、中端(middle end)及後端(back end)。前端解析以文字為基礎(text-based)之程式語言成中端所使用之原始碼之中介碼(intermediate representation;IR);中端優化IR,以獲得另一個用於後端之IR;而後端將從中端來的IR編譯成組合語言碼。
許多的編譯器優化技術被發展來縮減產生碼之大小(size of generated codes),而其中一種技術被稱為程序抽象化(procedural abstraction)。程序抽象化法辨識出程式碼之重複片段。然後,萃取(extract)重複片段碼,以建立出一副程式。接著,將其他重複片段碼以呼叫執行該新建立之副程式之呼叫程序來取代。如此,程式碼之大小可被縮減。
傳統的程序抽象化法並非完美。在一些情況下,未優化之IR碼與優化之IR碼之間之減縮程度大於從未優化之IR碼產生之目的碼(object code)與從優化之IR碼產生之目的碼之減縮程度。
本發明一實施例揭露一種程式碼縮減方法。該程式碼縮減方法包含:a)決定出一中介碼模組內之基本區塊;b)將具有重複碼之基本區 塊歸類成複數群組;c)提供對應該中介碼模組之不同指令之權重值,其中該些權重值是根據複數中介程式碼所決定;d)決定該中介碼模組之權重後之大小,其中該權重後之大小是該中介碼模組之該些基本區塊之權重後之大小之總和,而各該基本區塊之權重後之大小是該基本區塊之不同指令之數量與該些權重值之對應者之乘積之總和;e)移除該中介碼模組之該些群組之一者內之重複碼,以獲得具有一經處理之群組之中介碼模組;f)決定該具有一經處理之群組之中介碼模組之權重後之大小,其中該具有一經處理之群組之中介碼模組之權重後之大小是該具有一經處理之群組之該些基本區塊之權重後之大小之總和,而各該基本區塊之權重後之大小是該具有一經處理之群組之中介碼模組之該基本區塊之不同指令之數量與對應之該些權重值之乘積之總和;以及g)比較該中介碼模組之權重後之大小和該具有一經處理之群組之中介碼模組之權重後之大小。
本發明一實施例揭露一種程式碼縮減裝置,其包含一計算機處理器及一程式萃取機制。程式萃取機制可於計算機處理器上執行。程式萃取機制用於a)決定出一中介碼模組內之基本區塊;b)將具有重複碼之基本區塊歸類成複數群組;c)提供對應該中介碼模組之不同指令之權重值;d)決定該中介碼模組之權重後之大小;e)移除該中介碼模組之該些群組之一者內之重複碼,以獲得具有一經處理之群組之中介碼模組;f)決定該具有一經處理之群組之中介碼模組之權重後之大小;以及g)比較該中介碼模組之權重後之大小和該具有一經處理之群組之中介碼模組之權重後之大小;其中,該些權重值是根據複數中介程式碼所決定;其中,該權重後之大小是該中介碼模組之該些基本區塊之權重後之大小之總和,而各該基本區塊之權重後之大小是該基本區塊之不同指令之數量與該些權重值之對應者之乘積之總和;其中,該具有一經處理之群組之中介碼模組之權重後之大小是該具有一經處理之群組之該些基本區塊之權重後之大小之總和,而各該基本區塊之權重後之大小是該具有一經處理之群組之中介碼模組之該基本區塊之不同指令之數量與對應之該些權重值之乘積之總和。
31‧‧‧計算機處理器
32‧‧‧記憶體
311‧‧‧程式萃取機制
312‧‧‧權重值產生機制
313‧‧‧分析器
S101~S108‧‧‧流程步驟
GP0 ~GP2 ‧‧‧群組
V[0]~V[6]‧‧‧元素
圖1為本發明一實施例之流程圖,其例示一種程式碼縮減方法之步驟。
圖2A為本發明一實施例之示意圖,其例示包含已歸類成群組之基本區塊之向量。
圖2B為本發明一實施例之示意圖,其例示另一向量,其中該另一個向量之一群組之基本區塊被移除。
圖3為本發明一實施例之示意圖,其例示程式碼縮減裝置。
在一些實施例中,一種新的程式碼縮減方法。新的程式碼縮減方法是利用低階虛擬機器基礎架構(Low Level Virtual Machine infrastructure;LLVM infrastructure)來示範。新的方法不限於LLVM infrastructure。新的方法可運用在任何適合的編譯器基礎架構。在一些實施例中,該新的方法可運用在一電腦程式、程式碼、模組(module)或其他,其中模組可包含一或以上的函數(function),函數可包含複數基本區塊(basic blocks),而基本區塊包含一系列的指令(instructions)。一個基本區塊可具有一進入點(entry point)及一退出點(exit point)。指令可為一可執行的程式之單元之任意表述(representation),例如:位元組碼(byte code)。在一些實施例中,一個基本區塊可具有一中止指令(terminator instruction),例如:分支(branch)或函數返回(function return)。
基本區塊有大小。基本區塊之大小可以指令數目(instruction counts)或基本區塊之指令之數量來表示。一個模組M可包含複數個函數(functioni ),各函數(functioni )可包含複數基本區塊BBm ;然而,部分基本區塊相似,而其他則不同。模組M的大小S(M)可利用下列公式(1)決定。
公式(1)可用於評估執行程序抽象化(procedural abstraction or procedural extraction),萃取(extract)模組內包括相似基本區塊之群組之效果。公式(1)首先用於決定最初模組(original module)之大小S(Morig )。然後,決定出縮減後之模組Mextract 之大小S(Mextract ),其中縮減後之模組具有一群 組,而該群組之基本區塊之重複碼已移除。如果模組大小S(Mextract )小於最初模組的大小S(Morig ),則該群組之基本區塊之重複碼之移除可被認為對該群組之最佳化有助益。
圖1為本發明一實施例之流程圖,其例示一種程式碼縮減方法之步驟。下表1例示一虛擬碼,其中該虛擬碼實作圖1之流程圖中之一種程式碼縮減方法之步驟。
參照圖1與表1所示,在步驟S101中,該方法進行初始化。
在步驟S102中,該方法決定出該模組之基本區塊。在一實施例中,該模組是一中介碼模組(intermediate representation(IR)module)。接著,如表1之第2至11行所顯示,該方法反覆地(iteratively)遍歷(traverse)該模組之所有基本區塊,以決定出具有重複碼之基本區塊。之後,將具有類似重複碼之基本區塊歸類在同一群組。各已歸類之基本區塊可被推入(push)一向量(vector)V內。持續此步驟,直到所以的基本區塊都被歸類處理。
以例言,如圖2A所示,該方法為進行比較,首先選擇一基本區塊BB_h1來進行比較。接者,比較基本區塊BB_h1和其他的基本區塊(BB_h2、BB_h3、BB_t1.1、BB_t2.1、BB_t2.2和BB_t3.1)。然後,該方法找出基本區塊BB_t1.1包括重複碼,並確認基本區塊BB_h1尚未屬於任一群組。之後,基本區塊BB_h1和基本區塊BB_t1.1被推入一向量V,並分別成為向量V的第一元素v[0]和第二元素v[1];而且,基本區塊BB_h1和基本區塊BB_t1.1被歸類為群組GP0 。在所有的基本區塊被比較後,該方法選擇另一基本區塊BB_h2來進行比較。同樣地,在基本區塊BB_t2.1被發現具有重複碼後,基本區塊BB_h2和基本區塊BB_t2.1被推入向量V,並被歸類為一新的群組GP1 。當該方法進一步確認基本區塊BB_t2.2具有相同的重複碼,則基本區塊BB_t2.2被推入向量V,並被歸類在新的群組GP1 。當所有留下的基本區塊比較過後,該方法選擇另一基本區塊BB_h3,以及比較該另一基本區塊BB_h3和其他留下的基本區塊。持續此選擇和比較步驟,直到所有的基本區塊都歸類為止。
參照圖1和表1之第12至20行,步驟S103是預萃取(pre-extract)步驟。在步驟S103中,該模組包含複數指令,該方法提供複數權重值,其中複數權重值對應該模組之不同指令。在一實施例中,複數權重值可從一指令權重表(S104)中選擇而得,且至少一權重值不等於一。
接著,該方法利用公式(2),計算該模組M之權重後之大小W(M)(weighted size),其中該方法計算該模組之各基本區塊之不同指令(Instrk )之數量和對應權重值之乘積,總加該些乘積值,以計算出該基本區塊之權重後之大小,以及計算該模組之該些基本區塊之權重後之大小之總和,以求得該模組之權重後之大小。
然後,該方法複製模組M,以建立另一模組M1 。該方法接著選擇模組M1 中之一群組內之基本區塊,並移除或除去該群組內之重複碼。再者,該方法使用公式(2),計算模組M1 之權重後之大小W(M1 )(weighted size),其中該方法計算模組M1 之各基本區塊之不同指令(Instrk )之數量和對應權重值之乘積,總加該些乘積值,以計算出該基本區塊之權重後之大小,以及計算該模組M1 之該些基本區塊之權重後之大小之總和,以求得該模組M1 之權重後之大小W(M1 )。
在步驟S105中,該方法比較該權重後之大小W(M)和該權重後之大小W(M1 ),以確定移除該群組內之重複碼是否產生的效益(benefit)大於成本。如果移除一群組內之重複碼產生的效益大,則該群組會被保留在向量內,而該群組和其他留下的群組會在後續的優化步驟內被萃取(extracted)。
在一實施例中,在每次成本效益分析(cost-benefit analysis)中,只有一群組之基本區塊被萃取或處理(processed)。
以例言,在圖2A及圖2B之實施例中,群組GP0 之重複碼被移除。因為權重後之大小W(M1 )是大於權重後之大小W(M),所以群組GP0 會從向量V中移除。如此,群組GP0 將不會在後續之優化程序中被萃取,顯著的效能增進可獲確保。
如圖2A和圖2B所示,在群組GP0 被處理後,群組GP1 之 基本區塊被萃取,接著計算另一個權重後之大小W(M1 ),並比較該另一個權重後之大小W(M1 )和該權重後之大小W(M)。因為該另一個權重後之大小W(M1 )小於該權重後之大小W(M1 ),所以群組GP1 會被留在向量V中。同樣地,具被處理過後之群組GP2 之模組之權重後之大小小於權重後之大小W(M),因此群組GP2 被留在向量V中。最後,萃取留下的群組GP1 和群組GP2 ,以優化模組M。
參照圖1與表1之第21至25行,在步驟S106中,在所有群組經過處理後,該方法使用一分析器(profiler)來檢查留下的基本區塊是否具有熱點。一旦熱點被確認出,該方法會移除包括熱點之基本區塊。
參照圖1和表1之第27至30行,在步驟S107和步驟S108中,該方法優化該模組M。在優化中,該方法僅萃取在向量V中留下的群組的基本區塊,以產生或輸出轉換的檔案或程式碼。
以下的內容例示產生指令權重表之方式,然而本發明不限於下述的揭示。
提供數量i之多個中介程式碼(intermediate representation;IR)。IR程式碼可包含公用程式(library)、基準測試程式(benchmark program)、基準測試程式之函數(function)、函數(function)或優化的IR程式碼。其次,以複數參數(xj )代表IR指令。複數參數(xj )可排列成如下所示的向量。
各IR程式碼被檢查,以計算出各種IR指令之數量,檢查步驟反覆(iteratively)執行直到用盡所有IR指令。之後,一組如下之方程式可獲得:
其中,i為介於1至n之指標;j為介於1至m之指標;n為整數;m為整數,而m可等同於n;a i,j 為在第i個IR程式碼中之指令j之數量;及b i 表編譯後之第i個程式碼之大小。
上述方程式組可轉換成一矩陣方程式(5),
求解公式(5),可獲得一近似向量解,而向量之各元素為對應IR指令之估計值,其中該估計值可作為一權重值。
在一實施例中,向量的解是藉由計算矩陣M之廣義反矩陣(generalized inverse matrix)或虛擬反矩陣(pseudo-inverse)來獲得。在一實施例中,向量的解是藉由計算限制最小平方法(constrained least squares method)來獲得。在一實施例中,向量的元素限制在5和35之間。
圖3為本發明一實施例之示意圖,其例示程式碼縮減裝置3。參照圖3所示,裝置3包含一計算機處理器31。一程式萃取機制(procedural extraction mechanism)311可於計算機處理器31上執行。程式萃取機制311可用於:a)決定一中介碼模組(intermediate representation module)內之基本區塊(basic blocks);b)將具有重複碼之基本區塊歸類成複數群組;c)提供對應該中介碼模組之不同指令之權重值,其中至少一權重值不等於1;d)決定該中介碼模組之權重後之大小;e)移除該中介碼模組之該些群組之一者內之重複碼,以獲得具有一經處理之群組之中介碼模組(亦稱之為「經處理中介碼模組」);f)決定該具有一經處理之群組之中介碼模組(即該「經處理中介碼模組」)之權重後之大小;以及g)比較該中介碼模組之權重後之大小和該具有一經處理之群組之中介碼模組之權重後之大小。再者,程式萃取機制311可進一步用於:h)若該具有一經處理之群組之中介碼模組之權重後之大小大於該中介碼模組之權重後之大小,則移除該經處理之群組。此外,程式萃取機制311可進一步用於:重複步驟e)至步驟h)直到所有 群組均被處理;以及移除留下的群組中之重複碼。
在一實施例中,該些權重值是根據複數個中介程式碼所決定。在一實施例中,該些權重值是根據複數中介程式碼及其大小所決定。在一實施例中,該些權重值是根據複數中介程式碼、各中介程式碼之IR指令之數量,以及各中介程式碼之大小所決定。
如圖3所示,一分析器(profiler)313可在計算機處理器31上執行,以在移除剩下的群組中之重複碼前,移除任何具有熱點之留下之基本區塊。
此外,一權重值產生機制312可在計算機處理器31上執行。該權重值產生機制312可用於:提供該數量i之多個中介程式碼;提供對應所有中介碼指令之複數參數(xj );計算各該中介程式碼之各該中介碼指令之數量(ai,j );編譯各該中介程式碼成一目的碼;決定各該目的碼之大小(bi );以及根據下列公式決定該些參數(xj )
其中,n是整數。
裝置3可包含一記憶體32。記憶體32可設置在包括處理器31之同一系統中或可在遠端和處理器31通訊。記憶體32可儲存一指令權重表,該指令權重表可根據上述之複數參數(xj )來形成。處理器31可從該指令權重表選擇所需之權重值。
在此實施方式內描述之資料結構和程式碼一般可儲存在非過渡性(non-transitory)電腦可讀之儲存媒介,該儲存媒介可為用於儲存給電腦系統使用之程式碼及/或資料任意裝置或媒介(medium)。該儲存媒介包含(但不限於)揮發性記憶體、非揮發性記憶體、磁性和光學儲存裝置(例如:磁碟機)、磁帶、光碟(compact discs)、多功能數位光碟(digital versatile discs or digital video discs)或其他可儲存程式碼及/資料之現有或在未來開發出之媒體。
本揭露之技術內容及技術特點已揭示如上,然而熟悉本項技 術之人士仍可能基於本揭露之教示及揭示而作種種不背離本揭露精神之替換及修飾。因此,本揭露之保護範圍應不限於實施範例所揭示者,而應包括各種不背離本揭露之替換及修飾,並為以下之申請專利範圍所涵蓋。
S101~S108‧‧‧流程步驟

Claims (10)

  1. 一種程式碼縮減方法,包含下列步驟:a)決定出一中介碼模組內之複數基本區塊;b)將該些基本區塊具有重複碼者歸類成複數群組;c)提供對應該中介碼模組之不同指令之權重值,其中該些權重值是根據i個中介程式碼所決定;d)決定該中介碼模組之權重後之大小為該中介碼模組之該些基本區塊之權重後之大小的總和,而該中介碼模組之各該些基本區塊之權重後之大小是各該些基本區塊中不同指令之數量與該些權重值之對應者之乘積之總和;e)移除該中介碼模組之該些群組之一者內之重複碼,以獲得一經處理中介碼模組;f)決定該經處理中介碼模組之權重後之大小為該經處理中介碼模組之複數基本區塊之權重後之大小的總和,而該經處理中介碼模組之各該些基本區塊之權重後之大小是各該些基本區塊中不同指令之數量與對應之該些權重值之乘積之總和;以及g)比較該中介碼模組權重後之大小和該經處理中介碼模組權重後之大小。
  2. 根據申請專利範圍第1項所述之程式碼縮減方法,更包含下列步驟:h)若該經處理中介碼模組之權重後之大小大於該中介碼模組之權重後之大小,則移除該經處理過後之群組。
  3. 根據申請專利範圍第2項所述之程式碼縮減方法,更包含 下列步驟:重複步驟e)至步驟h)直到所有群組均被處理;以及移除留下的群組中之重複碼。
  4. 根據申請專利範圍第3項所述之程式碼縮減方法,其中在移除剩下的群組中之重複碼之步驟前更包含一移除該經處理中介碼模組中任何具有熱點之基本區塊之步驟。
  5. 根據申請專利範圍第1項所述之程式碼縮減方法,包含下列步驟:提供該i個中介程式碼;提供對應所有中介碼指令之複數參數(xj );計算各該中介程式碼之各該中介碼指令之數量(ai,j );編譯各該中介程式碼成一目的碼;決定各該目的碼之大小(bi );以及根據下列公式決定該些複數參數(xj ) 其中,n為整數;其中,該些權重值選自該些複數參數(xj )。
  6. 一種程式碼縮減裝置,包含:一計算機處理器;以及一程式萃取機制,於該計算機處理器上執行,其中該程式萃取機制用於:a)決定一中介碼模組內之複數基本區塊;b)將該些基本區塊具有重複碼者歸類成複數群組; c)提供對應該中介碼模組之不同指令之權重值;d)決定該中介碼模組之權重後之大小;e)移除該中介碼模組之該些群組之一者內之重複碼,以獲得一經處理中介碼模組;f)決定該經處理中介碼模組之權重後之大小;以及g)比較該中介碼模組之權重後之大小和該經處理中介碼模組之權重後之大小;其中,該些權重值是根據i個中介程式碼所決定;其中,該中介碼模組之權重後之大小是該中介碼模組之該些基本區塊之權重後之大小之總和,而該中介碼模組之各該些基本區塊之權重後之大小是各該些基本區塊中不同指令之數量與該些權重值之對應者之乘積之總和;其中,該經處理中介碼模組之權重後之大小是該經處理中介碼模組之複數基本區塊之權重後之大小的總和,而該經處理中介碼模組之各該些基本區塊之權重後之大小是各該些基本區塊中不同指令之數量與對應之該些權重值之乘積之總和。
  7. 根據申請專利範圍第6項所述之程式碼縮減裝置,其中該程式萃取機制用於:h)若該經處理中介碼模組之權重後之大小大於該中介碼模組之權重後之大小,則移除該經處理過後之群組。
  8. 根據申請專利範圍第7項所述之程式碼縮減裝置,其中該程式萃取機制用於:重複步驟e)至步驟h)直到所有群組均被處理;以及移除留下的群組中之重複碼。
  9. 根據申請專利範圍第8項所述之程式碼縮減裝置,更包含一分析器,其中該分析器用於在移除剩下的群組中之重複碼前,移除該經處理中介碼模組中任何具有熱點之基本區塊。
  10. 根據申請專利範圍第6項所述之程式碼縮減裝置,更包含一權重值產生機制,其用於:提供該i個中介程式碼;提供對應所有中介碼指令之複數參數(xj );計算各該中介程式碼之各該中介碼指令之數量(ai,j );編譯各該中介程式碼成一目的碼;決定各該目的碼之大小(bi );以及根據下列公式決定該些複數參數(xj ) 其中,n為整數;其中,該些權重值選自該些複數參數(xj )。
TW102123131A 2013-05-15 2013-06-28 程式碼縮減方法與裝置 TWI501151B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/894,694 US9122494B2 (en) 2013-05-15 2013-05-15 Method and apparatus for code size reduction

Publications (2)

Publication Number Publication Date
TW201443778A TW201443778A (zh) 2014-11-16
TWI501151B true TWI501151B (zh) 2015-09-21

Family

ID=51896882

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102123131A TWI501151B (zh) 2013-05-15 2013-06-28 程式碼縮減方法與裝置

Country Status (2)

Country Link
US (1) US9122494B2 (zh)
TW (1) TWI501151B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11221835B2 (en) * 2020-02-10 2022-01-11 International Business Machines Corporation Determining when to perform and performing runtime binary slimming
CN117591242B (zh) * 2023-11-30 2024-04-05 深流微智能科技(深圳)有限公司 基于底层虚拟机的编译优化方法、系统、存储介质及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW505853B (en) * 2001-05-17 2002-10-11 Ind Tech Res Inst Method to optimize the objected directed program by using fast access device
TW200947343A (en) * 2008-02-22 2009-11-16 Qualcomm Inc System and method for instruction latency reduction in graphics processing
US20120265972A1 (en) * 2009-09-04 2012-10-18 Hendrik Tjeerd Joannes Zwartenkot Method and apparatus and record carrier
TW201246064A (en) * 2011-01-27 2012-11-16 Soft Machines Inc Multilevel conversion table cache for translating guest instructions to native instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6064819A (en) * 1993-12-08 2000-05-16 Imec Control flow and memory management optimization
US7278137B1 (en) * 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
US7603546B2 (en) * 2004-09-28 2009-10-13 Intel Corporation System, method and apparatus for dependency chain processing
US8661422B2 (en) * 2008-02-08 2014-02-25 Reservoir Labs, Inc. Methods and apparatus for local memory compaction
CA2675686C (en) * 2009-08-27 2011-10-11 Ibm Canada Limited - Ibm Canada Limitee Object collocation
US8762964B2 (en) * 2010-12-17 2014-06-24 Cisco Technology, Inc. Optimizing symbol manipulation language-based executable applications for distributed execution

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW505853B (en) * 2001-05-17 2002-10-11 Ind Tech Res Inst Method to optimize the objected directed program by using fast access device
TW200947343A (en) * 2008-02-22 2009-11-16 Qualcomm Inc System and method for instruction latency reduction in graphics processing
US20120265972A1 (en) * 2009-09-04 2012-10-18 Hendrik Tjeerd Joannes Zwartenkot Method and apparatus and record carrier
TW201246064A (en) * 2011-01-27 2012-11-16 Soft Machines Inc Multilevel conversion table cache for translating guest instructions to native instructions

Also Published As

Publication number Publication date
US9122494B2 (en) 2015-09-01
TW201443778A (zh) 2014-11-16
US20140344791A1 (en) 2014-11-20

Similar Documents

Publication Publication Date Title
CN110825363B (zh) 智能合约获取方法、装置、电子设备及存储介质
CN103186406A (zh) 用于控制流分析的方法和装置
CN112764738A (zh) 基于多视图程序特征的代码自动生成方法及系统
KR20110095049A (ko) 명령어 병렬 처리 컴퓨터를 위한 명령어 압축 장치 및 방법
CN114385181B (zh) 一种数据处理方法、装置、设备及计算机存储介质
WO2023010916A1 (zh) 软件自动修复方法、系统、电子设备及存储介质
CN1866206A (zh) 利用马尔可夫链根据uml规范生成性能测试
CN115576840B (zh) 基于机器学习的静态程序插桩检测方法及装置
CN111444513A (zh) 一种电网嵌入式终端的固件编译优化选项识别方法及装置
CN103092747B (zh) 一种控制程序的验证和测试方法及系统
CN118780351A (zh) 深度学习编译优化方法、装置、电子设备及存储介质
CN104820393A (zh) 一种基于plc梯形图矩阵编译解释方法
TWI501151B (zh) 程式碼縮減方法與裝置
US9696976B2 (en) Method for optimizing processing of character string during execution of a program, computer system and computer program for the same
CN119739375A (zh) 一种基于节点语义增强的编译器优化方法及系统
CN113222160B (zh) 一种量子态的转换方法及装置
KR102430337B1 (ko) 소스코드 재건 및 최적화 방법 및 이를 위한 장치
CN107092474A (zh) 程序开发方法、etl处理方法及装置
JP2016051367A (ja) データ解析装置、データ解析方法、および、プログラム。
CN116048626A (zh) P扩展的向量化优化方法及装置
CN112100453B (zh) 一种字符串分布统计方法、系统、设备及计算机存储介质
JP6364332B2 (ja) 仕様生成方法、仕様生成装置、及びプログラム
CN108573287A (zh) 一种基于深度神经网络的图像编解码器的训练方法
CN115964053B (zh) 一种反编译处理方法、装置、电子设备和存储介质
CN113031952A (zh) 深度学习模型的执行代码的确定方法、装置及存储介质