Abstract:
PROBLEM TO BE SOLVED: To read/write a value of a global variable speculatively and to enable rollback, in a simulation system by a computer. SOLUTION: For each global variable used in a logical process (LPn), writing of a value into a global variable is performed by writing write time and a write value thereof into a write table 1012, and reading of a value of a global variable is performed by reading of a value from the write table, and writing the time required therefor and a read value into a read table 1014. In response to writing performed into a global variable, in a simulation system, for an entry to a read table of each logical process, if an invalid entry is found in the read table by comparing entries in the write table, a doubt message is issued to a logical process related to the read table, and the logical process having received the doubt message performs necessary rollback processing. COPYRIGHT: (C)2010,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To efficiently simulate a system having a plurality of heterogeneous ECUs by software means. SOLUTION: Referring to an ECU emulator or each physical apparatus simulator as a logical process, each ECU emulator is speculatively emulated, and in each logical process, even if an input event is not reached, input is predicted to proceed with processing. By this speculative execution, processing is performed in advance without waiting for output of another logical process, thus improving parallelism in processes. If actual input received belatedly does not match with input for predicted speculative execution, the speculative execution ends in failure, thereby returning back to a state at the previous time, and on the basis of actual input, the processing is reexecuted. An allowable error is set for matching determination for actually received input and input at predictive speculative execution, thus enabling setting to satisfy both of accuracy and speed of simulation. 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 suppress the occurrence of a stack overflow or a stack underflow to prevent the execution performance of a program from being degraded by them in program code generation for a processor which has an architecture using a register stack. SOLUTION: A compiler 10 is provided with a register allocator 11 which allocates registers to instructions in a program as the compilation object and a code generator 12 which generates object codes on the basis of the result of register allocation by the register allocator 11. The register allocator 11 allocates logical registers to instruction in the program as the compilation object and allocates the logical registers allocated to instructions in the program to physical registers so that physical registers existing at the time of calling procedures in the program as the compilation object may be allocated in order from the bottom of the register stack. COPYRIGHT: (C)2003,JPO
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 suppress an increase in code size in a code versioning optimization process by generating a code for a part of a program in a 1st execution state and profile information used in case of transition to a 2nd execution state and generating a code for activating a code generating process in case of the transition to the 2nd execution state. SOLUTION: At the compilation, parts of the program which can be classified into at least the 1st and 2nd execution states are selected under given conditions. A check code for the classification of the execution states generated and a code for the part of the program in the 1st execution state is generated. The profile information used in case of the transition to the 2nd execution state is generated. A code for activating the code generating process needed in case of the transition to the 2nd execution state is generated. Then the profile information, etc., are further put together by using the address where the code for activation is generated as an identification number to generate a table.
Abstract:
PROBLEM TO BE SOLVED: To parallelize programs shown by, for example, a block diagram. SOLUTION: In the block diagram, when outputs of functional blocks 1214 and 1216 which do not have internal states are used by a functional block A which has an internal state, the functional block A is referred to as a use block of a functional block not having the internal state. When an output of the functional block A having the internal state is used for calculation as an input of the functional block not having the internal state, the functional block A is referred to as a definition block of the functional block not having the internal state. By visiting each functional block as a node, the number of use block sets/definition block sets is calculated per functional block based on a connection relationship between the functional block having the internal state and the functional block not having the internal state, and strands 1202 to 1212 are allocated based on the number. By this, the block diagram is divided into the strands and processing is parallelized. COPYRIGHT: (C)2011,JPO&INPIT