IP Library Granted Patent US 12,578,939
Granted Patent B2
US 12,578,939 · App. 18/464,636 · Granted Mar 17, 2026

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

Inventors: Vijay Sundaresan (North York, CA); Daryl James Maier (Canada, CA); Krishna Nandivada Venkata (Chennai, IN); Manas Thakur (Mumbai, IN)
Assignees: INTERNATIONAL BUSINESS MACHINES CORPORATION; INDIAN INSTITUTE OF TECHNOLOGY MADRAS (IIT MADRAS)
G06F8/41G06F8/315
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,578,939
App. No.
18/464,636
Granted
Mar 17, 2026
Kind
B2
Abstract

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.

Claims (39)

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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2024
From: NANDIVADA VENKATA, KRISHNA; THAKUR, MANAS
To: INDIAN INSTITUTE OF TECHNOLOGY MADRAS (IIT MADRAS)
Reel/Frame 066468/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2023
From: SUNDARESAN, VIJAY; MAIER, DARYL JAMES
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064863/0032 →
Continuity (1)
Related Publication 20250085938A1 · Mar 13, 2025
References Cited (26)
US 5175856A · Van Dyke · 1992 [cited by examiner]
US 5740443A · Carini · 1998 [cited by examiner]
US 6045585A · Blainey · 2000 [cited by examiner]
US 6151704A · Radigan · 2000 [cited by examiner]
US 7373641B2 · Ogasawara · 2008 [cited by applicant]
US 7996825B2 · Chakrabarti · 2011 [cited by examiner]
US 8418160B2 · Doyle · 2013 [cited by applicant]
US 8789032B1 · Li · 2014 [cited by examiner]
US 9134975B1 · Beavin · 2015 [cited by examiner]
US 10528587B2 · Kim · 2020 [cited by examiner]
US 10599404B1 · Neto · 2020 [cited by examiner]
US 11409508B1 · Toub · 2022 [cited by examiner]
US 20110302559A1 · Naik · 2011 [cited by applicant]
US 20130305021A1 · Grover et al. · 2013 [cited by applicant]
Davidson et al, “Code Selection through Object Code Optimization”, ACM, pp. 1-22 (Year: 1984). [cited by examiner]
Fan et al, “Postiz: Extending Post-increment Addressing for Loop Optimization and Code Size Reduction”, ACM, pp. 1-14 (Year: 2025). [cited by examiner]
Flückiger et al, “Sampling Optimized Code for Type Feedback”, ACM, pp. 1-13 (Year: 2020). [cited by examiner]
Villalobos et al, “A New Multi-Objective Evolutionary Algorithm Based on a Performance Assessment Indicator”, ACM, pp. 1-8 (Year: 2012). [cited by examiner]
Stadler et al., “Partial Escape Analysis and Scalar Replacement for Java”, https://ssw.jku.at/Teaching/PhDTheses/Stadler/Thesis_Stadler_14.pdf, Faculty of Engineering and Natural Sciences, May 2014, 130 pages. [cited by applicant]
Lucas et al., “Spatiotemporal SIMT and Scalarization for Improving GPU Efficiency”, https://dl.acm.org/doi/10.1145/2811402, ACM Trans. Archit. Code Optim. 12, 3, Article 32, Sep. 2015, 26 Pages. [cited by applicant]
Harrington et al., “Using Escape Analysis in Dynamic Data Race Detection”, http://www.cs.williams.edu/˜freund/papers/14-escape-analysis-tr.pdf, Williams College Technical Report CSTR201401, Accessed Jun. 21, 2023, 3 pag… [cited by applicant]
Bruno Blanchet, Escape analysis: correctness proof, implementation and experimental results, In Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 25-37, 1998, 13 pages. [cited by applicant]
Jong-Deok Choi et al., “Stack allocation and synchronization optimizations for Java using escape analysis”, ACM Transactions on Programming Languages and Systems, 25:876-910, 2003, IBM, Research Report, 52 pages. [cited by applicant]
Steven S. Muchnick, “Advanced Compiler Design and Implementation”, Morgan Kaufmann, 1997, 6 pages. [cited by applicant]
Manas Thakur et al., “PYE: A Framework for Precise-Yet-Efficient Just-In-Time Analyses for Java Programs”, ACM Trans. Program. Lang. Syst., 41:16:1-16:37, 2019, 37 pages. [cited by applicant]
John Whaley et al., “Compositional pointer and escape analysis for Java programs”, In Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 187-206, 199… [cited by applicant]