org.multijava.util.backend
Class ControlFlow
java.lang.Object
org.multijava.util.backend.ControlFlow
- public class ControlFlow
- extends Object
This is the entry point of the backend, this class constructs the
control flow graf and applies optimizations
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
env
private MethodEnv env
bblocks
private BasicBlock[] bblocks
eblocks
private BasicBlock[] eblocks
ControlFlow
public ControlFlow(MethodEnv env,
InstructionHandle start,
HandlerInfo[] handlers)
- Creates a new instruction handle.
trace
public void trace()
- Prints a trace of the control flow structure
optimize
public void optimize()
getInstructions
public InstructionHandle getInstructions()
findBasicBlock
public static BasicBlock findBasicBlock(InstructionHandle handle)
buildBasicBlocks
private void buildBasicBlocks(InstructionHandle start,
HandlerInfo[] handlers)
closeBasicBlock
private void closeBasicBlock(BasicBlock current,
ArrayList body,
ArrayList bblocks)
clean
private void clean(HandlerInfo[] handlers,
ArrayList vbblocks)
isEndOfBasicBlock
private static boolean isEndOfBasicBlock(InstructionHandle handle)
setMarked
private void setMarked(boolean marked)
setMarked
protected static final void setMarked(BasicBlock[] bblocks,
boolean marked)
resolveAccessors
private void resolveAccessors(InstructionHandle handlex)
mjc is Copyright (C) 2000-2004 by Iowa State University and is distributed under the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. mjc is based in part on the Kopi project Copyright (C) 1990-99 DMS Decision Management Systems Ges.m.b.H.