< 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  *


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


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


< prev index next >