Abstract:
PROBLEM TO BE SOLVED: To provide a method for comprehensively and automatically generating a prefetch instruction when a cache state includes three states: "having no data; for loading; and for both loading and storage", and to provide a compiler. SOLUTION: The method for generating the prefetch instruction of the compiler includes: a step of specifying as an optimization target a loading instruction for causing a cache to transition from a state having no data to a state suitable for loading among instructions included in an area to be optimized and a storage instruction for causing the cache to transition from a state suitable for loading to a state suitable for loading and storage among the instructions included in the area to be optimized, for each of one or more areas to be optimized constituting a source program being a compile target; and a step of determining a position for inserting a prefetch instruction in the area to be optimized on the basis of the specified optimization target and a branch probability of each if sentence included in the source program, and generating the prefetch instruction at the position. COPYRIGHT: (C)2010,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To optimize a process calculating a value to be assigned to a variable. SOLUTION: A compiler apparatus for optimizing a program includes: a range analysis unit for analyzing a range of a value assignable to the variable by the instruction, as a range of the variable in the case where the instruction is executed in terms of an instruction to assign a value to a variable in the program; a determination unit for determining if the execution result of the program does not change even if the instruction assigns any value in the range of the variable on the basis of the analyzed range of the variable; and a replacement unit for replacing the instruction to assign the value to the variable with an instruction to assign a constant value in the range of the variable to the variable on condition that the determination by the determination unit is formed. COPYRIGHT: (C)2009,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To improve the executing efficiency of a program by reducing the influences of an explicit order for matching the images of local variables between a code train executed via an interpreter and a compiled code train for optimizing operation. SOLUTION: This program conversion method comprises a first step of setting a code negligible in the certain deformation of the second code train out of codes in the first code train giving influences to the deformation of the second code train during transition from the first code train where an object to be executed by a program is executed via the interpreter to the second compiled code train and a second step of performing the certain deformation of the second code train while neglecting the set negligible code. It is acceptable that it includes a third step of generating a compensation code required for the deformation of the second code train including the propagation of a copying order and inserting it into the first code train. COPYRIGHT: (C)2004,JPO
Abstract:
PROBLEM TO BE SOLVED: To shorten time required for compilation including optimization based on specification and to suppress memory consumption for compilation. SOLUTION: The compiler 10 is provided with an influence degree analysis part 12 for analyzing how much the execution speed of a program to be compiled can be improved by fixing the parameter of a prescribed instruction in the program to a specific state, a specification data selection part 13 for taking the statistics of appearance frequency in each state of the parameter of the instruction analyzed by the analysis part 12 and determining which state is to be adopted for the parameter of the instruction based on the obtained static information and a specified compiling processing part 14 for generating a specified pass fixing the parameter of the prescribed instruction to the specific state in the program based on the processing results of the analysis part 12 and the selection part 13.
Abstract:
PROBLEM TO BE SOLVED: To decrease the frequency of an array range check and to increase execution speed by generating a code for an array range check included in array range checks. SOLUTION: Array range checks, corresponding to array access operations, are integrated under specific conditions and the result is stored in a storage device (110). An array range check is assigned to one ore more flags (120). Codes to be stored in the assigned flags are generated and stored in a storage device (130). If versioning is carried out (140), a versioning header is generated by using the flags, and a version of flag check success and a version of flag check failure are generated and stored in the storage device (150). A code, which invalidates a code is generated and stored in the storage device (160). Consequently, array range checks which are to be removed becomes few.