Abstract:
PROBLEM TO BE SOLVED: To optimize a program by changing the execution order of instructions. SOLUTION: This compiler device for optimizing a program by changing the execution order of instructions is provided with a replaceability deciding part for deciding whether or not a first instruction included in a first instruction column and a second instruction included in a second instruction column to be executed the next to the first instruction column can be replaced with a common processing instruction group including a common processing instruction to process at least every portion of processing in accordance with the first instruction and the second instruction together, a common processing instruction group generating part for generating a common processing instruction group in a first instruction column instead of the first instruction when it is decided that those instructions can be replaced by the replaceability deciding part and an instruction inserting part for inserting the second instruction into a third instruction column, being an instruction column other than a first instruction column, succeeding to which a second instruction column is executed. COPYRIGHT: (C)2004,JPO&NCIPI
Abstract:
PROBLEM TO BE SOLVED: To optimize a program by changing the execution order of instructions possible to cause an exception. SOLUTION: An optimizer for changing the execution order of the instructions in an optimization object program is provided with: an exception generating instruction detection part 310 for detecting a first instruction possible to cause the exception; a guarantee instruction detection part 315 for detecting a second instruction which is executed before the first instruction and guarantees that the exception of the first instruction is not to be caused; and an execution order control part 330 for changing the execution order of the first instruction so as to execute the first instruction before a selectively executed condition branching instruction and after the second instruction. COPYRIGHT: (C)2004,JPO
Abstract:
PROBLEM TO BE SOLVED: To effectively perform a scalar replacement without performing analysis in a method when a program is optimized. SOLUTION: This program converting method comprises a code converting part 110 for creating a machine language code on the basis of a source code of an execution program as a processed object, an optimizing range determining part 120 for determining a range where the object created in a method does not escape, with respect to the method in the execution program by the machine language code, and a scalar replacement executing part 130 for performing the scalar replacement within the range where the object does not escape. COPYRIGHT: (C)2003,JPO
Abstract:
PROBLEM TO BE SOLVED: To provide a technique for optimizing a use of a code setup instruction for correctly setting a Packed Decimal type code.SOLUTION: An attention is focused on sizes of input/output fields of a code setup instruction for correctly setting a Packed Decimal code, for example a ZAP instruction. When the input/output fields of the instruction are identical in size to each other, the optimization is carried out by: (1) processing of removing a ZAP instruction or replacing it with a copy instruction, when it can be determined that an input value of the ZAP instruction is not -0 at all times, the processing being performed when it can be determined that the input value results from an add operation or a subtraction operation and the value is greater than the value prior to the operation (for example, the operation of adding 1); (2) removing the ZAP instruction when the input and output addresses are also identical to each other; and (3) replacing the ZAP instruction with the instruction for copying the input to the output when it can be determined that the input and output addresses are different from each other and do not overlap each other.
Abstract:
PROBLEM TO BE SOLVED: To optimize much more instruction columns to processing when variables are specific values for compilation. SOLUTION: This optimization compiler is provided with an update instruction detecting part which detects an update instruction to update the contents of variables and a storage region designated by the variables in a program to be optimized, an instruction column detecting part for detecting an instruction column for executing different processing according to the contents of the variables or the storage region when control is shifted by a control shift instruction for shifting control to another instruction column in the target program, an instruction column compiling part for optimizing the detected instruction column to processing when the contents of the variables or the storage region are preliminarily decided specific contents for compilation and a setting instruction generating part for generating a setting instruction to be executed when the contents of the variables or the contents of the storage region are specific contents from the update instruction to the control shift instruction in the object program for setting the shift destination address of the control shift instruction to the address of the instruction column optimized by the instruction column compiling part. COPYRIGHT: (C)2005,JPO&NCIPI
Abstract:
PROBLEM TO BE SOLVED: To enhance efficiency in executing a program by removing redundant sign extension commands in the program. SOLUTION: This conversion program, in particular, a compiler 10 is used for converting the execution program by controlling a computer, and causes the execution program to be realized, in the computer, the function of performing analysis on sign extension commands for extending the signs of values defined in the execution program, and the function of removing prescribed sign extension commands among sign extension commands, in the execution program according to the result of the analysis.
Abstract:
PROBLEM TO BE SOLVED: To perform optimization with high effect to a program including an instruction in which an exception processing is possible to happen. SOLUTION: In this compiler to convert a source code of a program described in a programming language into the one in a machine language, an optimization processing executing part 12 to perform an optimization processing to an object program converted into the machine language, a pre-processing part 11 and a post-processing part 13 to perform deformation to absorb difference in the contents between a generation point of the exception processing regarding the instruction in which the exception processing is possible to happen in the object program and a place where the exception processing is performed to the object program are provided.
Abstract:
PROBLEM TO BE SOLVED: To remove unnecessary arranged range check by collecting arranged range check information by using data flow analysis, etc., and performing move up of the check, etc. SOLUTION: C-GEN[B] is collected according to a specified condition in the reverse order of execution in respective basic blocks B (110) and information about the C- GEN[B] is stored in a storage device. And the C-GEN[B] is propagated as adding necessary correction in the order of post order traversal for priority search of depth, C-IN [B] of the respective basic blocks B (C120) is generated and information about the C-IN[B] is stored in the storage device. Finally, a check code for versioning and an execution code in respective execution states are generated in front of a loop by using the C-IN[B] (130). The check code and the execution code are stored in the storage device for execution. Thus, the arranged range check in the loop is removed.
Abstract:
PROBLEM TO BE SOLVED: To solve the problem in which an optimization technique for directly executing optimization to a binary code of a language having access to a variable of a zone decimal form, and applicable to a binary code having an instruction which can be an adverse effect is demanded.SOLUTION: The present invention provides an optimization technique for optimizing a binary code. The optimization technique includes steps of: detecting an area without an instruction which includes access to a variable of a zone decimal form and can be an adverse effect for the respective variables from the inside of the binary code read in a memory; and performing, in the detected area, processing for converting the variable of the zone decimal form into a binary type, processing for deleting from the binary code a code of PACK/UNPACK of which the converted result does not change even when the code of PACK/UNPACK is deleted, or processing in combination of them.
Abstract:
PROBLEM TO BE SOLVED: To manage an object by accessing management information by non-detection write processing which does not detect the generation of writing in an unchangeable object.SOLUTION: An apparatus for executing a target program includes: a storage part for storing a value of an object and management information of the object in association with each other; a code generation part for generating an optimized object optimized under a condition that the value of the object is unchangeable and an unoptimized code which is executed when the value of the object is changed from the target program; a switching part which when the target program is executed by the optimized code, switches the execution of the target program from execution on the basis of the optimized code to execution on the basis of the unoptimized code according to the generation of writing of a value to the object; and a management part for managing the object by accessing management information by the non-detection write processing which does not detect the generation of writing in the object.