METHOD AND APPARATUS FOR INLINING NATIVE FUNCTIONS INTO COMPILED JAVA CODE
First Claim
1. A method in a data processing system for inlining native functions into compiled Java code, the method comprising:
- detecting a native function call at a Java callsite;
converting an intermediate representation of a native function to a just-in-time compiler intermediate representation; and
inlining the just-in-time compiler intermediate representation into the Java callsite.
0 Assignments
0 Petitions
Accused Products
Abstract
A method, apparatus, and computer instructions are provided for inlining native functions into compiled Java code. A conversion engine is provided by the present invention for converting the intermediate representation of native functions to the just-in-time (JIT) compiler'"'"'s intermediate representation. With the converted intermediate representation, an inliner recursively inlines the converted JIT compiler'"'"'s intermediate representation into the native callsite to remove the need of invoking the native function and subsequent native calls made by the function. The inlining process continues until either a call to an opaque function is encountered or until a JIT compiler intermediate representation growth limits are reached. The inliner also replaces calls to most native functions that are non-inlineable or opaque with calls to synthesized native functions that provide access to native libraries containing implementations of the original non-inlineable calls.
-
Citations
24 Claims
-
1. A method in a data processing system for inlining native functions into compiled Java code, the method comprising:
-
detecting a native function call at a Java callsite; converting an intermediate representation of a native function to a just-in-time compiler intermediate representation; and inlining the just-in-time compiler intermediate representation into the Java callsite. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A data processing system for inlining native functions into compiled Java code, the data processing system comprising:
-
a conversion engine for converting an intermediate representation of a native function to a just-in-time compiler intermediate representation, responsive to detecting a native function call at a Java callsite; a just-in-time compiler inliner for inlining the just-in-time compiler intermediate representation into the Java callsite. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer program product in a computer readable medium for inlining native functions into compiled Java code, the computer program product comprising:
-
first instructions for detecting a native function call at a Java callsite; second instructions for converting an intermediate representation of a native function to a just-in-time compiler intermediate representation; and third instructions for inlining the just-in-time compiler intermediate representation into the native callsite. - View Dependent Claims (21, 22, 23, 24)
-
Specification