Profile-driven optimization

Tim Frink <>
Tue, 29 Jan 2008 11:29:15 +0100

          From comp.compilers

Related articles
Profile-driven optimization (Tim Frink) (2008-01-29)
Re: Profile-driven optimization (Gene) (2008-01-31)
Re: Profile-driven optimization (=?ISO-8859-1?Q?Pertti_Kellom=E4ki?=) (2008-02-01)
Re: Profile-driven optimization (M Wolfe) (2008-02-02)
Re: Profile-driven optimization (Pasi Ojala) (2008-02-08)
| List of all articles for this month |

From: Tim Frink <>
Newsgroups: comp.compilers
Date: Tue, 29 Jan 2008 11:29:15 +0100
Organization: CS Department, University of Dortmund, Germany
Keywords: optimize, question
Posted-Date: 30 Jan 2008 00:40:59 EST


Recent versions of compilers perform profile-driven optimizations,
i.e. they first profile the program by running it and collect
information about the frequency of taken branches and how often basic
blocks have been executed. Based on that, they get one path through
the program that is executed most frequently.

I'm now wondering what sort of optimizations can be performed to that
path. The only optimization I know is block re-ordering by moving
blocks such that unconditional branches are eliminated on the typical
path leading to e.g. an improved pipeline behavior due to missing
conditional hazards.

Most of the optimizations could be applied to the entire code since
they can improve code quality globally so it does not make sense to
perform for example constant propagation just to this one path and
leave the remaining code unchanged. This is the same for other
compiler optimizations that come into my mind.

Do you know any other optimizations that could be applied in
particular to this one path? This must be some sort of optimizations
that, due to any restrictions, cannot be applied to the entire code
but just to some few code fragments (like the profiling path).

Any papers/links/books are appreciated.

Best regards,
[I wouldn't say it's recent. Multiflow's compiler was using profile
feedback at least 20 years ago. There must be lots of papers since
then. -John]

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.