aa
|
A memory-based collection of optionally named fields. More...
Classes | |
class | TPair |
Static Public Member Functions | |
static TypeFld[] | flds (Type t1) |
static TypeFld[] | flds (Type t1, Type t2) |
static TypeStruct | make (String fld_name, Type t) |
static TypeStruct | make (String fld_name, Type t, Access a) |
static TypeStruct | make (String name, boolean any, TypeFld[] flds, boolean open) |
static TypeStruct | make (Type... ts) |
static TypeStruct | make (TypeFld... flds) |
static TypeStruct | malloc (String name, boolean any, TypeFld[] flds, boolean open) |
static TypeStruct | open (Type tdisp) |
static TypeStruct | shrink (Ary< Type > reaches, TypeStruct tstart) |
static TypeFld[] | tups (Type t1, Type t2) |
static TypeFld[] | tups (Type t1, Type t2, Type t3) |
Public Attributes | |
boolean | _cyclic |
boolean | _open |
Static Public Attributes | |
static final TypeStruct | A = make("a",TypeFlt.FLT64) |
static final TypeStruct | ALLSTRUCT = make("",false,new TypeFld[0],true ) |
static final TypeStruct | ANYSTRUCT = make("",true ,new TypeFld[0],false) |
static final TypeStruct | ARW = make("a",TypeFlt.FLT64,Access.RW) |
static final TypeStruct | FLT64 = make(flds(TypeFlt.FLT64)) |
static final TypeStruct | INT64_INT64 = make(flds(TypeInt.INT64,TypeInt.INT64)) |
static final TypeObj | ISUSED |
static final TypeStruct | NAMEPT = make("Point:",false,POINT._flds,false) |
static final TypeObj | OBJ |
static final TypeStruct | POINT = make(flds(TypeFlt.FLT64,TypeFlt.FLT64)) |
static final NonBlockingHashMapLong< Type > | UF = new NonBlockingHashMapLong<>() |
static final TypeObj | UNUSED |
static final TypeObj | XOBJ |
Protected Member Functions | |
O | init (byte type, String name, boolean any, boolean use) |
TypeStruct | xdual () |
Type | xmeet (Type t) |
Package Functions | |
boolean | any_modifiable () |
boolean | contains (Type t, VBitSet bs) |
TypeObj | flatten_fields () |
boolean | intern_check1 () |
boolean | is_display () |
TypeStruct | rdual () |
TypeObj | remove_other_flds (String fld, Type live) |
TypeStruct | repeats_in_cycles () |
TypeStruct | repeats_in_cycles (TypeStruct head, VBitSet bs) |
Static Package Functions | |
[static initializer] | |
static boolean | isDigit (char c) |
static TypeMemPtr | sharpen (TypeMem mem, TypeMemPtr dull) |
Package Attributes | |
boolean | _any |
boolean | _use |
Static Package Attributes | |
static final TypeStruct | TFLT64 = make(".",TypeFlt.FLT64) |
static final TypeStruct[] | TYPES = new TypeStruct[]{ALLSTRUCT,POINT,NAMEPT,A,C0,D1,ARW,INT64_INT64} |
Private Member Functions | |
TypeStruct | _clone () |
int | cmp (TypeStruct t) |
boolean | cycle_equals0 (TypeStruct t) |
TypeStruct | cyclic_meet (TypeStruct that) |
TypeStruct | find_other () |
BitSet | get_cyclic () |
TypeStruct | hashcons_freeS () |
TypeStruct | init (String name, boolean any, TypeFld[] flds, boolean open) |
boolean | is_tup () |
int | len (TypeStruct tt) |
int | len0 (TypeStruct tmax) |
void | mark_cyclic (BitSet bcs, Ary< Type > reaches) |
void | push (Ary< Type > work, Type t) |
TypeStruct | update (Access fin, String fld, Type val, boolean precise) |
TypeStruct | xmeet1 (TypeStruct tmax, boolean is_loop) |
Static Private Member Functions | |
static void | _dull (TypeMem mem, TypeMemPtr dull, HashMap< BitsAlias, TypeMemPtr > dull_cache) |
static boolean | _is_sharp (Type t) |
static TypeMemPtr | _sharp (TypeMem mem, TypeMemPtr dull, HashMap< BitsAlias, TypeMemPtr > dull_cache) |
static Type | ax_impl_fptr (int alias, int cutoff, Ary< TypeStruct > cutoffs, int d, TypeStruct dold, TypeFunPtr old) |
static TypeMemPtr | ax_impl_ptr (int alias, int cutoff, Ary< TypeStruct > cutoffs, int d, TypeStruct dold, TypeMemPtr old) |
static TypeStruct | ax_impl_struct (int alias, boolean isnews, int cutoff, Ary< TypeStruct > cutoffs, int d, TypeStruct dold, TypeStruct old) |
static Type | ax_meet (BitSetSparse bs, Type nt, Type old) |
static boolean | check_interned (Ary< Type > reachs) |
static boolean | check_uf (Ary< Type > reaches) |
static BitSet | get_cyclic (BitSet bcs, VBitSet bs, Ary< Type > stack, Type t) |
static boolean | post_mod (Type t) |
static< T extends Type > T | ufind (T t) |
static< T extends Type > T | union (T lost, T kept) |
Private Attributes | |
TypeFld[] | _flds |
Static Private Attributes | |
static final TypeStruct | C0 = make("c",TypeInt.FALSE) |
static final Ary< TypeStruct > | CYCLES = new Ary<>(new TypeStruct[0]) |
static final TypeStruct | D1 = make("d",TypeInt.TRUE ) |
static final IHashMap | DUPS = new IHashMap() |
static final HashMap< TPair, TypeStruct > | MEETS0 = new HashMap<>() |
static final IHashMap | OLD2APX = new IHashMap() |
A memory-based collection of optionally named fields.
This is a recursive type, only produced by NewNode and structure or tuple constants. Fields can be indexed by field name or numeric constant (i.e. tuples), but NOT by a general number - thats an Array. Field access mods make a small lattice of: {choice,r/w,final,r-o}. Note that mixing r/w and final moves to r-o and loses the final property.
The recursive type poses some interesting challenges. It is represented as literally a cycle of pointers which must include a TypeStruct (and not a TypeTuple which only roots Types) and a TypeMemPtr (edge) or a TypeFunPtr (display pointer). Type inference involves finding the Meet of two cyclic structures. The cycles will not generally be of the same length. However, each field Meets independently (and fields in one structure but not the other are not in the final Meet). This means we are NOT trying to solve the general problem of graph-equivalence (a known NP hard problem). Instead we can solve each field independently and also intersect across common fields.
When solving across a single field, we will find some prefix and then possibly a cycle - conceptually the type unrolls forever. When doing the Meet we conceptually unroll both types forever, compute the Meet element by element... but when both types have looped, we can stop and the discovered cycle is the Meet's cycle.
TODO: Cleaning up this mess somewhat... A try-with-resources: try( Ary<TypeFld> flds = TypeFld.get_flds()) { while( pred ) flds.push(fld); // Accumulate, drop dups, screw around malloc(... flds ...); // Finally use } // Exit unwinds the get_flds These can be scope-alloced from a free-list. Moving TypeStruct to an UNORDERED list of fields.
Definition at line 50 of file TypeStruct.java.
|
staticpackage |
|
private |
Definition at line 465 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFlds.clone(), com.cliffc.aa.type.TypeStruct.compute_hash(), com.cliffc.aa.type.TypeStruct.flds(), and com.cliffc.aa.type.TypeStruct.malloc().
Referenced by com.cliffc.aa.type.TypeStruct._sharp(), and com.cliffc.aa.type.TypeStruct.cyclic_meet().
|
staticprivate |
Definition at line 909 of file TypeStruct.java.
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._is_sharp(), com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Bits< B extends Bits< B >.above_center(), com.cliffc.aa.type.TypeMem.at(), com.cliffc.aa.type.Type< T extends Type< T >.dual(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.ISUSED, com.cliffc.aa.type.Type< T extends Type< T >.join(), com.cliffc.aa.type.TypeMemPtr.make_from(), com.cliffc.aa.type.Type< T extends Type< T >.meet(), com.cliffc.aa.type.BitsAlias.next_kid(), com.cliffc.aa.type.TypeMem.sharp_get(), com.cliffc.aa.type.TypeMem.sharput(), and com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.UNUSED.
Referenced by com.cliffc.aa.type.TypeStruct.sharpen().
|
staticprivate |
Definition at line 940 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), and com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.ISUSED.
Referenced by com.cliffc.aa.type.TypeStruct._dull(), and com.cliffc.aa.type.TypeStruct._sharp().
|
staticprivate |
Definition at line 963 of file TypeStruct.java.
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeFunPtr._disp, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.type.TypeStruct._is_sharp(), com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeFunPtr._sharpen_clone(), com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Type< T extends Type< T >.clone(), com.cliffc.aa.type.TypeMemPtr.compute_hash(), com.cliffc.aa.type.Type< T extends Type< T >.hashcons_free(), com.cliffc.aa.type.TypeStruct.hashcons_freeS(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.type.TypeMemPtr.make_from(), com.cliffc.aa.type.TypeFunPtr.make_from(), com.cliffc.aa.type.TypeFld.setX(), com.cliffc.aa.type.TypeMem.sharp_get(), and com.cliffc.aa.type.TypeMem.sharput().
Referenced by com.cliffc.aa.type.TypeStruct.sharpen().
|
inherited |
Definition at line 77 of file TypeObj.java.
TypeStruct com.cliffc.aa.type.TypeStruct.add_fld | ( | String | name, |
Access | mutable | ||
) |
Definition at line 1021 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.add_fld(), and com.cliffc.aa.type.Type< T extends Type< T >.SCALAR.
Referenced by com.cliffc.aa.type.TypeStruct.add_fld().
TypeStruct com.cliffc.aa.type.TypeStruct.add_fld | ( | String | name, |
Access | mutable, | ||
Type | tfld | ||
) |
Definition at line 1022 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFlds.copyOf(), com.cliffc.aa.util.Util.eq(), com.cliffc.aa.type.TypeStruct.fld_find(), com.cliffc.aa.type.TypeFld.fldBot, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFld.make(), and com.cliffc.aa.type.TypeStruct.make().
|
package |
Definition at line 1080 of file TypeStruct.java.
TypeStruct com.cliffc.aa.type.TypeStruct.approx | ( | int | cutoff, |
int | alias | ||
) |
Definition at line 477 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.type.TypeStruct.ax_impl_struct(), com.cliffc.aa.type.TypeStruct.check_interned(), com.cliffc.aa.type.TypeStruct.check_uf(), com.cliffc.aa.util.IHashMap.clear(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.install_cyclic(), com.cliffc.aa.util.IHashMap.isEmpty(), com.cliffc.aa.type.TypeStruct.OLD2APX, com.cliffc.aa.type.TypeStruct.reachable(), com.cliffc.aa.type.TypeStruct.shrink(), and com.cliffc.aa.type.TypeStruct.UF.
Referenced by com.cliffc.aa.HM.TestHM.build_cycle(), com.cliffc.aa.HM.TestHM9.build_cycle(), com.cliffc.aa.HM.TestHM.build_cycle2(), com.cliffc.aa.HM.TestHM9.test36(), com.cliffc.aa.type.TestApprox.testApprox1(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox4(), com.cliffc.aa.type.TestApprox.testApprox5(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox7(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestType.testType(), com.cliffc.aa.HM.HM9.Struct.val(), and com.cliffc.aa.HM.HM.Struct.val().
Type com.cliffc.aa.type.TypeStruct.at | ( | int | idx | ) |
Definition at line 1013 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeFld._t.
Referenced by com.cliffc.aa.HM.TestHM.build_cycle(), com.cliffc.aa.HM.TestHM9.build_cycle(), com.cliffc.aa.HM.TestHM.build_cycle2(), com.cliffc.aa.type.TestApprox.check_leaf(), com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.node.LoadNode.get_fld(), com.cliffc.aa.type.TypeTuple.make(), com.cliffc.aa.HM.TestHM9.test36(), com.cliffc.aa.type.TestApprox.testApprox1(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox4(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.TestParse.testParse06(), com.cliffc.aa.TestParse.testParse07(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestApprox.testTSMeet(), com.cliffc.aa.HM.HM9.Field.val(), com.cliffc.aa.HM.HM.Field.val(), com.cliffc.aa.HM.HM9.T2.walk_types_in(), com.cliffc.aa.HM.HM.T2.walk_types_in(), com.cliffc.aa.HM.HM9.T2.walk_types_out(), and com.cliffc.aa.HM.HM.T2.walk_types_out().
|
staticprivate |
Definition at line 569 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFunPtr._disp, com.cliffc.aa.type.Type< T extends Type< T >.ANY, com.cliffc.aa.type.TypeStruct.ax_impl_ptr(), com.cliffc.aa.type.Type< T extends Type< T >.clone(), com.cliffc.aa.util.IHashMap.get(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.type.TypeStruct.OLD2APX, com.cliffc.aa.util.IHashMap.put(), and com.cliffc.aa.type.TypeStruct.ufind().
Referenced by com.cliffc.aa.type.TypeStruct.ax_impl_struct().
|
staticprivate |
Definition at line 546 of file TypeStruct.java.
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeStruct.ax_impl_struct(), com.cliffc.aa.type.Type< T extends Type< T >.clone(), com.cliffc.aa.util.IHashMap.get(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.OBJ, com.cliffc.aa.type.TypeStruct.OLD2APX, com.cliffc.aa.util.IHashMap.put(), com.cliffc.aa.type.Bits< B extends Bits< B >.test(), com.cliffc.aa.type.TypeStruct.ufind(), com.cliffc.aa.AA.unimpl(), and com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.XOBJ.
Referenced by com.cliffc.aa.type.TypeStruct.ax_impl_fptr(), and com.cliffc.aa.type.TypeStruct.ax_impl_struct().
|
staticprivate |
Definition at line 507 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.type.TypeStruct.ax_impl_fptr(), com.cliffc.aa.type.TypeStruct.ax_impl_ptr(), com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeFlds.clone(), com.cliffc.aa.util.IHashMap.get(), com.cliffc.aa.util.Ary< E >.isEmpty(), com.cliffc.aa.type.TypeStruct.OLD2APX, com.cliffc.aa.util.Ary< E >.pop(), com.cliffc.aa.util.Ary< E >.push(), com.cliffc.aa.util.IHashMap.put(), com.cliffc.aa.type.TypeFld.setX(), and com.cliffc.aa.type.TypeStruct.ufind().
Referenced by com.cliffc.aa.type.TypeStruct.approx(), and com.cliffc.aa.type.TypeStruct.ax_impl_ptr().
|
staticprivate |
Definition at line 591 of file TypeStruct.java.
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeObj< O extends TypeObj< O >._any, com.cliffc.aa.type.TypeFunPtr._disp, com.cliffc.aa.type.TypeFunPtr._fidxs, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.type.Type< T extends Type< T >._uid, com.cliffc.aa.type.Type< T extends Type< T >.ANY, com.cliffc.aa.type.TypeFunPtr.ax_meet_nil(), com.cliffc.aa.type.TypeMemPtr.ax_meet_nil(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.ISUSED, com.cliffc.aa.type.TypeStruct.len(), com.cliffc.aa.type.Bits< B extends Bits< B >.meet(), com.cliffc.aa.type.Type< T extends Type< T >.meet(), com.cliffc.aa.type.Type< T extends Type< T >.NIL, com.cliffc.aa.type.TypeObj< TypeStruct >.OBJ, com.cliffc.aa.type.Type< T extends Type< T >.SCALAR, com.cliffc.aa.util.BitSetSparse.tset(), com.cliffc.aa.type.TypeStruct.ufind(), com.cliffc.aa.AA.unimpl(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.UNUSED, com.cliffc.aa.type.Type< T extends Type< T >.XNIL, com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.XOBJ, and com.cliffc.aa.type.Type< T extends Type< T >.XSCALAR.
Referenced by com.cliffc.aa.type.TypeStruct.ax_impl_struct().
Definition at line 770 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.approx().
Definition at line 804 of file TypeStruct.java.
References com.cliffc.aa.type.Type< T extends Type< T >.intern_lookup(), and com.cliffc.aa.type.TypeStruct.ufind().
Referenced by com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), and com.cliffc.aa.type.TypeStruct.sharpen().
TypeStruct com.cliffc.aa.type.TypeStruct.close | ( | ) |
Definition at line 212 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.hashcons_freeS(), and com.cliffc.aa.type.TypeStruct.malloc().
Referenced by com.cliffc.aa.node.ConTypeNode.def_fref().
|
private |
Definition at line 76 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld._access, com.cliffc.aa.type.TypeFld._fld, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFld._t, and com.cliffc.aa.util.Util.eq().
Referenced by com.cliffc.aa.type.TypeStruct.cycle_equals(), and com.cliffc.aa.type.TypeStruct.equals().
int com.cliffc.aa.type.TypeStruct.compute_hash | ( | ) |
Definition at line 66 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.type.TypeStruct._open, and com.cliffc.aa.type.TypeStruct.fld().
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.rdual(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testRecursive(), and com.cliffc.aa.type.TestApprox.testTSMeet().
Definition at line 1128 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Type< T extends Type< T >.contains(), com.cliffc.aa.type.TypeStruct.fld(), and com.cliffc.aa.util.VBitSet.tset().
TypeStruct com.cliffc.aa.type.TypeStruct.crush | ( | ) |
Definition at line 1092 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeFld._fld, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._order, com.cliffc.aa.type.Type< T extends Type< T >.ALL, com.cliffc.aa.type.TypeFld.Access.bot(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFlds.get(), com.cliffc.aa.type.TypeFld.is_display_ptr(), com.cliffc.aa.type.TypeFld.make(), com.cliffc.aa.type.TypeStruct.make_from(), and com.cliffc.aa.type.TypeFld.simple_ptr().
Referenced by com.cliffc.aa.node.NewObjNode.ideal_mono().
boolean com.cliffc.aa.type.TypeStruct.cycle_equals | ( | Type | o | ) |
Definition at line 110 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.cmp(), com.cliffc.aa.type.TypeStruct.cycle_equals0(), com.cliffc.aa.type.TypeStruct.CYCLES, com.cliffc.aa.type.TypeStruct.find_other(), and com.cliffc.aa.type.TypeStruct.len().
Referenced by com.cliffc.aa.type.TypeStruct.equals().
|
private |
Definition at line 128 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._t, and com.cliffc.aa.type.Type< T extends Type< T >.cycle_equals().
Referenced by com.cliffc.aa.type.TypeStruct.cycle_equals().
|
private |
Definition at line 351 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< O extends TypeObj< O >._any, com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.TypeObj< O extends TypeObj< O >._use, com.cliffc.aa.type.TypeStruct.check_uf(), com.cliffc.aa.type.TypeFld.cmeet(), com.cliffc.aa.type.TypeStruct.compute_hash(), com.cliffc.aa.type.TypeStruct.equals(), com.cliffc.aa.type.TypeStruct.install_cyclic(), com.cliffc.aa.type.TypeStruct.len(), com.cliffc.aa.type.Type< T extends Type< T >.meet(), com.cliffc.aa.type.TypeStruct.MEETS0, com.cliffc.aa.type.TypeStruct.reachable(), com.cliffc.aa.type.TypeStruct.TPair.set(), com.cliffc.aa.type.TypeFld.setX(), com.cliffc.aa.type.TypeStruct.shrink(), and com.cliffc.aa.type.TypeStruct.UF.
Referenced by com.cliffc.aa.type.TypeStruct.xmeet().
boolean com.cliffc.aa.type.TypeStruct.equals | ( | Object | o | ) |
Definition at line 89 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.cmp(), and com.cliffc.aa.type.TypeStruct.cycle_equals().
Referenced by com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.TPair.equals(), com.cliffc.aa.type.TypeStruct.install_cyclic(), and com.cliffc.aa.type.TypeStruct.repeats_in_cycles().
|
private |
Definition at line 106 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.CYCLES.
Referenced by com.cliffc.aa.type.TypeStruct.cycle_equals().
|
package |
Definition at line 1060 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld.Access.bot(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFlds.get(), com.cliffc.aa.type.TypeStruct.make_from(), and com.cliffc.aa.type.Type< T extends Type< T >.SCALAR.
TypeFld com.cliffc.aa.type.TypeStruct.fld | ( | int | idx | ) |
Definition at line 1012 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds.
Referenced by com.cliffc.aa.type.TypeStruct._dull(), com.cliffc.aa.type.TypeStruct._is_sharp(), com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.compute_hash(), com.cliffc.aa.type.TypeStruct.contains(), com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.type.TypeStruct.crush(), com.cliffc.aa.node.StoreNode.err(), com.cliffc.aa.type.TypeStruct.fld_find(), com.cliffc.aa.type.TypeMem.fld_is_mod(), com.cliffc.aa.type.TypeStruct.get_cyclic(), com.cliffc.aa.type.TypeStruct.intern_check1(), com.cliffc.aa.node.NewObjNode.NewObjNode(), com.cliffc.aa.node.NewObjNode.promote_forward(), com.cliffc.aa.type.TypeStruct.remove_other_flds(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.TestParse.testParse06(), com.cliffc.aa.TestParse.testParse07(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestApprox.testTSMeet(), com.cliffc.aa.type.TypeStruct.update(), com.cliffc.aa.type.TypeStruct.walk(), com.cliffc.aa.HM.HM9.T2.walk_types_out(), com.cliffc.aa.HM.HM.T2.walk_types_out(), and com.cliffc.aa.type.TypeStruct.widen().
int com.cliffc.aa.type.TypeStruct.fld_find | ( | String | fld | ) |
Definition at line 1038 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.util.Util.eq(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeFld.fld_find(), com.cliffc.aa.type.TypeFld.fldBot, and com.cliffc.aa.type.TypeFld.fldTop.
Referenced by com.cliffc.aa.type.TypeStruct.add_fld(), com.cliffc.aa.node.StoreNode.err(), com.cliffc.aa.node.LoadNode.find(), com.cliffc.aa.node.StoreNode.find(), com.cliffc.aa.type.TypeMem.fld_is_mod(), com.cliffc.aa.node.LoadNode.get_fld(), com.cliffc.aa.type.TypeStruct.remove_other_flds(), com.cliffc.aa.type.TypeStruct.str(), com.cliffc.aa.type.TypeStruct.update(), com.cliffc.aa.HM.HM9.Field.val(), com.cliffc.aa.HM.HM.Field.val(), com.cliffc.aa.HM.HM9.T2.walk_types_in(), com.cliffc.aa.HM.HM.T2.walk_types_in(), com.cliffc.aa.HM.HM9.T2.walk_types_out(), and com.cliffc.aa.HM.HM.T2.walk_types_out().
TypeFld [] com.cliffc.aa.type.TypeStruct.flds | ( | ) |
Definition at line 1018 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds.
Referenced by com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeStruct.add_fld(), com.cliffc.aa.type.TypeStruct.crush(), com.cliffc.aa.type.TypeStruct.flatten_fields(), com.cliffc.aa.type.TypeStruct.init(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeStruct.malloc(), com.cliffc.aa.type.TypeStruct.rdual(), com.cliffc.aa.type.TypeStruct.remove_other_flds(), com.cliffc.aa.type.TypeStruct.set_fld(), com.cliffc.aa.type.TypeStruct.update(), com.cliffc.aa.type.TypeStruct.widen(), com.cliffc.aa.type.TypeStruct.xdual(), and com.cliffc.aa.type.TypeStruct.xmeet1().
Definition at line 184 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.make_arg(), com.cliffc.aa.type.TypeFld.NO_DISP, and com.cliffc.aa.type.TypeFlds.ts().
Referenced by com.cliffc.aa.type.TypeMem.all_reaching_aliases(), com.cliffc.aa.HM.HM9.Pair1.Pair1X.apply(), com.cliffc.aa.type.TypeMemPtr.depth(), com.cliffc.aa.HM.TestHM.test25(), and com.cliffc.aa.HM.TestHM9.test25().
Definition at line 185 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.make_arg(), com.cliffc.aa.type.TypeFld.NO_DISP, and com.cliffc.aa.type.TypeFlds.ts().
|
private |
Definition at line 822 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.get_cyclic(), and com.cliffc.aa.type.TypeStruct.install_cyclic().
|
staticprivate |
Definition at line 825 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.util.Ary< E >._len, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.type.Type< T extends Type< T >._uid, com.cliffc.aa.util.Ary< E >.at(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.get_cyclic(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.util.Ary< E >.pop(), com.cliffc.aa.util.Ary< E >.push(), and com.cliffc.aa.util.VBitSet.test().
|
private |
Definition at line 178 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeFlds.hash_cons().
Referenced by com.cliffc.aa.type.TypeStruct._sharp(), com.cliffc.aa.type.TypeStruct.close(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeStruct.make_from_flds(), and com.cliffc.aa.type.TypeStruct.xmeet1().
|
protectedinherited |
Definition at line 19 of file TypeObj.java.
|
private |
Definition at line 55 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeStruct.init(), and com.cliffc.aa.type.TypeStruct.open().
Referenced by com.cliffc.aa.type.TypeStruct.init(), com.cliffc.aa.type.TypeStruct.malloc(), com.cliffc.aa.type.TypeStruct.rdual(), and com.cliffc.aa.type.TypeStruct.xdual().
TypeStruct com.cliffc.aa.type.TypeStruct.install_cyclic | ( | Ary< Type > | reachs | ) |
Definition at line 422 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._cyclic, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.TypeStruct.equals(), com.cliffc.aa.type.TypeStruct.get_cyclic(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.type.TypeStruct.mark_cyclic(), com.cliffc.aa.type.TypeStruct.MEETS0, com.cliffc.aa.type.TypeStruct.rdual(), com.cliffc.aa.type.TypeStruct.repeats_in_cycles(), com.cliffc.aa.AA.unimpl(), and com.cliffc.aa.type.TypeStruct.walk().
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.sharpen(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testRecursive(), and com.cliffc.aa.type.TestApprox.testTSMeet().
|
package |
Definition at line 1150 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct.fld(), and com.cliffc.aa.type.Type< T extends Type< T >.intern_lookup().
|
inherited |
Definition at line 79 of file TypeObj.java.
|
package |
Definition at line 220 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeMemPtr.DISPLAY, and com.cliffc.aa.type.TypeFld.is_display_ptr().
|
private |
Definition at line 141 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeStruct.isDigit().
Referenced by com.cliffc.aa.type.TypeStruct.str().
byte com.cliffc.aa.type.TypeStruct.isBitShape | ( | Type | t | ) |
Definition at line 1120 of file TypeStruct.java.
References com.cliffc.aa.type.Type< T extends Type< T >.isa().
|
staticpackage |
Definition at line 140 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.is_tup(), and com.cliffc.aa.type.TypeFld.str().
Type com.cliffc.aa.type.TypeStruct.last | ( | ) |
Definition at line 1014 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeFld._t.
int com.cliffc.aa.type.TypeStruct.len | ( | ) |
Definition at line 1015 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds.
Referenced by com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeStruct.cycle_equals(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), and com.cliffc.aa.type.TypeStruct.xmeet1().
|
private |
Definition at line 865 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeStruct.len0().
Referenced by com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeTuple.make(), com.cliffc.aa.node.NewObjNode.promote_forward(), com.cliffc.aa.HM.HM9.T2.walk_types_out(), and com.cliffc.aa.HM.HM.T2.walk_types_out().
|
private |
Definition at line 866 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, and com.cliffc.aa.type.TypeStruct._flds.
Referenced by com.cliffc.aa.type.TypeStruct.len().
|
static |
Definition at line 190 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.Access.Final, and com.cliffc.aa.type.TypeStruct.make().
Referenced by com.cliffc.aa.type.TypeStruct.add_fld(), com.cliffc.aa.HM.HM9.Pair1.Pair1X.apply(), com.cliffc.aa.HM.HM9.Pair.apply(), com.cliffc.aa.HM.HM.Pair1.Pair1X.apply(), com.cliffc.aa.HM.HM9.Triple.apply(), com.cliffc.aa.HM.HM.Pair.apply(), com.cliffc.aa.HM.HM.Triple.apply(), com.cliffc.aa.HM.TestHM.build_cycle(), com.cliffc.aa.HM.TestHM9.build_cycle(), com.cliffc.aa.HM.TestHM.build_cycle2(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.HM.TestHM.make_tups(), com.cliffc.aa.type.TypeStruct.open(), com.cliffc.aa.HM.TestHM9.test02(), com.cliffc.aa.HM.TestHM9.test06(), com.cliffc.aa.HM.TestHM9.test14(), com.cliffc.aa.HM.TestHM9.test18(), com.cliffc.aa.HM.TestHM9.test20(), com.cliffc.aa.HM.TestHM.test25(), com.cliffc.aa.HM.TestHM9.test25(), com.cliffc.aa.HM.TestHM9.test35(), com.cliffc.aa.HM.TestHM9.test36(), com.cliffc.aa.HM.TestHM9.test41(), com.cliffc.aa.HM.TestHM9.test49(), com.cliffc.aa.HM.TestHM9.test50(), com.cliffc.aa.HM.TestHM.test52(), com.cliffc.aa.HM.TestHM.test55(), com.cliffc.aa.HM.TestHM.test57(), com.cliffc.aa.type.TestApprox.testApprox1(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox4(), com.cliffc.aa.type.TestApprox.testApprox5(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox7(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.node.TestNodeSmall.testMemoryArgs(), com.cliffc.aa.type.TestType.testOOPsNulls(), com.cliffc.aa.TestParse.testParse01a(), com.cliffc.aa.TestParse.testParse02(), com.cliffc.aa.TestParse.testParse03(), com.cliffc.aa.TestParse.testParse04(), com.cliffc.aa.TestParse.testParse06(), com.cliffc.aa.TestParse.testParse07(), com.cliffc.aa.TestParse.testParse08(), com.cliffc.aa.TestParse.testParse09(), com.cliffc.aa.TestParse.testParse10(), com.cliffc.aa.TestParse.testParse14(), com.cliffc.aa.TestParse.testParse15(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestType.testStructTuple(), com.cliffc.aa.type.TestType.testType(), com.cliffc.aa.Parse.type0(), com.cliffc.aa.type.TypeStruct.update(), com.cliffc.aa.HM.HM9.Struct.val(), and com.cliffc.aa.HM.HM.Struct.val().
|
static |
Definition at line 191 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.make(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeFld.NO_DISP, and com.cliffc.aa.type.TypeFlds.ts().
Referenced by com.cliffc.aa.type.TypeStruct.make().
|
static |
Definition at line 207 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeStruct.hashcons_freeS(), com.cliffc.aa.type.TypeStruct.malloc(), and com.cliffc.aa.type.TypeStruct.open().
|
static |
Definition at line 199 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.fldBot, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFlds.get(), com.cliffc.aa.type.TypeFld.make(), com.cliffc.aa.type.TypeStruct.make(), and com.cliffc.aa.type.TypeFld.NO_DISP.
|
static |
Definition at line 196 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.flds(), and com.cliffc.aa.type.TypeStruct.make().
Referenced by com.cliffc.aa.type.TypeStruct.make().
TypeStruct com.cliffc.aa.type.TypeStruct.make_from | ( | String | name | ) |
Definition at line 215 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.hashcons_freeS(), and com.cliffc.aa.type.TypeStruct.malloc().
Referenced by com.cliffc.aa.type.TypeStruct.crush(), com.cliffc.aa.type.TypeStruct.flatten_fields(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeStruct.remove_other_flds(), com.cliffc.aa.type.TypeStruct.set_fld(), com.cliffc.aa.HM.HM9.T2.walk_types_out(), com.cliffc.aa.HM.HM.T2.walk_types_out(), and com.cliffc.aa.type.TypeStruct.widen().
TypeStruct com.cliffc.aa.type.TypeStruct.make_from | ( | Type | head, |
TypeMem | mem, | ||
VBitSet | visit | ||
) |
Definition at line 1141 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFlds.clone(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeStruct.make_from(), and com.cliffc.aa.util.VBitSet.tset().
TypeStruct com.cliffc.aa.type.TypeStruct.make_from | ( | TypeFld[] | flds | ) |
Definition at line 217 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeStruct.hashcons_freeS(), and com.cliffc.aa.type.TypeStruct.malloc().
TypeStruct com.cliffc.aa.type.TypeStruct.make_from_flds | ( | TypeStruct | ts | ) |
Definition at line 218 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.hashcons_freeS(), and com.cliffc.aa.type.TypeStruct.malloc().
|
static |
Definition at line 175 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeStruct.init(), and com.cliffc.aa.type.TypeStruct.open().
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeStruct.close(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeStruct.make_from_flds(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestApprox.testTSMeet(), and com.cliffc.aa.type.TypeStruct.xmeet1().
Definition at line 849 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._cyclic, com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeFlds.hash_cons().
Referenced by com.cliffc.aa.type.TypeStruct.install_cyclic().
|
inherited |
Definition at line 78 of file TypeObj.java.
|
inherited |
Definition at line 81 of file TypeObj.java.
Definition at line 1003 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, and com.cliffc.aa.type.TypeStruct.xmeet1().
Definition at line 1126 of file TypeStruct.java.
|
inherited |
Definition at line 80 of file TypeObj.java.
|
static |
Definition at line 210 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeFld.make_tup(), and com.cliffc.aa.type.TypeFlds.ts().
Referenced by com.cliffc.aa.Env.init(), com.cliffc.aa.type.TypeStruct.init(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeStruct.malloc(), and com.cliffc.aa.Parse.tuple().
|
staticprivate |
Definition at line 743 of file TypeStruct.java.
References com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.type.Type< T extends Type< T >.compute_hash(), com.cliffc.aa.type.TypeStruct.DUPS, and com.cliffc.aa.util.IHashMap.put().
Referenced by com.cliffc.aa.type.TypeStruct.shrink().
Definition at line 795 of file TypeStruct.java.
References com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.util.Ary< E >.find(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), and com.cliffc.aa.util.Ary< E >.push().
Referenced by com.cliffc.aa.type.TypeStruct.reachable().
|
package |
Definition at line 252 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._cyclic, com.cliffc.aa.type.Type< T extends Type< T >._dual, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.compute_hash(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFlds.get(), com.cliffc.aa.type.TypeFlds.hash_cons(), com.cliffc.aa.type.TypeStruct.init(), com.cliffc.aa.type.TypeFld.rdual(), and com.cliffc.aa.type.TypeFld.xdual().
Referenced by com.cliffc.aa.type.TypeStruct.install_cyclic().
Definition at line 779 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.util.Ary< E >._len, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.util.Ary< E >.at(), and com.cliffc.aa.type.TypeStruct.push().
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.sharpen(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testRecursive(), and com.cliffc.aa.type.TestApprox.testTSMeet().
Definition at line 1069 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld.Access.bot(), com.cliffc.aa.type.TypeFlds.clone(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.fld_find(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.Type< T extends Type< T >.hashcons_free(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeFld.setX(), and com.cliffc.aa.type.TypeObj< TypeStruct >.UNUSED.
|
package |
Definition at line 450 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._cyclic.
Referenced by com.cliffc.aa.type.TypeStruct.install_cyclic(), com.cliffc.aa.type.TypeStruct.repeats_in_cycles(), and com.cliffc.aa.type.TestApprox.testTSMeet().
|
package |
Definition at line 454 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct.equals(), com.cliffc.aa.type.TypeStruct.repeats_in_cycles(), and com.cliffc.aa.util.VBitSet.tset().
TypeStruct com.cliffc.aa.type.TypeStruct.set_fld | ( | int | i, |
Type | t, | ||
Access | ff | ||
) |
Definition at line 1030 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFlds.copyOf(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFld.make(), and com.cliffc.aa.type.TypeStruct.make_from().
Referenced by com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), and com.cliffc.aa.TestParse.test_struct().
|
staticpackage |
Definition at line 875 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._dull(), com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeStruct._sharp(), com.cliffc.aa.type.TypeStruct.check_uf(), com.cliffc.aa.type.TypeStruct.install_cyclic(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.type.TypeMemPtr.make_from(), com.cliffc.aa.type.TypeStruct.reachable(), com.cliffc.aa.type.TypeMem.sharp_get(), com.cliffc.aa.type.TypeMem.sharput(), com.cliffc.aa.type.TypeStruct.shrink(), com.cliffc.aa.type.TypeMemPtr.simple_ptr(), and com.cliffc.aa.type.TypeStruct.UF.
Referenced by com.cliffc.aa.type.TypeMem.sharpen().
|
static |
Definition at line 657 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFunPtr._disp, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.Type< T extends Type< T >._hash, com.cliffc.aa.util.Ary< E >._len, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.util.Ary< E >.at(), com.cliffc.aa.util.IHashMap.clear(), com.cliffc.aa.type.Type< T extends Type< T >.compute_hash(), com.cliffc.aa.type.TypeStruct.DUPS, com.cliffc.aa.util.IHashMap.get(), com.cliffc.aa.type.Type< T extends Type< T >.intern_lookup(), com.cliffc.aa.type.Type< T extends Type< T >.interned(), com.cliffc.aa.util.IHashMap.isEmpty(), com.cliffc.aa.type.TypeStruct.post_mod(), com.cliffc.aa.util.Ary< E >.push(), com.cliffc.aa.util.IHashMap.put(), com.cliffc.aa.type.TypeFld.setX(), and com.cliffc.aa.type.TypeStruct.ufind().
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), and com.cliffc.aa.type.TypeStruct.sharpen().
Definition at line 145 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeFld._fld, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.util.Util.eq(), com.cliffc.aa.type.TypeStruct.fld_find(), com.cliffc.aa.type.TypeStruct.is_tup(), com.cliffc.aa.util.SB.p(), com.cliffc.aa.type.TypeFld.str(), com.cliffc.aa.util.VBitSet.tset(), and com.cliffc.aa.util.SB.unchar().
Definition at line 186 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.make_tup(), com.cliffc.aa.type.TypeFld.NO_DISP, and com.cliffc.aa.type.TypeFlds.ts().
Referenced by com.cliffc.aa.HM.HM.Pair1.Pair1X.apply(), com.cliffc.aa.HM.TestHM.make_tups(), com.cliffc.aa.TestParse.testParse01a(), com.cliffc.aa.TestParse.testParse02(), com.cliffc.aa.TestParse.testParse03(), com.cliffc.aa.TestParse.testParse06(), com.cliffc.aa.TestParse.testParse07(), com.cliffc.aa.TestParse.testParse09(), and com.cliffc.aa.TestParse.testParse14().
Definition at line 187 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld.make_tup(), com.cliffc.aa.type.TypeFld.NO_DISP, and com.cliffc.aa.type.TypeFlds.ts().
|
staticprivate |
Definition at line 751 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.UF.
Referenced by com.cliffc.aa.type.TypeStruct.ax_impl_fptr(), com.cliffc.aa.type.TypeStruct.ax_impl_ptr(), com.cliffc.aa.type.TypeStruct.ax_impl_struct(), com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeStruct.check_uf(), and com.cliffc.aa.type.TypeStruct.shrink().
|
staticprivate |
TypeStruct com.cliffc.aa.type.TypeStruct.update | ( | Access | fin, |
String | fld, | ||
Type | val | ||
) |
Definition at line 1044 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct.fld(), and com.cliffc.aa.type.TypeStruct.update().
Referenced by com.cliffc.aa.type.TypeStruct.update().
|
private |
Definition at line 1046 of file TypeStruct.java.
References com.cliffc.aa.type.TypeFld._access, com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.TypeFlds.copyOf(), com.cliffc.aa.type.TypeFld.Access.Final, com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.fld_find(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFld.make(), com.cliffc.aa.type.TypeStruct.make(), com.cliffc.aa.type.TypeFld.Access.meet(), com.cliffc.aa.type.Type< T extends Type< T >.meet(), and com.cliffc.aa.type.TypeFld.Access.ReadOnly.
|
inherited |
Definition at line 69 of file TypeObj.java.
void com.cliffc.aa.type.TypeStruct.walk | ( | Predicate< Type > | p | ) |
Definition at line 1135 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct.fld(), and com.cliffc.aa.type.TypeFld.walk().
Referenced by com.cliffc.aa.node.ConTypeNode.def_fref(), and com.cliffc.aa.type.TypeStruct.install_cyclic().
TypeStruct com.cliffc.aa.type.TypeStruct.widen | ( | ) |
Definition at line 1107 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeFld._t, com.cliffc.aa.type.TypeFlds.clone(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.Type< T extends Type< T >.hashcons_free(), com.cliffc.aa.type.TypeStruct.make_from(), and com.cliffc.aa.type.Type< T extends Type< T >.widen().
|
protected |
Definition at line 245 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFlds.get(), com.cliffc.aa.type.TypeFlds.hash_cons(), and com.cliffc.aa.type.TypeStruct.init().
Definition at line 280 of file TypeStruct.java.
References com.cliffc.aa.type.TypeStruct._cyclic, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.MEETS0, com.cliffc.aa.type.TypeObj< TypeStruct >.OBJ, com.cliffc.aa.type.Type< T extends Type< T >.xmeet(), and com.cliffc.aa.type.TypeStruct.xmeet1().
|
private |
Definition at line 317 of file TypeStruct.java.
References com.cliffc.aa.type.TypeObj< TypeStruct >._any, com.cliffc.aa.type.TypeObj< O extends TypeObj< O >._any, com.cliffc.aa.type.TypeStruct._flds, com.cliffc.aa.type.TypeStruct._open, com.cliffc.aa.type.TypeFld.Access.Final, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeFlds.get(), com.cliffc.aa.type.TypeStruct.hashcons_freeS(), com.cliffc.aa.type.TypeStruct.len(), com.cliffc.aa.type.TypeStruct.malloc(), and com.cliffc.aa.type.TypeFld.xmeet().
Referenced by com.cliffc.aa.type.TypeStruct.meet_loop(), and com.cliffc.aa.type.TypeStruct.xmeet().
|
packageinherited |
Definition at line 16 of file TypeObj.java.
boolean com.cliffc.aa.type.TypeStruct._cyclic |
Definition at line 54 of file TypeStruct.java.
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct.install_cyclic(), com.cliffc.aa.type.TypeStruct.mark_cyclic(), com.cliffc.aa.type.TypeStruct.rdual(), com.cliffc.aa.type.TypeStruct.repeats_in_cycles(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox3(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestApprox.testTSMeet(), and com.cliffc.aa.type.TypeStruct.xmeet().
|
private |
Definition at line 51 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeStruct._dull(), com.cliffc.aa.type.TypeStruct._is_sharp(), com.cliffc.aa.type.TypeStruct._sharp(), com.cliffc.aa.type.TypeStruct.add_fld(), com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.at(), com.cliffc.aa.type.TypeStruct.ax_impl_struct(), com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeStruct.close(), com.cliffc.aa.type.TypeStruct.cmp(), com.cliffc.aa.type.TypeStruct.compute_hash(), com.cliffc.aa.type.TypeStruct.contains(), com.cliffc.aa.type.TypeStruct.crush(), com.cliffc.aa.type.TypeStruct.cycle_equals0(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.flatten_fields(), com.cliffc.aa.type.TypeStruct.fld(), com.cliffc.aa.type.TypeStruct.fld_find(), com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.TypeStruct.get_cyclic(), com.cliffc.aa.type.TypeStruct.hashcons_freeS(), com.cliffc.aa.type.TypeStruct.init(), com.cliffc.aa.type.TypeStruct.install_cyclic(), com.cliffc.aa.type.TypeStruct.intern_check1(), com.cliffc.aa.type.TypeStruct.is_display(), com.cliffc.aa.type.TypeStruct.is_tup(), com.cliffc.aa.type.TypeStruct.last(), com.cliffc.aa.type.TypeStruct.len(), com.cliffc.aa.type.TypeStruct.len0(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeStruct.make_from_flds(), com.cliffc.aa.type.TypeStruct.mark_cyclic(), com.cliffc.aa.type.TypeStruct.meet_loop(), com.cliffc.aa.type.TypeStruct.rdual(), com.cliffc.aa.type.TypeStruct.reachable(), com.cliffc.aa.type.TypeStruct.remove_other_flds(), com.cliffc.aa.type.TypeStruct.repeats_in_cycles(), com.cliffc.aa.type.TypeStruct.set_fld(), com.cliffc.aa.type.TypeStruct.shrink(), com.cliffc.aa.type.TypeStruct.str(), com.cliffc.aa.type.TypeStruct.update(), com.cliffc.aa.type.TypeStruct.walk(), com.cliffc.aa.type.TypeStruct.widen(), com.cliffc.aa.type.TypeStruct.xdual(), com.cliffc.aa.type.TypeStruct.xmeet(), and com.cliffc.aa.type.TypeStruct.xmeet1().
boolean com.cliffc.aa.type.TypeStruct._open |
Definition at line 52 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct._clone(), com.cliffc.aa.type.TypeStruct.add_fld(), com.cliffc.aa.type.TypeMem.all_reaching_aliases(), com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeStruct.close(), com.cliffc.aa.type.TypeStruct.cmp(), com.cliffc.aa.type.TypeStruct.compute_hash(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.init(), com.cliffc.aa.type.TypeStruct.make_from(), com.cliffc.aa.type.TypeStruct.make_from_flds(), com.cliffc.aa.type.TypeStruct.rdual(), com.cliffc.aa.type.TypeStruct.str(), com.cliffc.aa.type.TypeStruct.update(), com.cliffc.aa.type.TypeStruct.xdual(), and com.cliffc.aa.type.TypeStruct.xmeet1().
|
packageinherited |
Definition at line 17 of file TypeObj.java.
|
static |
Definition at line 234 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testCrush().
|
static |
Definition at line 228 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testCrush(), com.cliffc.aa.type.TestType.testOOPsNulls(), com.cliffc.aa.type.TestType.testRecursive(), and com.cliffc.aa.node.TestNodeSmall.tmem().
|
static |
Definition at line 227 of file TypeStruct.java.
Referenced by com.cliffc.aa.node.NewObjNode.dead_type().
|
static |
Definition at line 237 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testCrush().
|
staticprivate |
Definition at line 235 of file TypeStruct.java.
|
staticprivate |
Definition at line 105 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.cycle_equals(), and com.cliffc.aa.type.TypeStruct.find_other().
|
staticprivate |
Definition at line 236 of file TypeStruct.java.
Definition at line 656 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.post_mod(), and com.cliffc.aa.type.TypeStruct.shrink().
|
static |
Definition at line 238 of file TypeStruct.java.
|
static |
Definition at line 239 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testCrush().
|
staticinherited |
Definition at line 45 of file TypeObj.java.
|
staticprivate |
Definition at line 346 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.install_cyclic(), and com.cliffc.aa.type.TypeStruct.xmeet().
|
static |
Definition at line 232 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testCrush(), and com.cliffc.aa.node.TestNode.testMonotonic().
|
staticinherited |
Definition at line 44 of file TypeObj.java.
Definition at line 476 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.ax_impl_fptr(), com.cliffc.aa.type.TypeStruct.ax_impl_ptr(), and com.cliffc.aa.type.TypeStruct.ax_impl_struct().
|
static |
Definition at line 231 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testCrush().
|
staticpackage |
Definition at line 233 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.TestType.testStructTuple().
|
staticpackage |
Definition at line 242 of file TypeStruct.java.
Referenced by com.cliffc.aa.type.Type< TypeFlt >.ALL_TYPES(), com.cliffc.aa.type.TestApprox.testApprox2(), com.cliffc.aa.type.TestApprox.testApprox6(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testLoad(), com.cliffc.aa.type.TestType.testNameCycle(), and com.cliffc.aa.type.TestApprox.testTSMeet().
|
static |
Definition at line 475 of file TypeStruct.java.
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.type.TypeStruct.approx(), com.cliffc.aa.type.TypeStruct.cyclic_meet(), com.cliffc.aa.type.TypeStruct.sharpen(), com.cliffc.aa.type.TypeStruct.ufind(), and com.cliffc.aa.type.TypeStruct.union().
|
staticinherited |
Definition at line 46 of file TypeObj.java.
|
staticinherited |
Definition at line 47 of file TypeObj.java.