|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--coins.ir.hir.SimplifyHir
SimplifyHir:
This class simplifies HIR by deleting labeled statements with
null statement body if the label is not explicitly refered,
in order to suppress the generation of useless basic blocks
in converting HIR to LIR. If HIR is changed by this class,
finishHir() is called in this class so that HIR may keep
consistency.
This is invoked just before HIR-to-LIR conversion by the
compiler driver. This does nothing if the compiler option
-coins:hirOpt=noSimplify
is specified and pForceSimplify is false.
It is not recommended to invoke this before HIR transformations
such as optimization and parallelization because the simplified
HIR may be unsuitablbe for such HIR transformations.
Description of simplifications
If-statement:
(if (condition)
(labeledStmt (thenLabel) thenPartStatement)
(labeledStmt (elseLabel)
フィールドの概要
(パッケージプライベート) booleanfChanged
(パッケージプライベート) intfDbgLevel
(パッケージプライベート) java.util.ArrayListfLabelDefToBeDeleted
(パッケージプライベート) java.util.ArrayListfLabeledStmt
(パッケージプライベート) java.util.ArrayListfLabelRef
(パッケージプライベート) java.util.HashMapfReplaceLabel
(パッケージプライベート) booleanfSomeSubpChanged
(パッケージプライベート) java.util.ArrayListfStmtToBeDeleted
(パッケージプライベート) java.util.ArrayListfStmtWithMultipleLabels
(パッケージプライベート) SubpfSubp
(パッケージプライベート) HirRoothirRoot
(パッケージプライベート) IoRootioRoot
コンストラクタの概要
SimplifyHir(HirRoot pHirRoot,
boolean pForceSimplify)
メソッドの概要
(パッケージプライベート) voiddeleteIfNull(LabeledStmt pStmt)
voiddeleteUnusedLabelsOfIfStmt(IfStmt pIfStmt)
voiddeleteUnusedLabelsOfLoopStmt(LoopStmt pLoopStmt)
voidrecordLabelRefOfSwitchStmt(SwitchStmt pSwitchStmt)
(パッケージプライベート) booleanshouldHaveLabel(LabeledStmt pStmt)
voidsimplifyHir(Subp pSubp)
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
フィールドの詳細
hirRoot
HirRoot hirRoot
ioRoot
IoRoot ioRoot
fSubp
Subp fSubp
fLabelDefToBeDeleted
java.util.ArrayList fLabelDefToBeDeleted
fStmtToBeDeleted
java.util.ArrayList fStmtToBeDeleted
fLabeledStmt
java.util.ArrayList fLabeledStmt
fStmtWithMultipleLabels
java.util.ArrayList fStmtWithMultipleLabels
fLabelRef
java.util.ArrayList fLabelRef
fReplaceLabel
java.util.HashMap fReplaceLabel
fChanged
boolean fChanged
fSomeSubpChanged
boolean fSomeSubpChanged
fDbgLevel
int fDbgLevel
コンストラクタの詳細
SimplifyHir
public SimplifyHir(HirRoot pHirRoot,
boolean pForceSimplify)
メソッドの詳細
simplifyHir
public void simplifyHir(Subp pSubp)
deleteUnusedLabelsOfIfStmt
public void deleteUnusedLabelsOfIfStmt(IfStmt pIfStmt)
deleteUnusedLabelsOfLoopStmt
public void deleteUnusedLabelsOfLoopStmt(LoopStmt pLoopStmt)
recordLabelRefOfSwitchStmt
public void recordLabelRefOfSwitchStmt(SwitchStmt pSwitchStmt)
shouldHaveLabel
boolean shouldHaveLabel(LabeledStmt pStmt)
deleteIfNull
void deleteIfNull(LabeledStmt pStmt)
概要
パッケージ
クラス
階層ツリー
非推奨 API
索引
ヘルプ
前のクラス
次のクラス
フレームあり
フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド
詳細: フィールド | コンストラクタ | メソッド