Related articles |
---|
[3 earlier articles] |
Re: Executing code at compilation time dnovillo@acm.org (Diego Novillo) (2010-03-16) |
Re: Executing code at compilation time bartc@freeuk.com (Bartc) (2010-03-16) |
Re: Executing code at compilation time quinn_jackson2004@yahoo.ca (Quinn Tyler Jackson) (2010-03-16) |
Re: Executing code at compilation time apoelstra@localhost.localdomain (Andrew Poelstra) (2010-03-16) |
Re: Executing code at compilation time bear@sonic.net (Ray) (2010-03-16) |
Re: Executing code at compilation time pat@jantar.org (Patryk Zadarnowski) (2010-03-17) |
Re: Executing code at compilation time shreyas76@gmail.com (shrey) (2010-03-16) |
Re: Executing code at compilation time pronesto@gmail.com (Fernando Magno Quintao Pereira) (2010-03-16) |
Re: Executing code at compilation time pat@jantar.org (Patryk Zadarnowski) (2010-03-17) |
Re: Executing code at compilation time gah@ugcs.caltech.edu (glen herrmannsfeldt) (2010-03-17) |
Re: Executing code at compilation time bear@sonic.net (Ray) (2010-03-19) |
Re: Executing code at compilation time bear@sonic.net (Ray) (2010-03-19) |
Re: Executing code at compilation time bobduff@shell01.TheWorld.com (Robert A Duff) (2010-03-21) |
[4 later articles] |
From: | shrey <shreyas76@gmail.com> |
Newsgroups: | comp.compilers |
Date: | Tue, 16 Mar 2010 17:03:04 -0700 (PDT) |
Organization: | Compilers Central |
References: | 10-03-038 |
Keywords: | optimize |
Posted-Date: | 16 Mar 2010 23:39:15 EDT |
The first loop is case of recognizing that it is reduction pattern.
The simplest case of the pattern will present as a cyclic loop self
dependence.
The following book explans the concepts for this very well...
Optimizing Compilers for Modern Architectures: A Dependence-based
Approach by Randy Allen and Ken Kennedy
In the second loop, if you didnt have the if I can imagine some
compiler trying to collapse the loops and then recognizing there is a
reduction.
Resolving the if with % needs some complex induction variable
analysis. GCC with its scalar evolution module probably has the
ability to do the reasoning on the possible values that trigger the
condition.
thanks
shrey
On Mar 15, 6:53 pm, Fernando <prone...@gmail.com> wrote:
> GCC does a pretty good job at optimizing a program like this one
> below:
>
> #include <stdio.h>
>
> int main(int argc, char** argv) {
> int i = 0;
> int sum = 0;
> for (; i < 10; i++) {
> sum += i;
> }
> printf("The sum is %d\n", sum);
>
> }
>
> GCC -O1 produces an assembly that simply prints the answer, 45. It
> completely resolves the loop.
>
> I would like to know what kind of optimizations are used to be able to
> completely resolve the loop. Could you give me some source? E.g,
> chapter in textbook, or paper?
Return to the
comp.compilers page.
Search the
comp.compilers archives again.