US 11,755,298 B2
Deterministic memory allocation for real-time applications
Misha Shalem, Zichron Yaakov (IL)
Assigned to APEX.AI, INC., Palo Alto, CA (US)
Filed by APEX.AI, INC., Palo Alto, CA (US)
Filed on Nov. 1, 2021, as Appl. No. 17/516,393.
Application 17/516,393 is a continuation of application No. 17/317,767, filed on May 11, 2021, granted, now 11,194,556.
Prior Publication US 2022/0365764 A1, Nov. 17, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 8/41 (2018.01); G06F 12/02 (2006.01); G06F 12/06 (2006.01)
CPC G06F 8/4434 (2013.01) [G06F 8/42 (2013.01); G06F 8/433 (2013.01); G06F 12/02 (2013.01); G06F 12/06 (2013.01); G06F 2212/1008 (2013.01)] 16 Claims
OG exemplary drawing
1. A method of automatically generating a header file to define memory pools for deterministic memory allocation, the method comprising using at least one hardware processor to:
receive bitcode representing compiled source code of an application, wherein the source code comprises an allocation function for allocating memory that calls a dummy function using one or more parameters; and
scan the bitcode to detect each call to the dummy function in the bitcode,
for each detected call to the dummy function, extract the one or more parameters used in the detected call to the dummy function, and generate an allocation record from the extracted one or more parameters, and
generate a header file based on the generated allocation records;
wherein receiving the bitcode comprises compiling the source code into the bitcode, and wherein the method further comprises using the at least one hardware processor to, after generating the header file, recompile the source code with the header file;
wherein the header file comprises a definition of one or more buckets and a definition of each of one or more memory pools, and wherein the definition of each of the one or more memory pools identifies at least one of the one or more buckets.