7735074

Code Outlining Without Trampolines

PublishedJune 8, 2010
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
15 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of outlining code comprising: identifying, by a code outliner running on a computer system, cold blocks of code; identifying, by the code outliner running on the computer system, branch instructions that connect a hot block of code to a cold block of code; converting, by the code outliner running on the computer system, the branch instructions that connect the hot block of code to the cold block of code from a short branch distance to other available branch instructions that have longer branch distance spans relative to the short branch distance to thereby form a converted branch instruction; performing, by a linker running on the computer system at link time, an optimization including placing all cold blocks to be outlined within a branch distance of the converted branch instruction.

2

2. The method of claim 1 further comprising: identifying cold blocks of code via heuristics and profile data acquired from a training run of the code.

3

3. The method of claim 1 further comprising: maintaining a window for at least a first function within the code, the window representing a maximum distance that a block can be outlined; and placing hot blocks of code and cold blocks of code located within the window.

4

4. The method of claim 3 wherein: a plurality of distinct hot blocks of code and cold blocks of code are present within the first function; and moving the window from the first function to a second function after the plurality of distinct hot blocks of code and cold blocks of code of the first function have been placed.

5

5. The method of claim 3 wherein: execution control is transferred from one function to another within the window.

6

6. An apparatus of outlining code comprising: means for identifying cold blocks of code; means for identifying branch instructions that connect a hot block of code to a cold block of code; means for converting the branch instructions that connect the hot block of code to the cold block of code from a short branch distance to other available branch instructions that have longer branch distance spans relative to the short branch distance to thereby form a converted branch instruction; means for performing an optimization at link time, the optimization including placing all cold blocks to be outlined within a branch distance of the converted branch instruction.

7

7. The apparatus of claim 6 further comprising: means for identifying cold blocks of code via heuristics and profile data acquired from a training run of the code.

8

8. The apparatus of claim 6 further comprising: means for maintaining a window for at least a first function within the code, the window representing a maximum distance that a block can be outlined; and means for placing hot blocks of code and cold blocks of code located within the window.

9

9. The apparatus of claim 8 wherein: a plurality of distinct hot blocks of code and cold blocks of code are present within the first function; and further comprising means for moving the window from the first function to a second function after the plurality of distinct hot blocks of code and cold blocks of code of the first function have been placed.

10

10. The apparatus of claim 9 wherein: execution control is transferred from one function to another within the window.

11

11. A code outliner comprising: a cold block module running on a computer system, the cold block module identifying cold blocks of code; a control transfer identification module running on the computer system, the control transfer identification module identifying branch instructions that connect a hot block of code to a cold block of code; a conversion module running on the computer system, the conversion module converting the branch instructions that connect the hot block of code to the cold block of code from a short branch distance to other available branch instructions that have longer branch distance spans relative to the short branch distance to thereby form a converted branch instruction; and, an optimizer module running on the computer system, the optimizer module placing all cold blocks to be outlined within a branch distance of the converted branch instruction.

12

12. The code outliner of claim 11 wherein: cold blocks of code are identified via heuristics and profile data acquired from a training run of the code.

13

13. The code outliner of claim 11 further comprising: a window module, the window module maintaining a window for at least a first function within the code, the window representing a maximum distance that a block can be outlined; and wherein hot blocks of code and cold blocks of code are placed located within the window.

14

14. The code outline of claim 13 wherein: a plurality of distinct hot blocks of code and cold blocks of code are present within the first function; and the window module moves the window from the first function to a second function after the plurality of distinct hot blocks of code and cold blocks of code of the first function have been placed.

15

15. The code outline of claim 13 wherein: execution control is transferred from one function to another within the window.

Patent Metadata

Filing Date

Unknown

Publication Date

June 8, 2010

Inventors

Sheldon Lobo
Fu-Hwa Wang

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “CODE OUTLINING WITHOUT TRAMPOLINES” (7735074). https://patentable.app/patents/7735074

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.