< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

*** 1,7 **** /* ! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 33,42 **** --- 33,43 ---- #include "compiler/compileLog.hpp" #include "compiler/disassembler.hpp" #include "compiler/oopMap.hpp" #include "gc/shared/barrierSet.hpp" #include "gc/shared/c2/barrierSetC2.hpp" + #include "jfr/jfrEvents.hpp" #include "memory/resourceArea.hpp" #include "opto/addnode.hpp" #include "opto/block.hpp" #include "opto/c2compiler.hpp" #include "opto/callGenerator.hpp"
*** 4560,4569 **** --- 4561,4603 ---- allocates++; } } } + void Compile::print_method(CompilerPhaseType cpt, int level, int idx) { + EventCompilerPhase event; + if (event.should_commit()) { + CompilerEvent::PhaseEvent::post(event, C->_latest_stage_start_counter, cpt, C->_compile_id, level); + } + + #ifndef PRODUCT + if (should_print(level)) { + char output[1024]; + if (idx != 0) { + jio_snprintf(output, sizeof(output), "%s:%d", CompilerPhaseTypeHelper::to_string(cpt), idx); + } else { + jio_snprintf(output, sizeof(output), "%s", CompilerPhaseTypeHelper::to_string(cpt)); + } + _printer->print_method(output, level); + } + #endif + C->_latest_stage_start_counter.stamp(); + } + + void Compile::end_method(int level) { + EventCompilerPhase event; + if (event.should_commit()) { + CompilerEvent::PhaseEvent::post(event, C->_latest_stage_start_counter, PHASE_END, C->_compile_id, level); + } + + #ifndef PRODUCT + if (_printer && _printer->should_print(level)) { + _printer->end_method(); + } + #endif + } + #ifndef PRODUCT IdealGraphPrinter* Compile::_debug_file_printer = NULL; IdealGraphPrinter* Compile::_debug_network_printer = NULL;
< prev index next >