[Mono-devel-list] SSAPRE patch

Massimiliano Mantione massi at ximian.com
Tue Feb 1 08:19:32 EST 2005


This patch fixes a problem that appears in SSAPRE when running
IronPython's parrotbench (thanks Paolo!).

It fixes the interpretation of where the paper says "you meet a
program's exit" when traversing the FRG, since the FRG is really
a subset of the dominator tree, a simple FRG traversal in DT
preorder is not enough to catch those points.
This caused PHI nodes that *had* a free path to exit to be
considered down safe, which allowed expression insertions in
places that were not down safe :-(

The algorithm already does a linear scan of the DT in depth
first order when doing phi insertion, I attached some logic to
mark the places where the FRG would not be enough there.

The coding is at times ugly, but I wanted to stay safe with
index conditions... in any case it works ;-)

Unfortunately a bug in SSA construction code prevents IronPython
from completing the test even with this patch, I'm working on
this...

Ciao,
  Massi

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ssapre.patch
Type: text/x-patch
Size: 7906 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050201/87db8877/attachment.bin 


More information about the Mono-devel-list mailing list