aa
|
Classes | |
class | Build |
enum | Mode |
Public Member Functions | |
void | add_dead (Node n) |
void | add_flow (UQNodes deps) |
void | add_flow_defs (Node n) |
void | add_flow_uses (Node n) |
void | add_grow (Node n) |
void | add_inline (FunNode n) |
void | add_reduce_uses (Node n) |
Node | add_unuse (Node n) |
Node | add_work_all (Node n) |
void | gcp (Mode mode, ScopeNode rez) |
void | iter (Mode opt_mode) |
Node | iter (Node x, Work[] works) |
boolean | on_dead (Node n) |
boolean | on_flow (Node n) |
boolean | on_reduce (Node n) |
void | revalive (Node... ns) |
Node | xform (Node n) |
Node | xreduce (Node n) |
Static Public Member Functions | |
static void | add_work_defs (Work work, Node n) |
static void | add_work_uses (Work work, Node n) |
static void | retype_mem (BitSet aliases, Node mem, Node exit, boolean skip_calls) |
Public Attributes | |
Mode | _opt_mode =Mode.Parse |
final Work[] | _reduce_works = new Work[]{_work_dead,_work_flow,_work_reduce } |
final Work | _work_dom = new Work("dom" , false) { @Override public Node apply(Node n) { return n.do_mono (); } } |
Package Functions | |
public< N extends Node > N | add_flow (N n) |
public< N extends Node > N | add_mono (N n) |
public< N extends Node > N | add_reduce (N n) |
public< N extends Node > N | init (N n) |
void | init0 () |
void | reset_to_init0 () |
Static Package Functions | |
static public< N extends Node > N | add_work (Work work, N n) |
Static Package Attributes | |
static int | ITER_CNT |
static int | ITER_CNT_NOOP |
Private Member Functions | |
void | check_and_wire (CallEpiNode cepi) |
boolean | check_not_monotonic (Node n, Type ot, Type nt) |
void | remove_ambi (CallNode call) |
Private Attributes | |
final Work[] | _all_works = new Work[]{_work_dead,_work_flow,_work_reduce,_work_mono,_work_grow,_work_inline} |
final Work[] | _new_works = new Work[]{ _work_flow,_work_reduce,_work_mono,_work_grow } |
final Work | _work_dead = new Work("dead" , false) { @Override public Node apply(Node n) { return n._keep==0 && n._uses._len == 0 ? n.kill() : null; } } |
final Work | _work_flow = new Work("flow" , false) { @Override public Node apply(Node n) { return n.do_flow (); } } |
final Work | _work_grow = new Work("grow" , true ) { @Override public Node apply(Node n) { return n.do_grow (); } } |
final Work | _work_inline = new Work("inline", false) { @Override public Node apply(Node n) { return ((FunNode)n).ideal_inline(false); } } |
final Work | _work_mono = new Work("mono" , true ) { @Override public Node apply(Node n) { return n.do_mono (); } } |
final Work | _work_reduce = new Work("reduce", true ) { @Override public Node apply(Node n) { return n.do_reduce(); } } |
Static Private Attributes | |
static boolean | HAS_WORK |
static final VBitSet | IDEAL_VISIT = new VBitSet() |
Definition at line 12 of file GVNGCM.java.
void com.cliffc.aa.GVNGCM.add_dead | ( | Node | n | ) |
Definition at line 48 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_dead, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.GVNGCM.add_unuse(), com.cliffc.aa.Env.close(), com.cliffc.aa.node.Node.do_grow(), com.cliffc.aa.node.FunNode.split_callers(), and com.cliffc.aa.Parse.term().
|
package |
Definition at line 50 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_flow, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.tvar.TV2._fresh_unify(), com.cliffc.aa.Parse._short_circuit_expr(), com.cliffc.aa.node.CallNode.add_flow_def_extra(), com.cliffc.aa.node.CastNode.add_flow_extra(), com.cliffc.aa.node.FunPtrNode.add_flow_extra(), com.cliffc.aa.node.CallNode.add_flow_extra(), com.cliffc.aa.node.CProjNode.add_flow_use_extra(), com.cliffc.aa.node.MProjNode.add_flow_use_extra(), com.cliffc.aa.node.ParmNode.add_flow_use_extra(), com.cliffc.aa.node.NewStrNode.AddStrStr.add_flow_use_extra(), com.cliffc.aa.node.RegionNode.add_flow_use_extra(), com.cliffc.aa.node.LoadNode.add_flow_use_extra(), com.cliffc.aa.node.CallEpiNode.add_flow_use_extra(), com.cliffc.aa.node.CallNode.add_flow_use_extra(), com.cliffc.aa.node.MemSplitNode.add_reduce_extra(), com.cliffc.aa.node.NewNode< TypeStruct >.add_reduce_extra(), com.cliffc.aa.node.CallNode.add_reduce_extra(), com.cliffc.aa.GVNGCM.add_unuse(), com.cliffc.aa.GVNGCM.check_not_monotonic(), com.cliffc.aa.Env.close_display(), com.cliffc.aa.node.Node.con(), com.cliffc.aa.node.NewNode< TypeStruct >.copy(), com.cliffc.aa.node.NewObjNode.create_active(), com.cliffc.aa.Parse.do_call0(), com.cliffc.aa.node.Node.do_flow(), com.cliffc.aa.node.Node.do_grow(), com.cliffc.aa.node.Node.do_mono(), com.cliffc.aa.node.FunPtrNode.forward_ref(), com.cliffc.aa.GVNGCM.gcp(), com.cliffc.aa.node.NewObjNode.ideal_mono(), com.cliffc.aa.Parse.ifex(), com.cliffc.aa.GVNGCM.init(), com.cliffc.aa.node.MemSplitNode.insert_split(), com.cliffc.aa.node.FunNode.make_new_fun(), com.cliffc.aa.node.Node.merge(), com.cliffc.aa.GVNGCM.remove_ambi(), com.cliffc.aa.Parse.stmts(), com.cliffc.aa.node.CallNode.swap_new(), com.cliffc.aa.node.Node.unelock(), com.cliffc.aa.tvar.TV2.unify_at(), com.cliffc.aa.tvar.TV2.union(), com.cliffc.aa.node.FunNode.unwire(), com.cliffc.aa.node.CallEpiNode.unwire(), com.cliffc.aa.node.Node.walk_initype(), com.cliffc.aa.GVNGCM.xform(), and com.cliffc.aa.GVNGCM.xreduce().
void com.cliffc.aa.GVNGCM.add_flow | ( | UQNodes | deps | ) |
Definition at line 56 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM.add_flow(), and com.cliffc.aa.util.NonBlockingHashMapLong< TypeV >.values().
Referenced by com.cliffc.aa.GVNGCM.add_flow().
void com.cliffc.aa.GVNGCM.add_flow_defs | ( | Node | n | ) |
Definition at line 54 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_flow, and com.cliffc.aa.GVNGCM.add_work_defs().
Referenced by com.cliffc.aa.node.CallNode.add_flow_extra(), com.cliffc.aa.node.RegionNode.add_flow_use_extra(), com.cliffc.aa.node.CallNode.add_flow_use_extra(), com.cliffc.aa.node.Node.do_flow(), com.cliffc.aa.GVNGCM.gcp(), com.cliffc.aa.GVNGCM.revalive(), and com.cliffc.aa.node.CallEpiNode.unwire().
void com.cliffc.aa.GVNGCM.add_flow_uses | ( | Node | n | ) |
Definition at line 55 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_flow, and com.cliffc.aa.GVNGCM.add_work_uses().
Referenced by com.cliffc.aa.node.Node.do_reduce(), com.cliffc.aa.node.StoreNode.ideal_reduce(), com.cliffc.aa.node.NewNode< TypeStruct >.kill2(), com.cliffc.aa.node.FunNode.make_new_fun(), com.cliffc.aa.node.FunPtrNode.merge_ref_def(), com.cliffc.aa.node.NewObjNode.promote_forward(), com.cliffc.aa.GVNGCM.retype_mem(), com.cliffc.aa.GVNGCM.revalive(), com.cliffc.aa.node.FunNode.split_callers(), com.cliffc.aa.node.CallNode.swap_new(), com.cliffc.aa.node.NewObjNode.update(), and com.cliffc.aa.node.Node.xval().
void com.cliffc.aa.GVNGCM.add_grow | ( | Node | n | ) |
Definition at line 52 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_grow, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.node.MrgProjNode.add_flow_def_extra(), and com.cliffc.aa.node.PrimNode.as_fun().
void com.cliffc.aa.GVNGCM.add_inline | ( | FunNode | n | ) |
Definition at line 53 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_inline, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.Parse.do_call0().
|
package |
Definition at line 51 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_mono, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.node.NewObjNode.add_flow_extra(), com.cliffc.aa.node.LoadNode.add_flow_use_extra(), com.cliffc.aa.node.StoreNode.add_reduce_extra(), com.cliffc.aa.node.Node.do_mono(), com.cliffc.aa.node.MemSplitNode.insert_split(), com.cliffc.aa.node.ScopeNode.set_mem(), and com.cliffc.aa.node.FunNode.split_callers().
|
package |
Definition at line 49 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_reduce, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.Parse._args(), com.cliffc.aa.node.MrgProjNode.add_flow_def_extra(), com.cliffc.aa.node.RegionNode.add_flow_def_extra(), com.cliffc.aa.node.NewNode< TypeStruct >.add_flow_def_extra(), com.cliffc.aa.node.FreshNode.add_flow_extra(), com.cliffc.aa.node.StoreNode.add_flow_extra(), com.cliffc.aa.node.CallNode.add_flow_extra(), com.cliffc.aa.node.AssertNode.add_flow_use_extra(), com.cliffc.aa.node.FunPtrNode.add_flow_use_extra(), com.cliffc.aa.node.RegionNode.add_flow_use_extra(), com.cliffc.aa.node.LoadNode.add_flow_use_extra(), com.cliffc.aa.node.CallNode.add_flow_use_extra(), com.cliffc.aa.node.StoreNode.add_reduce_extra(), com.cliffc.aa.node.CallNode.add_reduce_extra(), com.cliffc.aa.GVNGCM.add_unuse(), com.cliffc.aa.node.Node.do_flow(), com.cliffc.aa.node.Node.do_grow(), com.cliffc.aa.node.Node.do_mono(), com.cliffc.aa.node.Node.do_reduce(), com.cliffc.aa.node.RegionNode.ideal_reduce(), com.cliffc.aa.node.CallNode.ideal_reduce(), com.cliffc.aa.Parse.ifex(), com.cliffc.aa.GVNGCM.init(), com.cliffc.aa.node.FunNode.split_callers(), com.cliffc.aa.Parse.term(), com.cliffc.aa.node.Node.unelock(), com.cliffc.aa.tvar.TV2.union(), and com.cliffc.aa.node.CallEpiNode.unwire().
void com.cliffc.aa.GVNGCM.add_reduce_uses | ( | Node | n | ) |
Definition at line 57 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_reduce, and com.cliffc.aa.GVNGCM.add_work_uses().
Referenced by com.cliffc.aa.node.FunNode.ideal_reduce(), com.cliffc.aa.node.FunPtrNode.merge_ref_def(), com.cliffc.aa.node.CallEpiNode.set_is_copy(), and com.cliffc.aa.node.FunNode.set_is_copy().
Definition at line 59 of file GVNGCM.java.
References com.cliffc.aa.node.Node._keep, com.cliffc.aa.node.Node._uses, com.cliffc.aa.GVNGCM.add_dead(), com.cliffc.aa.GVNGCM.add_flow(), and com.cliffc.aa.GVNGCM.add_reduce().
Referenced by com.cliffc.aa.node.CallNode._ideal_grow(), com.cliffc.aa.GVNGCM.Build< N extends Node >.close(), com.cliffc.aa.node.FunNode.split_callers(), com.cliffc.aa.node.RetNode.tail_recursive(), and com.cliffc.aa.node.Node.unuse().
Definition at line 43 of file GVNGCM.java.
References com.cliffc.aa.node.Work.add(), and com.cliffc.aa.GVNGCM.HAS_WORK.
Referenced by com.cliffc.aa.GVNGCM.add_dead(), com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.GVNGCM.add_grow(), com.cliffc.aa.GVNGCM.add_inline(), com.cliffc.aa.GVNGCM.add_mono(), com.cliffc.aa.GVNGCM.add_reduce(), com.cliffc.aa.GVNGCM.add_work_all(), com.cliffc.aa.GVNGCM.add_work_defs(), and com.cliffc.aa.GVNGCM.add_work_uses().
Definition at line 73 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._new_works, com.cliffc.aa.GVNGCM._work_inline, com.cliffc.aa.GVNGCM.add_work(), com.cliffc.aa.GVNGCM.HAS_WORK, and com.cliffc.aa.node.Node.is_dead().
Referenced by com.cliffc.aa.node.CallNode.add_flow_use_extra(), com.cliffc.aa.Env.close_display(), com.cliffc.aa.node.Node.copy(), com.cliffc.aa.Parse.do_call0(), com.cliffc.aa.node.LoadNode.ideal_grow(), com.cliffc.aa.Parse.ifex(), com.cliffc.aa.node.Node.init1(), com.cliffc.aa.node.MemSplitNode.insert_split(), com.cliffc.aa.node.ScopeNode.set_mem(), com.cliffc.aa.node.Node.unhook(), com.cliffc.aa.node.Node.walk_opt(), and com.cliffc.aa.GVNGCM.xform().
Definition at line 63 of file GVNGCM.java.
References com.cliffc.aa.node.Node._defs, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.GVNGCM.add_flow_defs().
Definition at line 68 of file GVNGCM.java.
References com.cliffc.aa.node.Node._uses, and com.cliffc.aa.GVNGCM.add_work().
Referenced by com.cliffc.aa.GVNGCM.add_flow_uses(), and com.cliffc.aa.GVNGCM.add_reduce_uses().
|
private |
Definition at line 311 of file GVNGCM.java.
References com.cliffc.aa.node.CallEpiNode.check_and_wire(), com.cliffc.aa.node.Node.more_flow(), and com.cliffc.aa.Env.START.
Referenced by com.cliffc.aa.GVNGCM.gcp().
Definition at line 317 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_flow, com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.node.Work.del(), com.cliffc.aa.type.Type< T extends Type< T >.isa(), and com.cliffc.aa.type.Type< T extends Type< T >.simple_ptr().
Referenced by com.cliffc.aa.GVNGCM.gcp().
Definition at line 217 of file GVNGCM.java.
References com.cliffc.aa.node.Node._defs, com.cliffc.aa.node.Node._live, com.cliffc.aa.GVNGCM._opt_mode, com.cliffc.aa.node.Node._uses, com.cliffc.aa.node.Node._val, com.cliffc.aa.GVNGCM._work_flow, com.cliffc.aa.type.Bits< B extends Bits< B >.abit(), com.cliffc.aa.type.Bits< B extends Bits< B >.above_center(), com.cliffc.aa.util.Ary< E >.add(), com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.GVNGCM.add_flow_defs(), com.cliffc.aa.node.Node.add_flow_extra(), com.cliffc.aa.GVNGCM.check_and_wire(), com.cliffc.aa.GVNGCM.check_not_monotonic(), com.cliffc.aa.node.CallNode.ctl(), com.cliffc.aa.type.Type< T extends Type< T >.CTRL, com.cliffc.aa.type.TypeMem.DEAD, com.cliffc.aa.type.TypeFunPtr.fidxs(), com.cliffc.aa.util.Ary< E >.find(), com.cliffc.aa.node.Node.is_dead(), com.cliffc.aa.util.Ary< E >.isEmpty(), com.cliffc.aa.node.Work.isEmpty(), com.cliffc.aa.node.Node.live(), com.cliffc.aa.type.Type< T extends Type< T >.may_be_con(), com.cliffc.aa.node.Node.more_flow(), com.cliffc.aa.node.Work.pop(), com.cliffc.aa.util.Ary< E >.pop(), com.cliffc.aa.GVNGCM.remove_ambi(), com.cliffc.aa.Env.START, com.cliffc.aa.node.CallNode.ttfp(), com.cliffc.aa.node.Node.value(), com.cliffc.aa.node.Node.walk_initype(), and com.cliffc.aa.node.Node.walk_opt().
Referenced by com.cliffc.aa.Parse.go(), and com.cliffc.aa.node.TestNodeSmall.testRecursiveDisplay().
|
package |
Definition at line 99 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM.add_flow(), and com.cliffc.aa.GVNGCM.add_reduce().
Referenced by com.cliffc.aa.node.TestNodeSmall.check(), com.cliffc.aa.node.FunPtrNode.forward_ref(), com.cliffc.aa.node.ScopeNode.init(), com.cliffc.aa.Parse.init(), com.cliffc.aa.node.MemSplitNode.insert_split(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve2(), com.cliffc.aa.node.TestNodeSmall.testRecursiveDisplay(), and com.cliffc.aa.Env.top_scope().
|
package |
Definition at line 83 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._all_works.
Referenced by com.cliffc.aa.Env.record_for_top_reset2().
void com.cliffc.aa.GVNGCM.iter | ( | Mode | opt_mode | ) |
Definition at line 147 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._all_works, com.cliffc.aa.GVNGCM._opt_mode, com.cliffc.aa.GVNGCM._work_dom, com.cliffc.aa.node.Work.apply(), com.cliffc.aa.node.Work.at(), com.cliffc.aa.node.Work.del(), com.cliffc.aa.GVNGCM.IDEAL_VISIT, com.cliffc.aa.node.Node.is_dead(), com.cliffc.aa.node.Work.len(), com.cliffc.aa.node.Node.more_ideal(), and com.cliffc.aa.Env.START.
Referenced by com.cliffc.aa.Env.close(), com.cliffc.aa.Parse.go(), com.cliffc.aa.node.FunPtrNode.merge_ref_def(), com.cliffc.aa.Env.top_scope(), and com.cliffc.aa.GVNGCM.xform().
Definition at line 172 of file GVNGCM.java.
References com.cliffc.aa.node.Work.apply(), com.cliffc.aa.GVNGCM.HAS_WORK, com.cliffc.aa.node.Node.is_dead(), com.cliffc.aa.node.Work.isEmpty(), com.cliffc.aa.GVNGCM.ITER_CNT, com.cliffc.aa.GVNGCM.ITER_CNT_NOOP, com.cliffc.aa.node.Node.keep(), com.cliffc.aa.node.Work.pop(), com.cliffc.aa.node.Node.roll_back_CNT(), and com.cliffc.aa.node.Node.unkeep().
boolean com.cliffc.aa.GVNGCM.on_dead | ( | Node | n | ) |
Definition at line 39 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_dead, and com.cliffc.aa.node.Work.on().
Referenced by com.cliffc.aa.node.Node.more_flow().
boolean com.cliffc.aa.GVNGCM.on_flow | ( | Node | n | ) |
Definition at line 40 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_flow, and com.cliffc.aa.node.Work.on().
Referenced by com.cliffc.aa.node.Node.more_flow().
boolean com.cliffc.aa.GVNGCM.on_reduce | ( | Node | n | ) |
Definition at line 41 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._work_reduce, and com.cliffc.aa.node.Work.on().
|
private |
Definition at line 291 of file GVNGCM.java.
References com.cliffc.aa.node.CallNode._not_resolved_by_gcp, com.cliffc.aa.node.Node._val, com.cliffc.aa.type.Bits< B extends Bits< B >.above_center(), com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.type.BitsFun.ANY, com.cliffc.aa.node.FunPtrNode.display(), com.cliffc.aa.node.CallNode.fdx(), com.cliffc.aa.type.TypeFunPtr.fidxs(), com.cliffc.aa.node.CallNode.least_cost(), com.cliffc.aa.node.Node.more_flow(), com.cliffc.aa.node.CallNode.set_dsp(), com.cliffc.aa.node.CallNode.set_fdx(), com.cliffc.aa.Env.START, and com.cliffc.aa.node.CallNode.ttfpx().
Referenced by com.cliffc.aa.GVNGCM.gcp().
|
package |
Definition at line 89 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._all_works, com.cliffc.aa.GVNGCM._opt_mode, com.cliffc.aa.GVNGCM._work_dom, com.cliffc.aa.node.Work.clear(), com.cliffc.aa.GVNGCM.ITER_CNT, com.cliffc.aa.GVNGCM.ITER_CNT_NOOP, and com.cliffc.aa.GVNGCM.Mode.Parse.
Referenced by com.cliffc.aa.Env.top_reset().
|
static |
Definition at line 330 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._opt_mode, com.cliffc.aa.node.Node._uses, com.cliffc.aa.node.Node._val, com.cliffc.aa.GVNGCM.add_flow_uses(), com.cliffc.aa.util.Ary< E >.addAll(), com.cliffc.aa.type.TypeTuple.at(), com.cliffc.aa.Env.GVN, com.cliffc.aa.node.Node.in(), com.cliffc.aa.node.Node.is_mem(), com.cliffc.aa.util.Ary< E >.isEmpty(), com.cliffc.aa.util.Ary< E >.pop(), com.cliffc.aa.util.Ary< E >.push(), and com.cliffc.aa.node.Node.value().
Referenced by com.cliffc.aa.node.MemJoinNode.ideal_reduce(), com.cliffc.aa.node.CallEpiNode.set_is_copy(), and com.cliffc.aa.node.FunNode.split_callers().
void com.cliffc.aa.GVNGCM.revalive | ( | Node... | ns | ) |
Definition at line 103 of file GVNGCM.java.
References com.cliffc.aa.node.Node._live, com.cliffc.aa.GVNGCM._opt_mode, com.cliffc.aa.GVNGCM.add_flow_defs(), com.cliffc.aa.GVNGCM.add_flow_uses(), and com.cliffc.aa.node.Node.live().
Referenced by com.cliffc.aa.node.MemSplitNode.insert_split(), com.cliffc.aa.node.NewNode< TypeStruct >.kill2(), and com.cliffc.aa.node.CallNode.swap_new().
Definition at line 126 of file GVNGCM.java.
References com.cliffc.aa.GVNGCM._all_works, com.cliffc.aa.node.Node._keep, com.cliffc.aa.node.Node._uses, com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.GVNGCM.add_work_all(), com.cliffc.aa.node.Node.is_dead(), and com.cliffc.aa.GVNGCM.iter().
Referenced by com.cliffc.aa.node.ScopeNode.IfScope.check(), com.cliffc.aa.node.TestNodeSmall.check(), com.cliffc.aa.node.UnresolvedNode.filter(), com.cliffc.aa.Parse.gvn(), com.cliffc.aa.Env.init(), com.cliffc.aa.Env.lookup_filter_fresh(), com.cliffc.aa.node.ScopeNode.replace_mem(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve2(), com.cliffc.aa.node.TestNodeSmall.testRecursiveDisplay(), com.cliffc.aa.node.TestNodeSmall.testUnresolvedAdd(), and com.cliffc.aa.Env.top_scope().
Definition at line 135 of file GVNGCM.java.
References com.cliffc.aa.node.Node._keep, com.cliffc.aa.node.Node._uses, com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.node.Node.do_flow(), and com.cliffc.aa.node.Node.do_reduce().
Referenced by com.cliffc.aa.node.IfNode.flip(), and com.cliffc.aa.node.IfNode.ideal_reduce().
|
private |
Definition at line 37 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.init0(), com.cliffc.aa.GVNGCM.iter(), com.cliffc.aa.GVNGCM.reset_to_init0(), and com.cliffc.aa.GVNGCM.xform().
|
private |
Definition at line 33 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_work_all().
Mode com.cliffc.aa.GVNGCM._opt_mode =Mode.Parse |
Definition at line 22 of file GVNGCM.java.
Referenced by com.cliffc.aa.node.TestNodeSmall._testMonotonicChain(), com.cliffc.aa.node.CallNode.add_flow_use_extra(), com.cliffc.aa.node.TestNodeSmall.check(), com.cliffc.aa.Env.close(), com.cliffc.aa.node.Node.do_flow(), com.cliffc.aa.Env.Env(), com.cliffc.aa.GVNGCM.gcp(), com.cliffc.aa.node.FunNode.ideal_inline(), com.cliffc.aa.node.ScopeNode.ideal_reduce(), com.cliffc.aa.node.Node.init1(), com.cliffc.aa.GVNGCM.iter(), com.cliffc.aa.node.Node.more_flow(), com.cliffc.aa.node.Node.more_ideal(), com.cliffc.aa.Parse.prog(), com.cliffc.aa.node.TestNode.redo_(), com.cliffc.aa.GVNGCM.reset_to_init0(), com.cliffc.aa.GVNGCM.retype_mem(), com.cliffc.aa.GVNGCM.revalive(), com.cliffc.aa.node.TestNode.set_value_type(), com.cliffc.aa.node.FunNode.split_size(), com.cliffc.aa.node.TestNode.test1jig(), com.cliffc.aa.TestLive.testBasic(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve2(), com.cliffc.aa.node.TestNode.testMonotonic(), com.cliffc.aa.TestLive.testNewObj(), com.cliffc.aa.node.TestNodeSmall.testRecursiveDisplay(), com.cliffc.aa.node.TestNodeSmall.testUnresolvedAdd(), com.cliffc.aa.node.TestNodeSmall.v(), and com.cliffc.aa.node.Node.xval().
final Work [] com.cliffc.aa.GVNGCM._reduce_works = new Work[]{_work_dead,_work_flow,_work_reduce } |
Definition at line 35 of file GVNGCM.java.
|
private |
Definition at line 25 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_dead(), and com.cliffc.aa.GVNGCM.on_dead().
final Work com.cliffc.aa.GVNGCM._work_dom = new Work("dom" , false) { @Override public Node apply(Node n) { return n.do_mono (); } } |
Definition at line 31 of file GVNGCM.java.
Referenced by com.cliffc.aa.node.CastNode.CastNode(), com.cliffc.aa.node.CastNode.copy(), com.cliffc.aa.GVNGCM.iter(), and com.cliffc.aa.GVNGCM.reset_to_init0().
|
private |
Definition at line 27 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.GVNGCM.add_flow_defs(), com.cliffc.aa.GVNGCM.add_flow_uses(), com.cliffc.aa.GVNGCM.check_not_monotonic(), com.cliffc.aa.GVNGCM.gcp(), and com.cliffc.aa.GVNGCM.on_flow().
|
private |
Definition at line 29 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_grow().
|
private |
Definition at line 30 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_inline(), and com.cliffc.aa.GVNGCM.add_work_all().
|
private |
Definition at line 28 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_mono().
|
private |
Definition at line 26 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_reduce(), com.cliffc.aa.GVNGCM.add_reduce_uses(), and com.cliffc.aa.GVNGCM.on_reduce().
|
staticprivate |
Definition at line 38 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.add_work(), com.cliffc.aa.GVNGCM.add_work_all(), and com.cliffc.aa.GVNGCM.iter().
Definition at line 146 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.iter().
|
staticpackage |
Definition at line 170 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.iter(), and com.cliffc.aa.GVNGCM.reset_to_init0().
|
staticpackage |
Definition at line 171 of file GVNGCM.java.
Referenced by com.cliffc.aa.GVNGCM.iter(), and com.cliffc.aa.GVNGCM.reset_to_init0().