Nullstone Logo

COMPANY
Home
Contacts
Customers
Testimonials

PRODUCTS
Overview
NULLSTONE for C
NULLSTONE for Java
Technical Overview

SUPPORT
Release Notes
Download
PGP Information
Service Report
Write Us

INFORMATION
Performance Results
Glossary of Terms

RELATED LINKS
Compiler Connection
Compiler Jobs

Previous Up Next
Alias Optimization (by address)

Two pointers that point to members of different arrays can not be aliases, even if the offsets within arrays are not known.

Example:

In the code fragment below, the specific objects pointed to by p and q are not known, but they are members of different arrays, and therefore can not be aliased.

    int a[], b[];
    
    void f (int i, int j)
    {
      int *p, *q;
      int x, y;
      p = &a[i];
      q = &b[j];
      x = *(q + 3);
      *p = 5;
      y = *(q + 3);
      g (x, y);
    }
    

Since p and q are not aliased, the second reference to *(q + 3) can be eliminated, as shown below.

    int a[], b[];
    
    void f(int i, int j)
    {
      int *p, *q;
      int x, y;
      p = &a[i];
      q = &b[j];
      x = *(q + 3);
      *p = 5;
      g (x, x);
    }
    

© 1990-2012 Nullstone Corporation. All Rights Reserved.