TWI696948B - 編譯器最佳化方法 - Google Patents
編譯器最佳化方法 Download PDFInfo
- Publication number
- TWI696948B TWI696948B TW107118399A TW107118399A TWI696948B TW I696948 B TWI696948 B TW I696948B TW 107118399 A TW107118399 A TW 107118399A TW 107118399 A TW107118399 A TW 107118399A TW I696948 B TWI696948 B TW I696948B
- Authority
- TW
- Taiwan
- Prior art keywords
- compiler
- information
- group data
- candidate
- elite
- Prior art date
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
本發明是有關於一種編譯(compilation)方法,特別是指一種編譯器最佳化方法。
編譯器(compiler)是一種用來將一種原始碼的原始碼轉化成另一種原始碼的電腦程式。編譯器主要的目的是將便於人編寫、閱讀、維護的高階電腦語言(如Pascal、C、C++、C#、Java等)所寫作的原始碼程式,翻譯為電腦能解讀、執行的低階機器語言的程式。編譯器的好壞主要在於編譯器最佳化(Optimization)的效果是否良好,如若最佳化效果很差,那麼由該編譯器編譯出的用機器語言編寫的程式對系統資源的開銷是相當大的。
在編譯器最佳化的過程中,相關於編譯器的多個編譯器選項扮演著重要的腳色,每一編譯器選項可處於多種狀態中之其中一種狀態,以致該等編譯器選項對應有非常多種可能之組合,而每一組合對應一筆編譯器資訊,找出好的編譯器資訊對於編譯器最佳化是很重要的。
然而,現有找出好的編譯器資訊的方法,要不是耗時非常長,就是找出來的編譯器資訊不夠好,使得編譯出的程式的效能不佳。
因此,本發明的目的,即在提供一種省時又能提高編譯出的程式的效能的編譯器最佳化方法。
於是,本發明編譯器最佳化方法,由一系統執行,該系統儲存有N個相關於一編譯器的編譯器選項,及一原始碼,其中每一編譯器選項opti可處於Si種狀態中之其中一種狀態,該等N個編譯器選項對應有M個所有可能之組合,每一組合對應一筆編譯器資訊,Si≧2,N≧1,,編譯器最佳化方法包含一步驟(A)、一步驟(B)、一步驟(C)、一步驟(D)、一步驟(E)、一步驟(F)、一步驟(G)、一步驟(H)、一步驟(I)、一步驟(J),及一步驟(K)。
該步驟(A)中,該系統自該等M筆編譯器資訊中選取p筆編譯器資訊,以產生一包括該等p筆編譯器資訊的菁英群資料,p≧1。
該步驟(B)中,該系統自該等M筆編譯器資訊中選取q筆編譯器資訊,以產生一包括該等q筆編譯器資訊的候選群資料,q≧1,該候選群資料的該等q筆編譯器資訊不同於該菁英群資料的該
等p筆編譯器資訊。
該步驟(C)中,該系統對於該菁英群資料的該等p筆編譯器資訊之每一者,根據該原始碼及該菁英群資料的該編譯器資訊,獲得對應該編譯器資訊,且相關於該編譯器在該編譯器資訊的菁英效能分數。
該步驟(D)中,該系統根據該菁英群資料及該候選群資料,獲得一包括q個分別對應該候選群資料的該等q筆編譯器資訊的適應分數的適應資料。
該步驟(E)中,該系統根據該適應資料,自該候選群資料中的該等q筆編譯器資訊選取該候選群資料中未被選取過且在該適應資料中對應有最高的適應分數的候選編譯器資訊。
該步驟(F)中,該系統根據該原始碼及該候選編譯器資訊,獲得對應該候選編譯器資訊,且相關於該編譯器在該候選編譯器資訊的候選效能分數。
該步驟(G)中,該系統判定該候選效能分數是否大於該等p筆編譯器資訊所對應之菁英效能分數之最低者。
該步驟(H)中,當該系統判定出該候選效能分數大於該等p個菁英效能分數之最低者時,該系統在該菁英群資料中刪除該最低者對應的編譯器資訊且加入該候選編譯器資訊,以更新該菁英群資料。當候選效能分數不大於該等p個菁英效能分數之最低者時,
執行該步驟(I)。
該步驟(I)中,該系統判定該候選群資料是否還包括有未被選取過的編譯器資訊。
該步驟(J)中,當該系統判定出該候選群資料還包括有未被選取過的編譯器資訊時,該系統根據該菁英群資料及該候選群資料,獲得分別對應該候選群資料的未被選取過的編譯器資訊的適應分數,以更新該適應資料,並重複步驟(E)。
該步驟(K)中,當該系統判定出該候選群資料不包括有未被選取的過編譯器資訊時,該系統自該等M筆編譯器資訊中的未被選取過的編譯器資訊選取q筆編譯器資訊,以重新作為該候選群資料,並重複步驟(D)。
本發明之功效在於:藉由產生該菁英群資料及該候選群資料,再根據該菁英群資料及該候選群資料,獲得該適應資料,並根據該適應資料決定該候選群資料選取編譯器資訊的順序,以提高找出最佳解的機率,以減少找出最佳編譯器資訊的所需嘗試次數,達到省時並提高編譯出的程式效能的效果。
1:系統
11:儲存單元
12:處理單元
S201~S218:步驟
S300~S318:步驟
本發明的其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:
圖1是一方塊圖,說明用以實施本發明編譯器優化最佳化方法的一系統;圖2是一流程圖,說明本發明編譯器最佳化方法的一第一實施例;及圖3是一流程圖,說明本發明編譯器優化最佳化方法的一第二實施例。
在本發明被詳細描述前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
參閱圖1,本發明編譯器最佳化方法由一系統1實施,該系統1包含一儲存單元11,及一電連接該儲存單元11的處理單元12,該儲存單元11儲存有N個相關於一編譯器的編譯器選項(Compiler Options)、一基準效能分數(Performance Score),及一原始碼(Source code),其中每一編譯器選項opti可處於Si種狀態中之其中一種狀態,i {1,2,...,N},該等N個編譯器選項對應有M個所有可能之組合,每一組合對應一筆編譯器資訊,Si≧2,N≧1,。
值得注意的是,在本實施例中,該基準效能分數例如為套用內建編譯器資訊(例如GNU編譯器套裝的O3)編譯出來的執
行程式的效能分數,且每一編譯器選項opti例如皆可處於一選取狀態及一非選取狀態之其中一種狀態,即Si=2,該等N個編譯器選項對應有2N個所有可能之組合,該裝置1例如為一桌上型電腦,在其他實施方式中,每一編譯器選項亦可處於多種不同的狀態,例如N=5,S1=2,S2=3,S3=5,S4=8,S5=9,不以此為限。
舉例來說,假設N=3,即有3個編譯器選項opti,i {1,2,3},例如一第一編譯器選項opt1、一第二編譯器選項opt2,及一第三編譯器選項opt3,則會有8個組合,而8筆分別對應於該等3個編譯器選項之所有可能的8個組合的編譯器資訊如下表1所示。
參閱圖1、2,本發明編譯器最佳化方法之一第一實施例包含步驟S201~S218,以下詳述圖2所示的該第一實施例的各個步驟。
在步驟S201中,該處理單元12自該等2N筆編譯器資訊中選取p筆編譯器資訊,以產生一包括該等p筆編譯器資訊的菁英群資
料,p≧1。
在步驟S202中,該處理單元12自該等2N筆編譯器資訊中選取q筆編譯器資訊,以產生一包括該等q筆編譯器資訊的候選群資料,q≧1,該候選群資料的該等q筆編譯器資訊不同於該菁英群資料的該等p筆編譯器資訊。
在步驟S203中,該處理單元12對於該菁英群資料的該等p筆編譯器資訊之每一者,在該編譯器的編譯器選項處於該編譯器資訊所對應的狀態下,將該原始碼編譯成對應該編譯器資訊的菁英執行程式,亦即該處理單元12分別根據該菁英群資料的該等p筆編譯器資訊,將該原始碼編譯成p個菁英執行程式。
在步驟S204中,該處理單元12對於該菁英群資料的該等p筆編譯器資訊之每一者,根據對應該編譯器資訊的菁英執行程式,獲得對應該編譯器資訊的菁英效能分數,亦即該處理單元12分別根據該等p個菁英執行程式,獲得p個菁英效能分數。
在步驟S205中,該處理單元12對於每一編譯器選項,根據該菁英群資料,獲得該編譯器選項在該菁英群資料之該等p筆編譯器資訊中處於該選取狀態及該非選取狀態之其中一者的機率值,即該處理單元12會獲得該等N個編譯器選項各自被選取之N個機率值。
舉例來說,假設N=5,q=20,即有5個編譯器選項,例
如該第一編譯器選項opt1、該第二編譯器選項opt2、該第三編譯器選項opt3、該第四編譯器選項opt4,及該第五編譯器選項opt5,且該菁英群資料中有20筆編譯器資訊,其中,20筆中有3筆的編譯器資訊的該第一編譯器選項處於該選取狀態,則該第一編譯器選項處於該選取狀態的機率值P(opt1=選取狀態)=3/20,該第一編譯器選項處於該非選取狀態的機率值P(opt1=非選取狀態)=1-P(opt1=選取狀態)=1-3/20。
在步驟S206中,該處理單元12根據每一編譯器選項的機率值及該候選群資料的該等q筆編譯器資訊,獲得一包括q個分別對應該候選群資料的該等q筆編譯器資訊的適應分數(Fitness Score)的適應資料。
值得注意的是,該適應資料之該候選群資料的編譯器資訊X k 的適應分數的模型FF(.)以下式表示,k={1,2,…,q}:
其中,opt i 為第i個編譯器選項,y ki 為第k筆編譯器資訊的第i個編譯器選項的狀態,P(opt i =y ki )為在該菁英群資料之該等p筆編譯器資訊中第i個編譯器選項處於y ki 之機率。
在步驟S207中,該處理單元12根據該適應資料,自該候選群資料中的該等q筆編譯器資訊選取該候選群資料中未被選取過
且在該適應資料中對應有最高的適應分數的候選編譯器資訊。
在步驟S208中,該處理單元12在該編譯器的編譯器選項處於該候選編譯器資訊所對應的狀態下,將該原始碼編譯成對應該候選編譯器資訊的候選執行程式,即該處理單元12根據該候選編譯器資訊,將該原始碼編譯成候選執行程式。
在步驟S209中,該處理單元12根據對應該候選編譯器資訊的候選執行程式,獲得對應該候選編譯器資訊的候選效能分數。
在步驟S210中,該處理單元12判定是否符合一預設條件,該預設條件為步驟S209所獲得的的該候選效能分數與該儲存單元11儲存的該基準效能分數的相差百分比大於等於一預定值,即(該候選效能分數-該基準效能分數)/該基準效能分數×100%大於等於該預定值。當該處理單元12判定出符合該預設條件時,表示已找出提高該編譯出的程式效能到該預定值的編譯器資訊,流程進行步驟S211;而當該處理單元12判定出不符合該預設條件時,則流程進行步驟S212。
在步驟S211中,該處理單元12儲存該候選編譯器資訊。
在步驟S212中,該處理單元12判定該候選效能分數是否大於該等p筆編譯器資訊所對應之菁英效能分數之最低者。當該處理單元12判定出該候選效能分數大於該等p筆編譯器資訊所對應之菁英效能分數之最低者時,流程進行步驟S213;而當該處理單元
12判定出該候選效能分數不大於該等p筆編譯器資訊所對應之菁英效能分數之最低者時,則流程進行步驟S218。
在步驟S213中,該處理單元12在該菁英群資料中刪除該最低者對應的編譯器資訊且加入該候選編譯器資訊,以更新該菁英群資料。
在步驟S214中,該處理單元12判定該候選群資料是否還包括有未被選取過的編譯器資訊。當該處理單元12判定出該候選群資料還包括有未被選取過的編譯器資訊時,流程進行步驟S215;而當該處理單元12判定出該候選群資料不包括有未被選取過的編譯器資訊時,則流程進行步驟S217。
在步驟S215中,該處理單元12對於每一編譯器選項,根據該菁英群資料,獲得該編譯器選項在該菁英群資料之該等p筆編譯器資訊中處於該選取狀態及該非選取狀態之其中一者的機率值。
在步驟S216中,該處理單元12根據每一編譯器選項的機率值及該候選群資料之未被選取過的編譯器資訊,獲得分別對應該候選群資料之未被選取過的編譯器資訊的適應分數,以更新該適應資料,該處理單元12並重複執行步驟S207。
值得注意的是,該適應資料之該適應資料之該候選群資料之未被選取過的編譯器資訊的適應分數的模型FF(.)以下式表示,m={1,2,…,n},1≦n≦q:
其中,opt i 為第i個編譯器選項,y mi 為第m筆未被選取過的編譯器資訊的第i個編譯器選項的狀態,P(opt i =y mi )為該菁英群資料之該等p筆編譯器資訊中第i個編譯器選項處於y mi 之機率。
在步驟S217中,該處理單元12自該等2N筆編譯器資訊中的未被選取過的編譯器資訊選取q筆編譯器資訊,以重新作為該候選群資料,該處理單元12並重複執行步驟S205。
在步驟S212後的步驟S218中,該處理單元12判定該候選群資料是否還包括有未被選取過的編譯器資訊。當該處理單元12判定出該候選群資料還包括有未被選取過的編譯器資訊時,該處理單元12重複執行步驟S207;而當該處理單元12判定出該候選群資料不包括有未被選取過的編譯器資訊時,則流程進行步驟S217。
參閱圖1、3,本發明編譯器最佳化方法的一第二實施例實質上是該第一實施例的變化,並包含步驟S300~S317,其中步驟S303~S309、S312~S318分別相似於該第一實施例的步驟S203~S209、S212~S218(如圖2)。
以下說明該第二實施例之異於該第一實施例之處。
在步驟S300中,該處理單元12自該等2N筆編譯器資訊中選取p+q筆編譯器資訊,以產生一包括該等p+q筆編譯器資訊的選
取資料,p≧1,q≧1。
在步驟S301中,該處理單元12自該選取資料的該等p+q筆編譯器資訊中選取p筆編譯器資訊,以產生一包括該等p筆編譯器資訊的菁英群資料。
在步驟S302中,該處理單元12自該選取資料的該等p+q筆編譯器資訊中選取q筆不同於該等p筆編譯器資訊的編譯器資訊,以產生一包括該等q筆編譯器資訊的候選群資料。
值得注意的是,在本實施例中步驟S301是在步驟S302之前,在其他實施方式中,步驟S302可在步驟S301之前,或同時進行。
在步驟S310中,該處理單元12判定是否符合一預設條件,該預設條件為當前時間大於等於一預定時間,該預定時間例如為步驟S300開始時間加上所欲執行時間,舉例來說,開始時間為14:00,所欲執行時間為30分鐘,當前時間大於等於14:30時,則符合預設條件。當該處理單元12判定出符合該預設條件時,流程進行步驟S310;而當該處理單元12判定出不符合該預設條件時,則流程進行步驟S311。
要在特別注意的是,在其他實施方式中,該預設條件亦可為步驟S310的執行次數等於一預定值。
在步驟S311中,該處理單元12儲存該菁英群資料的該等
p筆菁英效能分數與該候選效能分數之最高者所對應的編譯器資訊。
綜上所述,本發明編譯器最佳化方法,藉由該處理單元12產生該菁英群資料及該候選群資料,再根據該菁英群資料及該候選群資料,獲得該適應資料,並根據該適應資料決定該候選群資料選取編譯器資訊的順序,以提高找出最佳解的機率,以減少找出最佳編譯器資訊的所需嘗試次數,達到省時並提高編譯出的程式效能的效果,故確實能達成本發明的目的。
惟以上所述者,僅為本發明的實施例而已,當不能以此限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
201~218‧‧‧步驟
Claims (9)
- 一種編譯器最佳化方法,由一系統執行,該系統儲存有N個相關於一編譯器的編譯器選項,及一原始碼,其中,每一編譯器選項opti可處於Si種狀態中之其中一種狀態,i {1,2,...,N},該等N個編譯器選項對應有M個所有可能之組合,每一組合對應一筆編譯器資訊,Si≧2,N≧1,,編譯器最佳化方法包含以下步驟:(A)自該等M筆編譯器資訊中選取p筆編譯器資訊,以產生一包括該等p筆編譯器資訊的菁英群資料,p≧1;(B)自該等M筆編譯器資訊中選取q筆編譯器資訊,以產生一包括該等q筆編譯器資訊的候選群資料,q≧1,該候選群資料的該等q筆編譯器資訊不同於該菁英群資料的該等p筆編譯器資訊;(C)對於該菁英群資料的該等p筆編譯器資訊之每一者,根據該原始碼及該菁英群資料的該編譯器資訊,獲得對應該編譯器資訊,且相關於該編譯器在該編譯器資訊的菁英效能分數,其中步驟(C)包括以下子步驟:(C-1)對於該菁英群資料的該等p筆編譯器資訊之每一者,在該編譯器的編譯器選項處於該編譯器資訊所對應的狀態下,將該原始碼編譯成對應該編譯器資訊的菁英執行程式,及(C-2)對於該菁英群資料的該等p筆編譯器資訊之每一者,根據對應該編譯器資訊的菁英執行程式,獲得對應 該編譯器資訊的菁英效能分數;(D)根據該菁英群資料及該候選群資料,獲得一包括q個分別對應該候選群資料的該等q筆編譯器資訊的適應分數的適應資料;(E)根據該適應資料,自該候選群資料中的該等q筆編譯器資訊選取該候選群資料中未被選取過且在該適應資料中對應有最高的適應分數的候選編譯器資訊;(F)根據該原始碼及該候選編譯器資訊,獲得對應該候選編譯器資訊,且相關於該編譯器在該候選編譯器資訊的候選效能分數,其中步驟(F)包括以下子步驟:(F-1)在該編譯器的編譯器選項處於該候選編譯器資訊所對應的狀態下,將該原始碼編譯成對應該候選編譯器資訊的候選執行程式,及(F-2)根據對應該候選編譯器資訊的候選執行程式,獲得對應該候選編譯器資訊的候選效能分數;(G)判定該候選效能分數是否大於該菁英群資料的該等p筆編譯器資訊所對應之菁英效能分數之最低者;(H)當判定出該候選效能分數大於該菁英群資料的該等p個菁英效能分數之最低者時,在該菁英群資料中刪除該最低者對應的編譯器資訊且加入該候選編譯器資訊,以更新該菁英群資料;(I)判定該候選群資料是否還包括有未被選取過的編譯器資訊;(J)當判定出該候選群資料還包括有未被選取過的編 譯器資訊時,根據該菁英群資料及該候選群資料,獲得分別對應該候選群資料的未被選取過的編譯器資訊的適應分數,以更新該適應資料,並重複步驟(E);及(K)當判定出該候選群資料不包括有未被選取過的編譯器資訊時,自該等M筆編譯器資訊中的未被選取過的編譯器資訊選取q筆編譯器資訊,以重新作為該候選群資料,並重複步驟(D)。
- 如請求項1所述的編譯器最佳化方法,每一編譯器選項可處於一選取狀態及一非選取狀態之其中一種狀態,其中,步驟(D)包括以下子步驟:(D-1)對於每一編譯器選項,根據該菁英群資料,獲得該編譯器選項在該菁英群資料之該等p筆編譯器資訊中處於該選取狀態及該非選取狀態之其中一者的機率值;及(D-2)根據每一編譯器選項的機率值及該候選群資料的該等q筆編譯器資訊,獲得該適應資料;步驟(J)包括以下子步驟:(J-1)對於每一編譯器選項,根據該菁英群資料,獲得該編譯器選項在該菁英群資料之該等p筆編譯器資訊中處於該選取狀態及該非選取狀態之其中一者的機率值;及(J-2)根據每一編譯器選項的機率值及該候選群資料之未被選取過的編譯器資訊,獲得分別對應該候選群資料之未被選取過的編譯器資訊的適應分數,以更新該適應資料。
- 如請求項1所述的編譯器最佳化方法,在步驟(F)後還包含以下步驟:(L)判定是否符合一預設條件,當判定出不符合該預設條件時,進行步驟(G)。
- 如請求項5所述的編譯器最佳化方法,其中,在步驟(L)中該預設條件為當前時間大於等於一預定時間。
- 如請求項5所述的編譯器最佳化方法,其中,在步驟(L)中該預設條件為步驟(L)的執行次數等於一預定值。
- 如請求項5所述的編譯器最佳化方法,該系統還儲存有一基準效能分數,其中,在步驟(L)中該預設條件為該候選效能分數與該基準效能分數的相差百分比大於等於一預定值。
- 如請求項1所述的編譯器最佳化方法,在步驟(G)後還包含以下步驟:(M)當判定出該候選效能分數不大於該等p筆菁英效能資訊的菁英效能分數之最低者時,判定該候選群資料是否還包括有未被選取過的編譯器資訊;(N)當判定出該候選效能分數不大於該等p筆菁英效能資訊的菁英效能分數之最低者,且判定出該候選群資料還包括有未被選取過的編譯器資訊時,重複步驟(E);及(O)當判定出該候選效能分數不大於該等p筆菁英效能資訊的菁英效能分數之最低者,且判定出該候選群資料不包括有未被選取過的編譯器資訊時,自該等M筆編譯器資訊中的未被選取過的編譯器資訊選取q筆編譯器資訊,以重新作為該候選群資料,並重複步驟(D)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107118399A TWI696948B (zh) | 2018-05-30 | 2018-05-30 | 編譯器最佳化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107118399A TWI696948B (zh) | 2018-05-30 | 2018-05-30 | 編譯器最佳化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202004491A TW202004491A (zh) | 2020-01-16 |
TWI696948B true TWI696948B (zh) | 2020-06-21 |
Family
ID=69942214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107118399A TWI696948B (zh) | 2018-05-30 | 2018-05-30 | 編譯器最佳化方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI696948B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW525091B (en) * | 2000-10-05 | 2003-03-21 | Koninkl Philips Electronics Nv | Retargetable compiling system and method |
US20080115120A1 (en) * | 2006-11-14 | 2008-05-15 | Red Hat, Inc. | Function-level compiler processing optimization |
CN102622260A (zh) * | 2012-02-27 | 2012-08-01 | 中国科学院计算技术研究所 | 一种在线迭代编译的优化方法和优化系统 |
US20130139137A1 (en) * | 2011-11-29 | 2013-05-30 | Futurewei Technologies, Inc. | Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies |
TW201405424A (zh) * | 2012-07-18 | 2014-02-01 | Mstar Semiconductor Inc | 編譯系統以及編譯方法 |
-
2018
- 2018-05-30 TW TW107118399A patent/TWI696948B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW525091B (en) * | 2000-10-05 | 2003-03-21 | Koninkl Philips Electronics Nv | Retargetable compiling system and method |
US20080115120A1 (en) * | 2006-11-14 | 2008-05-15 | Red Hat, Inc. | Function-level compiler processing optimization |
US20130139137A1 (en) * | 2011-11-29 | 2013-05-30 | Futurewei Technologies, Inc. | Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies |
CN102622260A (zh) * | 2012-02-27 | 2012-08-01 | 中国科学院计算技术研究所 | 一种在线迭代编译的优化方法和优化系统 |
TW201405424A (zh) * | 2012-07-18 | 2014-02-01 | Mstar Semiconductor Inc | 編譯系統以及編譯方法 |
TWI463404B (zh) * | 2012-07-18 | 2014-12-01 | Mstar Semiconductor Inc | 編譯系統以及編譯方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202004491A (zh) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9298453B2 (en) | Source code analytics platform using program analysis and information retrieval | |
US9158538B2 (en) | User-extensible rule-based source code modification | |
Gottschalk et al. | Removing energy code smells with reengineering services | |
US9235433B2 (en) | Speculative object representation | |
US9081586B2 (en) | Systems and methods for customizing optimization/transformation/ processing strategies | |
US11579856B2 (en) | Multi-chip compatible compiling method and device | |
US7917899B2 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
CN106471476A (zh) | 用于对经优化代码的编辑并继续以及增强的经优化调试的技术 | |
JP2019523942A (ja) | Cpu利用およびコードリファクタリングのためのクエリオプティマイザー | |
JP7409197B2 (ja) | ソフトウェアプログラムにおける静的分析違反の修復パターンの精緻化 | |
CA2762563A1 (en) | Data prefetching and coalescing for partitioned global address space languages | |
TWI696948B (zh) | 編譯器最佳化方法 | |
US9836289B2 (en) | Executable code generation program and executable code generation device | |
JP2017204080A (ja) | 情報処理装置、コンパイル方法及びコンパイラプログラム | |
JP5815856B2 (ja) | スクリプト依存関係をインライン化するためのシステムおよび方法 | |
US10949209B2 (en) | Techniques for scheduling instructions in compiling source code | |
US8516463B2 (en) | Mechanism for allocating statement frontier annotations to source code statements | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
US10732946B2 (en) | Simulation-based code duplication | |
JP2008243019A (ja) | ソースコード変換装置及びソースコード変換方法 | |
JP5932707B2 (ja) | 計算機、プログラム及びデータ生成方法 | |
CN112001494A (zh) | 一种实现nGraph框架支持FPGA后端设备的方法 | |
JP2019109687A (ja) | プログラミング言語変換支援装置、プログラミング言語変換支援方法、およびプログラム | |
CN105700854B (zh) | 运行应用任务的方法及装置 | |
JP6993574B2 (ja) | 関連判定プログラム、関連判定装置及び関連判定方法 |