aa
com.cliffc.aa.node.NewAryNode.NewAry Class Reference
Inheritance diagram for com.cliffc.aa.node.NewAryNode.NewAry:
[legend]
Collaboration diagram for com.cliffc.aa.node.NewAryNode.NewAry:
[legend]

Public Member Functions

 NewAry (TypeAry tary, TypeInt sz)
 
FunPtrNode as_fun (GVNGCM gvn)
 
String bal_close ()
 
byte op_prec ()
 

Static Public Member Functions

static Ary< NewPrimNodeINTRINSICS ()
 
static void reset ()
 

Public Attributes

final String _name
 

Static Protected Member Functions

static void add_libs (Ary< NewPrimNode > INTRINSICS)
 

Package Functions

TypeAry dead_type ()
 
TypeObj valueobj ()
 

Static Package Functions

 [static initializer]
 

Package Attributes

final int _op_prec
 
final boolean _reads
 
final TypeFunSig _sig
 

Static Private Attributes

static final Ary< NewPrimNodeINTRINSICS
 

Detailed Description

Definition at line 22 of file NewAryNode.java.

Constructor & Destructor Documentation

◆ NewAry()

Definition at line 23 of file NewAryNode.java.

23 { super(tary,"[",0,sz); }

Member Function Documentation

◆ [static initializer]()

com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >.[static initializer]
staticpackageinherited

◆ add_libs()

static void com.cliffc.aa.node.NewAryNode.add_libs ( Ary< NewPrimNode INTRINSICS)
staticprotectedinherited

Definition at line 15 of file NewAryNode.java.

15  {
16  INTRINSICS.push(new NewAry(TypeAry.ARY0,TypeInt.INT64));
17  }

References com.cliffc.aa.type.TypeAry.ARY0, com.cliffc.aa.type.TypeInt.INT64, and com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< TypeAry >.INTRINSICS.

Referenced by com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< TypeAry >.INTRINSICS().

Here is the caller graph for this function:

◆ as_fun()

FunPtrNode com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >.as_fun ( GVNGCM  gvn)
inherited

Definition at line 198 of file NewNode.java.

198  {
199  try(GVNGCM.Build<FunPtrNode> X = gvn.new Build<>()) {
200  assert in(0)==null && _uses._len==0;
201  FunNode fun = ( FunNode) X.xform(new FunNode(this).add_def(Env.ALL_CTRL));
202  ParmNode rpc = (ParmNode) X.xform(new ParmNode(0,"rpc",fun,Env.ALL_CALL,null));
203  Node memp= X.xform(new ParmNode(MEM_IDX,_sig._args[MEM_IDX],fun, TypeMem.MEM, Env.DEFMEM,null));
204  fun._bal_close = bal_close();
205 
206  // Add input edges to the intrinsic
207  add_def(_reads ? memp : null); // Memory for the primitive in slot MEM_IDX
208  add_def(null); // Closure for the primitive in slot DSP_IDX
209  for( int i=ARG_IDX; i<_sig.nargs(); i++ ) // Args follow
210  add_def( X.xform(new ParmNode(i,_sig._args[i],fun, (ConNode)Node.con(_sig.arg(i).simple_ptr()),null)));
211  NewNode nnn = (NewNode)X.xform(this);
212  Node mem = Env.DEFMEM.make_mem_proj(nnn,memp);
213  Node ptr = X.xform(new ProjNode(nnn,REZ_IDX));
214  RetNode ret = (RetNode)X.xform(new RetNode(fun,mem,ptr,rpc,fun));
215  return (X._ret = new FunPtrNode(_name,ret));
216  }
217  }

◆ bal_close()

String com.cliffc.aa.node.NewAryNode.NewAry.bal_close ( )

Definition at line 24 of file NewAryNode.java.

24 { return "]"; } // Balanced op

◆ dead_type()

TypeAry com.cliffc.aa.node.NewAryNode.dead_type ( )
packageinherited

Definition at line 13 of file NewAryNode.java.

13 { return TypeAry.ARY.dual(); }

References com.cliffc.aa.type.TypeAry.ARY.

◆ INTRINSICS()

static Ary<NewPrimNode> com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >.INTRINSICS ( )
staticinherited

Definition at line 189 of file NewNode.java.

189  {
190  if( INTRINSICS.isEmpty() ) {
191  NewAryNode.add_libs(INTRINSICS);
192  NewStrNode.add_libs(INTRINSICS);
193  }
194  return INTRINSICS;
195  }

◆ op_prec()

byte com.cliffc.aa.node.NewAryNode.NewAry.op_prec ( )

Definition at line 25 of file NewAryNode.java.

25 { return 0; } // Balanced op

◆ reset()

static void com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >.reset ( )
staticinherited

Definition at line 188 of file NewNode.java.

188 { INTRINSICS.clear(); }

◆ valueobj()

TypeObj com.cliffc.aa.node.NewAryNode.NewAry.valueobj ( )
package

Definition at line 26 of file NewAryNode.java.

26  {
27  Type sz = val(3);
28  if( !(sz instanceof TypeInt) ) return sz.oob(TypeObj.ISUSED);
29  // Storage class can be found by looking at _live, needs the reverse-flow of use sizes.
30  return TypeAry.make((TypeInt)sz,Type.XNIL,TypeObj.OBJ);
31  }

References com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.ISUSED, com.cliffc.aa.type.TypeAry.make(), com.cliffc.aa.type.TypeObj< O extends TypeObj< O >.OBJ, com.cliffc.aa.type.Type< T extends Type< T >.oob(), and com.cliffc.aa.type.Type< T extends Type< T >.XNIL.

Here is the call graph for this function:

Member Data Documentation

◆ _name

final String com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >._name
inherited

Definition at line 171 of file NewNode.java.

◆ _op_prec

final int com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >._op_prec
packageinherited

Definition at line 174 of file NewNode.java.

◆ _reads

final boolean com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >._reads
packageinherited

Definition at line 173 of file NewNode.java.

◆ _sig

final TypeFunSig com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >._sig
packageinherited

Definition at line 172 of file NewNode.java.

◆ INTRINSICS

final Ary<NewPrimNode> com.cliffc.aa.node.NewNode< T extends TypeObj< T >.NewPrimNode< T extends TypeObj< T >.INTRINSICS
staticprivateinherited

Definition at line 186 of file NewNode.java.


The documentation for this class was generated from the following file:
com.cliffc.aa.type.TypeMem
Memory type; the state of all of memory; memory edges order memory ops.
Definition: TypeMem.java:53
com.cliffc.aa.Env.ALL_CALL
static ConNode ALL_CALL
Definition: Env.java:26
com.cliffc.aa.type.TypeInt
Definition: TypeInt.java:9
com.cliffc.aa.type.Type
an implementation of language AA
Definition: Type.java:94
com.cliffc.aa.node.Node.add_def
Node add_def(Node n)
Definition: Node.java:152
com.cliffc.aa.node.NewNode.NewPrimNode< TypeAry >::bal_close
String bal_close()
Definition: NewNode.java:184
com.cliffc.aa.type.TypeAry
Definition: TypeAry.java:7
com.cliffc.aa.type.TypeFunSig._args
String[] _args
Definition: TypeFunSig.java:14
com.cliffc.aa.type.TypeFunSig.arg
Type arg(int idx)
Definition: TypeFunSig.java:88
com.cliffc.aa.type.TypeInt.INT64
static final TypeInt INT64
Definition: TypeInt.java:39
com.cliffc.aa.type.TypeFunSig.nargs
int nargs()
Definition: TypeFunSig.java:87
com.cliffc.aa.type.TypeObj.OBJ
static final TypeObj OBJ
Definition: TypeObj.java:44
com.cliffc.aa.type.TypeObj
Definition: TypeObj.java:15
com.cliffc.aa.type.TypeAry.ARY
static final TypeAry ARY
Definition: TypeAry.java:44
com.cliffc.aa.node.NewNode.NewPrimNode< TypeAry >::INTRINSICS
static final Ary< NewPrimNode > INTRINSICS
Definition: NewNode.java:186
com.cliffc.aa.type.TypeAry.make
static TypeAry make(String name, boolean any, TypeInt sz, Type elem, TypeObj stor)
Definition: TypeAry.java:38
com.cliffc.aa.type.TypeObj.ISUSED
static final TypeObj ISUSED
Definition: TypeObj.java:45
com.cliffc.aa.node.NewNode.NewPrimNode< TypeAry >::_name
final String _name
Definition: NewNode.java:171
com.cliffc.aa.type.TypeAry.ARY0
static final TypeAry ARY0
Definition: TypeAry.java:45
com.cliffc.aa.node.NewNode.NewPrimNode< TypeAry >::_sig
final TypeFunSig _sig
Definition: NewNode.java:172
com.cliffc.aa.type.Type.simple_ptr
Type simple_ptr()
Definition: Type.java:358
com.cliffc.aa.node.FunNode._bal_close
String _bal_close
Definition: FunNode.java:60
com.cliffc.aa.type.Type.oob
Type oob()
Definition: Type.java:635
com.cliffc.aa.node.NewNode.NewPrimNode< TypeAry >::_reads
final boolean _reads
Definition: NewNode.java:173
com.cliffc.aa.type.Type.XNIL
static final Type XNIL
Definition: Type.java:333
com.cliffc.aa.node.FunNode
Definition: FunNode.java:58
com.cliffc.aa.type.TypeMem.MEM
static final TypeMem MEM
Definition: TypeMem.java:224
com.cliffc.aa.Env.DEFMEM
static DefMemNode DEFMEM
Definition: Env.java:19
com.cliffc.aa.Env
Definition: Env.java:12
com.cliffc.aa.Env.ALL_CTRL
static ConNode ALL_CTRL
Definition: Env.java:20