mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
6674588: (Escape Analysis) Improve Escape Analysis code
Current EA code has several problems which have to be fixed. Reviewed-by: jrose, sgoldman
This commit is contained in:
parent
30dc0edfc8
commit
fc0117cb9a
12 changed files with 1352 additions and 523 deletions
|
@ -407,11 +407,6 @@ uint Compile::scratch_emit_size(const Node* n) {
|
|||
return buf.code_size();
|
||||
}
|
||||
|
||||
void Compile::record_for_escape_analysis(Node* n) {
|
||||
if (_congraph != NULL)
|
||||
_congraph->record_for_escape_analysis(n);
|
||||
}
|
||||
|
||||
|
||||
// ============================================================================
|
||||
//------------------------------Compile standard-------------------------------
|
||||
|
@ -494,9 +489,6 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
|
|||
PhaseGVN gvn(node_arena(), estimated_size);
|
||||
set_initial_gvn(&gvn);
|
||||
|
||||
if (_do_escape_analysis)
|
||||
_congraph = new ConnectionGraph(this);
|
||||
|
||||
{ // Scope for timing the parser
|
||||
TracePhase t3("parse", &_t_parser, true);
|
||||
|
||||
|
@ -581,6 +573,8 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr
|
|||
NOT_PRODUCT( verify_graph_edges(); )
|
||||
|
||||
// Perform escape analysis
|
||||
if (_do_escape_analysis)
|
||||
_congraph = new ConnectionGraph(this);
|
||||
if (_congraph != NULL) {
|
||||
NOT_PRODUCT( TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, TimeCompiler); )
|
||||
_congraph->compute_escape();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue