Go to the documentation of this file.
9 import java.util.BitSet;
19 public final boolean _CG;
20 Mode(
boolean CG) { _CG=CG; }
32 @SuppressWarnings(
"unchecked")
34 @SuppressWarnings(
"unchecked")
36 @SuppressWarnings(
"unchecked")
44 if( n==
null || n.is_dead() )
return n;
65 if( def !=
null && def != n )
105 if( n ==
null )
continue;
112 for(
int i=ns.length-1; i>=0; i-- ) {
114 if( n==
null )
continue;
149 boolean progress=
true;
174 if( x!=
null ) x.
keep();
177 for(
Work work : works )
178 if( !(W = work).isEmpty() )
194 if( x==
null )
return null;
242 add_flow(use).add_flow_use_extra(n);
262 if( def!=
null )
add_flow(def).add_flow_def_extra(n);
272 ambi_calls.
add(call);
319 if( ot.
isa(nt) )
return false;
322 System.out.println(
"Not monotonic");
336 if( !wrk.
is_mem() && wrk!=mem )
continue;
339 if( !(tmem0 instanceof
TypeMem) )
continue;
340 if( aliases!=
null && !((
TypeMem)tmem0).has_used(aliases) )
continue;
343 if( cepi !=
null ) work.
push(cepi);
346 if( twrk == tval )
continue;
349 if( wrk==exit )
continue;
361 return init(x==
null ? n : x);
364 assert
_tmps._len<16;
365 if(
_tmps.find(n)!=-1 )
return n;
367 return _tmps.push(n);
370 assert
_tmps._len<16;
371 if(
_tmps.find(n)!=-1 )
return n;
374 @SuppressWarnings(
"unchecked")
static void roll_back_CNT()
static final TypeMem DEAD
E push(E e)
Add element in amortized constant time.
TypeMem live(GVNGCM.Mode opt_mode)
Memory type; the state of all of memory; memory edges order memory ops.
public< N extends Node > N add_mono(N n)
void add_flow_uses(Node n)
void add_inline(FunNode n)
Ary< E > addAll(Collection<? extends E > c)
Node add_work_all(Node n)
final boolean more_ideal(VBitSet bs)
an implementation of language AA
boolean check_not_monotonic(Node n, Type ot, Type nt)
void revalive(Node... ns)
public< N extends Node > N keep()
static TypeFunPtr ttfpx(Type tcall)
void check_and_wire(CallEpiNode cepi)
static void add_work_defs(Work work, Node n)
boolean on_reduce(Node n)
static void add_work_uses(Work work, Node n)
static public< N extends Node > N add_work(Work work, N n)
public< N extends Node > N unkeep()
public< M extends Node > M init2(M n)
Ary< E > add(E e)
Add element in amortized constant time.
abstract Type value(GVNGCM.Mode opt_mode)
boolean _not_resolved_by_gcp
void add_reduce_uses(Node n)
abstract Node apply(Node n)
static void retype_mem(BitSet aliases, Node mem, Node exit, boolean skip_calls)
void add_flow(UQNodes deps)
final void walk_initype(GVNGCM gvn, VBitSet bs)
final int more_flow(boolean lifting)
void remove_ambi(CallNode call)
FunPtrNode least_cost(BitsFun choices, Node unk)
Node iter(Node x, Work[] works)
public< N extends Node > N add(N n)
final Work[] _reduce_works
static final VBitSet IDEAL_VISIT
void gcp(Mode mode, ScopeNode rez)
static TypeFunPtr ttfp(Type tcall)
public< N extends Node > N add_reduce(N n)
void add_flow_defs(Node n)
public< N extends Node > N add_flow(N n)
int find(E e)
Find the first matching element using ==, or -1 if none.
Collection< TypeV > values()
Returns a Collection view of the values contained in this map.
void walk_opt(VBitSet visit)
void add_flow_extra(Type old)
public< N extends Node > N init(N n)