aa
com.cliffc.aa.GVNGCM.Build< N extends Node > Class Template Reference
Inheritance diagram for com.cliffc.aa.GVNGCM.Build< N extends Node >:
[legend]
Collaboration diagram for com.cliffc.aa.GVNGCM.Build< N extends Node >:
[legend]

Public Member Functions

Node add (Node n)
 
void close ()
 
Node init (Node n)
 
Node xform (Node n)
 

Public Attributes

_ret
 

Package Functions

public< M extends Node > M init2 (M n)
 

Package Attributes

Ary< Node_tmps = new Ary<>(new Node[1],0)
 

Detailed Description

Definition at line 356 of file GVNGCM.java.

Member Function Documentation

◆ add()

Node com.cliffc.aa.GVNGCM.Build< N extends Node >.add ( Node  n)

Definition at line 369 of file GVNGCM.java.

369  {
370  assert _tmps._len<16; // Time for a BitSet
371  if( _tmps.find(n)!=-1 ) return n; // Already flowed & keeped
372  return _tmps.push(n.keep());
373  }

References com.cliffc.aa.GVNGCM.Build< N extends Node >._tmps, and com.cliffc.aa.node.Node.keep().

Here is the call graph for this function:

◆ close()

void com.cliffc.aa.GVNGCM.Build< N extends Node >.close ( )

Definition at line 376 of file GVNGCM.java.

376  {
377  for( Node tmp : _tmps )
378  add_unuse(tmp.unkeep()); // Needs proper liveness at least
379  }

References com.cliffc.aa.GVNGCM.Build< N extends Node >._tmps, and com.cliffc.aa.GVNGCM.add_unuse().

Here is the call graph for this function:

◆ init()

Node com.cliffc.aa.GVNGCM.Build< N extends Node >.init ( Node  n)

Definition at line 363 of file GVNGCM.java.

363  {
364  assert _tmps._len<16; // Time for a BitSet
365  if( _tmps.find(n)!=-1 ) return n; // Already flowed & keeped
366  n.keep().do_flow(); // Update types, and future Parser uses, so always alive
367  return _tmps.push(n);
368  }

References com.cliffc.aa.GVNGCM.Build< N extends Node >._tmps, and com.cliffc.aa.node.Node.keep().

Referenced by com.cliffc.aa.GVNGCM.Build< N extends Node >.init2(), and com.cliffc.aa.GVNGCM.Build< N extends Node >.xform().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init2()

public<M extends Node> M com.cliffc.aa.GVNGCM.Build< N extends Node >.init2 ( n)
package

Definition at line 375 of file GVNGCM.java.

375 { return (M)init(n); }

References com.cliffc.aa.GVNGCM.Build< N extends Node >.init().

Here is the call graph for this function:

◆ xform()

Node com.cliffc.aa.GVNGCM.Build< N extends Node >.xform ( Node  n)

Definition at line 359 of file GVNGCM.java.

359  {
360  Node x = n.do_reduce(); // Attempt to reduce
361  return init(x==null ? n : x);
362  }

References com.cliffc.aa.node.Node.do_reduce(), and com.cliffc.aa.GVNGCM.Build< N extends Node >.init().

Here is the call graph for this function:

Member Data Documentation

◆ _ret

N com.cliffc.aa.GVNGCM.Build< N extends Node >._ret

Definition at line 358 of file GVNGCM.java.

◆ _tmps


The documentation for this class was generated from the following file:
com.cliffc.aa.GVNGCM.Build._tmps
Ary< Node > _tmps
Definition: GVNGCM.java:357
com.cliffc.aa.GVNGCM.add_unuse
Node add_unuse(Node n)
Definition: GVNGCM.java:59
com.cliffc.aa.node.Node
Definition: Node.java:16
com.cliffc.aa.GVNGCM.Build.init
Node init(Node n)
Definition: GVNGCM.java:363
com.cliffc.aa.node.Node.keep
public< N extends Node > N keep()
Definition: Node.java:228
com.cliffc.aa.node.Node.do_reduce
Node do_reduce()
Definition: Node.java:545