|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package test.javassist.bytecode.analysis;
-
- import javassist.ClassPool;
- import javassist.bytecode.analysis.ControlFlow;
- import javassist.bytecode.analysis.ControlFlow.Block;
- import javassist.bytecode.analysis.ControlFlow.Node;
-
- public class DomTreePrinter {
- public static void main(String[] args) throws Exception {
- ClassPool pool = ClassPool.getDefault();
- ControlFlow cf = new ControlFlow(pool.get(args[0]).getDeclaredMethod(args[1]));
- Block[] blocks = cf.basicBlocks();
- for (int i = 0; i < blocks.length; i++)
- System.out.println(i + ": " + blocks[i]);
-
- Node[] dom = cf.dominatorTree();
- for (int i = 0; i < dom.length; i++)
- System.out.println(i + ": " + dom[i]);
-
- Node[] pdom = cf.postDominatorTree();
- for (int i = 0; i < pdom.length; i++)
- System.out.println(i + ": " + pdom[i]);
- }
-
- public int dummy(int n, int[] array) {
- for (int i = 0; i < n; i++) {
- if (array[i] > 0)
- break;
- if (array[i] > -1)
- continue;
- array[0]++;
- array[1]++;
- }
- return array[0];
- }
-
- public int dummy2(int n, int[] array) {
- int i = 0;
- while (i < n) {
- if (array[i] > 0)
- break;
- if (array[i++] > -1)
- continue;
- array[0]++;
- array[1]++;
- }
- return array[0];
- }
-
- public int dummy3(int n, int[] array) {
- int i = 0;
- do {
- if (array[i] > 0)
- break;
- if (array[i++] > -1)
- continue;
- array[0]++;
- array[1]++;
- } while (i < n);
- return array[0];
- }
-
- public int dummy4(int n, int[] array) {
- int i = 0;
- do {
- if (array[i] > 0)
- if (array[i++] > -1)
- continue;
- else
- return 0;
- array[0]++;
- array[1]++;
- } while (i < n);
- return array[0];
- }
-
- }
|