-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/07/11 15:53, Richard Guenther wrote:
> On Mon, Nov 7, 2011 at 10:25 PM, Jakub Jelinek <ja...@redhat.com>
> wrote:
>> Hi!
>> 
>> This patch attempts to optimize VEC_BASE if we know that offsetof
>> of base is 0 (unless the compiler is doing something strange, it
>> is true). It doesn't have a clear code size effect, some .text
>> sections grew, supposedly because of more inlining, some .text
>> sections shrunk.
>> 
>> Bootstrapped/regtested on x86_64-linux and i686-linux.
> 
> I wonder why the compiler doesn't optimize this ... certainly it
> looks backward to, in
> 
> <bb 2>: if (c_2(D) != 0B) goto <bb 3>; else goto <bb 4>;
> 
> <bb 3>: D.2948_3 = &c_2(D)->fld; goto <bb 5>;
> 
> <bb 4>: D.2948_4 = 0B;
> 
> <bb 5>: # D.2948_1 = PHI <D.2948_3(3), 0B(4)> return D.2948_1;
> 
> see that D.2948_4 is equal to D.2948_3 for c_2 == 0, so I'm not 
> sure which pass would be able to detect this (but the optimziation 
> opportunity would be on the PHI node, so maybe it should be done in
> phiopt).
?!? When c2 == 0 the return value is supposed to be zero, that's one
of the fundamental problems with the way we've defined VEC_BASE.

In fact cases where we immediately dereference VEC_BASE are precisely
what got me looking at the executable path optimization.

Assuming this gets inlined and the result is used in a memory
dereference, the new pass will do exactly what we want.  Namely it'll
determine that BB4 can never be executed at runtime and it's control
dependent on the edge 2->4.  It zaps the edge 2->4, cleaning up the
conditional in the process.  That makes BB4 unreachable and BB2, BB4
and BB5 mergable and everything collapses into one simple assignment.

Jeff
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOuHf+AAoJEBRtltQi2kC7QIEH/0/Agi9ClHIomtqYcCJzmJnk
Agrg2ojaJp6KwEq8a//PpOk8Ja4ZuUvTpE71PuDQgDaUWWapd04GuPQMxLE65oho
HZBW0CuIgN4IvrsQCnvzx6uMKRFtE4AZx+dmrWCtE0uKuXQFW2lcnPDWb0oEdT+D
dsekkWb3BcRMDwVxBlbEUpzxOqVRSWnUuCTtLFCuGRdUOHqyjVp0eOtt+DkAPcXH
CM3aVxZDGx9EfMISoZqCD3SkmAgAcYeTRiTsl7Mjkzo+XIivMxm6o9WgJrp1gW0E
sdBN3XQcwYgpg9en7O0HGqyDqYBjDG2u3i4kh6uE549/m+e7vPFdAbxpyg8zJZI=
=hRN5
-----END PGP SIGNATURE-----

Reply via email to