The present invention eliminates redundant array range checks. A two-phased check is performed, namely a wide range check is performed by combining a plurality of array range checks, and a strict range check is unsuccessful, so as to reduce the number of range checks at execution time and allow execution at high speed. For instance, it is possible with a processor such as PowerPC, by using a flag, to invalidate a code for performing an array range check at high speed without increasing a code size. Consequently, the number of array range checks to be executed can be reduced so as to allow execution at high speed. Also, for instance, a plurality of array range checks can be combined without considering existence of instructions which cause a side effect. Consequently, the number of array range checks to be executed can be reduced so as to allow execution at high speed. In addition, a versioning is performed by using, as array access information for versioning, information of array access information for versioning information of array accesses which are always performed even if passing through any execution path in a loop so that there are fewer cases where it goes to a version with a larger number of array range checks at execution time.

A invenção atual elimina verificações redundantes da escala da disposição. Uma verificação dois-two-phased é executada, a saber uma verificação da escala larga é executada combinando um plurality de verificações da escala da disposição, e uma verificação estrita da escala é mal sucedida, para reduzir o número de verificações da escala no tempo de execução e permitir a execução na alta velocidade. Por exemplo, é possível com um processador tal como PowerPC, usando uma bandeira, invalidate um código para executar uma verificação da escala da disposição na alta velocidade sem aumentar um tamanho de código. Conseqüentemente, o número das verificações da escala da disposição a ser executadas pode ser reduzido para permitir a execução na alta velocidade. Também, por exemplo, um plurality de verificações da escala da disposição pode ser combinado sem considerar a existência das instruções que causam um efeito lateral. Conseqüentemente, o número das verificações da escala da disposição a ser executadas pode ser reduzido para permitir a execução na alta velocidade. Além, versioning é executado usando, enquanto a informação para versioning, informação do acesso da disposição da informação do acesso da disposição para a informação versioning dos acessos da disposição que estão executados sempre mesmo se passando através de qualquer trajeto da execução em um laço de modo que haja poucos casos aonde vai a uma versão com um número maior da escala da disposição verifica no tempo de execução.

 
Web www.patentalert.com

< Method and apparatus for generating code for array range check and method and apparatus for versioning

< Method and apparatus for generating code for array range check and method and apparatus for versioning

> Data referencing within a database graph

> Apparatus and method for providing metadata for the creation of semi-deployed enterprise java beans

~ 00094