< 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 >