This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Transformations to increase parallelism


Hi,

Are there optimizations in gcc that increase instruction level parallelism? For example:

void foo(int *p, int a)
{
       a += 2;
       p[0] = a;
       a += 2;
       p[1] = a;
}

compiles to

       add a, 2 -> tmp1
       store p[0], tmp1
       add tmp1, 2 -> tmp2
       store p[1], tmp2

However, a more parallel translation would be:

       add a, 2 -> tmp1
       store p[0], tmp1
       add a, 4 -> tmp2
       store p[1], tmp2

In this case the two adds and the two stores can be executed in parallel.

Jan

_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]