From bb2e1c04ec9236db24aaace0f430be7e5b24905d Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 7 Dec 2012 20:09:27 +0400 Subject: [PATCH] updated allow dead instructions handling Added labels collecting: Allow dead instruction block can have several starters and one stopper that knows all corresponding starters by labels --- .../jet/lang/cfg/JetControlFlowBuilder.java | 9 +- .../cfg/JetControlFlowBuilderAdapter.java | 17 +++- .../jet/lang/cfg/JetControlFlowProcessor.java | 15 ++-- .../src/org/jetbrains/jet/lang/cfg/Label.java | 1 + .../JetControlFlowInstructionsGenerator.java | 23 +++-- .../lang/cfg/pseudocode/PseudocodeImpl.java | 87 ++++++++++++------- 6 files changed, 104 insertions(+), 48 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java index 04df878fdb3..2cf2df1f776 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java @@ -21,6 +21,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.cfg.pseudocode.Pseudocode; import org.jetbrains.jet.lang.psi.*; +import java.util.Collection; import java.util.List; /** @@ -37,8 +38,12 @@ public interface JetControlFlowBuilder { Label createUnboundLabel(@NotNull String name); void bindLabel(@NotNull Label label); - void allowDead(); - void stopAllowDead(); + + @NotNull + Label createAllowDeadLabel(@NotNull Collection