Pārlūkot izejas kodu

* fixed dfa for raise nodes

git-svn-id: trunk@8155 -
florian 18 gadi atpakaļ
vecāks
revīzija
a2ac6c698d
1 mainītis faili ar 6 papildinājumiem un 5 dzēšanām
  1. 6 5
      compiler/optdfa.pas

+ 6 - 5
compiler/optdfa.pas

@@ -411,10 +411,7 @@ unit optdfa;
 
 
             raisen:
             raisen:
               begin
               begin
-                calclife(node);
-                node.allocoptinfo;
-                if not(assigned(node.optinfo^.def)) and
-                   not(assigned(node.optinfo^.use)) then
+                if not(assigned(node.optinfo^.life)) then
                   begin
                   begin
                     dfainfo.use:[email protected]^.use;
                     dfainfo.use:[email protected]^.use;
                     dfainfo.def:[email protected]^.def;
                     dfainfo.def:[email protected]^.def;
@@ -422,8 +419,12 @@ unit optdfa;
                     foreachnodestatic(pm_postprocess,traisenode(node).left,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).left,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).right,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).right,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).third,@AddDefUse,@dfainfo);
                     foreachnodestatic(pm_postprocess,traisenode(node).third,@AddDefUse,@dfainfo);
+                    { update node }
+                    l:=node.optinfo^.life;
+                    DFASetIncludeSet(l,node.optinfo^.use);
+                    UpdateLifeInfo(node,l);
+                    printdfainfo(output,node);
                   end;
                   end;
-                calclife(node);
               end;
               end;
 
 
             calln:
             calln: