src/share/vm/opto/stringopts.cpp

Print this page
rev 6796 : [mq]: templateOopIterate


  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "compiler/compileLog.hpp"
  27 #include "opto/addnode.hpp"
  28 #include "opto/callGenerator.hpp"
  29 #include "opto/callnode.hpp"
  30 #include "opto/divnode.hpp"
  31 #include "opto/graphKit.hpp"
  32 #include "opto/idealKit.hpp"
  33 #include "opto/rootnode.hpp"
  34 #include "opto/runtime.hpp"
  35 #include "opto/stringopts.hpp"
  36 #include "opto/subnode.hpp"

  37 
  38 #define __ kit.
  39 
  40 class StringConcat : public ResourceObj {
  41  private:
  42   PhaseStringOpts*    _stringopts;
  43   Node*               _string_alloc;
  44   AllocateNode*       _begin;          // The allocation the begins the pattern
  45   CallStaticJavaNode* _end;            // The final call of the pattern.  Will either be
  46                                        // SB.toString or or String.<init>(SB.toString)
  47   bool                _multiple;       // indicates this is a fusion of two or more
  48                                        // separate StringBuilders
  49 
  50   Node*               _arguments;      // The list of arguments to be concatenated
  51   GrowableArray<int>  _mode;           // into a String along with a mode flag
  52                                        // indicating how to treat the value.
  53   Node_List           _constructors;   // List of constructors (many in case of stacked concat)
  54   Node_List           _control;        // List of control nodes that will be deleted
  55   Node_List           _uncommon_traps; // Uncommon traps that needs to be rewritten
  56                                        // to restart at the initial JVMState.




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "compiler/compileLog.hpp"
  27 #include "opto/addnode.hpp"
  28 #include "opto/callGenerator.hpp"
  29 #include "opto/callnode.hpp"
  30 #include "opto/divnode.hpp"
  31 #include "opto/graphKit.hpp"
  32 #include "opto/idealKit.hpp"
  33 #include "opto/rootnode.hpp"
  34 #include "opto/runtime.hpp"
  35 #include "opto/stringopts.hpp"
  36 #include "opto/subnode.hpp"
  37 #include "runtime/sharedRuntime.hpp"
  38 
  39 #define __ kit.
  40 
  41 class StringConcat : public ResourceObj {
  42  private:
  43   PhaseStringOpts*    _stringopts;
  44   Node*               _string_alloc;
  45   AllocateNode*       _begin;          // The allocation the begins the pattern
  46   CallStaticJavaNode* _end;            // The final call of the pattern.  Will either be
  47                                        // SB.toString or or String.<init>(SB.toString)
  48   bool                _multiple;       // indicates this is a fusion of two or more
  49                                        // separate StringBuilders
  50 
  51   Node*               _arguments;      // The list of arguments to be concatenated
  52   GrowableArray<int>  _mode;           // into a String along with a mode flag
  53                                        // indicating how to treat the value.
  54   Node_List           _constructors;   // List of constructors (many in case of stacked concat)
  55   Node_List           _control;        // List of control nodes that will be deleted
  56   Node_List           _uncommon_traps; // Uncommon traps that needs to be rewritten
  57                                        // to restart at the initial JVMState.