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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #include "precompiled.hpp" 26 #include "opto/c2compiler.hpp" 27 #include "opto/optoreg.hpp" 28 #include "opto/runtime.hpp" 29 30 // register information defined by ADLC 31 extern const char register_save_policy[]; 32 extern const int register_save_type[]; 33 34 const char* C2Compiler::retry_no_subsuming_loads() { 35 return "retry without subsuming loads"; 36 } 37 const char* C2Compiler::retry_no_escape_analysis() { 38 return "retry without escape analysis"; 39 } 40 bool C2Compiler::init_c2_runtime() { 41 42 // Check assumptions used while running ADLC 43 Compile::adlc_verification(); 44 assert(REG_COUNT <= ConcreteRegisterImpl::number_of_registers, "incompatible register counts"); 45 46 for (int i = 0; i < ConcreteRegisterImpl::number_of_registers ; i++ ) { 47 OptoReg::vm2opto[i] = OptoReg::Bad; 129 subsume_loads = false; 130 continue; // retry 131 } 132 if (do_escape_analysis) { 133 do_escape_analysis = false; 134 continue; // retry 135 } 136 } 137 138 // print inlining for last compilation only 139 C.dump_print_inlining(); 140 141 // No retry; just break the loop. 142 break; 143 } 144 } 145 146 147 void C2Compiler::print_timers() { 148 // do nothing 149 } | 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #include "precompiled.hpp" 26 #include "opto/c2compiler.hpp" 27 #include "opto/compile.hpp" 28 #include "opto/optoreg.hpp" 29 #include "opto/output.hpp" 30 #include "opto/runtime.hpp" 31 32 // register information defined by ADLC 33 extern const char register_save_policy[]; 34 extern const int register_save_type[]; 35 36 const char* C2Compiler::retry_no_subsuming_loads() { 37 return "retry without subsuming loads"; 38 } 39 const char* C2Compiler::retry_no_escape_analysis() { 40 return "retry without escape analysis"; 41 } 42 bool C2Compiler::init_c2_runtime() { 43 44 // Check assumptions used while running ADLC 45 Compile::adlc_verification(); 46 assert(REG_COUNT <= ConcreteRegisterImpl::number_of_registers, "incompatible register counts"); 47 48 for (int i = 0; i < ConcreteRegisterImpl::number_of_registers ; i++ ) { 49 OptoReg::vm2opto[i] = OptoReg::Bad; 131 subsume_loads = false; 132 continue; // retry 133 } 134 if (do_escape_analysis) { 135 do_escape_analysis = false; 136 continue; // retry 137 } 138 } 139 140 // print inlining for last compilation only 141 C.dump_print_inlining(); 142 143 // No retry; just break the loop. 144 break; 145 } 146 } 147 148 149 void C2Compiler::print_timers() { 150 // do nothing 151 } 152 153 int C2Compiler::initial_code_buffer_size() { 154 assert(SegmentedCodeCache, "Should be only used with a segmented code cache"); 155 return Compile::MAX_inst_size + Compile::MAX_locs_size + initial_const_capacity; 156 } |