comparison test/compiler/6726999/Test.java @ 253:b0fe4deeb9fb

6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.") Summary: Escape Analysis fixes. Reviewed-by: never, rasbold
author kvn
date Mon, 28 Jul 2008 17:12:52 -0700
parents
children c18cbe5936b8
comparison
equal deleted inserted replaced
252:be7facf71163 253:b0fe4deeb9fb
1 /*
2 * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 *
23 */
24
25 /*
26 * @test
27 * @bug 6726999
28 * @summary nsk/stress/jck12a/jck12a010 assert(n != NULL,"Bad immediate dominator info.");
29 * @run main/othervm -Xbatch -XX:CompileCommand=exclude,Test.dummy -XX:+AggressiveOpts Test
30 */
31
32 import java.lang.reflect.Array;
33
34 class Point {
35 int x;
36 int y;
37 }
38
39 public class Test {
40
41 void dummy() {
42 // Empty method to verify correctness of DebugInfo.
43 // Use -XX:CompileCommand=exclude,Test.dummy
44 }
45
46 int test0_0_0(int y) {
47 int x = 3;
48 Point p = new Point();
49 dummy();
50 p.x = x;
51 p.y = 3 * x + y;
52 return p.x * p.y;
53 }
54
55 int test0_0_1(int y) {
56 int x = 3;
57 Point p = null;
58 dummy();
59 p = new Point();
60 dummy();
61 p.x = x;
62 p.y = 3 * x + y;
63 return p.x * p.y;
64 }
65
66 int test0_0_2(int y) {
67 int x = 3;
68 Point p = new Point();
69 dummy();
70 p = new Point();
71 dummy();
72 p.x = x;
73 p.y = 3 * x + y;
74 return p.x * p.y;
75 }
76
77 int test0_0_3(int y) {
78 int x = 3;
79 Point p[] = new Point[1];
80 p[0] = new Point();
81 dummy();
82 p[0].x = x;
83 p[0].y = 3 * x + y;
84 return p[0].x * p[0].y;
85 }
86
87 int test0_0_4(int y) {
88 int x = 3;
89 Point p[] = new Point[1];
90 dummy();
91 p[0] = new Point();
92 dummy();
93 p[0].x = x;
94 p[0].y = 3 * x + y;
95 return p[0].x * p[0].y;
96 }
97
98 int test0_0_5(int y) {
99 int x = 3;
100 Point p[] = new Point[1];
101 dummy();
102 p[0] = null;
103 dummy();
104 p[0] = new Point();
105 dummy();
106 p[0].x = x;
107 p[0].y = 3 * x + y;
108 return p[0].x * p[0].y;
109 }
110
111 int test0_0_6(int y) {
112 int x = 3;
113 Point p[] = new Point[1];
114 p[0] = new Point();
115 dummy();
116 p[0] = new Point();
117 dummy();
118 p[0].x = x;
119 p[0].y = 3 * x + y;
120 return p[0].x * p[0].y;
121 }
122
123 int test0_1_3(int y) {
124 int x = 3;
125 Point p1 = new Point();
126 dummy();
127 Point p[] = new Point[1];
128 p[0] = p1;
129 dummy();
130 p[0].x = x;
131 p[0].y = 3 * x + y;
132 return p[0].x * p[0].y;
133 }
134
135 int test0_1_4(int y) {
136 int x = 3;
137 Point p1 = new Point();
138 dummy();
139 Point p[] = new Point[1];
140 dummy();
141 p[0] = p1;
142 dummy();
143 p[0].x = x;
144 p[0].y = 3 * x + y;
145 return p[0].x * p[0].y;
146 }
147
148 int test0_1_5(int y) {
149 int x = 3;
150 Point p1 = new Point();
151 dummy();
152 Point p[] = new Point[1];
153 dummy();
154 p[0] = null;
155 dummy();
156 p[0] = p1;
157 dummy();
158 p[0].x = x;
159 p[0].y = 3 * x + y;
160 return p[0].x * p[0].y;
161 }
162
163 int test0_1_6(int y) {
164 int x = 3;
165 Point p1 = new Point();
166 dummy();
167 Point p2 = new Point();
168 dummy();
169 Point p[] = new Point[1];
170 p[0] = p1;
171 dummy();
172 p[0] = p2;
173 dummy();
174 p[0].x = x;
175 p[0].y = 3 * x + y;
176 return p[0].x * p[0].y;
177 }
178
179 int test1_0_0(int y) {
180 Point p = new Point();
181 if ( (y & 1) == 1 ) {
182 p = new Point();
183 }
184 int x = 3;
185 p.x = x;
186 p.y = 3 * x + y;
187 dummy();
188 return p.x * p.y;
189 }
190
191 int test1_0_1(int y) {
192 Point p = null;
193 if ( (y & 1) == 1 ) {
194 p = new Point();
195 }
196 int x = 3;
197 if ( p == null )
198 return (3 * x + y) * x;
199 p.x = x;
200 p.y = 3 * x + y;
201 dummy();
202 return p.x * p.y;
203 }
204
205 int test1_0_2(int y) {
206 Point p[] = new Point[1];
207 if ( (y & 1) == 1 ) {
208 p[0] = new Point();
209 }
210 int x = 3;
211 if ( p[0] == null )
212 return (3 * x + y) * x;
213 p[0].x = x;
214 p[0].y = 3 * x + y;
215 dummy();
216 return p[0].x * p[0].y;
217 }
218
219 int test1_0_3(int y) {
220 Point p[] = new Point[1];
221 p[0] = null;
222 if ( (y & 1) == 1 ) {
223 p[0] = new Point();
224 }
225 int x = 3;
226 if ( p[0] == null )
227 return (3 * x + y) * x;
228 p[0].x = x;
229 p[0].y = 3 * x + y;
230 dummy();
231 return p[0].x * p[0].y;
232 }
233
234 int test1_0_4(int y) {
235 Point p[] = new Point[1];
236 p[0] = new Point();
237 if ( (y & 1) == 1 ) {
238 p[0] = new Point();
239 }
240 int x = 3;
241 if ( p[0] == null )
242 return (3 * x + y) * x;
243 p[0].x = x;
244 p[0].y = 3 * x + y;
245 dummy();
246 return p[0].x * p[0].y;
247 }
248
249 int test1_0_5(int y) {
250 Point p[] = new Point[1];
251 if ( (y & 1) == 1 ) {
252 p[0] = new Point();
253 } else {
254 p[0] = null;
255 }
256 int x = 3;
257 if ( p[0] == null )
258 return (3 * x + y) * x;
259 p[0].x = x;
260 p[0].y = 3 * x + y;
261 dummy();
262 return p[0].x * p[0].y;
263 }
264
265 int test1_0_6(int y) {
266 Point p[] = new Point[1];
267 if ( (y & 1) == 1 ) {
268 p[0] = new Point();
269 } else {
270 p[0] = new Point();
271 }
272 int x = 3;
273 if ( p[0] == null )
274 return (3 * x + y) * x;
275 p[0].x = x;
276 p[0].y = 3 * x + y;
277 dummy();
278 return p[0].x * p[0].y;
279 }
280
281 int test1_1_0(int y) {
282 Point p = new Point();
283 if ( (y & 1) == 1 ) {
284 dummy();
285 p = new Point();
286 dummy();
287 }
288 int x = 3;
289 p.x = x;
290 p.y = 3 * x + y;
291 dummy();
292 return p.x * p.y;
293 }
294
295 int test1_1_1(int y) {
296 Point p = null;
297 if ( (y & 1) == 1 ) {
298 dummy();
299 p = new Point();
300 dummy();
301 }
302 int x = 3;
303 if ( p == null )
304 return (3 * x + y) * x;
305 p.x = x;
306 p.y = 3 * x + y;
307 dummy();
308 return p.x * p.y;
309 }
310
311 int test1_1_2(int y) {
312 Point p[] = new Point[1];
313 if ( (y & 1) == 1 ) {
314 dummy();
315 p[0] = new Point();
316 dummy();
317 }
318 int x = 3;
319 if ( p[0] == null )
320 return (3 * x + y) * x;
321 p[0].x = x;
322 p[0].y = 3 * x + y;
323 dummy();
324 return p[0].x * p[0].y;
325 }
326
327 int test1_1_3(int y) {
328 Point p[] = new Point[1];
329 dummy();
330 p[0] = null;
331 if ( (y & 1) == 1 ) {
332 dummy();
333 p[0] = new Point();
334 dummy();
335 }
336 int x = 3;
337 if ( p[0] == null )
338 return (3 * x + y) * x;
339 p[0].x = x;
340 p[0].y = 3 * x + y;
341 dummy();
342 return p[0].x * p[0].y;
343 }
344
345 int test1_1_4(int y) {
346 Point p[] = new Point[1];
347 dummy();
348 p[0] = new Point();
349 if ( (y & 1) == 1 ) {
350 dummy();
351 p[0] = new Point();
352 dummy();
353 }
354 int x = 3;
355 if ( p[0] == null )
356 return (3 * x + y) * x;
357 p[0].x = x;
358 p[0].y = 3 * x + y;
359 dummy();
360 return p[0].x * p[0].y;
361 }
362
363 int test1_1_5(int y) {
364 Point p[] = new Point[1];
365 if ( (y & 1) == 1 ) {
366 dummy();
367 p[0] = new Point();
368 dummy();
369 } else {
370 dummy();
371 p[0] = null;
372 dummy();
373 }
374 int x = 3;
375 if ( p[0] == null )
376 return (3 * x + y) * x;
377 p[0].x = x;
378 p[0].y = 3 * x + y;
379 dummy();
380 return p[0].x * p[0].y;
381 }
382
383 int test1_1_6(int y) {
384 Point p[] = new Point[1];
385 if ( (y & 1) == 1 ) {
386 dummy();
387 p[0] = new Point();
388 dummy();
389 } else {
390 dummy();
391 p[0] = new Point();
392 dummy();
393 }
394 int x = 3;
395 if ( p[0] == null )
396 return (3 * x + y) * x;
397 p[0].x = x;
398 p[0].y = 3 * x + y;
399 dummy();
400 return p[0].x * p[0].y;
401 }
402
403 int test1_2_0(int y) {
404 Point p1 = new Point();
405 dummy();
406 Point p = new Point();
407 if ( (y & 1) == 1 ) {
408 dummy();
409 p = p1;
410 dummy();
411 }
412 int x = 3;
413 p.x = x;
414 p.y = 3 * x + y;
415 dummy();
416 return p.x * p.y;
417 }
418
419 int test1_2_1(int y) {
420 Point p1 = new Point();
421 dummy();
422 Point p = null;
423 if ( (y & 1) == 1 ) {
424 dummy();
425 p = p1;
426 dummy();
427 }
428 int x = 3;
429 if ( p == null )
430 return (3 * x + y) * x;
431 p.x = x;
432 p.y = 3 * x + y;
433 dummy();
434 return p.x * p.y;
435 }
436
437 int test1_2_2(int y) {
438 Point p1 = new Point();
439 dummy();
440 Point p[] = new Point[1];
441 if ( (y & 1) == 1 ) {
442 dummy();
443 p[0] = p1;
444 dummy();
445 }
446 int x = 3;
447 if ( p[0] == null )
448 return (3 * x + y) * x;
449 p[0].x = x;
450 p[0].y = 3 * x + y;
451 dummy();
452 return p[0].x * p[0].y;
453 }
454
455 int test1_2_3(int y) {
456 Point p1 = new Point();
457 dummy();
458 Point p[] = new Point[1];
459 dummy();
460 p[0] = null;
461 if ( (y & 1) == 1 ) {
462 dummy();
463 p[0] = p1;
464 dummy();
465 }
466 int x = 3;
467 if ( p[0] == null )
468 return (3 * x + y) * x;
469 p[0].x = x;
470 p[0].y = 3 * x + y;
471 dummy();
472 return p[0].x * p[0].y;
473 }
474
475 int test1_2_4(int y) {
476 Point p1 = new Point();
477 dummy();
478 Point p2 = new Point();
479 dummy();
480 Point p[] = new Point[1];
481 dummy();
482 p[0] = p1;
483 if ( (y & 1) == 1 ) {
484 dummy();
485 p[0] = p2;
486 dummy();
487 }
488 int x = 3;
489 if ( p[0] == null )
490 return (3 * x + y) * x;
491 p[0].x = x;
492 p[0].y = 3 * x + y;
493 dummy();
494 return p[0].x * p[0].y;
495 }
496
497 int test1_2_5(int y) {
498 Point p1 = new Point();
499 dummy();
500 Point p[] = new Point[1];
501 if ( (y & 1) == 1 ) {
502 dummy();
503 p[0] = p1;
504 dummy();
505 } else {
506 dummy();
507 p[0] = null;
508 dummy();
509 }
510 int x = 3;
511 if ( p[0] == null )
512 return (3 * x + y) * x;
513 p[0].x = x;
514 p[0].y = 3 * x + y;
515 dummy();
516 return p[0].x * p[0].y;
517 }
518
519 int test1_2_6(int y) {
520 Point p1 = new Point();
521 dummy();
522 Point p2 = new Point();
523 dummy();
524 Point p[] = new Point[1];
525 if ( (y & 1) == 1 ) {
526 dummy();
527 p[0] = p1;
528 dummy();
529 } else {
530 dummy();
531 p[0] = p2;
532 dummy();
533 }
534 int x = 3;
535 if ( p[0] == null )
536 return (3 * x + y) * x;
537 p[0].x = x;
538 p[0].y = 3 * x + y;
539 dummy();
540 return p[0].x * p[0].y;
541 }
542
543 int test2_0_0(int y) {
544 Point p = new Point();
545 int lim = (y & 3);
546 for (int i = 0; i < lim; i++) {
547 p = new Point();
548 }
549 int x = 3;
550 p.x = x;
551 p.y = 3 * x + y;
552 dummy();
553 return p.x * p.y;
554 }
555
556 int test2_0_1(int y) {
557 Point p = null;
558 int lim = (y & 3);
559 for (int i = 0; i < lim; i++) {
560 p = new Point();
561 }
562 int x = 3;
563 if ( p == null )
564 return (3 * x + y) * x;
565 p.x = x;
566 p.y = 3 * x + y;
567 dummy();
568 return p.x * p.y;
569 }
570
571 int test2_0_2(int y) {
572 Point p[] = new Point[3];
573 int lim = (y & 3);
574 for (int i = 0; i < lim; i++) {
575 p[i] = new Point();
576 }
577 int x = 3;
578 int j = (y & 1);
579 if ( p[j] == null )
580 return (3 * x + y) * x;
581 p[j].x = x;
582 p[j].y = 3 * x + y;
583 dummy();
584 return p[j].x * p[0].y;
585 }
586
587 int test2_0_3(int y) {
588 Point p[] = new Point[3];
589 int j = (y & 1);
590 p[j] = null;
591 int lim = (y & 3);
592 for (int i = 0; i < lim; i++) {
593 p[i] = new Point();
594 }
595 int x = 3;
596 if ( p[j] == null )
597 return (3 * x + y) * x;
598 p[j].x = x;
599 p[j].y = 3 * x + y;
600 dummy();
601 return p[j].x * p[0].y;
602 }
603
604 int test2_0_4(int y) {
605 Point p[] = new Point[3];
606 int j = (y & 1);
607 p[j] = new Point();
608 int lim = (y & 3);
609 for (int i = 0; i < lim; i++) {
610 p[i] = new Point();
611 }
612 int x = 3;
613 if ( p[j] == null )
614 return (3 * x + y) * x;
615 p[j].x = x;
616 p[j].y = 3 * x + y;
617 dummy();
618 return p[j].x * p[0].y;
619 }
620
621 int test2_0_5(int y) {
622 Point p[] = new Point[3];
623 int lim = (y & 3);
624 for (int i = 0; i < lim; i++) {
625 p[i] = new Point();
626 }
627 for (int i = 0; i < lim; i++) {
628 p[i] = null;
629 }
630 int x = 3;
631 int j = (y & 1);
632 if ( p[j] == null )
633 return (3 * x + y) * x;
634 p[j].x = x;
635 p[j].y = 3 * x + y;
636 dummy();
637 return p[j].x * p[0].y;
638 }
639
640 int test2_0_6(int y) {
641 Point p[] = new Point[3];
642 int lim = (y & 3);
643 for (int i = 0; i < lim; i++) {
644 p[i] = new Point();
645 }
646 for (int i = 0; i < lim; i++) {
647 p[i] = new Point();
648 }
649 int x = 3;
650 int j = (y & 1);
651 if ( p[j] == null )
652 return (3 * x + y) * x;
653 p[j].x = x;
654 p[j].y = 3 * x + y;
655 dummy();
656 return p[j].x * p[0].y;
657 }
658
659 int test2_1_0(int y) {
660 Point p = new Point();
661 int lim = (y & 3);
662 for (int i = 0; i < lim; i++) {
663 dummy();
664 p = new Point();
665 dummy();
666 }
667 int x = 3;
668 p.x = x;
669 p.y = 3 * x + y;
670 dummy();
671 return p.x * p.y;
672 }
673
674 int test2_1_1(int y) {
675 Point p = null;
676 int lim = (y & 3);
677 for (int i = 0; i < lim; i++) {
678 dummy();
679 p = new Point();
680 dummy();
681 }
682 int x = 3;
683 if ( p == null )
684 return (3 * x + y) * x;
685 p.x = x;
686 p.y = 3 * x + y;
687 dummy();
688 return p.x * p.y;
689 }
690
691 int test2_1_2(int y) {
692 Point p[] = new Point[3];
693 int lim = (y & 3);
694 for (int i = 0; i < lim; i++) {
695 dummy();
696 p[i] = new Point();
697 dummy();
698 }
699 int x = 3;
700 int j = (y & 1);
701 if ( p[j] == null )
702 return (3 * x + y) * x;
703 p[j].x = x;
704 p[j].y = 3 * x + y;
705 dummy();
706 return p[j].x * p[0].y;
707 }
708
709 int test2_1_3(int y) {
710 Point p[] = new Point[3];
711 dummy();
712 int j = (y & 1);
713 p[j] = null;
714 int lim = (y & 3);
715 for (int i = 0; i < lim; i++) {
716 dummy();
717 p[i] = new Point();
718 dummy();
719 }
720 int x = 3;
721 if ( p[j] == null )
722 return (3 * x + y) * x;
723 p[j].x = x;
724 p[j].y = 3 * x + y;
725 dummy();
726 return p[j].x * p[0].y;
727 }
728
729 int test2_1_4(int y) {
730 Point p[] = new Point[3];
731 dummy();
732 int j = (y & 1);
733 p[j] = new Point();
734 int lim = (y & 3);
735 for (int i = 0; i < lim; i++) {
736 dummy();
737 p[i] = new Point();
738 dummy();
739 }
740 int x = 3;
741 if ( p[j] == null )
742 return (3 * x + y) * x;
743 p[j].x = x;
744 p[j].y = 3 * x + y;
745 dummy();
746 return p[j].x * p[0].y;
747 }
748
749 int test2_1_5(int y) {
750 Point p[] = new Point[3];
751 int lim = (y & 3);
752 for (int i = 0; i < lim; i++) {
753 dummy();
754 p[i] = new Point();
755 dummy();
756 }
757 for (int i = 0; i < lim; i++) {
758 dummy();
759 p[i] = null;
760 dummy();
761 }
762 int x = 3;
763 int j = (y & 1);
764 if ( p[j] == null )
765 return (3 * x + y) * x;
766 p[j].x = x;
767 p[j].y = 3 * x + y;
768 dummy();
769 return p[j].x * p[0].y;
770 }
771
772 int test2_1_6(int y) {
773 Point p[] = new Point[3];
774 int lim = (y & 3);
775 for (int i = 0; i < lim; i++) {
776 dummy();
777 p[i] = new Point();
778 dummy();
779 }
780 for (int i = 0; i < lim; i++) {
781 dummy();
782 p[i] = new Point();
783 dummy();
784 }
785 int x = 3;
786 int j = (y & 1);
787 if ( p[j] == null )
788 return (3 * x + y) * x;
789 p[j].x = x;
790 p[j].y = 3 * x + y;
791 dummy();
792 return p[j].x * p[0].y;
793 }
794
795 int test2_2_0(int y) {
796 Point p1 = new Point();
797 dummy();
798 Point p = new Point();
799 int lim = (y & 3);
800 for (int i = 0; i < lim; i++) {
801 dummy();
802 p = p1;
803 dummy();
804 }
805 int x = 3;
806 p.x = x;
807 p.y = 3 * x + y;
808 dummy();
809 return p.x * p.y;
810 }
811
812 int test2_2_1(int y) {
813 Point p1 = new Point();
814 dummy();
815 Point p = null;
816 int lim = (y & 3);
817 for (int i = 0; i < lim; i++) {
818 dummy();
819 p = p1;
820 dummy();
821 }
822 int x = 3;
823 if ( p == null )
824 return (3 * x + y) * x;
825 p.x = x;
826 p.y = 3 * x + y;
827 dummy();
828 return p.x * p.y;
829 }
830
831 int test2_2_2(int y) {
832 Point p1 = new Point();
833 dummy();
834 Point p[] = new Point[3];
835 int lim = (y & 3);
836 for (int i = 0; i < lim; i++) {
837 dummy();
838 p[i] = p1;
839 dummy();
840 }
841 int x = 3;
842 int j = (y & 1);
843 if ( p[j] == null )
844 return (3 * x + y) * x;
845 p[j].x = x;
846 p[j].y = 3 * x + y;
847 dummy();
848 return p[j].x * p[0].y;
849 }
850
851 int test2_2_3(int y) {
852 Point p1 = new Point();
853 dummy();
854 Point p[] = new Point[3];
855 dummy();
856 int j = (y & 1);
857 p[j] = null;
858 int lim = (y & 3);
859 for (int i = 0; i < lim; i++) {
860 dummy();
861 p[i] = p1;
862 dummy();
863 }
864 int x = 3;
865 if ( p[j] == null )
866 return (3 * x + y) * x;
867 p[j].x = x;
868 p[j].y = 3 * x + y;
869 dummy();
870 return p[j].x * p[0].y;
871 }
872
873 int test2_2_4(int y) {
874 Point p1 = new Point();
875 dummy();
876 Point p2 = new Point();
877 dummy();
878 Point p[] = new Point[3];
879 dummy();
880 int j = (y & 1);
881 p[j] = p1;
882 int lim = (y & 3);
883 for (int i = 0; i < lim; i++) {
884 dummy();
885 p[i] = p2;
886 dummy();
887 }
888 int x = 3;
889 if ( p[j] == null )
890 return (3 * x + y) * x;
891 p[j].x = x;
892 p[j].y = 3 * x + y;
893 dummy();
894 return p[j].x * p[0].y;
895 }
896
897 int test2_2_5(int y) {
898 Point p1 = new Point();
899 dummy();
900 Point p[] = new Point[3];
901 int lim = (y & 3);
902 for (int i = 0; i < lim; i++) {
903 dummy();
904 p[i] = p1;
905 dummy();
906 }
907 for (int i = 0; i < lim; i++) {
908 dummy();
909 p[i] = null;
910 dummy();
911 }
912 int x = 3;
913 int j = (y & 1);
914 if ( p[j] == null )
915 return (3 * x + y) * x;
916 p[j].x = x;
917 p[j].y = 3 * x + y;
918 dummy();
919 return p[j].x * p[0].y;
920 }
921
922 int test2_2_6(int y) {
923 Point p1 = new Point();
924 dummy();
925 Point p2 = new Point();
926 dummy();
927 Point p[] = new Point[3];
928 int lim = (y & 3);
929 for (int i = 0; i < lim; i++) {
930 dummy();
931 p[i] = p1;
932 dummy();
933 }
934 for (int i = 0; i < lim; i++) {
935 dummy();
936 p[i] = p2;
937 dummy();
938 }
939 int x = 3;
940 int j = (y & 1);
941 if ( p[j] == null )
942 return (3 * x + y) * x;
943 p[j].x = x;
944 p[j].y = 3 * x + y;
945 dummy();
946 return p[j].x * p[0].y;
947 }
948
949 public static void main(String args[]) {
950 Test tsr = new Test();
951 Point p = new Point();
952 Point ptmp = p;
953 Class cls = Point.class;
954 int y = 0;
955 for (int i=0; i<10000; i++) {
956 y = tsr.test0_0_0(y);
957 y = tsr.test0_0_0(y);
958 y = tsr.test0_0_1(y);
959 y = tsr.test0_0_1(y);
960 y = tsr.test0_0_2(y);
961 y = tsr.test0_0_2(y);
962 y = tsr.test0_0_3(y);
963 y = tsr.test0_0_3(y);
964 y = tsr.test0_0_4(y);
965 y = tsr.test0_0_4(y);
966 y = tsr.test0_0_5(y);
967 y = tsr.test0_0_5(y);
968 y = tsr.test0_0_6(y);
969 y = tsr.test0_0_6(y);
970
971 y = tsr.test0_1_3(y);
972 y = tsr.test0_1_3(y);
973 y = tsr.test0_1_4(y);
974 y = tsr.test0_1_4(y);
975 y = tsr.test0_1_5(y);
976 y = tsr.test0_1_5(y);
977 y = tsr.test0_1_6(y);
978 y = tsr.test0_1_6(y);
979
980 y = tsr.test1_0_0(y&~1);
981 y = tsr.test1_0_1(y&~1);
982 y = tsr.test1_0_2(y&~1);
983 y = tsr.test1_0_3(y&~1);
984 y = tsr.test1_0_4(y&~1);
985 y = tsr.test1_0_5(y&~1);
986 y = tsr.test1_0_6(y&~1);
987 y = tsr.test1_0_0((y&~1)+1);
988 y = tsr.test1_0_1((y&~1)+1);
989 y = tsr.test1_0_2((y&~1)+1);
990 y = tsr.test1_0_3((y&~1)+1);
991 y = tsr.test1_0_4((y&~1)+1);
992 y = tsr.test1_0_5((y&~1)+1);
993 y = tsr.test1_0_6((y&~1)+1);
994
995 y = tsr.test1_1_0(y&~1);
996 y = tsr.test1_1_1(y&~1);
997 y = tsr.test1_1_2(y&~1);
998 y = tsr.test1_1_3(y&~1);
999 y = tsr.test1_1_4(y&~1);
1000 y = tsr.test1_1_5(y&~1);
1001 y = tsr.test1_1_6(y&~1);
1002 y = tsr.test1_1_0((y&~1)+1);
1003 y = tsr.test1_1_1((y&~1)+1);
1004 y = tsr.test1_1_2((y&~1)+1);
1005 y = tsr.test1_1_3((y&~1)+1);
1006 y = tsr.test1_1_4((y&~1)+1);
1007 y = tsr.test1_1_5((y&~1)+1);
1008 y = tsr.test1_1_6((y&~1)+1);
1009
1010 y = tsr.test1_2_0(y&~1);
1011 y = tsr.test1_2_1(y&~1);
1012 y = tsr.test1_2_2(y&~1);
1013 y = tsr.test1_2_3(y&~1);
1014 y = tsr.test1_2_4(y&~1);
1015 y = tsr.test1_2_5(y&~1);
1016 y = tsr.test1_2_6(y&~1);
1017 y = tsr.test1_2_0((y&~1)+1);
1018 y = tsr.test1_2_1((y&~1)+1);
1019 y = tsr.test1_2_2((y&~1)+1);
1020 y = tsr.test1_2_3((y&~1)+1);
1021 y = tsr.test1_2_4((y&~1)+1);
1022 y = tsr.test1_2_5((y&~1)+1);
1023 y = tsr.test1_2_6((y&~1)+1);
1024
1025 y = tsr.test2_0_0(y&~3);
1026 y = tsr.test2_0_1(y&~3);
1027 y = tsr.test2_0_2(y&~3);
1028 y = tsr.test2_0_3(y&~3);
1029 y = tsr.test2_0_4(y&~3);
1030 y = tsr.test2_0_5(y&~3);
1031 y = tsr.test2_0_6(y&~3);
1032 y = tsr.test2_0_0((y&~3)+3);
1033 y = tsr.test2_0_1((y&~3)+3);
1034 y = tsr.test2_0_2((y&~3)+3);
1035 y = tsr.test2_0_3((y&~3)+3);
1036 y = tsr.test2_0_4((y&~3)+3);
1037 y = tsr.test2_0_5((y&~3)+3);
1038 y = tsr.test2_0_6((y&~3)+3);
1039
1040 y = tsr.test2_1_0(y&~3);
1041 y = tsr.test2_1_1(y&~3);
1042 y = tsr.test2_1_2(y&~3);
1043 y = tsr.test2_1_3(y&~3);
1044 y = tsr.test2_1_4(y&~3);
1045 y = tsr.test2_1_5(y&~3);
1046 y = tsr.test2_1_6(y&~3);
1047 y = tsr.test2_1_0((y&~3)+3);
1048 y = tsr.test2_1_1((y&~3)+3);
1049 y = tsr.test2_1_2((y&~3)+3);
1050 y = tsr.test2_1_3((y&~3)+3);
1051 y = tsr.test2_1_4((y&~3)+3);
1052 y = tsr.test2_1_5((y&~3)+3);
1053 y = tsr.test2_1_6((y&~3)+3);
1054
1055 y = tsr.test2_2_0(y&~3);
1056 y = tsr.test2_2_1(y&~3);
1057 y = tsr.test2_2_2(y&~3);
1058 y = tsr.test2_2_3(y&~3);
1059 y = tsr.test2_2_4(y&~3);
1060 y = tsr.test2_2_5(y&~3);
1061 y = tsr.test2_2_6(y&~3);
1062 y = tsr.test2_2_0((y&~3)+3);
1063 y = tsr.test2_2_1((y&~3)+3);
1064 y = tsr.test2_2_2((y&~3)+3);
1065 y = tsr.test2_2_3((y&~3)+3);
1066 y = tsr.test2_2_4((y&~3)+3);
1067 y = tsr.test2_2_5((y&~3)+3);
1068 y = tsr.test2_2_6((y&~3)+3);
1069
1070 }
1071 for (int i=0; i<10000; i++) {
1072 y = tsr.test0_0_0(y);
1073 y = tsr.test0_0_0(y);
1074 y = tsr.test0_0_1(y);
1075 y = tsr.test0_0_1(y);
1076 y = tsr.test0_0_2(y);
1077 y = tsr.test0_0_2(y);
1078 y = tsr.test0_0_3(y);
1079 y = tsr.test0_0_3(y);
1080 y = tsr.test0_0_4(y);
1081 y = tsr.test0_0_4(y);
1082 y = tsr.test0_0_5(y);
1083 y = tsr.test0_0_5(y);
1084 y = tsr.test0_0_6(y);
1085 y = tsr.test0_0_6(y);
1086
1087 y = tsr.test0_1_3(y);
1088 y = tsr.test0_1_3(y);
1089 y = tsr.test0_1_4(y);
1090 y = tsr.test0_1_4(y);
1091 y = tsr.test0_1_5(y);
1092 y = tsr.test0_1_5(y);
1093 y = tsr.test0_1_6(y);
1094 y = tsr.test0_1_6(y);
1095
1096 y = tsr.test1_0_0(y&~1);
1097 y = tsr.test1_0_1(y&~1);
1098 y = tsr.test1_0_2(y&~1);
1099 y = tsr.test1_0_3(y&~1);
1100 y = tsr.test1_0_4(y&~1);
1101 y = tsr.test1_0_5(y&~1);
1102 y = tsr.test1_0_6(y&~1);
1103 y = tsr.test1_0_0((y&~1)+1);
1104 y = tsr.test1_0_1((y&~1)+1);
1105 y = tsr.test1_0_2((y&~1)+1);
1106 y = tsr.test1_0_3((y&~1)+1);
1107 y = tsr.test1_0_4((y&~1)+1);
1108 y = tsr.test1_0_5((y&~1)+1);
1109 y = tsr.test1_0_6((y&~1)+1);
1110
1111 y = tsr.test1_1_0(y&~1);
1112 y = tsr.test1_1_1(y&~1);
1113 y = tsr.test1_1_2(y&~1);
1114 y = tsr.test1_1_3(y&~1);
1115 y = tsr.test1_1_4(y&~1);
1116 y = tsr.test1_1_5(y&~1);
1117 y = tsr.test1_1_6(y&~1);
1118 y = tsr.test1_1_0((y&~1)+1);
1119 y = tsr.test1_1_1((y&~1)+1);
1120 y = tsr.test1_1_2((y&~1)+1);
1121 y = tsr.test1_1_3((y&~1)+1);
1122 y = tsr.test1_1_4((y&~1)+1);
1123 y = tsr.test1_1_5((y&~1)+1);
1124 y = tsr.test1_1_6((y&~1)+1);
1125
1126 y = tsr.test1_2_0(y&~1);
1127 y = tsr.test1_2_1(y&~1);
1128 y = tsr.test1_2_2(y&~1);
1129 y = tsr.test1_2_3(y&~1);
1130 y = tsr.test1_2_4(y&~1);
1131 y = tsr.test1_2_5(y&~1);
1132 y = tsr.test1_2_6(y&~1);
1133 y = tsr.test1_2_0((y&~1)+1);
1134 y = tsr.test1_2_1((y&~1)+1);
1135 y = tsr.test1_2_2((y&~1)+1);
1136 y = tsr.test1_2_3((y&~1)+1);
1137 y = tsr.test1_2_4((y&~1)+1);
1138 y = tsr.test1_2_5((y&~1)+1);
1139 y = tsr.test1_2_6((y&~1)+1);
1140
1141 y = tsr.test2_0_0(y&~3);
1142 y = tsr.test2_0_1(y&~3);
1143 y = tsr.test2_0_2(y&~3);
1144 y = tsr.test2_0_3(y&~3);
1145 y = tsr.test2_0_4(y&~3);
1146 y = tsr.test2_0_5(y&~3);
1147 y = tsr.test2_0_6(y&~3);
1148 y = tsr.test2_0_0((y&~3)+3);
1149 y = tsr.test2_0_1((y&~3)+3);
1150 y = tsr.test2_0_2((y&~3)+3);
1151 y = tsr.test2_0_3((y&~3)+3);
1152 y = tsr.test2_0_4((y&~3)+3);
1153 y = tsr.test2_0_5((y&~3)+3);
1154 y = tsr.test2_0_6((y&~3)+3);
1155
1156 y = tsr.test2_1_0(y&~3);
1157 y = tsr.test2_1_1(y&~3);
1158 y = tsr.test2_1_2(y&~3);
1159 y = tsr.test2_1_3(y&~3);
1160 y = tsr.test2_1_4(y&~3);
1161 y = tsr.test2_1_5(y&~3);
1162 y = tsr.test2_1_6(y&~3);
1163 y = tsr.test2_1_0((y&~3)+3);
1164 y = tsr.test2_1_1((y&~3)+3);
1165 y = tsr.test2_1_2((y&~3)+3);
1166 y = tsr.test2_1_3((y&~3)+3);
1167 y = tsr.test2_1_4((y&~3)+3);
1168 y = tsr.test2_1_5((y&~3)+3);
1169 y = tsr.test2_1_6((y&~3)+3);
1170
1171 y = tsr.test2_2_0(y&~3);
1172 y = tsr.test2_2_1(y&~3);
1173 y = tsr.test2_2_2(y&~3);
1174 y = tsr.test2_2_3(y&~3);
1175 y = tsr.test2_2_4(y&~3);
1176 y = tsr.test2_2_5(y&~3);
1177 y = tsr.test2_2_6(y&~3);
1178 y = tsr.test2_2_0((y&~3)+3);
1179 y = tsr.test2_2_1((y&~3)+3);
1180 y = tsr.test2_2_2((y&~3)+3);
1181 y = tsr.test2_2_3((y&~3)+3);
1182 y = tsr.test2_2_4((y&~3)+3);
1183 y = tsr.test2_2_5((y&~3)+3);
1184 y = tsr.test2_2_6((y&~3)+3);
1185
1186 }
1187 for (int i=0; i<10000; i++) {
1188 y = tsr.test0_0_0(y);
1189 y = tsr.test0_0_0(y);
1190 y = tsr.test0_0_1(y);
1191 y = tsr.test0_0_1(y);
1192 y = tsr.test0_0_2(y);
1193 y = tsr.test0_0_2(y);
1194 y = tsr.test0_0_3(y);
1195 y = tsr.test0_0_3(y);
1196 y = tsr.test0_0_4(y);
1197 y = tsr.test0_0_4(y);
1198 y = tsr.test0_0_5(y);
1199 y = tsr.test0_0_5(y);
1200 y = tsr.test0_0_6(y);
1201 y = tsr.test0_0_6(y);
1202
1203 y = tsr.test0_1_3(y);
1204 y = tsr.test0_1_3(y);
1205 y = tsr.test0_1_4(y);
1206 y = tsr.test0_1_4(y);
1207 y = tsr.test0_1_5(y);
1208 y = tsr.test0_1_5(y);
1209 y = tsr.test0_1_6(y);
1210 y = tsr.test0_1_6(y);
1211
1212 y = tsr.test1_0_0(y&~1);
1213 y = tsr.test1_0_1(y&~1);
1214 y = tsr.test1_0_2(y&~1);
1215 y = tsr.test1_0_3(y&~1);
1216 y = tsr.test1_0_4(y&~1);
1217 y = tsr.test1_0_5(y&~1);
1218 y = tsr.test1_0_6(y&~1);
1219 y = tsr.test1_0_0((y&~1)+1);
1220 y = tsr.test1_0_1((y&~1)+1);
1221 y = tsr.test1_0_2((y&~1)+1);
1222 y = tsr.test1_0_3((y&~1)+1);
1223 y = tsr.test1_0_4((y&~1)+1);
1224 y = tsr.test1_0_5((y&~1)+1);
1225 y = tsr.test1_0_6((y&~1)+1);
1226
1227 y = tsr.test1_1_0(y&~1);
1228 y = tsr.test1_1_1(y&~1);
1229 y = tsr.test1_1_2(y&~1);
1230 y = tsr.test1_1_3(y&~1);
1231 y = tsr.test1_1_4(y&~1);
1232 y = tsr.test1_1_5(y&~1);
1233 y = tsr.test1_1_6(y&~1);
1234 y = tsr.test1_1_0((y&~1)+1);
1235 y = tsr.test1_1_1((y&~1)+1);
1236 y = tsr.test1_1_2((y&~1)+1);
1237 y = tsr.test1_1_3((y&~1)+1);
1238 y = tsr.test1_1_4((y&~1)+1);
1239 y = tsr.test1_1_5((y&~1)+1);
1240 y = tsr.test1_1_6((y&~1)+1);
1241
1242 y = tsr.test1_2_0(y&~1);
1243 y = tsr.test1_2_1(y&~1);
1244 y = tsr.test1_2_2(y&~1);
1245 y = tsr.test1_2_3(y&~1);
1246 y = tsr.test1_2_4(y&~1);
1247 y = tsr.test1_2_5(y&~1);
1248 y = tsr.test1_2_6(y&~1);
1249 y = tsr.test1_2_0((y&~1)+1);
1250 y = tsr.test1_2_1((y&~1)+1);
1251 y = tsr.test1_2_2((y&~1)+1);
1252 y = tsr.test1_2_3((y&~1)+1);
1253 y = tsr.test1_2_4((y&~1)+1);
1254 y = tsr.test1_2_5((y&~1)+1);
1255 y = tsr.test1_2_6((y&~1)+1);
1256
1257 y = tsr.test2_0_0(y&~3);
1258 y = tsr.test2_0_1(y&~3);
1259 y = tsr.test2_0_2(y&~3);
1260 y = tsr.test2_0_3(y&~3);
1261 y = tsr.test2_0_4(y&~3);
1262 y = tsr.test2_0_5(y&~3);
1263 y = tsr.test2_0_6(y&~3);
1264 y = tsr.test2_0_0((y&~3)+3);
1265 y = tsr.test2_0_1((y&~3)+3);
1266 y = tsr.test2_0_2((y&~3)+3);
1267 y = tsr.test2_0_3((y&~3)+3);
1268 y = tsr.test2_0_4((y&~3)+3);
1269 y = tsr.test2_0_5((y&~3)+3);
1270 y = tsr.test2_0_6((y&~3)+3);
1271
1272 y = tsr.test2_1_0(y&~3);
1273 y = tsr.test2_1_1(y&~3);
1274 y = tsr.test2_1_2(y&~3);
1275 y = tsr.test2_1_3(y&~3);
1276 y = tsr.test2_1_4(y&~3);
1277 y = tsr.test2_1_5(y&~3);
1278 y = tsr.test2_1_6(y&~3);
1279 y = tsr.test2_1_0((y&~3)+3);
1280 y = tsr.test2_1_1((y&~3)+3);
1281 y = tsr.test2_1_2((y&~3)+3);
1282 y = tsr.test2_1_3((y&~3)+3);
1283 y = tsr.test2_1_4((y&~3)+3);
1284 y = tsr.test2_1_5((y&~3)+3);
1285 y = tsr.test2_1_6((y&~3)+3);
1286
1287 y = tsr.test2_2_0(y&~3);
1288 y = tsr.test2_2_1(y&~3);
1289 y = tsr.test2_2_2(y&~3);
1290 y = tsr.test2_2_3(y&~3);
1291 y = tsr.test2_2_4(y&~3);
1292 y = tsr.test2_2_5(y&~3);
1293 y = tsr.test2_2_6(y&~3);
1294 y = tsr.test2_2_0((y&~3)+3);
1295 y = tsr.test2_2_1((y&~3)+3);
1296 y = tsr.test2_2_2((y&~3)+3);
1297 y = tsr.test2_2_3((y&~3)+3);
1298 y = tsr.test2_2_4((y&~3)+3);
1299 y = tsr.test2_2_5((y&~3)+3);
1300 y = tsr.test2_2_6((y&~3)+3);
1301
1302 }
1303
1304 int z = 0;
1305 y = tsr.test0_0_0(0);
1306 System.out.println("After 'test0_0_0' y=" + y);
1307 y = tsr.test0_0_1(0);
1308 System.out.println("After 'test0_0_1' y=" + y);
1309 y = tsr.test0_0_2(0);
1310 System.out.println("After 'test0_0_2' y=" + y);
1311 y = tsr.test0_0_3(0);
1312 System.out.println("After 'test0_0_3' y=" + y);
1313 y = tsr.test0_0_4(0);
1314 System.out.println("After 'test0_0_4' y=" + y);
1315 y = tsr.test0_0_5(0);
1316 System.out.println("After 'test0_0_5' y=" + y);
1317 y = tsr.test0_0_6(0);
1318 System.out.println("After 'test0_0_6' y=" + y);
1319 y = tsr.test0_1_3(0);
1320 System.out.println("After 'test0_1_3' y=" + y);
1321 y = tsr.test0_1_4(0);
1322 System.out.println("After 'test0_1_4' y=" + y);
1323 y = tsr.test0_1_5(0);
1324 System.out.println("After 'test0_1_5' y=" + y);
1325 y = tsr.test0_1_6(0);
1326 System.out.println("After 'test0_1_6' y=" + y);
1327
1328 y = tsr.test1_0_0(0);
1329 System.out.println("After 'test1_0_0' y=" + y);
1330 y = tsr.test1_0_1(0);
1331 System.out.println("After 'test1_0_1' y=" + y);
1332 y = tsr.test1_0_2(0);
1333 System.out.println("After 'test1_0_2' y=" + y);
1334 y = tsr.test1_0_3(0);
1335 System.out.println("After 'test1_0_3' y=" + y);
1336 y = tsr.test1_0_4(0);
1337 System.out.println("After 'test1_0_4' y=" + y);
1338 y = tsr.test1_0_5(0);
1339 System.out.println("After 'test1_0_5' y=" + y);
1340 y = tsr.test1_0_6(0);
1341 System.out.println("After 'test1_0_6' y=" + y);
1342
1343 y = tsr.test1_1_0(0);
1344 System.out.println("After 'test1_1_0' y=" + y);
1345 y = tsr.test1_1_1(0);
1346 System.out.println("After 'test1_1_1' y=" + y);
1347 y = tsr.test1_1_2(0);
1348 System.out.println("After 'test1_1_2' y=" + y);
1349 y = tsr.test1_1_3(0);
1350 System.out.println("After 'test1_1_3' y=" + y);
1351 y = tsr.test1_1_4(0);
1352 System.out.println("After 'test1_1_4' y=" + y);
1353 y = tsr.test1_1_5(0);
1354 System.out.println("After 'test1_1_5' y=" + y);
1355 y = tsr.test1_1_6(0);
1356 System.out.println("After 'test1_1_6' y=" + y);
1357
1358 y = tsr.test1_2_0(0);
1359 System.out.println("After 'test1_2_0' y=" + y);
1360 y = tsr.test1_2_1(0);
1361 System.out.println("After 'test1_2_1' y=" + y);
1362 y = tsr.test1_2_2(0);
1363 System.out.println("After 'test1_2_2' y=" + y);
1364 y = tsr.test1_2_3(0);
1365 System.out.println("After 'test1_2_3' y=" + y);
1366 y = tsr.test1_2_4(0);
1367 System.out.println("After 'test1_2_4' y=" + y);
1368 y = tsr.test1_2_5(0);
1369 System.out.println("After 'test1_2_5' y=" + y);
1370 y = tsr.test1_2_6(0);
1371 System.out.println("After 'test1_2_6' y=" + y);
1372
1373 y = tsr.test2_0_0(0);
1374 System.out.println("After 'test2_0_0' y=" + y);
1375 y = tsr.test2_0_1(0);
1376 System.out.println("After 'test2_0_1' y=" + y);
1377 y = tsr.test2_0_2(0);
1378 System.out.println("After 'test2_0_2' y=" + y);
1379 y = tsr.test2_0_3(0);
1380 System.out.println("After 'test2_0_3' y=" + y);
1381 y = tsr.test2_0_4(0);
1382 System.out.println("After 'test2_0_4' y=" + y);
1383 y = tsr.test2_0_5(0);
1384 System.out.println("After 'test2_0_5' y=" + y);
1385 y = tsr.test2_0_6(0);
1386 System.out.println("After 'test2_0_6' y=" + y);
1387
1388 y = tsr.test2_1_0(0);
1389 System.out.println("After 'test2_1_0' y=" + y);
1390 y = tsr.test2_1_1(0);
1391 System.out.println("After 'test2_1_1' y=" + y);
1392 y = tsr.test2_1_2(0);
1393 System.out.println("After 'test2_1_2' y=" + y);
1394 y = tsr.test2_1_3(0);
1395 System.out.println("After 'test2_1_3' y=" + y);
1396 y = tsr.test2_1_4(0);
1397 System.out.println("After 'test2_1_4' y=" + y);
1398 y = tsr.test2_1_5(0);
1399 System.out.println("After 'test2_1_5' y=" + y);
1400 y = tsr.test2_1_6(0);
1401 System.out.println("After 'test2_1_6' y=" + y);
1402
1403 y = tsr.test2_2_0(0);
1404 System.out.println("After 'test2_2_0' y=" + y);
1405 y = tsr.test2_2_1(0);
1406 System.out.println("After 'test2_2_1' y=" + y);
1407 y = tsr.test2_2_2(0);
1408 System.out.println("After 'test2_2_2' y=" + y);
1409 y = tsr.test2_2_3(0);
1410 System.out.println("After 'test2_2_3' y=" + y);
1411 y = tsr.test2_2_4(0);
1412 System.out.println("After 'test2_2_4' y=" + y);
1413 y = tsr.test2_2_5(0);
1414 System.out.println("After 'test2_2_5' y=" + y);
1415 y = tsr.test2_2_6(0);
1416 System.out.println("After 'test2_2_6' y=" + y);
1417
1418 }
1419 }