escape.cpp revision 4040
1472N/A * or visit www.oracle.com if you need additional information or have any
1879N/A#include "precompiled.hpp"
1879N/A#include "ci/bcEscapeAnalyzer.hpp"
1879N/A#include "compiler/compileLog.hpp"
1879N/A#include "libadt/vectset.hpp"
1879N/A#include "memory/allocation.hpp"
1879N/A#include "opto/c2compiler.hpp"
1879N/A#include "opto/callnode.hpp"
1879N/A#include "opto/cfgnode.hpp"
0N/A#include "opto/compile.hpp"
0N/A#include "opto/escape.hpp"
0N/A#include "opto/phaseX.hpp"
0N/A#include "opto/rootnode.hpp"
0N/A _collecting(true),
0N/A if (UseCompressedOops) {
0N/A if ( n->is_Allocate() )
0N/A if (n->is_MergeMem()) {
0N/A } else if (n->is_MemBarStoreStore()) {
0N/A _collecting = false;
0N/A add_final_edges(n);
0N/A if (VerifyConnectionGraph) {
0N/A _collecting = false;
0N/A if (VerifyConnectionGraph) {
0N/A assert(C->unique() == nodes_size(), "no new ideal nodes should be added during ConnectionGraph build");
0N/A _collecting = false;
0N/A if (has_non_escaping_obj) {
0N/A if (PrintEscapeAnalysis) {
2346N/A if (VerifyConnectionGraph) {
0N/A if(!EliminateAllocations) {
0N/A } else if(!has_scalar_replaceable_candidates) {
0N/A return has_non_escaping_obj;
0N/Avoid ConnectionGraph::add_objload_to_connection_graph(Node *n, Unique_Node_List *delayed_worklist) {
0N/Avoid ConnectionGraph::add_node_to_connection_graph(Node *n, Unique_Node_List *delayed_worklist) {
0N/A if (n->is_AbstractLock()) {
0N/A } else if (n->is_Allocate()) {
1601N/A if (n->is_CallStaticJava()) {
1703N/A case Op_CastX2P: {
1703N/A case Op_CheckCastPP:
1703N/A case Op_EncodeP:
1703N/A case Op_DecodeN: {
0N/A case Op_CreateEx: {
0N/A case Op_LoadKlass:
0N/A case Op_LoadNKlass: {
0N/A case Op_LoadPLocked: {
0N/A case Op_PartialSubtypeCheck: {
0N/A case Op_GetAndSetP:
0N/A case Op_GetAndSetN: {
0N/A case Op_StorePConditional:
0N/A case Op_CompareAndSwapP:
0N/A case Op_CompareAndSwapN: {
0N/A case Op_StrComp:
0N/A case Op_StrEquals:
0N/A case Op_StrIndexOf: {