A method and apparatus for optimizing the compilation of a computer program
by exposing parallelism are disclosed. Information describing the
operations in the program and their sequence is extracted and stored in a
data structure. The operations in the program which involve index
expressions are identified and symbolically executed, producing
information describing the memory accesses by the program. Operations
which can be executed in parallel are identified based on the information
describing memory accesses. The program is interrogated with questions in
a question data structure relating to how the program accesses memory. The
answers to the questions are accumulated in index sets and back annotated
into the question data structure.
Um método e um instrumento para optimizing a compilação de um programa de computador expondo o paralelismo são divulgados. A informação que descreve as operações no programa e em sua seqüência é extraída e armazenada em uma estrutura de dados. As operações no programa que envolvem expressões do índice são identificadas e executadas simbolicamente, produzindo a informação que descreve os acessos de memória pelo programa. As operações que podem ser executadas na paralela são identificadas basearam na informação que descreve acessos de memória. O programa interrogated com perguntas em uma estrutura de dados da pergunta que relaciona-se a como o programa alcança a memória. As respostas às perguntas são acumuladas nos jogos e na parte traseira do índice anotados na estrutura de dados da pergunta.