Split-scalarization of thread-local objects in optimized object code

US12578939B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12578939-B2
Application numberUS-202318464636-A
CountryUS
Kind codeB2
Filing dateSep 11, 2023
Priority dateSep 11, 2023
Publication dateMar 17, 2026
Grant dateMar 17, 2026

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Aspects of the present disclosure relate to split-scalarization of thread-local objects in optimized object code. A computer-implemented method includes receiving source code including a programmed method and a reference within the programmed method that accesses a field of an object. Then, the method includes determining that the field of the object is scalarizable over a region of the programmed method and performing scalarization of the field of the object over the region of the programmed method. Finally, the method includes outputting optimized object code with the field of the object scalarized over the region of the programmed method and with another field of the object unscalarized in a different region of the programmed method.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer-implemented method, comprising: receiving, by a processor set, source code including at least one programmed method and at least one reference within the at least one programmed method that accesses at least one field of at least one object; determining, by the processor set, that the at least one object is local to a thread without reference to the at least one object outside the thread and that the at least one field of the at least one object is scalarizable over a region of the at least one programmed method; performing, by the processor set, scalarization of the at least one field of the at least one object over the region of the at least one programmed method; and outputting, by the processor set, optimized object code with the at least one field of the at least one object scalarized over the region of the at least one programmed method and with another field of the at least one object unscalarized in a different region of the at least one programmed method. 2 . The computer-implemented method of claim 1 , further comprising identifying that the at least one object is a thread-local object. 3 . The computer-implemented method of claim 2 , wherein the identifying comprises performing inter-procedural analysis of the at least one programmed method. 4 . The computer-implemented method of claim 1 , further comprising identifying that the at least one object is referenced by local variables with singleton points-to sets. 5 . The computer-implemented method of claim 4 , wherein the identifying comprises performing points-to analysis that identifies a set of objects the local variables can point to. 6 . The computer-implemented method of claim 1 , wherein the determining comprises determining that the at least one object is not accessed via a field of another object. 7 . The computer-implemented method of claim 1 , further comprising determining that the another field of the at least one object is not scalarizable in the different region of the at least one programmed method. 8 . The computer-implemented method of claim 1 , further comprising determining that a cost of scalarizing the at least one field of the at least one object does not exceed a cost of not scalarizing the at least one field. 9 . The computer-implemented method of claim 8 , wherein the determining comprises determining that the at least one field is accessed at least twice. 10 . The computer-implemented method of claim 1 , further comprising determining that a cost of scalarizing the another field of the at least one object exceeds a cost of not scalarizing the another field. 11 . The computer-implemented method of claim 1 , wherein the determining comprises identifying critical points comprising a start-point and a set of endpoints for the at least one object within the at least one programmed method. 12 . The computer-implemented method of claim 11 , wherein the identifying comprises identifying a critical predecessor set for the set of endpoints of the critical points. 13 . A computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to: receive source code including at least one programmed method and at least one reference within the at least one programmed method that accesses at least one field of at least one object; identify critical points comprising a start-point and a set of endpoints for the at least one object within the at least one programmed method; identify a critical predecessor set for the set of endpoints of the critical points of the at least one object within the at least one programmed method; determine that the at least one object is local to a thread without reference to the at least one object outside the thread and that at least one field access of the at least one object in the critical predecessor set of the at least one programmed method is scalarizable; perform scalarization of the at least one field access of the at least one object in the critical predecessor set of the at least one programmed method; and output optimized object code with the at least one field access of the at least one object scalarized in the critical predecessor set of the at least one programmed method and with another field access of the at least one object not scalarized in the at least one programmed method that is not in the critical predecessor set in the at least one programmed method. 14 . The computer program product of claim 13 , wherein the program instructions are further executable to determine that a cost of scalarizing the at least one field access of the at least one object in the critical predecessor set of the at least one programmed method does not exceed a cost of not scalarizing the at least one field access. 15 . The computer program product of claim 13 , wherein the determining comprises determining that the another field access of the at least one object not in the critical predecessor set is not scalarizable. 16 . The computer program product of claim 13 , wherein the determining comprises: determining the another field access is not thread-escaping; determining the another field access is not referenced by local variables with non-singleton points-to sets; and determining the another field access is not accessed via a field of another object. 17 . A system comprising: a processor set, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to: receive source code including at least one programmed method and at least one reference within the at least one programmed method that accesses at least one field of at least one object; determine that the at least one object is local to a thread without reference to the at least one object outside the thread and that the at least one field of the at least one object is scalarizable over a region of the at least one programmed method; determine that a cost of scalarizing the at least one field of the at least one object does not exceed a cost of not scalarizing the at least one field; perform scalarization of the at least one field of the at least one object over the region of the at least one programmed method; and output optimized object code with the at least one field of the at least one object scalarized over the region of the at least one programmed method and with another field of the at least one object unscalarized in a different region of the at least one programmed method. 18 . The system of claim 17 , wherein the program instructions are further executable to identify that the another field of the at least one object is a thread-escaping. 19 . The system of claim 17 , wherein the program instructions are further executable to identify that the another field of the at least one object is referenced by local variables with non-singleton points-to sets. 20 . The system of claim 17 , wherein the program instructions are further executable to identify that the another field of the at least one object is accessed via a field of another object.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12578939B2 cover?
Aspects of the present disclosure relate to split-scalarization of thread-local objects in optimized object code. A computer-implemented method includes receiving source code including a programmed method and a reference within the programmed method that accesses a field of an object. Then, the method includes determining that the field of the object is scalarizable over a region of the program…
Who is the assignee on this patent?
IBM, Indian Inst Tech Madras
What technology area does this patent fall under?
Primary CPC classification G06F8/41. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 17 2026 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).