src/share/vm/opto/escape.hpp

changeset 2556
3763ca6579b7
parent 2314
f95d63e2154a
child 3254
59e515ee9354
     1.1 --- a/src/share/vm/opto/escape.hpp	Mon Feb 07 09:46:01 2011 -0800
     1.2 +++ b/src/share/vm/opto/escape.hpp	Mon Feb 07 10:25:39 2011 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -268,7 +268,12 @@
    1.11    // walk the connection graph starting at the node corresponding to "n" and
    1.12    // add the index of everything it could point to, to "ptset".  This may cause
    1.13    // Phi's encountered to get (re)processed  (which requires "phase".)
    1.14 -  void PointsTo(VectorSet &ptset, Node * n);
    1.15 +  VectorSet* PointsTo(Node * n);
    1.16 +
    1.17 +  // Reused structures for PointsTo().
    1.18 +  VectorSet            pt_ptset;
    1.19 +  VectorSet            pt_visited;
    1.20 +  GrowableArray<uint>  pt_worklist;
    1.21  
    1.22    //  Edge manipulation.  The "from_i" and "to_i" arguments are the
    1.23    //  node indices of the source and destination of the edge
    1.24 @@ -334,8 +339,11 @@
    1.25    // Set the escape state of a node
    1.26    void set_escape_state(uint ni, PointsToNode::EscapeState es);
    1.27  
    1.28 -  // Search for objects which are not scalar replaceable.
    1.29 -  void verify_escape_state(int nidx, VectorSet& ptset, PhaseTransform* phase);
    1.30 +  // Adjust escape state after Connection Graph is built.
    1.31 +  void adjust_escape_state(int nidx, PhaseTransform* phase);
    1.32 +
    1.33 +  // Compute the escape information
    1.34 +  bool compute_escape();
    1.35  
    1.36  public:
    1.37    ConnectionGraph(Compile *C, PhaseIterGVN *igvn);
    1.38 @@ -346,9 +354,6 @@
    1.39    // Perform escape analysis
    1.40    static void do_analysis(Compile *C, PhaseIterGVN *igvn);
    1.41  
    1.42 -  // Compute the escape information
    1.43 -  bool compute_escape();
    1.44 -
    1.45    // escape state of a node
    1.46    PointsToNode::EscapeState escape_state(Node *n);
    1.47  

mercurial