I seem to have come across a bug in the compute_dominators() algorithm with the following PIR:
.sub _main L1: eq I0, 0, L3 L2: goto L5 L3: L4: L5: goto L7 L6: inc I0 L7: le I0, 0, L6 end .end Running with: $ ./parrot/parrot -d 32 testbug.pir I get "7 <- 0 1 2 5 7" for the dominators, which should instead be "7 <- 0 1 5 7" (no 2). Blocks 6 and 8 also incorrectly include block 2 in their dominator set. Can anyone confirm that this is incorrect behavior? And possibly suggest a fix or explanation? Thanks, -Curtis