< prev index next >

src/hotspot/share/opto/parse.hpp

Print this page


   1 /*
   2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  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  *


 459   // Merge the current mapping into an exception handler.
 460   void merge_exception(int target_bci);
 461   // Helper: Merge the current mapping into the given basic block
 462   void merge_common(Block* target, int pnum);
 463   // Helper functions for merging individual cells.
 464   PhiNode *ensure_phi(       int idx, bool nocreate = false);
 465   PhiNode *ensure_memory_phi(int idx, bool nocreate = false);
 466   // Helper to merge the current memory state into the given basic block
 467   void merge_memory_edges(MergeMemNode* n, int pnum, bool nophi);
 468 
 469   // Parse this bytecode, and alter the Parsers JVM->Node mapping
 470   void do_one_bytecode();
 471 
 472   // helper function to generate array store check
 473   void array_store_check();
 474   // Helper function to generate array load
 475   void array_load(BasicType etype);
 476   // Helper function to generate array store
 477   void array_store(BasicType etype);
 478   // Helper function to compute array addressing
 479   Node* array_addressing(BasicType type, int vals, const Type* *result2=NULL);
 480 
 481   void rtm_deopt();
 482 
 483   // Pass current map to exits
 484   void return_current(Node* value);
 485 
 486   // Register finalizers on return from Object.<init>
 487   void call_register_finalizer();
 488 
 489   // Insert a compiler safepoint into the graph
 490   void add_safepoint();
 491 
 492   // Insert a compiler safepoint into the graph, if there is a back-branch.
 493   void maybe_add_safepoint(int target_bci) {
 494     if (UseLoopSafepoints && target_bci <= bci()) {
 495       add_safepoint();
 496     }
 497   }
 498 
 499   // Note:  Intrinsic generation routines may be found in library_call.cpp.


   1 /*
   2  * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  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  *


 459   // Merge the current mapping into an exception handler.
 460   void merge_exception(int target_bci);
 461   // Helper: Merge the current mapping into the given basic block
 462   void merge_common(Block* target, int pnum);
 463   // Helper functions for merging individual cells.
 464   PhiNode *ensure_phi(       int idx, bool nocreate = false);
 465   PhiNode *ensure_memory_phi(int idx, bool nocreate = false);
 466   // Helper to merge the current memory state into the given basic block
 467   void merge_memory_edges(MergeMemNode* n, int pnum, bool nophi);
 468 
 469   // Parse this bytecode, and alter the Parsers JVM->Node mapping
 470   void do_one_bytecode();
 471 
 472   // helper function to generate array store check
 473   void array_store_check();
 474   // Helper function to generate array load
 475   void array_load(BasicType etype);
 476   // Helper function to generate array store
 477   void array_store(BasicType etype);
 478   // Helper function to compute array addressing
 479   Node* array_addressing(BasicType type, int vals, bool is_store, const Type* *result2=NULL);
 480 
 481   void rtm_deopt();
 482 
 483   // Pass current map to exits
 484   void return_current(Node* value);
 485 
 486   // Register finalizers on return from Object.<init>
 487   void call_register_finalizer();
 488 
 489   // Insert a compiler safepoint into the graph
 490   void add_safepoint();
 491 
 492   // Insert a compiler safepoint into the graph, if there is a back-branch.
 493   void maybe_add_safepoint(int target_bci) {
 494     if (UseLoopSafepoints && target_bci <= bci()) {
 495       add_safepoint();
 496     }
 497   }
 498 
 499   // Note:  Intrinsic generation routines may be found in library_call.cpp.


< prev index next >