Claims Analysis
Total Claims: 22
Claim 1
Independent Claim
110 words
A computer implemented method of compiling a fine-grained array based source program written for a parallel machine, comprising the steps of: (1) entering said source program into a front end of a compiler, wherein said front end produces a common intermediate representation (CIR) syntax tree; (2) building a lowered intermediate representation (LIR) from said CIR syntax tree by performing a bottom-up walk of said CIR syntax tree; (3) mapping said LIR into a more detailed LIR', said LIR' marks which code will run on a scalar front-end processor and which code will run on a plurality of parallel vector processors; and (4) generating two separate code streams from said LIR'.
Claim 2
Dependent Claim
110 words
A computer implemented method of compiling a fine-grained array based source program written for a parallel machine, comprising the steps of: (1) entering said source program into a front end of a compiler, wherein said front end produces a common intermediate representation (CIR) syntax tree; (2) building a lowered intermediate representation (LIR) from said CIR syntax tree by performing a bottom-up walk of said CIR syntax tree; (3) mapping said LIR into a more detailed LIR', said LIR' marks which code will run on a scalar front-end processor and which code will run on a plurality of parallel vector processors; and (4) generating two separate code streams from said LIR'.
Claim 3
Dependent Claim
13 words
The method of claim 1, further comprises the step of optimizing said LIR.
Claim 4
Dependent Claim
15 words
The method of claim 1, wherein said plurality of parallel vector processors are functionally identical.
Claim 5
Dependent Claim
14 words
The method of claim 1, wherein said parallel vector processors form a coarse-grained hardware.
Claim 6
Dependent Claim
35 words
The method of claim 1, wherein said step (4) generates a scalar code stream that will operate on a scalar machine and a virtual register code stream that will operate on a parallel vector machine.
Claim 7
Dependent Claim
29 words
The method of claim 5, wherein said second code stream includes vector instructions which are used to control said parallel vector machine which generally processes said vector instructions concurrently.
Claim 8
Dependent Claim
29 words
The method of claim 5, further comprises the step of generating first object code for a scalar processor and second object code for said plurality of parallel vector processors.
Claim 9
Dependent Claim
69 words
The method of claim 7, wherein in said step of generating object code for said plurality of vector processors, comprises the steps of: (a) replacing the virtual registers with actual data processor registers and sequence pointer registers; (b) transforming the code generated in step (a) to overlap loads and stores; (c) optimizing the code generated in step (b); and (d) generating microcode from said optimized code of step (c).
Claim 10
Dependent Claim
37 words
The method of claim 7, wherein said first object code and said second object code are linked with a run time library in order to produce executable code, wherein said run time library operates on slicewise data.
Claim 11
Dependent Claim
123 words
A computer implemented method of compiling a source program for coarse-grained parallel machine, comprising the steps of: (1) receiving a source program written in a fine-grained array-based programming language; (2) translating said source program into target code which includes vector instruction, said target code operates on a coarse-grained hardware that processes said code concurrently and utilizes at least one register file, wherein said coarse-grained parallel machine contains a plurality of vector processors, said plurality of vector processors contains a plurality of functional units, the pipeline of said plurality of functional units being of equal or unequal length; and (3) treating said at least two functional units, if said at least two functional units have a pipeline of unequal length, as having equal length.
Claim 12
Dependent Claim
123 words
A computer implemented method of compiling a source program for coarse-grained parallel machine, comprising the steps of: (1) receiving a source program written in a fine-grained array-based programming language; (2) translating said source program into target code which includes vector instruction, said target code operates on a coarse-grained hardware that processes said code concurrently and utilizes at least one register file, wherein said coarse-grained parallel machine contains a plurality of vector processors, said plurality of vector processors contains a plurality of functional units, the pipeline of said plurality of functional units being of equal or unequal length; and (3) treating said at least two functional units, if said at least two functional units have a pipeline of unequal length, as having equal length.
Claim 13
Dependent Claim
117 words
A computer implemented method of compiling a fine-grained array based source program written for a parallel machine, comprising the steps of: (a) front end means for receiving a source program, wherein said front end means produces a common intermediate representation (CIR) syntax tree; (b) building means for building a lowered intermediate representation (LIR) from said CIR syntax tree by performing a bottom-up walk of said CIR syntax tree; (c) mapping means for mapping said LIR into a more detailed LIR', said LIR' marks which code will run on a scalar front-end processor and which code will run on a plurality of parallel vector processors; and (d) generating means for generating two separate code streams from said LIR'.
Claim 14
Dependent Claim
117 words
A computer implemented method of compiling a fine-grained array based source program written for a parallel machine, comprising the steps of: (a) front end means for receiving a source program, wherein said front end means produces a common intermediate representation (CIR) syntax tree; (b) building means for building a lowered intermediate representation (LIR) from said CIR syntax tree by performing a bottom-up walk of said CIR syntax tree; (c) mapping means for mapping said LIR into a more detailed LIR', said LIR' marks which code will run on a scalar front-end processor and which code will run on a plurality of parallel vector processors; and (d) generating means for generating two separate code streams from said LIR'.
Claim 15
Dependent Claim
13 words
The system of claim 11, further comprising optimizer means for optimizing said LIR.
Claim 16
Dependent Claim
15 words
The system of claim 11, wherein said plurality of parallel vector processors are functionally indentical.
Claim 17
Dependent Claim
14 words
The system of claim 11, wherein said parallel vector processors form a coarse-grained hardware.
Claim 18
Dependent Claim
43 words
The system of claim 11, wherein said generating means further comprises a first means for generating a scalar code stream that will operate on a scalar machine and for generating a virtual register code stream that will operate on a parallel vector machine.
Claim 19
Dependent Claim
29 words
The system of claim 15, wherein said second code stream includes vector instructions which are used to control said parallel vector machine which generally processes said vector instructions concurrently.
Claim 20
Dependent Claim
29 words
The system of claim 15, further comprising second means for generating first object code for a scalar processor and second object code for said plurality of parallel vector processors.
Claim 21
Dependent Claim
75 words
The system of claim 17, wherein said second means further comprises generating object code for said plurality of vector processors, comprising: (a) means for replacing the virtual registers with actual actual data processor registers and sequence pointer registers; (b) means for transforming the code generated in step (a) to overlap loads and stores; (c) means for optimizing the code generated instep (b); and (d) means for generating microcode from said optimized code of step (c).
Claim 22
Dependent Claim
37 words
The method of claim 17, wherein said first object code and said second object code are linked with a run time library in order to produce executable code, wherein said run time library operates on slicewise data.