Skip to content
Permalink
Browse files
8263989: Cleanup in EA
Reviewed-by: vlivanov, neliasso
  • Loading branch information
Vladimir Kozlov committed Mar 24, 2021
1 parent 4d8e986 commit 57c3f271d3f04873c3d1f6470c5fda6de1a759fc
Show file tree
Hide file tree
Showing 5 changed files with 248 additions and 191 deletions.
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2021, 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
@@ -276,7 +276,7 @@ void BCEscapeAnalyzer::invoke(StateInfo &state, Bytecodes::Code code, ciMethod*

// direct recursive calls are skipped if they can be bound statically without introducing
// dependencies and if parameters are passed at the same position as in the current method
// other calls are skipped if there are no unescaped arguments passed to them
// other calls are skipped if there are no non-escaped arguments passed to them
bool directly_recursive = (method() == target) &&
(code != Bytecodes::_invokevirtual || target->is_final_method() || state._stack[arg_base] .is_empty());

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2021, 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
@@ -139,7 +139,7 @@ class BCEscapeAnalyzer : public ResourceObj {
return !_conservative && _return_local;
}

// True iff only newly allocated unescaped objects are returned.
// True iff only newly allocated non-escaped objects are returned.
bool is_return_allocated() const {
return !_conservative && _return_allocated && !_allocated_escapes;
}
@@ -2058,7 +2058,7 @@ Node *LockNode::Ideal(PhaseGVN *phase, bool can_reshape) {
// one computed above.
if (can_reshape && EliminateLocks && !is_non_esc_obj()) {
//
// If we are locking an unescaped object, the lock/unlock is unnecessary
// If we are locking an non-escaped object, the lock/unlock is unnecessary
//
ConnectionGraph *cgr = phase->C->congraph();
if (cgr != NULL && cgr->not_global_escape(obj_node())) {
@@ -2226,7 +2226,7 @@ Node *UnlockNode::Ideal(PhaseGVN *phase, bool can_reshape) {
// Escape state is defined after Parse phase.
if (can_reshape && EliminateLocks && !is_non_esc_obj()) {
//
// If we are unlocking an unescaped object, the lock/unlock is unnecessary.
// If we are unlocking an non-escaped object, the lock/unlock is unnecessary.
//
ConnectionGraph *cgr = phase->C->congraph();
if (cgr != NULL && cgr->not_global_escape(obj_node())) {

0 comments on commit 57c3f27

Please sign in to comment.