From: Ian R. <ian...@ma...> - 2006-05-30 16:05:26
|
Michael Hind wrote: > If I understand things correctly, it seems to me that the enhancement > needed is to compute the liveness out sets with knowledge about phis. If > so, shouldn't this be done in the Leave SSA code? Yes. Having looked at the use for the out set, it's only used in leave SSA. What I'm proposing to change (still working on it), is to have a helper method in OPT_LiveAnalysis that gets/generates the out set. Apparently the theory is that a use in a phi instruction is logically a use on the edge from the basic block containing the phi instruction. So the live analysis is correct to place the phi uses in the gen sets of predecessor basic blocks, if we were creating out sets it would also be correct to place the phi uses in the out set of the predecessor basic block. Currently this isn't done by leave SSA, but given we already have a lot of phi handling code in the liveness analysis I think it makes sense to put it there (in fact the same method that iterates over the instructions adding them to the gen set can be reused to add them to the out set). Thanks, Ian |