|WikiProject Computer science||(Rated Start-class, High-importance)|
|WikiProject Computing||(Rated Start-class, High-importance)|
|The content of Prescient store was merged into Optimizing compiler. That page now redirects here. For the contribution history and old versions of the redirected page, please see ; for the discussion at that location, see its talk page. (2014-03-15)|
|Sources for development of this article may be located at|
"good compilers can often generate better code than human programmers" is a blatant POV. For one, my POV, as a person which way too often looks at assembly output of compilers, is opposite - even "good" compilers often produce visibly suboptimal code, whereas "mediocre" ones emit outright atrocious contraptions. 22.214.171.124 (talk) 16:34, 25 March 2008 (UTC)
Something still missing
dynamic compilation, feedback based optimization, procedural abstraction (and other code-size optimizations generally)
compiler optimzation vs. optimizing compiler
This page is very well written and informative, kudos to the persons who wrote it. And compiler optimization is the correct term. --BL
A real good page, quite informative.Gave me all the info required for my project.My thanks to the writer.[alpha geek]
I've tried to organize and expand this page in a lot of ways. I think compiler optimizations are a very deep field, and each optimization, or at least the more complex ones, deserve their own page giving examples, details, and a full explanation of the algorithm. Look for red links, try to help!
I think the definition, "Compiler optimization techniques are optimization techniques that have been programmed into a compiler," is rather tautologous. --Random reader
Excellent page on compiler optimization with good links to external pages. Very useful in understanding the concepts. More pointers on how to look at the assembly code from gcc and how to interpret the optimization will be hepful. More external links could also be helpful.
Very good article
I think with a little review and touching up this article could become featured. --126.96.36.199 22:50, 16 January 2007 (UTC)
SCCP is greater than the sum of its parts
I've corrected the description of sparse conditional constant propagation (SCCP), which claimed that it's equivalent to iteration of constant propagation, constant folding, and dead-code elimination. In fact, it's more powerful, as the linked Wegman & Zadeck paper shows:
“Many optimizing compilers repeatedly execute constant propagation and unreachable code elimination since each provides information that improves the other. CC solves this problem in an elegant way by combining the two optimizations. Additionally, the algorithm gets better results than are possible by repeated applications of the separate algorithms, as described in Section 5.1.”
(CC is conditional constant propagation, which the authors made “sparse” using SSA.)
Essentially, what can happen is that value A is constant only because block B is dead, but B is dead only because A is constant. Since dataflow and control flow interact, analyzing them in isolation is less informative. — Preceding unsigned comment added by Luke Maurer (talk • contribs) 02:18, 19 January 2016 (UTC)
- Wegman, Mark N. and Zadeck, F. Kenneth. "Constant Propagation with Conditional Branches." ACM Transactions on Programming Languages and Systems, 13(2), April 1991, pages 181-210.