------- Comment #2 from rguenth at gcc dot gnu dot org 2009-07-13 09:50 ------- -fgcse-las should do the trick. Note that PRE would do this kind of optimization on the tree-level, but it is disabled with -Os (so is gcse).
<bb 2>: D.1614_2 = p2_1(D)->front; p1_3(D)->head = D.1614_2; goto <bb 4>; <bb 3>: D.1616_8 = D.1615_4->next; p1_3(D)->head = D.1616_8; <bb 4>: D.1615_4 = p1_3(D)->head; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40730