On Tue, Mar 01, 2016 at 05:55:07PM +0100, Michael Matz wrote: > Hi, > > On Tue, 1 Mar 2016, Richard Biener wrote: > > > > What about the example I gave above? Is it unrealistic for compilers > > > do ever do something like this, or is it just unlikely to gain much > > > performance, or is it just that GCC does not do this today? > > > > GCC does not do this today with the exception of value-profiling. GCC > > in other cases does not establish equivalences but only relations (a < > > b, etc.) that are not a problem as far as I can see because those do not > > allow to change expressions using a to use b. > > Made up example using relations: > > int32 a, b; > a = (b >> 31) & 1; > > --> > > if (b < 0) > a = 1; > else > a = 0; > > data-dep to control-dep and only relations :) (I think this is taken care > of by Pauls wording, ignoring the fact that these aren't pointers anyway > and hence don't carry a dependency through them, only onto them at max)
Agreed, these are not pointers, and therefore do not carry dependencies. Thanx, Paul