------- Comment #12 from matz at gcc dot gnu dot org 2009-04-14 13:58 ------- That's only possible sometimes and hence can't be relied upon. The RHS expression might not be available at the point of the use anymore (some operands might have been clobbered meanwhile, remember we aren't in SSA anymore). That's one of the reasons why TER doesn't forward all expressions even if they're used only once.
To really fix this for good it needs a separate pass tracking lifetime (and introducing copies in case the operands aren't available) or working on SSA form (where lifetime isn't a problem and copies would be inserted by out-of-SSA). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39543