Cooperative program code transformation
First Claim
Patent Images
1. A cooperative program code transformation method comprising:
- receiving, at a server, a transformation hint request that is sent by a client;
obtaining, from a database comprising a plurality of transformation hints associated with a plurality of corresponding sets of program code, a suitable transformation hint for a set of program code, wherein;
the suitable transformation hint comprises information pertaining to one or more of;
a mismatch of an instruction address of a dynamic trace of the set of program code and a corresponding instruction address in a statically disassembled output of the set of program code;
ora region in which at least a portion of the set of program code is to be ignored by a client-side disassembler in subsequent transformations;
and the suitable transformation hint is generated based at least in part on profile information comprising one or more of;
basic block execution counts;
memory dependence information;
orcontrol flow information;
providing the suitable transformation hint generated based at least in part on the profile information to the client, wherein the suitable transformation hint generated based at least in part on the profile information is used by the client to transform at least a portion of the program code and generate optimized code.
1 Assignment
0 Petitions
Accused Products
Abstract
Cooperative program code transformation includes receiving a transformation hint request, obtaining a suitable transformation hint, and providing the suitable transformation hint such that it is used to transform at least a portion of the program code and generate optimized code.
51 Citations
33 Claims
-
1. A cooperative program code transformation method comprising:
-
receiving, at a server, a transformation hint request that is sent by a client; obtaining, from a database comprising a plurality of transformation hints associated with a plurality of corresponding sets of program code, a suitable transformation hint for a set of program code, wherein; the suitable transformation hint comprises information pertaining to one or more of; a mismatch of an instruction address of a dynamic trace of the set of program code and a corresponding instruction address in a statically disassembled output of the set of program code;
ora region in which at least a portion of the set of program code is to be ignored by a client-side disassembler in subsequent transformations; and the suitable transformation hint is generated based at least in part on profile information comprising one or more of; basic block execution counts; memory dependence information;
orcontrol flow information; providing the suitable transformation hint generated based at least in part on the profile information to the client, wherein the suitable transformation hint generated based at least in part on the profile information is used by the client to transform at least a portion of the program code and generate optimized code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A cooperative program code transformation system comprising:
- one or more processors configured to;
receive a transformation hint request that is sent by a client; obtain, from a database comprising a plurality of transformation hints associated with a plurality of corresponding sets of program code, a suitable transformation hint for a set of program code, wherein; the suitable transformation hint comprises information pertaining to one or more of; a mismatch of an instruction address of a dynamic trace of the set of program code and a corresponding instruction address in a statically disassembled output of the set of program code;
ora region in which at least a portion of the set of program code is to be ignored by a client-side disassembler in subsequent transformations; and the suitable transformation hint is generated based at least in part on profile information comprising one or more of; basic block execution counts; memory dependence information;
orcontrol flow information; provide the suitable transformation hint generated based at least in part on the profile information to the client, wherein the suitable transformation hint generated based at least in part on the profile information is used by the client to transform at least a portion of the program code and generate optimized code; and one or more memories coupled to the one or more processors and configured to provide the one or more processor with instructions. - View Dependent Claims (28)
- one or more processors configured to;
-
29. A computer program product for cooperative program code transformation, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
-
receiving a transformation hint request that is sent by a client; obtaining, from a database comprising a plurality of transformation hints associated with a plurality of corresponding sets of program code, a suitable transformation hint for a set of program code, wherein; the suitable transformation hint comprises information pertaining to one or more of; a mismatch of an instruction address of a dynamic trace of the set of program code and a corresponding instruction address in a statically disassembled output of the set of program code;
ora region in which at least a portion of the set of program code is to be ignored by a client-side disassembler in subsequent transformations; and the suitable transformation hint is generated based at least in part on profile information comprising one or more of; basic block execution counts; memory dependence information;
orcontrol flow information; providing the suitable transformation hint generated based at least in part on the profile information to the client, wherein the suitable transformation hint generated based at least in part on the profile information is used by the client to transform at least a portion of the program code and generate optimized code. - View Dependent Claims (30)
-
-
31. A cooperative program code transformation method comprising:
obtaining, by a client, a transformation hint from a server, the transformation hint indicating a transformation of a set of program code, wherein; the transformation hint comprises information pertaining to one or more of; a mismatch of an instruction address of a dynamic trace of the set of program code and a corresponding instruction address in a statically disassembled output of the set of program code;
ora region in which at least a portion of the set of program code is to be ignored by a client-side disassembler in subsequent transformations; and the transformation hint is generated based at least in part on profile information comprising one or more of; basic block execution counts; memory dependence information;
orcontrol flow information; transforming the program code based at least in part on the transformation hint generated based at least in part on the profile information, to; generate optimized code at the client; and execute the optimized code at the client. - View Dependent Claims (32, 33)
Specification