The present invention provides a method and system for determining an optimal placement order for basic blocks within a computer program to improve locality of reference and reduce the working set of the computer program. By reducing the working set, the computer program requires less memory than it normally would require to execute on a computer system. The optimal placement order for basic blocks within a computer program reflects the concurrency of usage for basic blocks during execution of the computer program. The method for determining an optimal placement order includes analyzing the computer program to identify all of the basic blocks, determining how many times each basic block is executed, assigning a placement order to each basic block depending upon how many times each basic block was executed, and reordering the basic blocks according to their assigned placement orders to produce an optimized computer program. The method used to identify all of the basic blocks includes disassembling known instruction addresses to identify the beginning and end of basic blocks and processing jump tables to identify more instruction addresses. Processing jump tables includes processing the first entry of every jump table before processing the second entry of any jump table. The present invention further optimizes a computer program by replacing rarely executed instructions with other instructions that require a smaller amount of storage space.

La presente invenzione fornisce un metodo e un sistema per la determinazione dell'ordine ottimale di disposizione per i blocchi di base nell'ambito di un programma destinato all'elaboratore per migliorare la località di riferimento e per ridurre l'insieme di funzionamento del programma destinato all'elaboratore. Riducendo l'insieme di funzionamento, il programma destinato all'elaboratore richiede meno memoria che richiederebbe normalmente per eseguire su un sistema di elaborazione. L'ordine ottimale di disposizione per i blocchi di base nell'ambito di un programma destinato all'elaboratore riflette la concorrenza di uso per i blocchi di base durante l'esecuzione del programma destinato all'elaboratore. Il metodo per la determinazione dell'ordine ottimale di disposizione include analizzare il programma destinato all'elaboratore per identificare tutti i blocchi di base, determinando come molte volte ogni blocco di base è eseguito, assegnante un ordine di disposizione ad ogni blocco di base dipendendo da come molte volte ogni blocco di base è stato eseguito e riordinando i blocchi di base che conciliano ai loro ordini assegnati di disposizione ai prodotti un programma destinato all'elaboratore ottimizzato. Il metodo impiegato per identificare tutti i blocchi di base include gli indirizzi di istruzione conosciuti di smontaggio per identificare l'inizio e la conclusione dei blocchi di base e di elaborazione delle tabelle di salto identificare più indirizzi di istruzione. L'elaborazione delle tabelle di salto include l'elaborazione della prima entrata di ogni tabella di salto prima dell'elaborazione della seconda entrata di tutta la tabella di salto. La presente invenzione ulteriore ottimizza un programma destinato all'elaboratore sostituendo le istruzioni raramente eseguite con altre istruzioni che richiedono una più piccola quantità di spazio di immagazzinaggio.

 
Web www.patentalert.com

< (none)

< State machine bit group selection apparatus for debugging a digital system

> Device for fixing the sacral bone to adjacent vertebrae during osteosynthesis of the backbone

> (none)

~ 00015