Talk:Optimizing compiler

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

POV? humans[edit]

"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. 89.103.73.49 (talk) 16:34, 25 March 2008 (UTC)[reply]

I agree and have removed those POV statements. --Matthiaspaul (talk) 22:16, 3 July 2017 (UTC)[reply]

Something still missing[edit]

dynamic compilation, feedback based optimization, procedural abstraction (and other code-size optimizations generally)

compiler optimzation vs. optimizing compiler[edit]

Wouldn't it be better to discuss this material under optimizing compiler, which is a term in common use? --Robert Merkel


This page is very well written and informative, kudos to the persons who wrote it. And compiler optimization is the correct term. --BL

My modifications[edit]

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!

Deco

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[edit]

I think with a little review and touching up this article could become featured. --24.239.174.223 22:50, 16 January 2007 (UTC)[reply]

Definition[edit]

I think the definition of compiler optimization can do with some work as its a little disjoint. —Preceding unsigned comment added by 82.46.173.82 (talk) 09:47, 13 December 2007 (UTC)[reply]

SCCP is greater than the sum of its parts[edit]

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[1]:

“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 (talkcontribs) 02:18, 19 January 2016 (UTC)[reply]

References

  1. ^ 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.

To what stack is "stack-height reduction" referring?[edit]

It's described as "[rearranging the] expression tree to minimize resources needed for expression evaluation"; is this referring to the Sethi–Ullman algorithm? If so, whilst, as I remember from a paper I read a long time ago but have been unable to find, you can use that algorithm to generate code that reduces evaluation stack depth on stack machines, but it also can reduce the number of registers used on non-stack machines. (Note that stack (computer science) points to Stack § Computing on the stack disambiguation page. Guy Harris (talk) 19:54, 3 December 2023 (UTC)[reply]