Patent ID: 7784039

Claim:
A compiler apparatus including a microprocessor for converting a source program including a branch instruction into an object program composed of lines of object code, the apparatus comprising: an execution path specifying unit configured to specify one of a plurality of execution paths of a partial series of instructions, including a branch instruction, of the source program; an execution-path code generating unit configured to generate execution-path code that is object code corresponding to instructions residing on the specified execution path except the branch instruction, with replacing each specific variable residing on the specified execution path with another variable which does not reside on the specified execution path, wherein the specific variable is a variable that needs to be alive at an entry point of the specified execution path and is defined on the specified execution path; a restoration code generating unit configured to generate restoration code for restoring each of the replaced variables that needs to be alive at an exit point of the specified execution path to an original variable; a partial code generating unit configured to generate partial code corresponding to the partial series of instructions; a branch code generating unit configured to generate branch code based on a branch condition of the branch instruction residing on the specified execution path; and an optimizer configured to optimize the execution-path code to improve execution speed, wherein the branch code leads from an end of the execution-path code to a beginning of the restoration code if the branch condition is true, and leads from the end of the execution-path code to a beginning of the partial code if the branch condition is false so that the partial code including branch instruction is executed after end of execution of the execution-path code.