I have attached a patch that fixes this problem. Description: ----- This patch adds a bb_remove_edge() function, and decouples unreachable blocks from the CFG by removing their successor edges. -----
I think this is the best way to handle unreachable blocks in the CFG, other than removing them, which is an -O1 optimization. I still don't have commit access, so someone else can apply it now, or I will apply it once I do, if there are no complaints. -Curtis On 7/29/05, Curtis Rawls <[EMAIL PROTECTED]> wrote: > Thanks for pointing this out. I tracked the bug down, and it looks > like the dominator algorithm does not handle unreachable blocks > correctly, and the dominance frontier algorithm suffers for it. Why > the unreachable blocks are generated in the first place might be an > interesting question for someone working on PGE. > > I'll work on the dominator bug before applying the DF patch. > -Curtis > > On 7/28/05, Will Coleda <[EMAIL PROTECTED]> wrote: > > The eval tests are failing with a pristine checkout so we can ignore > > those. Applying your patch to a pristine build yields only the > > backtrack.t failure: #2 eats 100% of the CPU until I kill it: it > > doesn't behave that way in svn-head. > > > > Looks like PerlString and String were red herrings. Should track down > > why p6rules is misbehaving with your patch, though. > > > > Regards. > > > > On Jul 28, 2005, at 1:55 PM, Will Coleda wrote: > > > > > FYI, on OS X 10.4.2, I get: > > > > > > Failed Test Stat Wstat Total Fail Failed List of Failed > > > ---------------------------------------------------------------------- > > > --------- > > > t/p6rules/backtrack.t 1 256 15 1 6.67% 2 > > > t/pmc/eval.t 3 768 14 3 21.43% 12-14 > > > t/pmc/perlstring.t 1 256 68 1 1.47% 61 > > > t/pmc/string.t 1 256 35 1 2.86% 28 > > > > > > I have some slight differences from svn-latest which of course > > > "shouldn't affect these tests". =-) > > > > > > On Jul 19, 2005, at 10:39 PM, Curtis Rawls (via RT) wrote: > > > > > > > > >> # New Ticket Created by Curtis Rawls > > >> # Please include the string: [perl #36597] > > >> # in the subject line of all future correspondence about this issue. > > >> # <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=36597 > > > >> > > >> > > >> This patch adds support for "dominance frontiers" in imcc, including: > > >> -Array of Sets for dominance frontiers > > >> -An efficient algorithm described in "A Simple, Fast Dominance > > >> Algorithm", Cooper et al. (2001) > > >> -Free and dump functions > > >> > > >> -Curtis > > >> > > >> <df.patch> > > >> > > >> > > > > > > > > > > > > > >