org.apache.sysds.parser

## Class IfStatementBlock

- java.lang.Object
- - org.apache.sysds.parser.LiveVariableAnalysis
  - - org.apache.sysds.parser.StatementBlock
    - - org.apache.sysds.parser.IfStatementBlock

All Implemented Interfaces:
  ParseInfo

    public class IfStatementBlock
    extends StatementBlock

### Constructor Summary

Constructors
Constructor and Description
`IfStatementBlock()`

### Method Summary

All Methods Instance Methods Concrete Methods
`VariableSet` `analyze(VariableSet loPassed)`
`Hop` `getPredicateHops()`
`Lop` `getPredicateLops()`
`VariableSet` `initializebackwardLV(VariableSet loPassed)`

`VariableSet`

`initializeforwardLV(VariableSet activeInPassed)`
For each statement: gen rule: for each variable read in current statement but not updated in any PRIOR statement, add to gen Handles case where variable both read and updated in same statement (i = i + 1, i needs to be added to gen) kill rule: for each variable updated in current statement but not read in this or any PRIOR statement, add to kill.

`boolean` `requiresPredicateRecompilation()`
`void` `setPredicateHops(Hop hops)`
`void` `setPredicateLops(Lop predicateLops)`
`boolean` `updatePredicateRecompilationFlag()`
`VariableSet` `validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional)`

### Methods inherited from class org.apache.sysds.parser.StatementBlock

`addStatement, addStatementBlock, getBeginColumn, getBeginLine, getConstIn, getConstOut, getDMLProg, getEndColumn, getEndLine, getFilename, getHops, getInputstoSB, getLops, getName, getNumStatements, getOutputNamesofSB, getOutputsofSB, getSBID, getStatement, getStatements, getText, getUpdateInPlaceVars, isMergeableFunctionCallBlock, isNondeterministic, isRewritableFunctionCall, isSplitDag, mergeable, mergeFunctionCalls, mergeStatementBlocks, printBlockErrorLocation, printErrorLocation, printWarningLocation, raiseValidateError, raiseValidateError, requiresRecompilation, rewriteFunctionCallStatements, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, setBeginColumn, setBeginLine, setDMLProg, setEndColumn, setEndLine, setFilename, setHops, setLops, setNondeterministic, setParseInfo, setSplitDag, setStatementFormatType, setStatementFormatType, setStatements, setText, setUpdateInPlaceVars, toString, updateRecompilationFlag`

### Methods inherited from class org.apache.sysds.parser.LiveVariableAnalysis

`getGen, getKill, getWarn, liveIn, liveOut, setGen, setKill, setLiveIn, setLiveOut, setReadVariables, setUpdatedVariables, updateLiveVariablesOut, variablesRead, variablesUpdated`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.sysds.parser.ParseInfo

`ctxAndFilenameToParseInfo`

### Constructor Detail

#### IfStatementBlock

    public IfStatementBlock()

### Method Detail

#### validate

    public VariableSet validate(DMLProgram dmlProg,
                                VariableSet ids,
                                HashMap<String,ConstIdentifier> constVars,
                                boolean conditional)

Overrides:
  `validate` in class `StatementBlock`

#### initializeforwardLV

    public VariableSet initializeforwardLV(VariableSet activeInPassed)

Description copied from class: `StatementBlock`
For each statement: gen rule: for each variable read in current statement but not updated in any PRIOR statement, add to gen Handles case where variable both read and updated in same statement (i = i + 1, i needs to be added to gen) kill rule: for each variable updated in current statement but not read in this or any PRIOR statement, add to kill.

Overrides:
  `initializeforwardLV` in class `StatementBlock`

#### initializebackwardLV

    public VariableSet initializebackwardLV(VariableSet loPassed)

Overrides:
  `initializebackwardLV` in class `StatementBlock`

#### setPredicateHops

    public void setPredicateHops(Hop hops)

#### getPredicateHops

    public Hop getPredicateHops()

#### getPredicateLops

    public Lop getPredicateLops()

#### setPredicateLops

    public void setPredicateLops(Lop predicateLops)

#### analyze

    public VariableSet analyze(VariableSet loPassed)

Overrides:
  `analyze` in class `StatementBlock`

#### updatePredicateRecompilationFlag

    public boolean updatePredicateRecompilationFlag()

#### requiresPredicateRecompilation

    public boolean requiresPredicateRecompilation()