Instruction selection in a multi-platform environment
First Claim
1. An apparatus for generating a platform specific compiler having an embedded instruction selector, comprising:
- a set of user defined platform dependent compiler architecture descriptors that describe corresponding architectural features of a particular hardware platform dependent compiler;
a set of instruction predicates used to identify platform specific instructions selected by the instruction selector;
an architecture descriptor compiler arranged to convert the user defined platform dependent compiler architecture descriptors into the platform dependent compiler source code and arranged to convert the set of instruction predicates into platform specific instructor selector source code;
a host compiler arranged to compile the platform dependent compiler source code into platform dependent compiler object code and arranged to compile the platform specific instructor selector source code into the embedded instruction selector object code;
platform independent compiler object code; and
an interface arranged to mediate the flow of information between the platform dependent compiler object code and the platform independent compiler object code during run time for the platform specific compiler, wherein during platform specific compiler run time, the embedded instruction selector selects the instruction to be compiled based upon the execution cost of the selected instruction, and wherein the embedded instruction selector provides implicit instruction predicates used by the platform specific compiler to compile the selected instruction.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for building a platform specific compiler having an embedded instruction selector in a multi-platform environment are provided. A set of user defined platform dependent compiler architecture descriptors that describe corresponding architectural features and a set of instruction predicates defining those instructions to be selected are converted to platform dependent compiler object code and instruction selector object code, respectively. The platform specific compiler having the embedded instruction selector is formed from the platform dependent compiler object code, the instruction selector object code, and the platform independent compiler object code.
145 Citations
16 Claims
-
1. An apparatus for generating a platform specific compiler having an embedded instruction selector, comprising:
-
a set of user defined platform dependent compiler architecture descriptors that describe corresponding architectural features of a particular hardware platform dependent compiler;
a set of instruction predicates used to identify platform specific instructions selected by the instruction selector;
an architecture descriptor compiler arranged to convert the user defined platform dependent compiler architecture descriptors into the platform dependent compiler source code and arranged to convert the set of instruction predicates into platform specific instructor selector source code;
a host compiler arranged to compile the platform dependent compiler source code into platform dependent compiler object code and arranged to compile the platform specific instructor selector source code into the embedded instruction selector object code;
platform independent compiler object code; and
an interface arranged to mediate the flow of information between the platform dependent compiler object code and the platform independent compiler object code during run time for the platform specific compiler, wherein during platform specific compiler run time, the embedded instruction selector selects the instruction to be compiled based upon the execution cost of the selected instruction, and wherein the embedded instruction selector provides implicit instruction predicates used by the platform specific compiler to compile the selected instruction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of building a platform specific compiler having an embedded instruction selector, comprising:
-
providing a set of user defined platform dependent compiler architecture descriptors that describe corresponding architectural features of a particular hardware platform dependent compiler;
providing a set of user defined instruction predicates used by the embedded instruction selector to select those instructions to be compiled by the platform specific compiler during run time;
converting the set of user defined platform dependent compiler architecture descriptors into platform dependent compiler source code by an architecture descriptor compiler;
converting the set of user defined instruction predicates into platform instruction selector source code by an architecture descriptor compiler;
compiling the platform dependent compiler source code into platform dependent object code by a host compiler coupled to the architecture descriptor compiler;
compiling the instruction selector source code into instruction selector object code by a host compiler coupled to the architecture descriptor compiler;
during runtime, providing an information request to a platform independent interface arranged to mediate a transfer of information between selected portions of the platform dependent object code and the instruction selection object code;
directing the information request to a pre-determined platform dependent compiler object code information retriever by the interface;
providing platform independent compiler object code, wherein the platform independent compiler object code and the platform dependent compiler object code are suitable for execution on the particular hardware platform; and
forming the embedded instruction selector from the platform dependent compiler object code, the instruction selector object code, and the platform independent compiler object code, wherein the embedded instruction selector selects an instruction to be compiled based upon an associated execution cost of the selected instruction, and wherein the embedded instruction selector provides an implicit instruction predicate used by the platform specific compiler to compile the selected instruction. - View Dependent Claims (8, 9, 10, 11)
requesting specific platform dependent object code information by the platform independent object code during platform specific compiler run time.
-
-
9. A method as recited in claim 8, further comprising:
retrieving specific platform dependent compiler object code information in satisfaction of the information request in response to the request by the information retriever.
-
10. A method as recited in claim 9, further comprising:
directing the retrieved information to the information requestor by the interface.
-
11. A method as recited in claim 10, further comprising:
directing the retrieved information to the information requestor by the interface.
-
12. A platform specific compiler having an embedded instruction selector, comprising:
-
a platform dependent compiler object code;
a platform independent compiler object code, wherein the platform independent compiler object code and the platform dependent compiler object code are suitable for execution on a particular hardware platform;
a platform dependent instruction selector object code embedded in the platform dependent compiler object code;
an interface partially embedded in the platform independent compiler object code and partially embedded in the platform dependent compiler object code, wherein during platform specific compiler run time, the interface mediates flow of information between the platform independent compiler object code and the platform dependent compiler code, wherein the embedded instruction selector selects an instruction to be compiled based upon an associated execution cost of the selected instruction, and wherein the embedded instruction selector provides an implicit instruction predicate used by the platform specific compiler to compile the selected instruction. - View Dependent Claims (13, 14, 15, 16)
-
Specification