Hi Zdenek,

On Wed, Oct 1, 2008 at 5:19 PM, Zdenek Dvorak <[EMAIL PROTECTED]> wrote:
> Hi,
>
>>       b) If any PHI node has count zero it can be inserted back and its
>>          corresponding computations removed, iff the argument of the PHI node
>>      still exists as an SSA variable. This means that we can insert
>>      a_1 = PHI <D.10_1> if D.10_1 still exists and hasnt been removed by
>>      any of the passes between the scalar evolution pass and the
>>      loopdone pass.
>
> this does not work:
> -- we reuse ssa names, so it can happen that the argument of the PHI node
>   is eliminated, then reused for a different purpose

I wasn't sure if from the proposal strong enough to catch this case ? i.e. if

 a) All the computations that were added are still present in the basic
        block. i.e all the computations are still present in the form in
    which they were added and havent been touched by any of the loop
    optimizations passes that run between the scalar evolution pass (i.e the
    pass when Part 1 is executed) and the 'loopdone' pass. We go
    through the exit basic block and look up each stmt in
    changed_stmt_table. If found we lookup the corresponding PHI node in the
    phi_node_info link list and decrement its count by 1 (count here denotes
    the number of computations added. When count it 0 it means all the
    computatins added in the scalar evolution pass have been found in the
    same form in the loop done pass such a PHI node can be inserted back in
    if 'b' is also true).


So if the ssa_names are infact reused they won't be the same
computations. We do store the statements that were introduced and if
we see a difference in the statements based on the hashes calculated
we don't undo the change.




> -- in case more complex loop transformations were performed
>   (e.g., loop reversal), the final value of the ssa name might have
>   changed.

Could you give an example for this ? Is there anything else you might
suggest in terms of undoing the transformations from scalar cprop.?

cheers
Ramana

>
> Zdenek
>



-- 
Ramana Radhakrishnan

Reply via email to