Compilation of unified parallel C-language programs
AssigneeInternational Business Machines Corporation
InventorsManish Kurhekar, Pradeep Varma, Rajkishore Barik
Life of this patent
Estimating the term…
Abstract
Methods, compiler apparatus and a computer program product for compiling UPC source code are disclosed. UPC-unique constructs are converted into C-level form. The C-level constructs are inserted into the source code to form a combined code. The combined code is translated into an intermediate form, wherein any surviving UPC-unique components are discarded. All UPC-unique data or statements are converted to a form that can be handled by general compiler architectures, yet retain UPC properties. The resultant intermediate form is converted to compiled machine code. The generation of C-level constructs occurs at a compiler front end module, avoiding difficulties in intermediate code handling.
Claims36
A method for compiling Unified Parallel C-language (UPC) source code containing UPC-unique constructs and C-language constructs, said method comprising:
- translating said UPC source code into a first intermediate form;
- generating proxy form C-language code strings of data components within said first intermediate form;
- inserting said generated code strings into said UPC source code to form a combined code;
- translating said combined code into a second intermediate form, wherein any references to said UPC-unique constructs are replaced by references to corresponding proxy components in associated program text, and surviving UPC-unique constructs are discarded;
- and
- convening said second intermediate form to compiled machine code.
A method for compiling Unified Parallel C-language (UPC) source code, said method comprising:
- converting UPC-unique constructs into C-level form;
- inserting said C-level constructs into said source code to form a combined code;
- translating said combined code to an intermediate form, wherein any surviving UPC-unique components are discarded;
- and
- converting said intermediate form to compiled machine code.
A program storage device readable by computer, tangibly embodying a program of instructions executable by said computer to perform a method for compiling Unified Parallel C-language (UPC) source code containing UPC-unique constructs and C-language constructs, said method comprising:
- translating said UPC source code into a first intermediate form;
- generating proxy form C-language code strings of data components within said first intermediate form;
- inserting said generated code strings into said UPC source code to form a combined code;
- translating said combined code into a second intermediate form, wherein any references to said UPC-unique constructs are replaced by references to corresponding proxy components in associated program text and surviving UPC-unique constructs are discarded;
- and
- converting said second intermediate form to compiled machine code.
A Unified Parallel C-language (UPC) compiler system comprising:
- plural parallel processor nodes, a front end module operable for receiving UPC source code;
- an intermediate form processor operable for converting UPC-unique constructs into C-level form, wherein said intermediate form processor loads and stores data from run-time libraries from any said processor node;
- a feedback loop to said front end module,
- wherein said front end module further inserts said C-level constructs into said source code to form a combined code;
- wherein said intermediate form processor translates said combined code to an intermediate form, wherein any surviving UPC-unique components are discarded;
- and
- a back end module operable for converting said intermediate form to compiled machine code.
A program storage device readable by computer, tangibly embodying a program of instructions executable by said computer to perform a method for compiling Unified Parallel C-language (UPC) source code, said method comprising:
- converting UPC-unique constructs into C-level form;
- inserting said C-level constructs into said source code to form a combined code;
- translating said combined code to an intermediate form, wherein any surviving UPC-unique components are discarded;
- and
- convening said intermediate form to compiled machine code.
A parallel distributed shared memory computer system having a single real address space, comprising:
- a plurality of processor modules;
- a memory unit associated with each processor module;
- and
- an interconnection network linking all processor modules and memory units;
- wherein each processor module includes a Unified Parallel C-language (UPC) compiler module, each said UPC compiler module including:
- a front end module operable for receiving UPC source code;
- an intermediate form processor operable for converting UPC-unique constructs into C-level form;
- a feedback loop to said front end processor,
- wherein said front end module further inserts said C-level constructs into said source code to form a combined code;
- wherein said intermediate form processor translates said combined code to an intermediate form, wherein any surviving UPC-unique components are discarded;
- and
- a back end module operable for converting said intermediate form to compiled machine code.
Dependencies are inferred from the claim text.