Re: [ID 20001204.007] -MO=Deparse -we '{234;}' failing
[p5sagit/p5-mst-13.2.git] / ext / B / B / Bblock.pm
index ae47cf9..fe7fc52 100644 (file)
@@ -90,9 +90,9 @@ sub B::LOOP::mark_if_leader {
 
 sub B::LOGOP::mark_if_leader {
     my $op = shift;
-    my $ppaddr = $op->ppaddr;
+    my $opname = $op->name;
     mark_leader($op->next);
-    if ($ppaddr eq "pp_entertry") {
+    if ($opname eq "entertry") {
        mark_leader($op->other->next);
     } else {
        mark_leader($op->other);
@@ -102,10 +102,10 @@ sub B::LOGOP::mark_if_leader {
 sub B::LISTOP::mark_if_leader {
     my $op = shift;
     my $first=$op->first;
-    $first=$first->next while ($first->ppaddr eq "pp_null");
+    $first=$first->next while ($first->name eq "null");
     mark_leader($op->first) unless (exists( $bblock->{$$first}));
     mark_leader($op->next);
-    if ($op->ppaddr eq "pp_sort" and $op->flags & OPf_SPECIAL
+    if ($op->name eq "sort" and $op->flags & OPf_SPECIAL
        and $op->flags & OPf_STACKED){
         my $root=$op->first->sibling->first;
         my $leader=$root->first;
@@ -115,7 +115,7 @@ sub B::LISTOP::mark_if_leader {
 
 sub B::PMOP::mark_if_leader {
     my $op = shift;
-    if ($op->ppaddr ne "pp_pushre") {
+    if ($op->name ne "pushre") {
        my $replroot = $op->pmreplroot;
        if ($$replroot) {
            mark_leader($replroot);
@@ -129,6 +129,7 @@ sub B::PMOP::mark_if_leader {
 
 sub compile {
     my @options = @_;
+    B::clearsym();
     if (@options) {
        return sub {
            my $objname;
@@ -168,7 +169,9 @@ B::Bblock - Walk basic blocks
 
 =head1 DESCRIPTION
 
-See F<ext/B/README>.
+This module is used by the B::CC back end.  It walks "basic blocks".
+A basic block is a series of operations which is known to execute from
+start to finish, with no possiblity of branching or halting.
 
 =head1 AUTHOR