org.jetbrains.kotlin.cfg.pseudocode
Class PseudocodeImpl

java.lang.Object
  extended by org.jetbrains.kotlin.cfg.pseudocode.PseudocodeImpl
All Implemented Interfaces:
Pseudocode

public class PseudocodeImpl
extends java.lang.Object
implements Pseudocode


Nested Class Summary
 class PseudocodeImpl.PseudocodeLabel
           
 
Constructor Summary
PseudocodeImpl(JetElement correspondingElement)
           
 
Method Summary
 JetElement getCorrespondingElement()
           
 PseudoValue getElementValue(JetElement element)
           
 SubroutineEnterInstruction getEnterInstruction()
           
 SubroutineExitInstruction getExitInstruction()
           
 java.util.List<Instruction> getInstructions()
           
 java.util.List<Instruction> getInstructionsIncludingDeadCode()
           
 java.util.List<PseudocodeImpl.PseudocodeLabel> getLabels()
           
 java.util.Set<LocalFunctionDeclarationInstruction> getLocalDeclarations()
           
 Pseudocode getParent()
           
 java.util.List<Instruction> getReversedInstructions()
           
 Pseudocode getRootPseudocode()
           
 SubroutineSinkInstruction getSinkInstruction()
           
 java.util.List<? extends Instruction> getUsages(PseudoValue value)
           
 java.util.List<? extends JetElement> getValueElements(PseudoValue value)
           
 boolean isSideEffectFree(Instruction instruction)
           
 void postProcess()
           
 int repeatPart(Label startLabel, Label finishLabel, int labelCount)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PseudocodeImpl

public PseudocodeImpl(JetElement correspondingElement)
Method Detail

getCorrespondingElement

@NotNull
public JetElement getCorrespondingElement()
Specified by:
getCorrespondingElement in interface Pseudocode

getLocalDeclarations

@NotNull
public java.util.Set<LocalFunctionDeclarationInstruction> getLocalDeclarations()
Specified by:
getLocalDeclarations in interface Pseudocode

getParent

@Nullable
public Pseudocode getParent()
Specified by:
getParent in interface Pseudocode

getRootPseudocode

@NotNull
public Pseudocode getRootPseudocode()

getInstructions

@NotNull
public java.util.List<Instruction> getInstructions()
Specified by:
getInstructions in interface Pseudocode

getReversedInstructions

@NotNull
public java.util.List<Instruction> getReversedInstructions()
Specified by:
getReversedInstructions in interface Pseudocode

getInstructionsIncludingDeadCode

@NotNull
public java.util.List<Instruction> getInstructionsIncludingDeadCode()
Specified by:
getInstructionsIncludingDeadCode in interface Pseudocode

getLabels

@NotNull
public java.util.List<PseudocodeImpl.PseudocodeLabel> getLabels()

getExitInstruction

@NotNull
public SubroutineExitInstruction getExitInstruction()
Specified by:
getExitInstruction in interface Pseudocode

getSinkInstruction

@NotNull
public SubroutineSinkInstruction getSinkInstruction()
Specified by:
getSinkInstruction in interface Pseudocode

getEnterInstruction

@NotNull
public SubroutineEnterInstruction getEnterInstruction()
Specified by:
getEnterInstruction in interface Pseudocode

getElementValue

@Nullable
public PseudoValue getElementValue(@Nullable
                                            JetElement element)
Specified by:
getElementValue in interface Pseudocode

getValueElements

@NotNull
public java.util.List<? extends JetElement> getValueElements(@Nullable
                                                                     PseudoValue value)
Specified by:
getValueElements in interface Pseudocode

getUsages

@NotNull
public java.util.List<? extends Instruction> getUsages(@Nullable
                                                               PseudoValue value)
Specified by:
getUsages in interface Pseudocode

isSideEffectFree

public boolean isSideEffectFree(@NotNull
                                Instruction instruction)
Specified by:
isSideEffectFree in interface Pseudocode

postProcess

public void postProcess()

repeatPart

public int repeatPart(@NotNull
                      Label startLabel,
                      @NotNull
                      Label finishLabel,
                      int labelCount)