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

On 09/29/11 22:43, Amker.Cheng wrote:
>>> 
>>> I believe, the optimization you may be referring to is value
>>> range propagation which does predication of values based on
>>> predicates of conditions. GCC definitely applies VRP at the
>>> tree stage, I am not sure if there is an RTL pass to do the
>>> same.
>> There are also RTL optimizers which perform this kind of
>> constant propagation.  See cprop.c (in older versions of gcc this
>> code was in gcse.c)
>> 
> Hi Jeff, This is exactly what I referred in the first message. 
> Though the cprop.c pass collected the implicit_set information, it
> is recorded as local info of basic block, and cprop only does
> global propagation. The result is such conditional const
> propagation opportunities is missed.
> 
> The whole process in cprop pass is like:
> 
> bb0 : if (x) then bb1 else bb2 end
> 
> 1, implicit_set from the preceding bb0 is tagged as local in bb1; 
> 2, in compute_local_properties, the implicit_set is recorded in
> avloc[bb1]; 3, in compute_cprop_available, the implicit_set is only
> recorded in avout[bb1], not in avin[bb1], which it should be; 4, in
> cprop_insn and find_avail_set, only info recorded in avin[bb1] is
> considered when try to do propagation for bb1;
> 
> Well, I believe it is a small problem, since implicit_set is
> recorded in avout[bb1], The basic block bb1 is the only one get
> missed in propagation.

> 
> Don't know if I described the problem clearly and please comment.
I think you've probably described things fine.    I think at this
point you can either try to fix the problem or file a bug and wait for
someone else to fix it.

The thing to watch out for is these implicit sets are also killed
implicitly.  So you have to make sure the information you record from
the implicit set doesn't escape from the region where the information
is still valid.

jeff
> 

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

iQEcBAEBAgAGBQJOifiKAAoJEBRtltQi2kC7+oQH/R7ZnvSUzuzg4jqCR8lh7wZW
UbmsKrH7mTb4QrNlyhPLoioRSOCFIBPbmirmPjpVcgN20328jcXJ+6tB1yaNd5uC
Kw1XjlCn9q3w1gMOhOqiRxgWrTze7gujQK6QdvNH+belI4lPF+AHlCcCcx/qFi7A
n8t3ZOb9EZUtiK5OUlvvNn+PpOfYWbhnrjWlZZIsGcxVry4zmxhrAI5QVNuOHmF6
RDjORrwkTdITs8EbLGYgnNOwDLptjHNUwQBFxjjW2sHxqqJgVwIQj1oeZWCPirHR
CMUAop07HMoW3hgUnF2zq9QDFCjYuLURdqwxD/sMqxmCSES+D9JvAOveP3iiqlw=
=2t39
-----END PGP SIGNATURE-----

Reply via email to