Abstract:
PROBLEM TO BE SOLVED: To solve the problem that in requiring resisters of a number exceeding an analyzed number, the necessary register number consequently exceeds the register number provided in a computer, operation must be performed by using a memory lower in speed than the registers with poor efficiency. SOLUTION: This compiler device for optimizing a program comprises an order limitation information acquisition part for acquiring order limitation information determined between a plurality of instructions of the program; an order determination part for successively determining the execution order of executing each instruction based on the order limitation information; a register number analysis part for analyzing the necessary register number that is the number of registers needed in execution of the instructions with determined execution orders; an instruction detection part for detecting a combination of two instructions, one order being an order-determined instruction, and the other order being an order non-determined instruction, in which an order limitation for executing the one instruction prior to the other instruction is not included in the order limitation information; and an order determination reprocessing part for changing, when the necessary register number exceeds a predetermined number, the one instruction to a state where no execution order is determined and determining the execution orders so as to execute the one command after the other command. COPYRIGHT: (C)2005,JPO&NCIPI
Abstract:
PROBLEM TO BE SOLVED: To enable a code conversion device 10 for converting a code to be converted such as a Java byte code into a machine language code to generate the machine language code associated with effective prefetch. SOLUTION: Under the consideration of a pointer reference load instruction in each iteration of a loop on a program and a data dependent load instruction with respect to the pointer reference load instruction in each iteration, first and second detecting means 17 and 18 check inter-iteration and in-iteration strides associated with the pointer reference load instruction and the data dependent load instruction by performing access to a heap memory 19. First and second machine language code part generating means generate a predetermined machine language code part on the basis of the inter-iteration and in-iteration constant strides set by a setting means 22. As a result, in machine language code execution, data associated with the data dependent load instruction are effectively prefetched from a heap memory 13 to a cache memory. COPYRIGHT: (C)2005,JPO&NCIPI
Abstract:
PROBLEM TO BE SOLVED: To effectively optimize an object code in the range satisfying limitation caused by the number of physical registers of a processor. SOLUTION: This compiler device performs code generation from a program represented by a DAG(directed acyclic graph) while evaluating the number of used registers and the number of execution cycles and optimizes a code to be generated. That is, the compiler calculates the number of cycles with which each operation can be executed on the DAG and the number of the currently available registers, performs code generation while preceding an operator on an execution path that takes the most time in the DAG in a part where the number of registers is sufficient, and performs code generation while preceding such an operator as to reduce the number of used registers when the number of registers is not sufficient.
Abstract:
PROBLEM TO BE SOLVED: To provide a mechanism for stopping only a thread in which a fault is caused or a fault may be caused from another thread without stopping the whole system having a locked thread. SOLUTION: A computer system stores a program including a code for a critical section, wherein the critical section includes an instruction for writing or reading a value to/from a shared data area in a memory. The instruction acquires lock for the critical section before the start of an initial instruction in the critical section, writes a value in a thread local area in the memory instead of writing the value in the shared data area in response to a writing instruction to the shared data area, writes the value written in the thread local area in the shared data area in response to the end of a final instruction in the critical section, and unlocks the critical section. COPYRIGHT: (C)2010,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To reduce variables not to be allocated to registers, reduce transfer of value between registers, and improve efficiency in executing a program. SOLUTION: A compiler device stores interference information indicating an interference relation between variables, selects a register according to a predetermined procedure from a reference number or more of the registers so that the same register is not allocated to the set of variables having the interference relation, allocates the register to each of the respective variables, substitutes the plurality of variables allocated to the same register with new variables, merges the interference relations for each of the plurality of variables, generates an interference relation for the new variables, updates the interference information according to the interference relation, and allocates a register selected from the reference number or more of registers according to a procedure same as the predetermined procedure to each of the variables in the program that uses the new variables so that the same register is not allocated to a set of certain variables having an interference relation based on the updated interference information. COPYRIGHT: (C)2009,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To perform instruction movement for speculative execution while securing shortening of execution time to exception dependence for hardware- initiated potentially exception instructions (H-PEI) and software-initiated potentially exception instructions (S-PEI) inserted before the H-PEI, in a device which compiles a program described in a type safe language such as Java. SOLUTION: A dependence graph discriminating an exception dependent arc from other dependence arcs such as a control dependence arc or a data dependence arc is created. As to the fastest execution start time of H-PEI, it is examined which case is faster, execution through the exception dependence arc or execution not through the exception dependence arc. If the latter case is faster, the instruction movement for the speculative execution for the instruction sequence including the H-PEI is performed. COPYRIGHT: (C)2004,JPO
Abstract:
PROBLEM TO BE SOLVED: To make effectively obtainable the instruction level parallelism of a program including an exception generable instruction by relaxing the preceding constraint of the exception generation validation instruction to the other instruction like software. SOLUTION: This compiler is provided with a DAG generating part 21 for generating a DAG by analyzing the four sets of intermediate codes of a program to be processed, a DAG editing part 22 for editing the generated DAG, and relaxing the sequence constraint of operators due to exceptions, and a four set of intermediate code reproducing part 23 for generating the four sets of intermediate codes on which the structure of the edited DAG is reflected. Then, an exception generable instruction and an exception generation detection instruction are detected from the DAG, and the detected exception generation detection instruction is divided into a first instruction for detecting the generation condition of exceptions and a second instruction for conditionally branching the processing to the exception processing. Then, dependency is set so that when the generation condition of the exceptions is detected in response to the first instruction, its transition to the second instruction can be performed, and when the generation condition of exceptions is not detected, its transition to the exception generable instruction can be performed.
Abstract:
PROBLEM TO BE SOLVED: To provide a method and device for processing a multidimensional array object capable of improving the processing speed of multidimensional disposition without the change of a specification. SOLUTION: The object of the processing method of this multidimensional array object is the processing method of the multidimensional object in a language (Java, e.g.) where the multidimensional array is realized by the array of array objects. The multidimensional array object consisting of the array object constituting the multidimensional array is added with a processing optimization possible flag showing that processing to the element of the multidimensional array can be optimized as additional information. The processing optimization possible flag is stored in a storing device (a main memory e.g.). After then, a machine code corresponding to the state of the processing optimization possible flag is executed.