|
static final TypeMemPtr | ABC0 = make(ABCPTR._aliases.meet_nil(),TypeStr.ABC) |
|
static final TypeMemPtr | ABCPTR = make(BitsAlias.ABC ,TypeStr.ABC) |
|
static final Type | ALL |
|
static final Type | ANY |
|
static final TypeMemPtr | ARY0 = make(BitsAlias.ARYBITS0,TypeAry.ARY) |
|
static final TypeMemPtr | ARYPTR = make(BitsAlias.ARYBITS ,TypeAry.ARY) |
|
static final Type | CTRL |
|
static final TypeFld | DISP_FLD = TypeFld.malloc("^",Type.NIL,Access.Final,0) |
|
static final TypeMemPtr | DISP_SIMPLE = make(BitsAlias.RECORD_BITS0,TypeObj.ISUSED) |
|
static final TypeStruct | DISPLAY = TypeStruct.malloc("",false,TypeFlds.ts(DISP_FLD),true) |
|
static final TypeMemPtr | DISPLAY_PTR = new TypeMemPtr().init(BitsAlias.RECORD_BITS0,DISPLAY ) |
|
static final TypeMemPtr | EMTPTR = make(BitsAlias.EMPTY,TypeObj.UNUSED) |
|
static final TypeMemPtr | ISUSED = make(BitsAlias.NZERO ,TypeObj.ISUSED) |
|
static final TypeMemPtr | ISUSED0 = make(BitsAlias.FULL ,TypeObj.ISUSED) |
|
static final Type | NIL |
|
static final TypeMemPtr | NILPTR = make(BitsAlias.NIL,TypeObj.ISUSED) |
|
static final Type | NO_DISP = Type.ANY |
|
static final Type | NSCALR |
|
static final TypeMemPtr | OOP = make(BitsAlias.NZERO ,TypeObj.OBJ) |
|
static final TypeMemPtr | OOP0 = make(BitsAlias.FULL ,TypeObj.OBJ) |
|
static final Type | REAL |
|
static int | RECURSIVE_MEET |
|
static final Type | SCALAR |
|
static final TypeMemPtr | STR0 = make(BitsAlias.STRBITS0,TypeStr.STR) |
|
static final TypeMemPtr | STRPTR = make(BitsAlias.STRBITS ,TypeStr.STR) |
|
static final TypeMemPtr | STRUCT = make(BitsAlias.RECORD_BITS ,TypeStruct.ALLSTRUCT) |
|
static final TypeMemPtr | STRUCT0 = make(BitsAlias.RECORD_BITS0,TypeStruct.ALLSTRUCT) |
|
static final Type | XCTRL |
|
static final Type | XNIL |
|
static final Type | XNSCALR |
|
static final Type | XSCALAR |
|
Definition at line 14 of file TypeMemPtr.java.
◆ [static initializer]() [1/2]
com.cliffc.aa.type.TypeMemPtr.[static initializer] |
|
staticpackage |
◆ [static initializer]() [2/2]
com.cliffc.aa.type.TypeMemPtr.[static initializer] |
|
staticpackage |
◆ _set_name()
Definition at line 558 of file Type.java.
562 return t1.hashcons_free();
◆ _uid()
◆ above()
Definition at line 625 of file Type.java.
625 {
return t !=
this &&
meet(t)==t; }
◆ above_center()
boolean com.cliffc.aa.type.TypeMemPtr.above_center |
( |
| ) |
|
◆ aliases()
BitsAlias com.cliffc.aa.type.TypeMemPtr.aliases |
( |
| ) |
|
◆ ALL_TYPES()
Definition at line 651 of file Type.java.
656 concat(ts,TypeFunPtr.TYPES);
657 concat(ts,TypeFunSig.TYPES);
661 concat(ts,TypeMemPtr.TYPES);
665 concat(ts,TypeStruct.TYPES);
671 for(
int i=0; i<ts.
_len; i++ )
672 for(
int j=i+1; j<ts.
_len; j++ )
◆ ax_meet_nil()
Type com.cliffc.aa.type.TypeMemPtr.ax_meet_nil |
( |
Type |
nil | ) |
|
◆ check_commute()
Definition at line 593 of file Type.java.
594 if( t==
this )
return true;
601 if( mt==nmt2 )
return true;
602 System.out.println(
"Meet not commutative: "+
this+
".meet("+t+
")="+mt+
",\n but "+t+
".meet("+
this+
")="+nmt2);
◆ check_name()
Definition at line 548 of file Type.java.
548 {
return n.isEmpty() || n.charAt(n.length()-1)==
':'; }
◆ check_startup()
Definition at line 684 of file Type.java.
689 for(
Type t1 : ts ) {
692 assert t0.check_symmetric(t1,mt);
699 for(
Type t2 : ts ) {
704 if( t01_2 != t0_12 && errs++ < 10 )
705 System.err.println(
"("+t0+
"&"+t1+
") & "+t2+
" == "+t0+
" & ("+t1+
" & "+t2+
"); "+
706 "("+t01 +
") & "+t2+
" == "+t0+
" & ("+t12 +
"); "+
707 t01_2 +
" == "+t0_12);
709 assert errs==0 :
"Found "+errs+
" associative errors";
714 for(
Type t1 : ts ) {
716 for(
Type t2 : ts ) {
720 if( mt != t12 && errs++ < 10 ) {
721 System.err.println(
"("+t0+
" ^ "+t2+
") = "+t02+
"; "+
722 "("+t1+
" ^ "+t2+
") = "+t12+
"; "+
723 "their meet = "+mt+
" which is not "+t12);
728 assert errs==0 :
"Found "+errs+
" non-join-type errors";
731 SCALAR_PRIMS =
new Type[] { TypeInt.INT64, TypeFlt.FLT64, TypeMemPtr.OOP0, TypeFunPtr.GENERIC_FUNPTR, TypeRPC.ALL_CALL };
◆ check_symmetric()
Definition at line 608 of file Type.java.
609 if( t==
this )
return true;
613 System.err.print(
"("+
this+
" & "+t+
")=="+mt+
" but \n("+mt.
_dual+
" & ");
614 if( ta!=t.
_dual ) System.err.println(t.
_dual+
")=="+ta+
" \nwhich is not "+t.
_dual);
615 else System.err.println(
_dual+
")=="+tb+
" \nwhich is not "+
_dual);
◆ clone()
Definition at line 304 of file Type.java.
311 if( t instanceof TypeStruct )
312 ((TypeStruct)t)._cyclic =
false;
315 catch( CloneNotSupportedException cns ) {
throw new RuntimeException(cns); }
◆ compute_hash()
int com.cliffc.aa.type.TypeMemPtr.compute_hash |
( |
| ) |
|
|
package |
◆ concat()
Definition at line 676 of file Type.java.
677 for(
Type t1 : ts1 ) {
678 assert !t1.above_center();
680 if( t1!=t1.dual() ) ts.
push(t1.dual());
◆ contains() [1/2]
◆ contains() [2/2]
◆ cross_nil()
◆ cycle_equals()
boolean com.cliffc.aa.type.TypeMemPtr.cycle_equals |
( |
Type |
o | ) |
|
◆ depth()
HashMap<Type,Integer> com.cliffc.aa.type.TypeMemPtr.depth |
( |
| ) |
|
|
package |
Definition at line 217 of file TypeMemPtr.java.
219 HashMap<Type,Integer> ds =
new HashMap<>();
220 Ary<TypeStruct> t0 =
new Ary<>(
new TypeStruct[]{(TypeStruct)
_obj});
221 Ary<TypeStruct> t1 =
new Ary<>(
new TypeStruct[1],0);
223 while( !t0.isEmpty() ) {
224 while( !t0.isEmpty() ) {
225 TypeStruct ts = t0.pop();
226 if( ds.putIfAbsent(ts,d) ==
null )
227 for( TypeFld fld : ts.flds() ) {
228 if( ds.putIfAbsent(fld._t,d) ==
null &&
229 fld._t instanceof TypeMemPtr ) {
230 TypeMemPtr tmp = (TypeMemPtr)fld._t;
231 if( tmp._obj instanceof TypeStruct )
232 (tmp._aliases.test(alias) ? t1 : t0).push((TypeStruct)tmp._obj);
236 Ary<TypeStruct> tmp = t0; t0 = t1; t1 = tmp;
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.TypeStruct.flds(), com.cliffc.aa.type.Bits< B extends Bits< B >.getbit(), com.cliffc.aa.util.Ary< E >.isEmpty(), com.cliffc.aa.util.Ary< E >.pop(), and com.cliffc.aa.type.Bits< B extends Bits< B >.test().
Referenced by 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(), and com.cliffc.aa.type.TestType.testRecursive().
◆ dual()
◆ eq()
Definition at line 136 of file Type.java.
137 if( t0==t1 )
return true;
138 if( t0==
null || t1==
null )
return false;
139 if( t0.length != t1.length )
return false;
140 for(
int i=0; i<t0.length; i++ )
◆ equals()
boolean com.cliffc.aa.type.TypeMemPtr.equals |
( |
Object |
o | ) |
|
◆ getbit()
int com.cliffc.aa.type.TypeMemPtr.getbit |
( |
| ) |
|
◆ getbit0()
int com.cliffc.aa.type.TypeMemPtr.getbit0 |
( |
| ) |
|
◆ getd()
◆ getl()
◆ getstr()
◆ has_name()
◆ hashCode()
◆ hashcons()
Definition at line 165 of file Type.java.
167 T t2 = (T)
INTERN.get(
this);
169 assert t2._dual !=
null;
180 d._hash = d.compute_hash();
182 if(
this==d )
return d;
184 assert d._dual==
null;
185 assert
INTERN.get(d)==
null;
◆ hashcons_free()
◆ high()
◆ init() [1/2]
◆ init() [2/2]
◆ init0()
Definition at line 642 of file Type.java.
643 types.put(
"real",
REAL);
644 types.put(
"scalar",
SCALAR);
645 TypeInt.init1(types);
646 TypeFlt.init1(types);
647 TypeStr.init1(types);
◆ intern_check()
Definition at line 212 of file Type.java.
216 if( !k.intern_check0(v) ) {
217 System.out.println(
"INTERN_CHECK FAIL: "+k._uid+
":"+k+
" vs "+v.
_uid+
":"+v);
◆ intern_check0()
◆ intern_check1()
boolean com.cliffc.aa.type.TypeMemPtr.intern_check1 |
( |
| ) |
|
|
package |
◆ intern_find()
◆ intern_lookup()
◆ intern_size()
◆ interned()
◆ is_con()
boolean com.cliffc.aa.type.TypeMemPtr.is_con |
( |
| ) |
|
◆ is_display()
◆ is_display_ptr()
boolean com.cliffc.aa.type.TypeMemPtr.is_display_ptr |
( |
| ) |
|
◆ is_forward_ref()
◆ is_num()
◆ is_ptr()
◆ is_simple()
◆ isa()
◆ isa_scalar()
◆ isBitShape()
byte com.cliffc.aa.type.TypeMemPtr.isBitShape |
( |
Type |
t | ) |
|
◆ join()
◆ make() [1/3]
Definition at line 66 of file TypeMemPtr.java.
68 return t1.init(
aliases,obj).hashcons_free();
References com.cliffc.aa.type.TypeMemPtr.aliases(), com.cliffc.aa.type.Type< T extends Type< T >.hashcons_free(), com.cliffc.aa.type.TypeMemPtr.init(), com.cliffc.aa.type.Type< TypeMemPtr >.POOLS, and com.cliffc.aa.type.Type< TypeMemPtr >.TMEMPTR.
Referenced by com.cliffc.aa.HM.HM9.T2._as_flow(), com.cliffc.aa.HM.HM.T2._as_flow(), com.cliffc.aa.node.NewNode< TypeStruct >._init(), 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.HM9.Str.apply(), com.cliffc.aa.HM.HM.Str.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.node.IntrinsicNode.convertTypeName(), com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.node.IntrinsicNode.err(), com.cliffc.aa.node.FunNode.find_type_split(), com.cliffc.aa.node.FunPtrNode.forward_ref(), com.cliffc.aa.node.NewNode< TypeStruct >.kill2(), com.cliffc.aa.type.TypeMemPtr.make_from(), com.cliffc.aa.type.TypeMemPtr.make_nil(), com.cliffc.aa.type.TypeMemPtr.meet_nil(), com.cliffc.aa.type.TypeMemPtr.not_nil(), com.cliffc.aa.node.NewObjNode.promote_forward(), com.cliffc.aa.type.TypeMemPtr.simple_ptr(), com.cliffc.aa.HM.HM9.string(), com.cliffc.aa.HM.HM.string(), com.cliffc.aa.HM.TestHM.test02(), com.cliffc.aa.HM.TestHM9.test02(), com.cliffc.aa.HM.TestHM.test06(), com.cliffc.aa.HM.TestHM9.test06(), com.cliffc.aa.HM.TestHM.test14(), com.cliffc.aa.HM.TestHM9.test14(), com.cliffc.aa.HM.TestHM.test18(), com.cliffc.aa.HM.TestHM9.test18(), com.cliffc.aa.HM.TestHM.test20(), 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.TestHM.test35(), com.cliffc.aa.HM.TestHM9.test36(), com.cliffc.aa.HM.TestHM.test41(), com.cliffc.aa.HM.TestHM9.test41(), com.cliffc.aa.HM.TestHM.test49(), com.cliffc.aa.HM.TestHM9.test49(), com.cliffc.aa.HM.TestHM.test50(), 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.testApprox7(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.type.TestType.testLoad(), com.cliffc.aa.node.TestNodeSmall.testMemoryArgs(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testOOPsNulls(), com.cliffc.aa.TestParse.testParse02(), com.cliffc.aa.TestParse.testParse06(), com.cliffc.aa.TestParse.testParse07(), com.cliffc.aa.TestParse.testParse08(), com.cliffc.aa.TestParse.testParse15(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.type.TestType.testStructTuple(), com.cliffc.aa.type.TestApprox.testTSMeet(), com.cliffc.aa.type.TestType.testType(), com.cliffc.aa.Parse.tstmt(), com.cliffc.aa.Parse.type0(), com.cliffc.aa.Parse.typep(), com.cliffc.aa.HM.HM9.Struct.val(), com.cliffc.aa.HM.HM.Struct.val(), com.cliffc.aa.node.CallNode.value(), com.cliffc.aa.type.TypeMemPtr.widen(), and com.cliffc.aa.type.TypeMemPtr.xmeet().
◆ make() [2/3]
Definition at line 147 of file Type.java.
148 Pool P =
POOLS[type];
149 Type t1 = P.malloc();
150 return t1.
init(type,
"").hashcons_free();
◆ make() [3/3]
◆ make_from() [1/2]
◆ make_from() [2/2]
◆ make_nil()
◆ max()
static int com.cliffc.aa.type.TypeMemPtr.max |
( |
int |
alias, |
|
|
HashMap< Type, Integer > |
ds |
|
) |
| |
|
staticpackage |
◆ may_be_con()
boolean com.cliffc.aa.type.TypeMemPtr.may_be_con |
( |
| ) |
|
◆ may_nil()
boolean com.cliffc.aa.type.TypeMemPtr.may_nil |
( |
| ) |
|
◆ meet()
Definition at line 412 of file Type.java.
414 if( t ==
this )
return this;
416 Type mt = Key.get(
this,t);
417 if( mt !=
null )
return mt;
◆ meet_loop()
◆ meet_nil()
Type com.cliffc.aa.type.TypeMemPtr.meet_nil |
( |
Type |
nil | ) |
|
◆ mtname()
Definition at line 567 of file Type.java.
568 Type t0 =
this, t1 = t;
569 String s0 = t0.
_name, s1 = t1._name;
571 if(
Util.
eq(s0,s1) )
return s0;
573 if( s0.length() > s1.length() ) { t1=
this; t0=t; s0=t0.
_name; s1=t1._name; }
574 int x = 0, i;
char c;
576 for( i = 0; i < s0.length(); i++ ) {
577 if( (c=s0.charAt(i)) != s1.charAt(i) )
585 String s2 = i==s0.length() ? s0 : s0.substring(0, x).intern();
◆ must_nil()
boolean com.cliffc.aa.type.TypeMemPtr.must_nil |
( |
| ) |
|
◆ not_nil()
Type com.cliffc.aa.type.TypeMemPtr.not_nil |
( |
| ) |
|
|
package |
◆ oob() [1/6]
◆ oob() [2/6]
◆ oob() [3/6]
◆ oob() [4/6]
◆ oob() [5/6]
◆ oob() [6/6]
◆ oob_deep()
◆ oop_deep_impl()
Type com.cliffc.aa.type.TypeMemPtr.oop_deep_impl |
( |
Type |
t | ) |
|
◆ rdual()
TypeMemPtr com.cliffc.aa.type.TypeMemPtr.rdual |
( |
| ) |
|
|
package |
◆ remove_name()
◆ repeats_in_cycles()
◆ retern()
◆ set_name()
◆ sharptr()
◆ simple_ptr()
Type com.cliffc.aa.type.TypeMemPtr.simple_ptr |
( |
| ) |
|
Definition at line 160 of file TypeMemPtr.java.
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.Bits< B extends Bits< B >.above_center(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.ISUSED, com.cliffc.aa.type.TypeMemPtr.make(), and com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.UNUSED.
Referenced by com.cliffc.aa.type.TypeMem.sharpen(), com.cliffc.aa.type.TypeStruct.sharpen(), com.cliffc.aa.type.TestApprox.testApprox8(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve2(), and com.cliffc.aa.node.TestNodeSmall.testMemoryArgs().
◆ str()
Definition at line 52 of file TypeMemPtr.java.
54 if( dups.tset(
_uid) )
return sb.p(
'$');
57 if( to == TypeObj.XOBJ ) to =
_obj;
60 to.str(sb,dups,mem,debug);
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.Type< TypeMemPtr >._uid, com.cliffc.aa.type.TypeMem.ld(), com.cliffc.aa.util.SB.p(), com.cliffc.aa.type.BitsAlias.RECORD_BITS, com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.str(), com.cliffc.aa.type.Bits< B extends Bits< B >.str(), com.cliffc.aa.type.Bits< B extends Bits< B >.test(), com.cliffc.aa.util.VBitSet.tset(), and com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.XOBJ.
Referenced by com.cliffc.aa.REPL.go_one().
◆ toString()
◆ typerr()
Definition at line 947 of file Type.java.
948 throw new RuntimeException(
"Should not reach here: internal type system error with "+
this+(t==
null?
"":(
" and "+t)));
◆ untern()
◆ walk()
void com.cliffc.aa.type.TypeMemPtr.walk |
( |
Predicate< Type > |
p | ) |
|
◆ widen()
TypeMemPtr com.cliffc.aa.type.TypeMemPtr.widen |
( |
| ) |
|
◆ xdual()
TypeMemPtr com.cliffc.aa.type.TypeMemPtr.xdual |
( |
| ) |
|
|
protected |
◆ xmeet()
Type com.cliffc.aa.type.TypeMemPtr.xmeet |
( |
Type |
t | ) |
|
|
protected |
Definition at line 136 of file TypeMemPtr.java.
154 TypeMemPtr ptr = (TypeMemPtr)t;
156 TypeObj to = (TypeObj)
_obj.
meet(ptr._obj);
References com.cliffc.aa.type.TypeMemPtr._aliases, com.cliffc.aa.type.TypeMemPtr._obj, com.cliffc.aa.type.Type< T extends Type< T >._type, com.cliffc.aa.type.TypeMemPtr.aliases(), com.cliffc.aa.type.Type< TypeMemPtr >.ALL, com.cliffc.aa.type.Type< TypeMemPtr >.cross_nil(), com.cliffc.aa.type.TypeMemPtr.make(), 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< TypeMemPtr >.TARY, com.cliffc.aa.type.Type< TypeMemPtr >.TFLT, com.cliffc.aa.type.Type< TypeMemPtr >.TFUNPTR, com.cliffc.aa.type.Type< TypeMemPtr >.TFUNSIG, com.cliffc.aa.type.Type< TypeMemPtr >.TINT, com.cliffc.aa.type.Type< TypeMemPtr >.TLIVE, com.cliffc.aa.type.Type< TypeMemPtr >.TMEM, com.cliffc.aa.type.Type< TypeMemPtr >.TMEMPTR, com.cliffc.aa.type.Type< TypeMemPtr >.TOBJ, com.cliffc.aa.type.Type< TypeMemPtr >.TRPC, com.cliffc.aa.type.Type< TypeMemPtr >.TSTR, com.cliffc.aa.type.Type< TypeMemPtr >.TSTRUCT, com.cliffc.aa.type.Type< TypeMemPtr >.TTUPLE, and com.cliffc.aa.type.Type< TypeMemPtr >.typerr().
◆ xmt_name()
◆ _aliases
BitsAlias com.cliffc.aa.type.TypeMemPtr._aliases |
Definition at line 16 of file TypeMemPtr.java.
Referenced by com.cliffc.aa.type.TypeStruct._dull(), com.cliffc.aa.node.LoadNode._find_previous_store_call(), com.cliffc.aa.type.TypeStruct._sharp(), com.cliffc.aa.type.TypeMemPtr.above_center(), com.cliffc.aa.type.TypeMemPtr.aliases(), com.cliffc.aa.type.TypeStruct.ax_impl_ptr(), com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeMemPtr.ax_meet_nil(), com.cliffc.aa.type.TestApprox.check_leaf(), com.cliffc.aa.type.TypeMemPtr.compute_hash(), com.cliffc.aa.type.TypeMemPtr.cycle_equals(), com.cliffc.aa.type.TypeMemPtr.depth(), com.cliffc.aa.node.NewNode< TypeStruct >.escapees(), com.cliffc.aa.node.CallNode.escapees(), com.cliffc.aa.node.ScopeNode.get_type(), com.cliffc.aa.type.TypeMemPtr.getbit(), com.cliffc.aa.type.TypeMemPtr.getbit0(), com.cliffc.aa.node.StoreNode.ideal_grow(), com.cliffc.aa.node.LoadNode.ideal_mono(), com.cliffc.aa.node.LoadNode.ideal_reduce(), com.cliffc.aa.node.IntrinsicNode.ideal_reduce(), com.cliffc.aa.type.TypeMemPtr.init(), com.cliffc.aa.type.TypeMemPtr.is_con(), com.cliffc.aa.type.TypeMemPtr.is_display_ptr(), com.cliffc.aa.type.TypeMem.ld(), com.cliffc.aa.type.TypeMemPtr.make_from(), com.cliffc.aa.type.TypeMemPtr.max(), com.cliffc.aa.type.TypeMemPtr.may_nil(), com.cliffc.aa.type.TypeMemPtr.meet_nil(), com.cliffc.aa.type.TypeMemPtr.must_nil(), com.cliffc.aa.type.TypeMemPtr.not_nil(), com.cliffc.aa.type.TypeMemPtr.oop_deep_impl(), com.cliffc.aa.type.TypeMemPtr.rdual(), com.cliffc.aa.type.TypeMemPtr.simple_ptr(), com.cliffc.aa.type.TypeMemPtr.str(), com.cliffc.aa.TestParse.test_ptr0(), com.cliffc.aa.type.TestType.testNameCycle(), com.cliffc.aa.type.TestType.testOOPsNulls(), com.cliffc.aa.type.TestType.testRecursive(), com.cliffc.aa.node.StoreNode.unify(), com.cliffc.aa.node.LoadNode.unify(), com.cliffc.aa.node.StoreNode.value(), com.cliffc.aa.node.MemPrimNode.LValueWrite.value(), com.cliffc.aa.node.MemPrimNode.LValueWriteFinal.value(), com.cliffc.aa.node.CallEpiNode.value(), com.cliffc.aa.type.TypeMemPtr.widen(), com.cliffc.aa.type.TypeMemPtr.xdual(), and com.cliffc.aa.type.TypeMemPtr.xmeet().
◆ _dual
◆ _hash
◆ _name
◆ _obj
TypeObj com.cliffc.aa.type.TypeMemPtr._obj |
Definition at line 26 of file TypeMemPtr.java.
Referenced by com.cliffc.aa.type.TypeStruct._is_sharp(), com.cliffc.aa.type.TypeStruct._sharp(), com.cliffc.aa.type.TypeStruct.ax_impl_ptr(), com.cliffc.aa.type.TypeStruct.ax_meet(), com.cliffc.aa.type.TypeMemPtr.ax_meet_nil(), com.cliffc.aa.type.TestApprox.check_leaf(), com.cliffc.aa.type.TypeMemPtr.compute_hash(), com.cliffc.aa.type.TypeMemPtr.cycle_equals(), com.cliffc.aa.type.TypeMemPtr.depth(), com.cliffc.aa.type.TypeMemPtr.init(), com.cliffc.aa.type.TypeMemPtr.intern_check1(), com.cliffc.aa.type.TypeMemPtr.make_from(), com.cliffc.aa.type.TypeMemPtr.meet_nil(), com.cliffc.aa.type.TypeMemPtr.not_nil(), com.cliffc.aa.type.TypeMemPtr.oop_deep_impl(), com.cliffc.aa.type.TypeMemPtr.rdual(), com.cliffc.aa.type.TypeStruct.sharpen(), com.cliffc.aa.type.TypeStruct.shrink(), com.cliffc.aa.type.TypeMemPtr.simple_ptr(), com.cliffc.aa.type.TypeMemPtr.str(), 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.TestType.testNameCycle(), com.cliffc.aa.type.TestApprox.testTSMeet(), com.cliffc.aa.HM.HM9.Field.val(), com.cliffc.aa.HM.HM.Field.val(), com.cliffc.aa.node.ConTypeNode.value(), com.cliffc.aa.node.MemPrimNode.LValueLength.value(), com.cliffc.aa.node.MemPrimNode.LValueRead.value(), com.cliffc.aa.type.TypeMemPtr.walk(), 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(), com.cliffc.aa.HM.HM.T2.walk_types_out(), com.cliffc.aa.type.TypeMemPtr.widen(), com.cliffc.aa.type.TypeMemPtr.xdual(), and com.cliffc.aa.type.TypeMemPtr.xmeet().
◆ _type
◆ _uid
◆ ABC0
◆ ABCPTR
◆ ALL
◆ ALL_TYPES
◆ ANY
◆ ARY0
◆ ARYPTR
◆ CNT
◆ CTRL
◆ DISP_FLD
◆ DISP_SIMPLE
◆ DISPLAY
◆ DISPLAY_PTR
◆ EMTPTR
◆ INTERN
◆ ISA_SCALAR
◆ ISUSED
◆ ISUSED0
◆ NIL
◆ NILPTR
◆ NO_DISP
Definition at line 80 of file TypeMemPtr.java.
Referenced by com.cliffc.aa.node.IntrinsicNode.convertTypeNameStruct(), com.cliffc.aa.node.LoadNode.get_fld2(), com.cliffc.aa.node.CallNode.ideal_reduce(), com.cliffc.aa.type.TypeFunPtr.is_con(), com.cliffc.aa.type.TypeFunPtr.make_no_disp(), com.cliffc.aa.HM.TestHM.test52(), com.cliffc.aa.HM.TestHM.test55(), com.cliffc.aa.HM.TestHM.test57(), com.cliffc.aa.TestParse.test_name(), com.cliffc.aa.TestParse.test_struct(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve(), com.cliffc.aa.node.TestNodeSmall.testCallNodeResolve2(), com.cliffc.aa.TestParse.testParse(), com.cliffc.aa.TestParse.testParse04(), com.cliffc.aa.Parse.tuple(), and com.cliffc.aa.node.Node.walk_opt().
◆ NREAL
◆ NSCALR
◆ OOP
◆ OOP0
◆ POOLS
◆ REAL
◆ RECURSIVE_MEET
◆ SCALAR
◆ SCALAR_PRIMS
◆ STR0
◆ STRPTR
Definition at line 97 of file TypeMemPtr.java.
Referenced by com.cliffc.aa.HM.HM9.Str.apply(), com.cliffc.aa.HM.HM.Str.apply(), com.cliffc.aa.HM.HM4.hm(), com.cliffc.aa.HM.HM1.HM(), com.cliffc.aa.HM.HM6.hm(), com.cliffc.aa.HM.HM7.hm(), com.cliffc.aa.HM.HM5.hm(), com.cliffc.aa.HM.HM8.hm(), com.cliffc.aa.HM.HM3.hm(), com.cliffc.aa.HM.HM2.hm(), com.cliffc.aa.type.TypeStr.init1(), com.cliffc.aa.HM.HM9.PrimSyn.reset(), com.cliffc.aa.HM.HM.PrimSyn.reset(), com.cliffc.aa.HM.TestHM.test14(), com.cliffc.aa.HM.TestHM9.test14(), com.cliffc.aa.HM.TestHM.test20(), com.cliffc.aa.HM.TestHM9.test20(), com.cliffc.aa.HM.TestHM9.test36(), com.cliffc.aa.HM.TestHM.test36(), com.cliffc.aa.HM.TestHM.test41(), com.cliffc.aa.HM.TestHM9.test41(), com.cliffc.aa.HM.TestHM.test45(), com.cliffc.aa.HM.TestHM9.test45(), com.cliffc.aa.type.TestType.testBits(), com.cliffc.aa.type.TestType.testLoad(), com.cliffc.aa.node.TestNode.testMonotonic(), com.cliffc.aa.type.TestType.testOOPsNulls(), and com.cliffc.aa.TestParse.testParse08().
◆ STRS
◆ STRUCT
◆ STRUCT0
◆ TALL
◆ TANY
◆ TARY
◆ TCTRL
◆ TFLD
◆ TFLT
◆ TFUNPTR
◆ TFUNSIG
◆ TINT
◆ TLAST
◆ TLIVE
◆ TMEM
◆ TMEMPTR
◆ TNIL
◆ TNREAL
◆ TNSCALR
◆ TOBJ
◆ TREAL
◆ TRPC
◆ TSCALAR
◆ TSIMPLE
◆ TSTR
◆ TSTRUCT
◆ TTUPLE
◆ TXCTRL
◆ TXNIL
◆ TXNREAL
◆ TXNSCALR
◆ TXREAL
◆ TXSCALAR
◆ TYPES
◆ XCTRL
◆ XNIL
◆ XNREAL
◆ XNSCALR
◆ XREAL
◆ XSCALAR
The documentation for this class was generated from the following file:
void walk(Predicate< Type > p)
static final byte TMEMPTR
E push(E e)
Add element in amortized constant time.
RuntimeException typerr(Type t)
static boolean eq(String s0, String s1)
boolean check_commute(Type t, Type mt)
an implementation of language AA
Type xmt_name(Type t, Type mt)
static boolean check_name(String n)
static boolean test(long[] bits, int i)
SB str(SB sb, VBitSet dups, TypeMem mem, boolean debug)
static final byte TFUNPTR
static BitsAlias ALL_DISPLAYS
static final byte[] ISA_SCALAR
static Ary< Type > ALL_TYPES
static final byte TXNREAL
final T set_name(String name)
static final byte TSTRUCT
static int RECURSIVE_MEET
static BitsAlias RECORD_BITS
final boolean contains(Type t)
final Type cross_nil(Type t)
static final TypeObj UNUSED
Type make_from(Type head, TypeMem map, VBitSet visit)
static final TypeObj ISUSED
static final ConcurrentHashMap< Type, Type > INTERN
final String mtname(Type t, Type mt)
T init(byte type, String name)
static final Type[] TYPES
Tight/tiny StringBuilder wrapper.
boolean cycle_equals(Type o)
static final byte TSIMPLE
Type oop_deep_impl(Type t)
static Type[] SCALAR_PRIMS
boolean cycle_equals(Type o)
static final Pool[] POOLS
static void concat(Ary< Type > ts, Type[] ts1)
static int max(int alias, HashMap< Type, Integer > ds)
TypeMemPtr make_from(TypeObj obj)
static final byte TFUNSIG
static TypeMemPtr make(BitsAlias aliases, TypeObj obj)