Compiler processing system for generating assembly program codes for a computer comprising a plurality of arithmetic units
First Claim
1. A compiler processing system for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said system comprising:
- a front end which analyzes syntax and semantics of said source program;
a machine-independent optimization portion which performs machine-independent optimization for said source program;
a code generating portion which generates said assembly program codes from said source program which has been optimized in said machine-independent optimization portion; and
a machine-dependent optimization portion which performs machine-dependent optimization for said assembly program codes which have been generated by said code generating portion;
wherein said machine-dependent optimization portion comprises;
a non-instruction scheduling portion which performs optimization other than instruction scheduling;
an instruction scheduling portion which performs optimization including said instruction scheduling, said instruction scheduling portion comprising;
means for determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
means for determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
means for determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
means for changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
2 Assignments
0 Petitions
Accused Products
Abstract
Provided is a compiler processing system for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, the system comprising: a front end; a machine-independent optimization portion; a code generating portion; and a machine-dependent optimization portion; wherein the machine-dependent optimization portion comprises: a non-instruction scheduling portion; and an instruction scheduling portion comprising: means for determining if an arithmetic unit is available for an inspected instruction at an execution clock concerned; means for determining if there is a substitutional instruction which performs the equivalent function as the inspected instruction if an arithmetic unit is not available for the inspected instruction; means for determining if an arithmetic unit is available at the execution clock for the substitutional instruction, if any; and means for changing the inspected instruction to the substitutional instruction if an arithmetic unit is available for the substitutional instruction.
-
Citations
9 Claims
-
1. A compiler processing system for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said system comprising:
-
a front end which analyzes syntax and semantics of said source program;
a machine-independent optimization portion which performs machine-independent optimization for said source program;
a code generating portion which generates said assembly program codes from said source program which has been optimized in said machine-independent optimization portion; and
a machine-dependent optimization portion which performs machine-dependent optimization for said assembly program codes which have been generated by said code generating portion;
wherein said machine-dependent optimization portion comprises;
a non-instruction scheduling portion which performs optimization other than instruction scheduling;
an instruction scheduling portion which performs optimization including said instruction scheduling, said instruction scheduling portion comprising;
means for determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
means for determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
means for determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
means for changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
2. A compiler processing system for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said system comprising:
-
a front end which analyzes syntax and semantics of said source program;
a machine-independent optimization portion which performs machine-independent optimization for said source program;
a machine-dependent optimization portion which performs machine-dependent optimization for intermediate language codes obtained from said source program; and
a code generating portion which generates said assembly program codes from said intermediate language codes which have been optimized in said machine-dependent optimization portion;
wherein said machine-dependent optimization portion comprises;
a non-instruction scheduling portion which performs optimization other than instruction scheduling;
an instruction scheduling portion which performs optimization including said instruction scheduling, said instruction scheduling portion comprising;
means for determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
means for determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
means for determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
means for changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
3. A method for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said method comprising the steps of:
-
analyzing syntax of said source program;
analyzing semantics of said source program;
performing machine-independent optimization for said source program;
generating said assembly program codes from said source program which has been optimized; and
performsing machine-dependent optimization for said assembly program codes;
wherein said machine-dependent optimization comprises the steps of;
performing optimization other than instruction scheduling;
performing optimization including said instruction scheduling, said instruction scheduling comprising the steps of;
determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
4. A method for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said method comprising the steps of:
-
analyzing syntax of said source program;
analyzing semantics of said source program;
performing machine-independent optimization for said source program;
performing machine-dependent optimization for intermediate language codes obtained from said source program; and
generating said assembly program codes from said intermediate language codes which have been optimized;
wherein said machine-dependent optimization comprises the steps of;
performing optimization other than instruction scheduling;
performing optimization including said instruction scheduling, said instruction scheduling comprising the steps of;
determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
5. A computer program for having a computer execute a method for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said method comprising the steps of:
-
analyzing syntax of said source program;
analyzing semantics of said source program;
performing machine-independent optimization for said source program;
generating said assembly program codes from said source program which has been optimized; and
performsing machine-dependent optimization for said assembly program codes;
wherein said machine-dependent optimization comprises the steps of;
performing optimization other than instruction scheduling;
performing optimization including said instruction scheduling, said instruction scheduling comprising the steps of;
determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
6. A computer program for having a computer execute a method for generating assembly program codes from a source program for a computer comprising a plurality of arithmetic units, said method comprising the steps of:
-
analyzing syntax of said source program;
analyzing semantics of said source program;
performing machine-independent optimization for said source program;
performing machine-dependent optimization for intermediate language codes obtained from said source program; and
generating said assembly program codes from said intermediate language codes which have been optimized;
wherein said machine-dependent optimization comprises the steps of;
performing optimization other than instruction scheduling;
performing optimization including said instruction scheduling, said instruction scheduling comprising the steps of;
determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
7. An instruction scheduler for scheduling instructions for a computer comprising a plurality of arithmetic units, said system scheduler comprising:
-
means for determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
means for determining whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
means for determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
means for changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
8. A method for scheduling instructions for a computer comprising a plurality of arithmetic units, said method comprising the steps of:
-
determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
-
9. A computer program for having a computer execute a method for scheduling instructions for a computer comprising a plurality of arithmetic units, said method comprising the steps of:
-
determining whether or not an arithmetic unit is available for an inspected instruction at an execution clock concerned;
whether or not there is a substitutional instruction which performs the equivalent function as said inspected instruction if an arithmetic unit is not available for said inspected instruction;
determining whether or not an arithmetic unit is available at said execution clock concerned for said substitutional instruction, if any; and
changing said inspected instruction to said substitutional instruction if an arithmetic unit is available for said substitutional instruction.
-
Specification