aa
com.cliffc.aa.HM.HM9.NotNil Class Reference
Inheritance diagram for com.cliffc.aa.HM.HM9.NotNil:
[legend]
Collaboration diagram for com.cliffc.aa.HM.HM9.NotNil:
[legend]

Public Member Functions

 NotNil ()
 
String p ()
 
final String toString ()
 

Package Functions

void add_hm_work (Worklist work)
 
void add_val_work (Syntax child, Worklist work)
 
Type apply (Syntax[] args)
 
T2 debug_find ()
 
T2 find ()
 
boolean hm (Worklist work)
 
PrimSyn make ()
 
boolean more_work (Worklist work)
 
final boolean more_work_impl (Worklist work)
 
String name ()
 
final SB p0 (SB sb, VBitSet dups)
 
SB p1 (SB sb)
 
SB p2 (SB sb, VBitSet dups)
 
void prep_lookup_deps (Ident id)
 
int prep_tree (Syntax par, VStack nongen, Worklist work)
 
final void prep_tree_impl (Syntax par, VStack nongen, Worklist work, T2 t)
 
SB str (SB sb)
 
T2 targ (int i)
 
Type val (Worklist work)
 

Static Package Functions

static void reset ()
 

Package Attributes

final String[] _args
 
final Syntax _body
 
final int _fidx
 
Type _flow
 
T2 _hmt
 
VStack _nongen
 
Syntax _par
 
final T2[] _targs
 
final Type[] _types
 

Static Package Attributes

static T2 BOOL
 
static T2 FLT64
 
static final NonBlockingHashMapLong< LambdaFUNS = new NonBlockingHashMapLong<>()
 
static T2 INT64
 
static int PAIR_ALIAS
 
static T2 STRP
 
static int TRIPLE_ALIAS
 
static Worklist WORK
 

Static Private Attributes

static final String[][] IDS
 

Detailed Description

Definition at line 1130 of file HM9.java.

Constructor & Destructor Documentation

◆ NotNil()

com.cliffc.aa.HM.HM9.NotNil.NotNil ( )

Definition at line 1132 of file HM9.java.

1132 { super(T2.make_leaf(),T2.make_leaf()); }

References com.cliffc.aa.HM.HM9.T2.make_leaf().

Referenced by com.cliffc.aa.HM.HM9.NotNil.make().

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

Member Function Documentation

◆ add_hm_work()

void com.cliffc.aa.HM.HM9.PrimSyn.add_hm_work ( Worklist  work)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 966 of file HM9.java.

966  {
967  if( find().is_err() ) work.push(_par);
968  }

References com.cliffc.aa.HM.HM9.Syntax._par, com.cliffc.aa.HM.HM9.Syntax.find(), and com.cliffc.aa.HM.HM9.Worklist.push().

Here is the call graph for this function:

◆ add_val_work()

void com.cliffc.aa.HM.HM9.PrimSyn.add_val_work ( Syntax  child,
Worklist  work 
)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 969 of file HM9.java.

969 { throw unimpl(); }

◆ apply()

Type com.cliffc.aa.HM.HM9.NotNil.apply ( Syntax[]  args)
package

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 1199 of file HM9.java.

1199  {
1200  Type val = args[0]._flow;
1201  if( val==Type.XNIL ) return Type.XSCALAR; // Weird case of not-nil nil
1202  return val.join(Type.NSCALR);
1203  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.type.Type< T extends Type< T >.join(), com.cliffc.aa.type.Type< T extends Type< T >.NSCALR, com.cliffc.aa.HM.HM9.Lambda.val(), com.cliffc.aa.type.Type< T extends Type< T >.XNIL, and com.cliffc.aa.type.Type< T extends Type< T >.XSCALAR.

Here is the call graph for this function:

◆ debug_find()

T2 com.cliffc.aa.HM.HM9.Syntax.debug_find ( )
packageinherited

Definition at line 329 of file HM9.java.

329 { return _hmt.debug_find(); } // Find, without the roll-up

References com.cliffc.aa.HM.HM9.Syntax._hmt, and com.cliffc.aa.HM.HM9.T2.debug_find().

Referenced by com.cliffc.aa.HM.HM9.hm().

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

◆ find()

◆ hm()

boolean com.cliffc.aa.HM.HM9.NotNil.hm ( Worklist  work)
package

Reimplemented from com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 1139 of file HM9.java.

1139  {
1140  assert find().is_fun();
1141  T2 arg = targ(0);
1142  T2 ret = find().args(1);
1143  if( arg.is_err () || ret.is_err () ) return false;
1144  if( arg.is_leaf() && ret.is_leaf() ) return false;
1145 
1146  // One or the other is a base. If they are unrelated, strip the nil.
1147  // If they are forced together, leave the nil.
1148  if( arg.is_base() || ret.is_base() ) {
1149  if( arg.is_base() && ret.is_base() && ret._flow == arg._flow.join(Type.NSCALR) ) return false;
1150  if( arg==ret ) return false; // Cannot not-nil from self
1151  if( work==null ) return true; // Progress will be made
1152  if( arg.is_leaf() ) { arg.unify(T2.make_base(ret._flow),work); arg = arg.find(); }
1153  if( ret.is_leaf() ) { ret.unify(T2.make_base(arg._flow),work); ret = ret.find(); }
1154  assert arg.is_base() && ret.is_base();
1155  ret._flow = arg._flow.join(Type.NSCALR); // Strip nil from base
1156  return true;
1157  }
1158  // One or the other is a function. Same as structs, can strip the nil from nil-able functions.
1159  if( arg.is_fun() || ret.is_fun() )
1160  throw unimpl(); // Strip nil from fidxs
1161 
1162 
1163  // One or the other is a struct.
1164  assert arg.is_struct() || ret.is_struct();
1165  // See if the input and outputs vary anywhere
1166  if( arg.is_struct() && ret.is_struct() && ret._alias == arg._alias.clear(0) && ret._ids.length==arg._ids.length ) {
1167  int i=0; for( ; i<arg._ids.length; i++ ) {
1168  int idx = Util.find(ret._ids,arg._ids[i]);
1169  if( idx== -1 || arg.args(i)!=ret.args(idx) )
1170  break; // Missing or unequal fields
1171  }
1172  if( i==arg._ids.length )
1173  return false; // All fields are unified; only the alias differs by nil
1174  }
1175 
1176  // Make sure both are structs
1177  if( work==null ) return true; // Progress will be made
1178  if( arg.is_leaf() ) { arg.unify(T2.make_struct(ret._alias,new String[0],new T2[0],arg._open),work); arg = arg.find(); }
1179  if( ret.is_leaf() ) { ret.unify(T2.make_struct(arg._alias,new String[0],new T2[0],arg._open),work); ret = ret.find(); }
1180  assert arg.is_struct() && ret.is_struct();
1181  ret._alias = arg._alias.clear(0); // Alias relationship is clear
1182 
1183  // Unify all fields, but not the aliases, so cannot unify at the top level.
1184  // Ignoring the open/not-open as expecting these to be the same.
1185  for( int i=0; i<arg._ids.length; i++ ) {
1186  String id = arg._ids[i];
1187  int idx = Util.find(ret._ids,id);
1188  if( idx==-1 ) ret.add_fld(id,arg.args(i),work);
1189  else ret.args(idx).unify(arg.args(i),work);
1190  }
1191  for( int i=0; i<ret._ids.length; i++ ) {
1192  String id = ret._ids[i];
1193  if( Util.find(arg._ids,id)== -1 )
1194  arg.add_fld(id,ret.args(i),work);
1195  }
1196 
1197  return true; // Progress
1198  }

References com.cliffc.aa.HM.HM9.T2._alias, com.cliffc.aa.HM.HM9.T2._flow, com.cliffc.aa.HM.HM9.T2._ids, com.cliffc.aa.HM.HM9.T2._open, com.cliffc.aa.HM.HM9.T2.add_fld(), com.cliffc.aa.HM.HM9.T2.args(), com.cliffc.aa.type.Bits< B extends Bits< B >.clear(), com.cliffc.aa.util.Util.find(), com.cliffc.aa.HM.HM9.Syntax.find(), com.cliffc.aa.HM.HM9.T2.find(), com.cliffc.aa.HM.HM9.T2.is_base(), com.cliffc.aa.HM.HM9.T2.is_err(), com.cliffc.aa.HM.HM9.T2.is_fun(), com.cliffc.aa.HM.HM9.T2.is_leaf(), com.cliffc.aa.HM.HM9.T2.is_struct(), com.cliffc.aa.type.Type< T extends Type< T >.join(), com.cliffc.aa.HM.HM9.T2.make_base(), com.cliffc.aa.HM.HM9.T2.make_struct(), com.cliffc.aa.type.Type< T extends Type< T >.NSCALR, com.cliffc.aa.HM.HM9.Lambda.targ(), and com.cliffc.aa.HM.HM9.T2.unify().

Here is the call graph for this function:

◆ make()

PrimSyn com.cliffc.aa.HM.HM9.NotNil.make ( )
package

Reimplemented from com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 1133 of file HM9.java.

1133 { return new NotNil(); }

References com.cliffc.aa.HM.HM9.NotNil.NotNil().

Here is the call graph for this function:

◆ more_work()

boolean com.cliffc.aa.HM.HM9.PrimSyn.more_work ( Worklist  work)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 970 of file HM9.java.

970 { return more_work_impl(work); }

References com.cliffc.aa.HM.HM9.Syntax.more_work_impl().

Here is the call graph for this function:

◆ more_work_impl()

final boolean com.cliffc.aa.HM.HM9.Syntax.more_work_impl ( Worklist  work)
packageinherited

Definition at line 362 of file HM9.java.

362  {
363  if( work.has(this) ) return true;
364  if( DO_HM && hm(null) ) // Any more HM work?
365  return false; // Found HM work not on worklist
366  if( DO_GCP && val(null)!=_flow )
367  return false; // Found GCP work not on worklist
368  return true;
369  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.DO_GCP, com.cliffc.aa.HM.HM9.DO_HM, com.cliffc.aa.HM.HM9.Worklist.has(), com.cliffc.aa.HM.HM9.Syntax.hm(), and com.cliffc.aa.HM.HM9.Syntax.val().

Referenced by com.cliffc.aa.HM.HM9.Con.more_work(), com.cliffc.aa.HM.HM9.Ident.more_work(), com.cliffc.aa.HM.HM9.Lambda.more_work(), com.cliffc.aa.HM.HM9.Let.more_work(), com.cliffc.aa.HM.HM9.Apply.more_work(), com.cliffc.aa.HM.HM9.Struct.more_work(), com.cliffc.aa.HM.HM9.Field.more_work(), and com.cliffc.aa.HM.HM9.PrimSyn.more_work().

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

◆ name()

String com.cliffc.aa.HM.HM9.NotNil.name ( )
package

Reimplemented from com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 1131 of file HM9.java.

1131 { return "notnil"; }

◆ p()

String com.cliffc.aa.HM.HM9.Syntax.p ( )
inherited

Definition at line 374 of file HM9.java.

374 { return p0(new SB(), new VBitSet()).toString(); }

References com.cliffc.aa.HM.HM9.Syntax.p0(), and com.cliffc.aa.util.SB.toString().

Here is the call graph for this function:

◆ p0()

final SB com.cliffc.aa.HM.HM9.Syntax.p0 ( SB  sb,
VBitSet  dups 
)
packageinherited

Definition at line 375 of file HM9.java.

375  {
376  _hmt.get_dups(dups);
377  VBitSet visit = new VBitSet();
378  p1(sb.i());
379  if( DO_HM ) _hmt .str(sb.p(", HM="), visit,dups);
380  if( DO_GCP ) _flow.str(sb.p(", CCP="),visit.clr(),null,false);
381  sb.nl();
382  return p2(sb.ii(1),dups).di(1);
383  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.Syntax._hmt, com.cliffc.aa.util.VBitSet.clr(), com.cliffc.aa.util.SB.di(), com.cliffc.aa.HM.HM9.DO_GCP, com.cliffc.aa.HM.HM9.DO_HM, com.cliffc.aa.HM.HM9.T2.get_dups(), com.cliffc.aa.util.SB.i(), com.cliffc.aa.util.SB.ii(), com.cliffc.aa.util.SB.nl(), com.cliffc.aa.util.SB.p(), com.cliffc.aa.HM.HM9.Syntax.p1(), com.cliffc.aa.HM.HM9.Syntax.p2(), com.cliffc.aa.type.Type< T extends Type< T >.str(), and com.cliffc.aa.HM.HM9.T2.str().

Referenced by com.cliffc.aa.HM.HM9.Syntax.p(), com.cliffc.aa.HM.HM9.Lambda.p2(), com.cliffc.aa.HM.HM9.Let.p2(), com.cliffc.aa.HM.HM9.Apply.p2(), com.cliffc.aa.HM.HM9.Struct.p2(), and com.cliffc.aa.HM.HM9.Field.p2().

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

◆ p1()

SB com.cliffc.aa.HM.HM9.PrimSyn.p1 ( SB  sb)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 972 of file HM9.java.

972 { return sb.p(name()); }

References com.cliffc.aa.HM.HM9.PrimSyn.name(), and com.cliffc.aa.util.SB.p().

Here is the call graph for this function:

◆ p2()

SB com.cliffc.aa.HM.HM9.PrimSyn.p2 ( SB  sb,
VBitSet  dups 
)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 973 of file HM9.java.

973 { return sb; }

◆ prep_lookup_deps()

void com.cliffc.aa.HM.HM9.Lambda.prep_lookup_deps ( Ident  id)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Definition at line 533 of file HM9.java.

533  {
534  for( int i=0; i<_args.length; i++ )
535  if( Util.eq(_args[i],id._name) ) _targs[i].push_update(id);
536  }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.util.Util.eq(), and com.cliffc.aa.HM.HM9.T2.push_update().

Here is the call graph for this function:

◆ prep_tree()

int com.cliffc.aa.HM.HM9.NotNil.prep_tree ( Syntax  par,
VStack  nongen,
Worklist  work 
)
package

Reimplemented from com.cliffc.aa.HM.HM9.PrimSyn.

Definition at line 1134 of file HM9.java.

1134  {
1135  int cnt = super.prep_tree(par,nongen,work);
1136  find().args(1).push_update(this);
1137  return cnt;
1138  }

References com.cliffc.aa.HM.HM9.T2.args(), com.cliffc.aa.HM.HM9.Syntax.find(), and com.cliffc.aa.HM.HM9.T2.push_update().

Here is the call graph for this function:

◆ prep_tree_impl()

final void com.cliffc.aa.HM.HM9.Syntax.prep_tree_impl ( Syntax  par,
VStack  nongen,
Worklist  work,
T2  t 
)
packageinherited

Definition at line 351 of file HM9.java.

351  {
352  _par = par;
353  _hmt = t;
354  _flow= Type.XSCALAR;
355  _nongen = nongen;
356  work.push(this);
357  }

References com.cliffc.aa.HM.HM9.Syntax._flow, com.cliffc.aa.HM.HM9.Syntax._hmt, com.cliffc.aa.HM.HM9.Syntax._nongen, com.cliffc.aa.HM.HM9.Syntax._par, com.cliffc.aa.HM.HM9.Worklist.push(), and com.cliffc.aa.type.Type< T extends Type< T >.XSCALAR.

Referenced by com.cliffc.aa.HM.HM9.Con.prep_tree(), com.cliffc.aa.HM.HM9.Ident.prep_tree(), com.cliffc.aa.HM.HM9.Lambda.prep_tree(), com.cliffc.aa.HM.HM9.Let.prep_tree(), com.cliffc.aa.HM.HM9.Apply.prep_tree(), com.cliffc.aa.HM.HM9.Struct.prep_tree(), com.cliffc.aa.HM.HM9.Field.prep_tree(), and com.cliffc.aa.HM.HM9.PrimSyn.prep_tree().

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

◆ reset()

static void com.cliffc.aa.HM.HM9.PrimSyn.reset ( )
staticpackageinherited

Definition at line 930 of file HM9.java.

References com.cliffc.aa.type.TypeInt.BOOL, com.cliffc.aa.HM.HM9.PrimSyn.BOOL, com.cliffc.aa.type.TypeFlt.FLT64, com.cliffc.aa.HM.HM9.PrimSyn.FLT64, com.cliffc.aa.type.TypeInt.INT64, com.cliffc.aa.HM.HM9.PrimSyn.INT64, com.cliffc.aa.HM.HM9.T2.make_base(), com.cliffc.aa.type.BitsAlias.new_alias(), com.cliffc.aa.HM.HM9.PrimSyn.PAIR_ALIAS, com.cliffc.aa.type.BitsAlias.REC, com.cliffc.aa.HM.HM9.PrimSyn.STRP, com.cliffc.aa.type.TypeMemPtr.STRPTR, and com.cliffc.aa.HM.HM9.PrimSyn.TRIPLE_ALIAS.

Referenced by com.cliffc.aa.HM.HM9.reset().

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

◆ str()

SB com.cliffc.aa.HM.HM9.PrimSyn.str ( SB  sb)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Lambda.

Definition at line 971 of file HM9.java.

971 { return sb.p(name()); }

References com.cliffc.aa.HM.HM9.PrimSyn.name(), and com.cliffc.aa.util.SB.p().

Here is the call graph for this function:

◆ targ()

T2 com.cliffc.aa.HM.HM9.Lambda.targ ( int  i)
packageinherited

Definition at line 495 of file HM9.java.

495 { T2 targ = _targs[i].find(); return targ==_targs[i] ? targ : (_targs[i]=targ); }

References com.cliffc.aa.HM.HM9.Lambda._targs, com.cliffc.aa.HM.HM9.T2.find(), and com.cliffc.aa.HM.HM9.Lambda.targ().

Referenced by com.cliffc.aa.HM.HM9.Lambda.add_hm_work(), com.cliffc.aa.HM.HM9.Apply.add_val_work(), com.cliffc.aa.HM.HM9.Lambda.hm(), com.cliffc.aa.HM.HM9.PrimSyn.hm(), com.cliffc.aa.HM.HM9.If.hm(), com.cliffc.aa.HM.HM9.NotNil.hm(), com.cliffc.aa.HM.HM9.Lambda.p1(), com.cliffc.aa.HM.HM9.Ident.prep_tree(), com.cliffc.aa.HM.HM9.Lambda.prep_tree(), and com.cliffc.aa.HM.HM9.Lambda.targ().

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

◆ toString()

final String com.cliffc.aa.HM.HM9.Syntax.toString ( )
inherited

Definition at line 371 of file HM9.java.

371 { return str(new SB()).toString(); }

References com.cliffc.aa.HM.HM9.Syntax.str(), and com.cliffc.aa.util.SB.toString().

Referenced by com.cliffc.aa.HM.HM9.Lambda.p1().

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

◆ val()

Type com.cliffc.aa.HM.HM9.Lambda.val ( Worklist  work)
packageinherited

Reimplemented from com.cliffc.aa.HM.HM9.Syntax.

Definition at line 520 of file HM9.java.

520 { return TypeFunPtr.make(_fidx,_args.length,Type.ANY); }

References com.cliffc.aa.HM.HM9.Lambda._args, com.cliffc.aa.HM.HM9.Lambda._fidx, com.cliffc.aa.type.Type< T extends Type< T >.ANY, and com.cliffc.aa.type.TypeFunPtr.make().

Referenced by com.cliffc.aa.HM.HM9.NotNil.apply(), and com.cliffc.aa.HM.HM9.Lambda.Lambda().

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

Member Data Documentation

◆ _args

◆ _body

◆ _fidx

final int com.cliffc.aa.HM.HM9.Lambda._fidx
packageinherited

◆ _flow

◆ _hmt

◆ _nongen

VStack com.cliffc.aa.HM.HM9.Syntax._nongen
packageinherited

◆ _par

◆ _targs

◆ _types

final Type [] com.cliffc.aa.HM.HM9.Lambda._types
packageinherited

◆ BOOL

T2 com.cliffc.aa.HM.HM9.PrimSyn.BOOL
staticpackageinherited

◆ FLT64

T2 com.cliffc.aa.HM.HM9.PrimSyn.FLT64
staticpackageinherited

◆ FUNS

◆ IDS

final String [][] com.cliffc.aa.HM.HM9.PrimSyn.IDS
staticprivateinherited
Initial value:
= new String[][] {
null,
{"x"},
{"x","y"},
{"x","y","z"},
}

Definition at line 939 of file HM9.java.

Referenced by com.cliffc.aa.HM.HM9.PrimSyn.PrimSyn().

◆ INT64

T2 com.cliffc.aa.HM.HM9.PrimSyn.INT64
staticpackageinherited

◆ PAIR_ALIAS

◆ STRP

T2 com.cliffc.aa.HM.HM9.PrimSyn.STRP
staticpackageinherited

◆ TRIPLE_ALIAS

int com.cliffc.aa.HM.HM9.PrimSyn.TRIPLE_ALIAS
staticpackageinherited

◆ WORK

Worklist com.cliffc.aa.HM.HM9.PrimSyn.WORK
staticpackageinherited

Definition at line 928 of file HM9.java.

Referenced by com.cliffc.aa.HM.HM9.hm().


The documentation for this class was generated from the following file:
com.cliffc.aa.type.Type.NSCALR
static final Type NSCALR
Definition: Type.java:330
com.cliffc.aa.HM.HM9.PrimSyn.BOOL
static T2 BOOL
Definition: HM9.java:927
com.cliffc.aa.HM.HM9.Lambda._fidx
final int _fidx
Definition: HM9.java:463
com.cliffc.aa.type.TypeFunPtr
Definition: TypeFunPtr.java:23
com.cliffc.aa.HM.HM9.Lambda._targs
final T2[] _targs
Definition: HM9.java:461
com.cliffc.aa.HM.HM9.Lambda._args
final String[] _args
Definition: HM9.java:459
com.cliffc.aa.util.Util.find
static int find(int[] es, int e)
Definition: Util.java:6
com.cliffc.aa.HM.HM9.Syntax.hm
abstract boolean hm(Worklist work)
com.cliffc.aa.HM.HM9.PrimSyn.TRIPLE_ALIAS
static int TRIPLE_ALIAS
Definition: HM9.java:929
com.cliffc.aa.util.Util.eq
static boolean eq(String s0, String s1)
Definition: Util.java:16
com.cliffc.aa.HM.HM9.T2.is_fun
boolean is_fun()
Definition: HM9.java:1340
com.cliffc.aa.type.Type.join
Type join(Type t)
Definition: Type.java:619
com.cliffc.aa.util.SB.ii
SB ii(int i)
Definition: SB.java:44
com.cliffc.aa.HM.HM9.Syntax.find
T2 find()
Definition: HM9.java:325
com.cliffc.aa.HM.HM9.Lambda.val
Type val(Worklist work)
Definition: HM9.java:520
com.cliffc.aa.HM.HM9.PrimSyn.PAIR_ALIAS
static int PAIR_ALIAS
Definition: HM9.java:929
com.cliffc.aa.util.SB.di
SB di(int i)
Definition: SB.java:46
com.cliffc.aa.type.Type.XSCALAR
static final Type XSCALAR
Definition: Type.java:329
com.cliffc.aa.type.TypeInt
Definition: TypeInt.java:9
com.cliffc.aa.HM.HM9.Lambda.targ
T2 targ(int i)
Definition: HM9.java:495
com.cliffc.aa.HM.HM9.Syntax.p0
final SB p0(SB sb, VBitSet dups)
Definition: HM9.java:375
com.cliffc.aa.type.Type
an implementation of language AA
Definition: Type.java:94
com.cliffc.aa.type.TypeFlt
Definition: TypeFlt.java:9
com.cliffc.aa.type.BitsAlias
Definition: BitsAlias.java:8
com.cliffc.aa.HM.HM9.PrimSyn.STRP
static T2 STRP
Definition: HM9.java:927
com.cliffc.aa.util.VBitSet.clr
VBitSet clr()
Definition: VBitSet.java:9
com.cliffc.aa.type.Type.ANY
static final Type ANY
Definition: Type.java:325
com.cliffc.aa.type.BitsAlias.new_alias
static int new_alias(int par)
Definition: BitsAlias.java:75
com.cliffc.aa.HM.HM9.PrimSyn.FLT64
static T2 FLT64
Definition: HM9.java:927
com.cliffc.aa.type.Type.str
SB str(SB sb, VBitSet dups, TypeMem mem, boolean debug)
Definition: Type.java:131
com.cliffc.aa.HM.HM9.Syntax.p1
abstract SB p1(SB sb)
com.cliffc.aa.HM.HM9.NotNil.NotNil
NotNil()
Definition: HM9.java:1132
com.cliffc.aa.type.BitsAlias.REC
static final int REC
Definition: BitsAlias.java:25
com.cliffc.aa.type.TypeInt.INT64
static final TypeInt INT64
Definition: TypeInt.java:39
com.cliffc.aa.HM.HM9.T2.find
T2 find()
Definition: HM9.java:1355
com.cliffc.aa.HM.HM9.T2.make_base
static T2 make_base(Type flow)
Definition: HM9.java:1304
com.cliffc.aa.HM.HM9.T2.push_update
T2 push_update(Ary< Syntax > as)
Definition: HM9.java:1995
com.cliffc.aa.util.Util
Definition: Util.java:5
com.cliffc.aa.HM.HM9.Syntax._hmt
T2 _hmt
Definition: HM9.java:324
com.cliffc.aa.HM.HM9.PrimSyn.INT64
static T2 INT64
Definition: HM9.java:927
com.cliffc.aa.HM.HM9.T2.debug_find
T2 debug_find()
Definition: HM9.java:1344
com.cliffc.aa.type.TypeFunPtr.make
static TypeFunPtr make(BitsFun fidxs, int nargs, Type disp)
Definition: TypeFunPtr.java:67
com.cliffc.aa.HM.HM9.Syntax.more_work_impl
final boolean more_work_impl(Worklist work)
Definition: HM9.java:362
com.cliffc.aa.HM.HM9.T2.args
T2 args(int i)
Definition: HM9.java:1363
com.cliffc.aa.HM.HM9.T2.str
SB str(SB sb, VBitSet visit, VBitSet dups)
Definition: HM9.java:2040
com.cliffc.aa.util.VBitSet
Definition: VBitSet.java:5
com.cliffc.aa.util.SB
Tight/tiny StringBuilder wrapper.
Definition: SB.java:8
com.cliffc.aa.HM.HM9.Syntax.str
abstract SB str(SB sb)
com.cliffc.aa.util.SB.nl
SB nl()
Definition: SB.java:48
com.cliffc.aa.util.SB.p
SB p(String s)
Definition: SB.java:13
com.cliffc.aa.type.Type.XNIL
static final Type XNIL
Definition: Type.java:333
com.cliffc.aa.HM.HM9.PrimSyn.name
abstract String name()
com.cliffc.aa.HM.HM9.Syntax._nongen
VStack _nongen
Definition: HM9.java:323
com.cliffc.aa.util.SB.i
SB i(int d)
Definition: SB.java:38
com.cliffc.aa.type.TypeMemPtr.STRPTR
static final TypeMemPtr STRPTR
Definition: TypeMemPtr.java:97
com.cliffc.aa.HM.HM9.DO_GCP
static final boolean DO_GCP
Definition: HM9.java:79
com.cliffc.aa.HM.HM9.T2.unify
boolean unify(T2 that, Worklist work)
Definition: HM9.java:1528
com.cliffc.aa.HM.HM9.Syntax.p2
abstract SB p2(SB sb, VBitSet dups)
com.cliffc.aa.HM.HM9.DO_HM
static final boolean DO_HM
Definition: HM9.java:78
com.cliffc.aa.HM.HM9.Syntax._flow
Type _flow
Definition: HM9.java:332
com.cliffc.aa.type.TypeInt.BOOL
static final TypeInt BOOL
Definition: TypeInt.java:43
com.cliffc.aa.util.SB.toString
String toString()
Definition: SB.java:62
com.cliffc.aa.type.TypeMemPtr
Definition: TypeMemPtr.java:14
com.cliffc.aa.type.TypeFlt.FLT64
static final TypeFlt FLT64
Definition: TypeFlt.java:38
com.cliffc.aa.HM.HM9.T2.get_dups
VBitSet get_dups(VBitSet dups)
Definition: HM9.java:2025
com.cliffc.aa.HM.HM9.Syntax.val
abstract Type val(Worklist work)
com.cliffc.aa.HM.HM9.Syntax._par
Syntax _par
Definition: HM9.java:322