← Back to Patent Explorer
US5713010A Expired / Lapsed US ⏱️ 0.0 years remaining

Source line tracking in optimized code

Assignee: Hewlett Packard Development Co LP
•
Filing: 1995-02-10
•
Granted: 1998-01-27
•
Expires: 2015-02-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Source code is compiled into intermediate code which includes object code instructions. Logical line markers are inserted within the intermediate code. Each logical line marker identifies a source code line from which originated object code instructions immediately adjacent to the logical line marker. Each logical line marker is associated with a specific basic block. Also, actual line markers are inserted so that an actual line marker is associated with every object code instruction. The actual line marker identifies a source code line from which originated the object code instruction associated with the actual line marker. The intermediate code is optimized to produce the optimized object code. During optimization, object code instructions are freely moved relative to the logical line markers; however, the logical line markers are not moved relative to each other. When an object code instruction is moved, the actual line marker associated with the moved object code instruction is also moved.

Inventors

  • 👤 William B. Buzbee
  • 👤 Michelle A. Ruscetta

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 15:21
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3636; G06F11/3628; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/443; G06F8/445

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 158 words
A method for compiling source code into optimized object code comprising the steps of: (a) compiling the source code into object code instructions; (b) inserting within each object code instructions, logical line markers, each logical line marker identifying a source code line from which originated associated object code instructions which are immediately adjacent to the logical line marker; (c) inserting actual line markers so that an actual line marker is associated with every object code instruction, the actual line marker identifying a source code line from which originated the object code instruction associated with the actual line marker; and, (d) optimizing the object code instructions to produce the optimized object code, including the following substeps (d.1) moving object code instructions relative to the logical line markers but not moving the logical line markers relative to each other, and (d.2) when an object code instruction is moved, moving the actual line marker associated with the moved object code instruction.
Claim 2
Independent Claim 158 words
A method for compiling source code into optimized object code comprising the steps of: (a) compiling the source code into object code instructions; (b) inserting within each object code instructions, logical line markers, each logical line marker identifying a source code line from which originated associated object code instructions which are immediately adjacent to the logical line marker; (c) inserting actual line markers so that an actual line marker is associated with every object code instruction, the actual line marker identifying a source code line from which originated the object code instruction associated with the actual line marker; and, (d) optimizing the object code instructions to produce the optimized object code, including the following substeps (d.1) moving object code instructions relative to the logical line markers but not moving the logical line markers relative to each other, and (d.2) when an object code instruction is moved, moving the actual line marker associated with the moved object code instruction.
Claim 3
Dependent Claim 29 words
A method as in claim 1 wherein step (b) includes dividing the object code instructions into basic blocks which contain the logical line markers and the object code instructions.
Claim 4
Dependent Claim 29 words
A method as in claim 2 wherein in substep (d.1), no logical line marker is moved outside a basic block in which the logical line marker was originally placed.
Claim 5
Dependent Claim 30 words
A method as in claim 3 wherein in substep (d.1), when an entire basic block is duplicated, all logical line markers contained by the entire basic block are also duplicated.
Claim 6
Dependent Claim 32 words
A method as in claim 3 wherein in step (d) when a basic block is rendered unexecutable, all logical line markers contained by the basic block rendered unexecutable are marked as unexecutable.
Claim 7
Dependent Claim 16 words
A method as in claim 5 wherein in step (d) no logical line markers are deleted.
Claim 8
Independent Claim 90 words
A method for compiling source code into optimized object code comprising the steps of: (a) compiling the source code into object code instructions; (b) inserting within the object code instructions, logical line markers, each logical line marker identifying a source code line from which originated object code instructions immediately adjacent to the logical line marker; and, (c) optimizing the object code instructions to produce the optimized object code, including moving object code instructions relative to the logical line markers but not moving the logical line markers relative to each other.
Claim 9
Independent Claim 90 words
A method for compiling source code into optimized object code comprising the steps of: (a) compiling the source code into object code instructions; (b) inserting within the object code instructions, logical line markers, each logical line marker identifying a source code line from which originated object code instructions immediately adjacent to the logical line marker; and, (c) optimizing the object code instructions to produce the optimized object code, including moving object code instructions relative to the logical line markers but not moving the logical line markers relative to each other.
Claim 10
Dependent Claim 41 words
A method as in claim 7 wherein step (b) includes dividing the object code into basic blocks and wherein in step (c) no logical line marker is moved outside a basic block in which the logical line marker was originally placed.
Claim 11
Dependent Claim 30 words
A method as in claim 8 wherein in step (c) when an entire basic block is duplicated, all logical line markers contained by the entire basic block are also duplicated.
Claim 12
Dependent Claim 29 words
A method as in claim 8 wherein when a basic block is rendered unexecutable, all logical line markers contained by the basic block rendered unexecutable are marked as unexecutable.
Claim 13
Dependent Claim 16 words
A method as in claim 10 wherein in step (c) no logical line markers are deleted.
Claim 14
Dependent Claim 16 words
A method as in claim 7 wherein in step (c) no logical line markers are deleted.
Claim 15
Dependent Claim 50 words
A method as in claim 7 wherein step (b) additionally includes inserting actual line markers so that an actual line marker is associated with every object code instruction, the actual line marker identifying a source code line from which originated the object code instruction associated with the actual line marker.
Claim 16
Dependent Claim 37 words
A method as in claim 13 wherein in step (c) wherein when an object code instruction is moved, the actual line marker associated with the moved object code instruction is moved with the moved object code instruction.
Claim 17
Dependent Claim 106 words
Storage media which stores a compiling program which when executed by a computer compiles source code into optimized object code, the compiling program comprising: compiling means for compiling the source code into object code instructions; inserting means for inserting within the object code instructions, logical line markers, each logical line marker identifying a source code line from which originated object code instructions immediately adjacent to the logical line marker; and, optimizing means for optimizing the object code instructions to produce the optimized object code, including moving object code instructions relative to the logical line markers but not moving the logical line markers relative to each other.
Claim 18
Dependent Claim 106 words
Storage media which stores a compiling program which when executed by a computer compiles source code into optimized object code, the compiling program comprising: compiling means for compiling the source code into object code instructions; inserting means for inserting within the object code instructions, logical line markers, each logical line marker identifying a source code line from which originated object code instructions immediately adjacent to the logical line marker; and, optimizing means for optimizing the object code instructions to produce the optimized object code, including moving object code instructions relative to the logical line markers but not moving the logical line markers relative to each other.
Claim 19
Dependent Claim 51 words
Storage media as in claim 15 wherein the inserting means includes dividing means for dividing the object code into basic blocks and wherein when the optimizing means optimizes the object code instructions no logical line marker is moved outside a basic block in which the logical line marker was originally placed.
Claim 20
Dependent Claim 36 words
Storage media as in claim 16 wherein when the optimizing means optimizes the object code instructions and an entire basic block is duplicated, all logical line markers contained by the entire basic block are also duplicated.
Claim 21
Dependent Claim 33 words
Storage media as in claim 16 wherein when a basic block is rendered unexecutable, the compiling program renders all logical line markers contained by the basic block rendered unexecutable are marked as unexecutable.
Claim 22
Dependent Claim 17 words
Storage media as in claim 15 wherein no logical line markers are deleted are deleted during optimization.
Claim 23
Dependent Claim 53 words
Storage media as in claim 15 the compiler additionally comprises second inserting means for inserting actual line markers so that an actual line marker is associated with every object code instruction, the actual line marker identifying a source code line from which originated the object code instruction associated with the actual line marker.
Claim 24
Dependent Claim 42 words
Storage media as in claim 20 wherein when the optimizing means optimizes the object code instructions and an object code instruction is moved, the actual line marker associated with the moved object code instruction is moved with the moved object code instruction.

References Cited (Backward Citations)

US5550972A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-01-26 2001-07-28 2002-01-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-01-26 2005-07-28 2006-01-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-01-26 2009-07-28 2010-01-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag