1 package org.simantics.scl.compiler.internal.codegen.analysis;
\r
3 public abstract class Dominance {
\r
7 public Dominance(int size) {
\r
8 idom = new int[size];
\r
10 for(int i=1;i<size;++i)
\r
14 public void compute() {
\r
18 for(int i=1;i<idom.length;++i) {
\r
20 for(int pred : predecessors(i)) {
\r
21 int dom = idom[pred];
\r
26 curDom = intersect(dom, curDom);
\r
29 if(idom[i] != curDom) {
\r
37 private int intersect(int a, int b) {
\r
47 protected abstract int[] predecessors(int i);
\r