Mercurial > hg > truffle
comparison src/share/vm/opto/loopTransform.cpp @ 14435:da862781b584
Merge
author | kvn |
---|---|
date | Thu, 21 Nov 2013 12:30:35 -0800 |
parents | 2b8e28fdf503 94a83e0f9ce1 |
children | abec000618bf |
comparison
equal
deleted
inserted
replaced
14434:318d0622a6d7 | 14435:da862781b584 |
---|---|
1962 assert(iff->is_If(), ""); | 1962 assert(iff->is_If(), ""); |
1963 ProjNode* dp = ((IfNode*)iff)->proj_out(1-flip); | 1963 ProjNode* dp = ((IfNode*)iff)->proj_out(1-flip); |
1964 // Find loads off the surviving projection; remove their control edge | 1964 // Find loads off the surviving projection; remove their control edge |
1965 for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) { | 1965 for (DUIterator_Fast imax, i = dp->fast_outs(imax); i < imax; i++) { |
1966 Node* cd = dp->fast_out(i); // Control-dependent node | 1966 Node* cd = dp->fast_out(i); // Control-dependent node |
1967 if( cd->is_Load() ) { // Loads can now float around in the loop | 1967 if (cd->is_Load() && cd->depends_only_on_test()) { // Loads can now float around in the loop |
1968 // Allow the load to float around in the loop, or before it | 1968 // Allow the load to float around in the loop, or before it |
1969 // but NOT before the pre-loop. | 1969 // but NOT before the pre-loop. |
1970 _igvn.replace_input_of(cd, 0, ctrl); // ctrl, not NULL | 1970 _igvn.replace_input_of(cd, 0, ctrl); // ctrl, not NULL |
1971 --i; | 1971 --i; |
1972 --imax; | 1972 --imax; |