|
| NewObjNode (boolean is_closure, int alias, TypeStruct ts, Node clo) |
|
| NewObjNode (boolean is_closure, TypeStruct disp, Node clo) |
|
void | add_flow_def_extra (Node chg) |
|
void | add_flow_extra (Type old) |
|
FunPtrNode | add_fun (Parse bad, String name, FunPtrNode ptr) |
|
void | add_reduce_extra () |
|
TypeMem | all_live () |
|
NewNode | copy (boolean copy_edges) |
|
void | create (String name, Node val, Access mutable) |
|
void | create_active (String name, Node val, Access mutable) |
|
boolean | equals (Object o) |
|
boolean | exists (String name) |
|
Node | get (String name) |
|
int | hashCode () |
|
Node | ideal_mono () |
|
Node | ideal_reduce () |
|
boolean | is_mutable (String name) |
|
TypeMem | live_use (GVNGCM.Mode opt_mode, Node def) |
|
MrgProjNode | mrg () |
|
void | no_more_fields () |
|
void | promote_forward (NewObjNode parent) |
|
final void | sets (T ts) |
|
final void | setsm (T ts) |
|
void | update (int fidx, Access mutable, Node val) |
|
void | update (String tok, Access mutable, Node val) |
|
Type | value (GVNGCM.Mode opt_mode) |
|
String | xstr () |
|
Definition at line 20 of file NewObjNode.java.
◆ NewObjNode() [1/2]
com.cliffc.aa.node.NewObjNode.NewObjNode |
( |
boolean |
is_closure, |
|
|
TypeStruct |
disp, |
|
|
Node |
clo |
|
) |
| |
◆ NewObjNode() [2/2]
com.cliffc.aa.node.NewObjNode.NewObjNode |
( |
boolean |
is_closure, |
|
|
int |
alias, |
|
|
TypeStruct |
ts, |
|
|
Node |
clo |
|
) |
| |
◆ _init()
Definition at line 43 of file NewNode.java.
44 if( _elock ) unelock();
◆ add_flow_def_extra()
◆ add_flow_extra()
void com.cliffc.aa.node.NewObjNode.add_flow_extra |
( |
Type |
old | ) |
|
◆ add_fun()
Definition at line 76 of file NewObjNode.java.
77 int fidx =
_ts.fld_find(name);
81 Node n = _defs.at(
def_idx(fidx));
82 if( n instanceof UnresolvedNode ) n.add_def(
ptr);
83 else n =
new UnresolvedNode(bad,n,
ptr);
References com.cliffc.aa.node.NewNode< TypeStruct >._ts, com.cliffc.aa.node.Node.add_def(), com.cliffc.aa.node.NewObjNode.create_active(), com.cliffc.aa.node.NewNode< TypeStruct >.def_idx(), com.cliffc.aa.type.TypeFld.Access.Final, com.cliffc.aa.node.NewNode< TypeStruct >.ptr(), com.cliffc.aa.node.NewObjNode.update(), and com.cliffc.aa.node.Node.xval().
Referenced by com.cliffc.aa.Env.add_fun(), and com.cliffc.aa.Env.top_scope().
◆ add_reduce_extra()
◆ all_live()
◆ captured()
Definition at line 116 of file NewNode.java.
117 if( _keep > 0 )
return false;
118 if( _uses._len==0 )
return false;
119 Node mem = _uses.at(0);
121 if( _uses._len==1 ) {
122 if( mem instanceof MrgProjNode )
return true;
125 return !(val(1) instanceof
TypeStr);
127 Node
ptr = _uses.at(1);
128 if(
ptr instanceof MrgProjNode )
ptr = _uses.at(0);
129 if(
ptr._keep>0 ) return false;
133 for( Node use :
ptr._uses )
134 if( !(use instanceof IfNode) )
◆ copy()
Definition at line 143 of file NewNode.java.
145 NewNode<T> nnn = (NewNode<T>)super.copy(copy_edges);
◆ create()
void com.cliffc.aa.node.NewObjNode.create |
( |
String |
name, |
|
|
Node |
val, |
|
|
Access |
mutable |
|
) |
| |
◆ create_active()
void com.cliffc.aa.node.NewObjNode.create_active |
( |
String |
name, |
|
|
Node |
val, |
|
|
Access |
mutable |
|
) |
| |
Definition at line 57 of file NewObjNode.java.
59 assert
_ts.fld_find(name) == -1;
References com.cliffc.aa.node.NewNode< TypeStruct >._ts, com.cliffc.aa.node.Node._val, com.cliffc.aa.GVNGCM.add_flow(), com.cliffc.aa.node.NewNode< TypeStruct >.def_idx(), com.cliffc.aa.type.TypeFld.Access.Final, com.cliffc.aa.Env.GVN, com.cliffc.aa.type.Type< T extends Type< T >.SCALAR, and com.cliffc.aa.node.NewNode< TypeStruct >.setsm().
Referenced by com.cliffc.aa.node.NewObjNode.add_fun(), com.cliffc.aa.node.NewObjNode.create(), com.cliffc.aa.node.TestNode.testMonotonic(), com.cliffc.aa.TestLive.testNewObj(), com.cliffc.aa.Env.top_scope(), and com.cliffc.aa.Parse.tuple().
◆ dead_type()
TypeStruct com.cliffc.aa.node.NewObjNode.dead_type |
( |
| ) |
|
|
package |
◆ def_idx()
◆ equals()
◆ escapees()
◆ exists()
boolean com.cliffc.aa.node.NewObjNode.exists |
( |
String |
name | ) |
|
◆ fld()
◆ get()
Node com.cliffc.aa.node.NewObjNode.get |
( |
String |
name | ) |
|
◆ hashCode()
◆ ideal_mono()
Node com.cliffc.aa.node.NewObjNode.ideal_mono |
( |
| ) |
|
◆ ideal_reduce()
◆ is_mutable()
boolean com.cliffc.aa.node.NewObjNode.is_mutable |
( |
String |
name | ) |
|
◆ is_unused()
◆ kill2()
Definition at line 102 of file NewNode.java.
104 while( !is_dead() && _defs._len > 1 )
110 if( is_dead() )
return;
111 for( Node use : _uses )
◆ live_use()
TypeMem com.cliffc.aa.node.NewObjNode.live_use |
( |
GVNGCM.Mode |
opt_mode, |
|
|
Node |
def |
|
) |
| |
◆ mrg()
Definition at line 158 of file NewNode.java.
159 Node
ptr = _uses.at(0);
160 if( !(
ptr instanceof MrgProjNode) )
ptr = _uses.at(1);
161 return (MrgProjNode)
ptr;
◆ no_more_fields()
void com.cliffc.aa.node.NewObjNode.no_more_fields |
( |
| ) |
|
◆ promote_forward()
void com.cliffc.aa.node.NewObjNode.promote_forward |
( |
NewObjNode |
parent | ) |
|
Definition at line 94 of file NewObjNode.java.
95 assert parent !=
null;
97 for(
int i=0; i<ts.
len(); i++ ) {
99 if( n !=
null && n.is_forward_ref() ) {
103 n.set_def(1,Node.con(tdisp));
107 parent.create(
fld._fld,n,
fld._access);
References com.cliffc.aa.node.NewNode< TypeStruct >._alias, com.cliffc.aa.node.NewNode< TypeStruct >._ts, com.cliffc.aa.GVNGCM.add_flow_uses(), com.cliffc.aa.Env.ANY, com.cliffc.aa.type.Type< T extends Type< T >.ANY, com.cliffc.aa.type.Bits< B extends Bits< B >.clear(), com.cliffc.aa.node.Node.con(), com.cliffc.aa.node.NewObjNode.create(), com.cliffc.aa.node.NewNode< TypeStruct >.def_idx(), com.cliffc.aa.type.TypeFld.Access.Final, com.cliffc.aa.node.NewNode< TypeStruct >.fld(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.Env.GVN, com.cliffc.aa.node.Node.is_forward_ref(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.ISUSED, com.cliffc.aa.type.TypeStruct.len(), com.cliffc.aa.Env.LEX_DISPLAYS, com.cliffc.aa.type.TypeMemPtr.make(), com.cliffc.aa.node.Node.set_def(), com.cliffc.aa.node.NewNode< TypeStruct >.setsm(), com.cliffc.aa.type.Bits< B extends Bits< B >.test(), and com.cliffc.aa.node.Node.xval().
Referenced by com.cliffc.aa.Env.close().
◆ ptr()
Definition at line 163 of file NewNode.java.
164 Node
ptr = _uses.at(0);
165 if(
ptr instanceof MrgProjNode )
ptr = _uses.at(1);
166 return (ProjNode)
ptr;
◆ set_name()
void com.cliffc.aa.node.NewObjNode.set_name |
( |
TypeStruct |
name | ) |
|
|
package |
◆ sets()
◆ setsm()
◆ str()
◆ update() [1/2]
void com.cliffc.aa.node.NewObjNode.update |
( |
int |
fidx, |
|
|
Access |
mutable, |
|
|
Node |
val |
|
) |
| |
◆ update() [2/2]
void com.cliffc.aa.node.NewObjNode.update |
( |
String |
tok, |
|
|
Access |
mutable, |
|
|
Node |
val |
|
) |
| |
◆ value()
◆ valueobj()
TypeObj com.cliffc.aa.node.NewObjNode.valueobj |
( |
| ) |
|
|
package |
◆ xstr()
◆ _alias
◆ _crushed
◆ _fld_starts
Parse [] com.cliffc.aa.node.NewObjNode._fld_starts |
◆ _is_closure
final boolean com.cliffc.aa.node.NewObjNode._is_closure |
◆ _tptr
◆ _ts
The documentation for this class was generated from the following file:
static final TypeMem DEAD
Memory type; the state of all of memory; memory edges order memory ops.
static boolean eq(String s0, String s1)
void update(String tok, Access mutable, Node val)
public< N extends Node > N add_mono(N n)
void add_flow_uses(Node n)
static final TypeMem ESCAPE
an implementation of language AA
void revalive(Node... ns)
static final TypeMem ALLMEM
static int new_alias(int par)
A memory-based collection of optionally named fields.
static boolean test(long[] bits, int i)
static int def_idx(int fld)
void _init(int alias, T ts)
static final TypeObj UNUSED
static final TypeObj ISUSED
static TypeTuple make(boolean any, Type[] ts)
final boolean _is_closure
static BitsAlias make0(int bit)
static final TypeMem LESC_NO_DISP
public< N extends Node > N add_reduce(N n)
static BitsAlias LEX_DISPLAYS
void create_active(String name, Node val, Access mutable)
public< N extends Node > N add_flow(N n)
static final TypeStruct ANYSTRUCT
abstract TypeObj valueobj()
static TypeMemPtr make(BitsAlias aliases, TypeObj obj)