Optimizing compilation of pointer variables

G - Physics – 06 – F

Patent

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

G06F 9/45 (2006.01)

Patent

CA 2200812

Effective use of optimizing techniques during compilation is difficult in programs that make liberal use of pointers or indirect function calls. The indirection often means that the compiler cannot precisely determine the set of objects pointed to by a pointer at a specific location in the program, and therefore cannot efficiently eliminate pointer redundancies in the code. The present invention provides an optimising method that reduces the size of alias sets associated with program pointers. During an initial compilation phase, intraprocedural information about pointer variables referenced in each function of the program is gathered and saved in a data structure called the pointer alias graph. In the middle phase, the pointer alias graphs from all the compilation units for the program are combined to form a universal pointer alias graph and then transitive closure is performed on the universal pointer alias graph to produce a reduced graph containing the list of objects that each pointer variable can point to. In the final phase, all the files are re-compiled using the universal pointer alias graph as input, resolving all occurrences where pointer variables are de-referenced.

Il est difficile d'utiliser efficacement les méthodes d'optimisation durant les compilations dans les programmes faisant abondamment usage de pointeurs ou d'appels de fonction indirects. Avec l'adressage indirect, il arrive souvent que l'ordinateur ne peut reconnaître l'ensemble d'objets désigné par un pointeur à un endroit précis du programme et ne peut par conséquent éliminer efficacement les redondances de pointage dans le code. La présente invention est une méthode d'optimisation qui réduit la taille des ensembles de pseudonymes associés aux pointeurs de programme. Durant la phase de compilation initiale, les information intraprocédurielles sur les variables des pointeurs dont il est fait mention dans chaque fonction du programme sont recueillies et conservées dans une structure de données appelée graphe de pseudonymes de pointeur. Dans la phase intermédiaire, les graphes de pseudonymes de pointeur de toutes les unités de compilation associées au programme sont combinés pour former un graphe de pseudonymes de pointeur universel et une fermeture transitive est effectuée sur ce graphe pour produire un graphe réduit contenant la liste des objets que chaque variable de pointeur peut désigner. Dans la phase finale, tous les fichiers sont recompilés en utilisant le graphe de pseudonymes de pointeur universel comme entrée, ce qui permet de détecter toutes les suppressions de mention de variables de pointeur.

LandOfFree

Say what you really think

Search LandOfFree.com for Canadian inventors and patents. Rate them and share your experience with other people.

Rating

Optimizing compilation of pointer variables does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Optimizing compilation of pointer variables, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Optimizing compilation of pointer variables will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFCA-PAI-O-1612882

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.