US 11,687,388 B2
Implementing optional specialization when executing code
John Robert Rose, San Jose, CA (US); Maurizio Cimadamore, Donabate (IE); and Brian Goetz, Williston, VT (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Jan. 7, 2022, as Appl. No. 17/571,328.
Claims priority of provisional application 63/163,726, filed on Mar. 19, 2021.
Claims priority of provisional application 63/163,723, filed on Mar. 19, 2021.
Claims priority of provisional application 63/163,697, filed on Mar. 19, 2021.
Claims priority of provisional application 63/163,701, filed on Mar. 19, 2021.
Prior Publication US 2022/0300260 A1, Sep. 22, 2022
Int. Cl. G06F 9/44 (2018.01); G06F 9/54 (2006.01); G06F 8/41 (2018.01); G06F 16/28 (2019.01); G06F 16/22 (2019.01); G06F 9/448 (2018.01); G06F 9/445 (2018.01); G06F 9/30 (2018.01); G06F 9/451 (2018.01); G06F 12/02 (2006.01); G06F 9/455 (2018.01)
CPC G06F 9/547 (2013.01) [G06F 8/41 (2013.01); G06F 8/437 (2013.01); G06F 9/30076 (2013.01); G06F 9/4488 (2018.02); G06F 9/4494 (2018.02); G06F 9/4498 (2018.02); G06F 9/44521 (2013.01); G06F 9/44536 (2013.01); G06F 9/451 (2018.02); G06F 9/45516 (2013.01); G06F 9/541 (2013.01); G06F 9/542 (2013.01); G06F 9/548 (2013.01); G06F 12/023 (2013.01); G06F 16/2272 (2019.01); G06F 16/2291 (2019.01); G06F 16/289 (2019.01)] 20 Claims
OG exemplary drawing
 
1. One or more non-transitory computer readable media storing instructions which, when executed by one or more hardware processors, cause:
identifying, by a runtime environment, a first instruction to call an application programming interface (API) point, wherein an unspecialized type includes the API point;
determining whether the first instruction indicates any expected specialized type associated with the API point;
responsive to determining that the first instruction indicates a first expected specialized type associated with the API point:
performing, by the runtime environment, a first optimized access associated with the API point based on a first type restriction derived from the first expected specialized type;
identifying, by the runtime environment, a second instruction to call the API point;
determining whether the second instruction indicates any expected specialized type associated with the API point;
responsive to determining that the second instruction does not indicate any expected specialized type associated with the API point:
performing, by the runtime environment, a particular access associated with the API point based on a type of the API point as indicated by the unspecialized type.