25112 Rev. 3.06 September 2005

Software Optimization Guide for AMD64 Processors

5.12Sorting Local Variables

Optimization

Sort local variables according to their type sizes, allocating those with larger type sizes ahead of those with smaller type sizes.

Application

This optimization applies to:

32-bit software

64-bit software

Rationale

If the first variable is allocated for natural alignment, all other variables are allocated contiguously in the order they are declared and are naturally aligned without any padding.

Example

Consider the following declarations in a C function:

short ga, gu, gi; long foo, bar; double x, y, z[3]; char a, b;

float baz;

Instead of allocating the variables in the order in which they are declared, allocate them from lower to higher addresses in the following order:

x, y, z[2], z[1], z[0], foo, bar, baz, ga, gu, gi, a, b

Related Information

For information on sorting local variables at the C-source level, see “Sorting Local Variables” on page 41.

Chapter 5

Cache and Memory Optimizations

119

Page 135
Image 135
AMD 250 manual Sorting Local Variables, 119