------- Additional Comments From steven at gcc dot gnu dot org 2005-01-13 20:38 ------- Hmpf, does DSE do anything *at* *all*??? Test cases: --------------------------------------- int x; int f1 (int i, int j, int k) { int *p = k ? &i : &j; i = 3; /* Dead store. */ *p = 5; x = j; } int f2 (int l, int m, int n) { int *q = n ? &l : &m; *q = 3; /* Dead store. */ *q = 5; x = m; } --------------------------------------- .optimized dump at -O2: --------------------------------------- ;; Function f1 (f1) Analyzing Edge Insertions. f1 (i, j, k) { int * p; int j.1; int * iftmp.0; <bb 0>: if (k != 0) goto <L4>; else goto <L3>; <L4>:; p = &i; goto <bb 2> (<L2>); <L3>:; p = &j; <L2>:; i = 3; *p = 5; x = j; return; } ;; Function f2 (f2) Analyzing Edge Insertions. f2 (l, m, n) { int * q; int m.3; int * iftmp.2; <bb 0>: if (n != 0) goto <L4>; else goto <L3>; <L4>:; q = &l; goto <bb 2> (<L2>); <L3>:; q = &m; <L2>:; *q = 3; *q = 5; x = m; return; } ---------------------------------------
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18880