69 |
69 |
70 (2) Plug the control edge from 1 of the 2 oops in. Apparent problem here is |
70 (2) Plug the control edge from 1 of the 2 oops in. Apparent problem here is |
71 to figure out which test post-dominates. The real problem is that it doesn't |
71 to figure out which test post-dominates. The real problem is that it doesn't |
72 matter which one you pick. After you pick up, the dominating-test elider in |
72 matter which one you pick. After you pick up, the dominating-test elider in |
73 IGVN can remove the test and allow you to hoist up to the dominating test on |
73 IGVN can remove the test and allow you to hoist up to the dominating test on |
74 the choosen oop bypassing the test on the not-choosen oop. Seen in testing. |
74 the chosen oop bypassing the test on the not-chosen oop. Seen in testing. |
75 Oops. |
75 Oops. |
76 |
76 |
77 (3) Leave the CastPP's in. This makes the graph more accurate in some sense; |
77 (3) Leave the CastPP's in. This makes the graph more accurate in some sense; |
78 we get to keep around the knowledge that an oop is not-null after some test. |
78 we get to keep around the knowledge that an oop is not-null after some test. |
79 Alas, the CastPP's interfere with GVN (some values are the regular oop, some |
79 Alas, the CastPP's interfere with GVN (some values are the regular oop, some |