+
+
+ // check for parameters that are aliased prior to this call site
+ // if so, come to a grinding halt. Later, we should move this
+ // up before doing any alpha/beta updates
+ for( int i = 0; i < fm.numParameters(); ++i ) {
+ for( int j = 0; j < i; ++j ) {
+ HashSet<HeapRegionNode> s1 = paramIndex2reachableCallerNodes.get( i );
+ HashSet<HeapRegionNode> s2 = paramIndex2reachableCallerNodes.get( j );
+
+ Set<HeapRegionNode> intersection = new HashSet<HeapRegionNode>(s1);
+ intersection.retainAll(s2);
+
+ if( !intersection.isEmpty() ) {
+ // uh oh
+ System.out.println( " Arguments "+j+" and "+i+" are aliased just before" );
+ System.out.println( " "+fc+" calls "+fm+"\n" );
+ //System.exit( -1 );
+ }
+ }
+ }
+
+
+
+