> There are pros and cons about early optimization, actually. > Generating extremely optimized IL very early can actually tie up > subsequent passes. For instance, loop unrolling and vectorization. > There are others in the literature.
Sure, in the sorts of examples you mention where there's a level of "globality" to it. But I don't see it in the types of things that fold does. How could it ever be better to leave "a - a" in the tree instead of "0"?