Nova Patents
USRE45199E

Compiler apparatus

Claim Score by NHIP

Read claim 21, the broadest

Abstract

A compiler apparatus, which can perform software pipelining optimization that has a considerable effect of reducing the number of execution cycles taken to complete a loop process, converts a source program into a machine program for a processor which is capable of parallel processing. The compiler apparatus is composed of: a parsing unit operable to parse the source program and then to convert the source program into an intermediate program which is described in an intermediate language; an optimization unit operable to optimize the intermediate program; and a conversion unit operable to convert the optimized intermediate program into the machine language program, wherein the optimization unit is operable to execute software pipelining, by inserting a transfer instruction, which is used for transferring data between operands, into a loop process included in the intermediate program so that a data dependence relation is changed.

Term

Term ended

Expired 24 May 2026, 0.3 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

23 claims: 8 independent, 15 dependent

  1. 1
    A compiler apparatus comprising a processor for converting a source program into a machine language program for a processor device which is capable of parallel processing, the converting being performed by a computer, said compiler apparatus comprising:a parser configured to parse the source program and then to convert the source program into an intermediate program which is described in an intermediate language;an optimizer configured to optimize the intermediate program;and a converter configured to convert the optimized intermediate program into the machine language program, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, said optimizer executes software pipelining, by inserting a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is changed removed .
  2. 10
    A compiling method for converting, by a computer, a source program into a machine language program for a processor which is capable of parallel processing, the compiling method comprising:parsing the source program and then converting the source program into an intermediate program which is described in an intermediate language;optimizing the intermediate program;and converting the optimized intermediate program into the machine language program, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, in the optimizing of the intermediate program, software pipelining is executed, by an insertion of a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is changed removed .
  3. 18
    A compiler comprising a processor which causes a computer to convert a source program into a machine language program for a processor device that is capable of parallel processing, said compiler comprising an execution apparatus and causing said computer to execute:parsing the source program and then converting the source program into an intermediate program which is described in an intermediate language;optimizing the intermediate program;and converting the optimized intermediate program into the machine language program, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, in said optimizing of the intermediate program, software pipelining is executed, by an insertion of a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is changed removed .
  4. 19
    A non-transitory computer-readable recording medium which records a compiler for causing a computer to convert a source program into a machine language program for a processor that is capable of parallel processing, said compiler causing said computer to execute:parsing the source program and then converting the source program into an intermediate program which is described in an intermediate language;optimizing the intermediate program;and converting the optimized intermediate program into the machine language program, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, in the optimizing of the intermediate program, software pipelining is executed, by an insertion of a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is changed removed .
  5. 20
    A non-transitory computer readable recording medium that stores a program for a processor which is capable of parallel processing, the program being recorded on a non-transitory, computer readable recording medium, said program causing said processor to execute:an instruction for executing iterations of a loop process in parallel;and a transfer instruction for transferring data between operands used in an instruction making up a closed path which starts with and ends with a same instruction, the closed path tracing data dependences of the instruction included in a data dependence graph created with respect to the loop process, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in the loop process.
  6. 21
    Broadest claimClaim Score 61, broad(NHIP)A system comprising:a target processor that is capable of parallel processing;and a compiler apparatus for the target processor, the compiler apparatus comprising: a parser configured to parse a source program and then to convert the source program into an intermediate program which is described in an intermediate language;an optimizer configured to optimize the intermediate program;and a converter configured to convert the optimized intermediate program into the machine language program, and to provide the machine language program to the target processor, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, said optimizer executes software pipelining, by inserting a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is removed.
  7. 22
    A system comprising:a target processor that is capable of parallel processing;and a non-transitory computer-readable recording medium which records a program for causing a computer to convert a source program into a machine language program for the target processor, the program causing the computer to execute: parsing the source program and then converting the source program into an intermediate program which is described in an intermediate language;optimizing the intermediate program;and converting the optimized intermediate program into the machine language program, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, in the optimizing of the intermediate program, software pipelining is executed, by an insertion of a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is removed.
  8. 23
    A system comprising:a target processor that is capable of parallel processing;and a server computer that transmits a program to the target processor, the program causing a processor to convert a source program into a machine language program for the target processor, the program causing the processor to execute: parsing the source program and then converting the source program into an intermediate program which is described in an intermediate language;optimizing the intermediate program;and converting the optimized intermediate program into the machine language program, wherein, when there is a cyclic data dependence relation that starts with and ends with an instruction among at least three instructions in a loop process, in the optimizing of the intermediate program, software pipelining is executed, by an insertion of a transfer instruction, which is used for transferring data between operands, into the loop process included in the intermediate program so that the cyclic data dependence relation is removed.