A method and apparatus for transforming a source executable code optimized for a source processor into a target executable code optimized for execution on a target processor is provided. Initially, the source executable is converted into a functionally equivalent source executable capable of execution on the target processor. Next, execution performance information for each basic block of code in the functionally equivalent source executable code is collected. Similarly, execution performance information for each basic block of code in an initial target executable code is also collected. As a next step, an optimization metric is generated for each basic block of code within the functionally equivalent source executable code and for each basic block of code within the initial target executable code. These optimization metrics are used to compare basic blocks in the functionally equivalent source executable code with basic block of code within the initial target executable code. To perform this comparison, the optimization metric for each basic block of code within the initial target executable code is associated with the corresponding optimization metric associated with each basic block of code within the functionally equivalent source executable code. Next, based upon the corresponding optimization metric for each basic block, it is determined which basic blocks of code in the initial target executable code and the functionally equivalent source executable code have higher execution performance. Next, a target executable code is generated using a combination of basic blocks of code from the initial target executable code and the functionally equivalent source executable code which exhibit higher execution performance. Then, each basic block in the target executable code is optimized in a predetermined order typically based upon the elapsed execution time.

Μια μέθοδος και μια συσκευή για έναν εκτελέσιμο κώδικα πηγής που βελτιστοποιείται για έναν επεξεργαστή πηγής σε έναν εκτελέσιμο κώδικα στόχων που βελτιστοποιείται για την εκτέλεση σε έναν επεξεργαστή στόχων παρέχονται. Αρχικά, η πηγή εκτελέσιμη μετατρέπεται λειτουργικά ισοδύναμο εκτελέσιμο σε έναν ικανό πηγής της εκτέλεσης στον επεξεργαστή στόχων. Έπειτα, οι πληροφορίες εκτέλεσης εφαρμογής για κάθε βασικό φραγμό του κώδικα στο λειτουργικά ισοδύναμο εκτελέσιμο κώδικα πηγής συλλέγονται. Ομοίως, οι πληροφορίες εκτέλεσης εφαρμογής για κάθε βασικό φραγμό του κώδικα σε έναν αρχικό εκτελέσιμο κώδικα στόχων συλλέγονται επίσης. Σαν επόμενο βήμα, μια βελτιστοποίηση μετρική παράγεται για κάθε βασικό φραγμό του κώδικα μέσα στο λειτουργικά ισοδύναμο εκτελέσιμο κώδικα πηγής και για κάθε βασικό φραγμό του κώδικα μέσα στον αρχικό εκτελέσιμο κώδικα στόχων. Αυτές οι μετρικές βελτιστοποίησης χρησιμοποιούνται για να συγκρίνουν τους βασικούς φραγμούς στο λειτουργικά ισοδύναμο εκτελέσιμο κώδικα πηγής με το βασικό φραγμό του κώδικα μέσα στον αρχικό εκτελέσιμο κώδικα στόχων. Για να εκτελέσει αυτήν την σύγκριση, η βελτιστοποίηση μετρική για κάθε βασικό φραγμό του κώδικα μέσα στον αρχικό εκτελέσιμο κώδικα στόχων συνδέεται με την αντίστοιχη βελτιστοποίηση μετρική που συνδέει με κάθε βασικό φραγμό του κώδικα μέσα στο λειτουργικά ισοδύναμο εκτελέσιμο κώδικα πηγής. Έπειτα, βασισμένος στην αντίστοιχη βελτιστοποίηση μετρική για κάθε βασικό φραγμό, καθορίζεται ποιοι βασικοί φραγμοί του κώδικα στον αρχικό εκτελέσιμο κώδικα στόχων και του λειτουργικά ισοδύναμου εκτελέσιμου κώδικα πηγής έχουν την υψηλότερη εκτέλεση εφαρμογής. Έπειτα, ένας εκτελέσιμος κώδικας στόχων παράγεται χρησιμοποιώντας έναν συνδυασμό βασικών φραγμών του κώδικα από τον αρχικό εκτελέσιμο κώδικα στόχων και του λειτουργικά ισοδύναμου εκτελέσιμου κώδικα πηγής που εκθέτουν την υψηλότερη εκτέλεση εφαρμογής. Κατόπιν, κάθε βασικός φραγμός στον εκτελέσιμο κώδικα στόχων βελτιστοποιείται σε μια προκαθορισμένη διαταγή που βασίζεται χαρακτηριστικά στην παρερχόμενη περίοδο εκτέλεσης.

 
Web www.patentalert.com

< (none)

< Method and apparatus for dynamically optimizing an executable computer program using input data

> Method and apparatus for explicit rate flow control in ATM networks

> (none)

~ 00002