METHOD AND SYSTEM FOR PROGRAM TRANSFORMATION USING FLOW-SENSITIVE TYPE CONSTRAINT ANALYSIS
First Claim
1. A method for analyzing a program, comprising:
- determining a set of functions required by the program by performing local type constraint analysis at intermediate language instruction level; and
a call path that may reach a function containing such instruction.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for analyzing a program is provided. The method includes, determining an object type that may exist at an execution point of the program, wherein this enables determination of possible virtual functions that may be called; creating a call graph at a main entry point of the program; and recording an outgoing function call within a main function. The method also includes analyzing possible object types that may occur at any given instruction from any call path for virtual calls, wherein possible object types are determined by tracking object types as they pass through plural constructs; and calling into functions generically for handling specialized native runtime type information.
-
Citations
48 Claims
-
1. A method for analyzing a program, comprising:
determining a set of functions required by the program by performing local type constraint analysis at intermediate language instruction level; and
a call path that may reach a function containing such instruction.- View Dependent Claims (2, 3, 4, 5, 6, 7, 31)
-
8. A computer-readable medium storing computer-executable process steps of a process for analyzing a program, comprising:
determining a set of functions required by the program by performing local type constraint analysis at intermediate language instruction level and a call path that may reach a function containing such instruction. - View Dependent Claims (9, 10, 11, 12, 13, 14, 32)
-
15. A method for analyzing a program, comprising:
determining an object type that may exist at an execution point of the program and evaluating all possible object types that are created at every instruction of a program and carrying the object types through a stack evaluation, wherein this enables determination of a possible virtual function that may be called. - View Dependent Claims (16, 17, 18, 19, 33)
-
20. A computer-readable medium storing computer-executable process steps of a process
for analyzing a program, comprising: - determining an object type that may exist at an execution point of the program, wherein this enables determination of possible virtual functions that may be called.
- View Dependent Claims (21, 22, 23, 24, 34)
-
25. A method for building an application, comprising:
receiving source code instruction;
determining optimum code requirement; and
compiling native processor image.- View Dependent Claims (26, 27, 35)
-
28. A computer-readable medium storing computer-executable process steps of a process for building an application, comprising:
receiving source code instruction;
determining optimum code requirement; and
compiling native processor.- View Dependent Claims (29, 30, 36)
-
37. A method for determining variable size in a program, comprising:
tracking variable size; and
reducing variable size for program execution.- View Dependent Claims (38, 39)
-
40. A computer-readable medium storing computer-executable process steps of a process for determining variable size in a program, comprising:
analyzing program function calls recursively and tracking variable size; and
reducing variable size of program function calls for program execution.- View Dependent Claims (41, 42)
-
43. A method for reducing empty function calls in a program, comprising:
determining if a call is made to an empty function; and
removing a call that is made to an empty function.
-
44. A computer-readable medium storing computer-executable process steps of a process for reducing empty function calls in a program, comprising:
determining if a call is made to an empty function;
removing a call that is made to an empty function.
-
45. A method for reducing throw instruction without exception handlers in a program, comprising:
determining if there are any throw instructions without exception handlers;
removing throw instructions without exception handlers.
-
46. A computer-readable medium storing computer-executable process steps of a process for reducing throw instruction without exception handlers in a program, comprising:
determining if there are any throw instructions without exception handlers; and
removing throw instructions without exception handlers.
-
47. A method for discarding comparison instructions in a program, comprising:
-
determining if there are any comparison instructions with discrete values in the program; discarding a comparison instruction with a discrete value.
-
-
48. A computer-readable medium storing computer-executable process steps of a process for discarding comparison instructions in a program, comprising:
-
determining if there are any comparison instructions with discrete values in the program; discarding a comparison instruction with a discrete value.
-
Specification