equal
deleted
inserted
replaced
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "classfile/systemDictionary.hpp" |
26 #include "classfile/systemDictionary.hpp" |
|
27 #include "gc/shared/c2/barrierSetC2.hpp" |
27 #include "memory/allocation.inline.hpp" |
28 #include "memory/allocation.inline.hpp" |
28 #include "memory/resourceArea.hpp" |
29 #include "memory/resourceArea.hpp" |
29 #include "oops/objArrayKlass.hpp" |
30 #include "oops/objArrayKlass.hpp" |
30 #include "opto/addnode.hpp" |
31 #include "opto/addnode.hpp" |
31 #include "opto/castnode.hpp" |
32 #include "opto/castnode.hpp" |
1445 } else if( b->_test._test == BoolTest::eq ) { |
1446 } else if( b->_test._test == BoolTest::eq ) { |
1446 flipped = 1-flipped; |
1447 flipped = 1-flipped; |
1447 } else return NULL; |
1448 } else return NULL; |
1448 |
1449 |
1449 // Build int->bool conversion |
1450 // Build int->bool conversion |
1450 Node *n = new Conv2BNode( cmp->in(1) ); |
1451 Node *in1 = cmp->in(1); |
|
1452 BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); |
|
1453 in1 = bs->step_over_gc_barrier(in1); |
|
1454 Node *n = new Conv2BNode(in1); |
1451 if( flipped ) |
1455 if( flipped ) |
1452 n = new XorINode( phase->transform(n), phase->intcon(1) ); |
1456 n = new XorINode( phase->transform(n), phase->intcon(1) ); |
1453 |
1457 |
1454 return n; |
1458 return n; |
1455 } |
1459 } |
1811 if (n != top) { // Not already top? |
1815 if (n != top) { // Not already top? |
1812 PhaseIterGVN *igvn = phase->is_IterGVN(); |
1816 PhaseIterGVN *igvn = phase->is_IterGVN(); |
1813 if (can_reshape && igvn != NULL) { |
1817 if (can_reshape && igvn != NULL) { |
1814 igvn->_worklist.push(r); |
1818 igvn->_worklist.push(r); |
1815 } |
1819 } |
1816 set_req(j, top); // Nuke it down |
1820 // Nuke it down |
|
1821 if (can_reshape) { |
|
1822 set_req_X(j, top, igvn); |
|
1823 } else { |
|
1824 set_req(j, top); |
|
1825 } |
1817 progress = this; // Record progress |
1826 progress = this; // Record progress |
1818 } |
1827 } |
1819 } |
1828 } |
1820 } |
1829 } |
1821 |
1830 |