Go to the documentation of this file. 1 package com.cliffc.aa.node;
9 import org.jetbrains.annotations.NotNull;
11 import java.util.Arrays;
12 import java.util.BitSet;
26 if( prj==
null )
return null;
31 @Override
public boolean is_mem() {
return true; }
32 @Override String
str() {
60 @Override
public boolean unify(
boolean test ) {
62 if( tself.
isa(
"SplitMem") ) {
66 if( test )
return true;
68 Arrays.fill(parms,
mem());
74 if( !
_escs.
at(0).test(alias) )
return 0;
104 if( mprj.
_idx > idx )
113 for(
int alias = aliases.nextSetBit(0); alias != -1; alias = aliases.nextSetBit(alias + 1)) {
115 int newalias1 = kid0_aliases[1];
116 int newalias2 = kid0_aliases[2];
122 private void _update(
int oldalias,
int newalias) {
124 if( esc0.
test(oldalias) ) {
128 if( esc.
test(oldalias) ) {
158 assert
Env.
START.more_flow(
true)==0;
175 return (tail2.
_uses._len==1) ||
NonBlockingHashMap< Comparable, TV2 > _args
void remove_alias(int idx)
int add_alias(BitsAlias esc)
boolean unify(TV2 that, boolean test)
MemSplitNode copy(boolean copy_edges)
Memory type; the state of all of memory; memory edges order memory ops.
public< N extends Node > N add_mono(N n)
static final byte OP_SPLIT
Node add_work_all(Node n)
an implementation of language AA
void revalive(Node... ns)
static final TypeMem ALLMEM
void add_alias_below(Node head, BitsAlias head1_escs, Node base)
static RuntimeException unimpl()
static boolean test(long[] bits, int i)
static TV2 make(@NotNull String name, Node n, @NotNull String alloc_site)
boolean check_solo_mem_writer(Node memw)
public< N extends Node > N unkeep()
int find_alias_index(int alias)
static boolean check_split(Node head1, BitsAlias head1_escs, Node tail2)
Ary< E > add(E e)
Add element in amortized constant time.
boolean overlaps(Bits< B > bs)
static void join(Tree tree, long[] bits0, long[] bits1, long[] bits2)
E remove(int i)
Slow, linear-time, element removal.
static ProjNode proj(Node head, int idx)
static TypeTuple make(boolean any, Type[] ts)
static boolean check_split(Node head1, BitsAlias head1_escs)
boolean unify(boolean test)
Tight/tiny StringBuilder wrapper.
an implementation of language AA
Type value(GVNGCM.Mode opt_mode)
Node set_def(int idx, Node n)
void _update(int oldalias, int newalias)
static int[] get_kids(int par)
E set(int i, E e)
Set existing element.
public< N extends Node > N add_flow(N n)
void split_alias(Node copy, BitSet aliases)
static Node insert_split(Node tail1, BitsAlias head1_escs, Node head1, Node tail2, Node head2)
public< N extends Node > N init(N n)
TypeMem slice_reaching_aliases(BitsAlias aliases)