src/share/vm/opto/compile.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/compile.hpp	Tue Jul 14 18:39:24 2015
--- new/src/share/vm/opto/compile.hpp	Tue Jul 14 18:39:23 2015

*** 1232,1241 **** --- 1232,1248 ---- CallGenerator* make_vm_intrinsic(ciMethod* m, bool is_virtual); // constructor int intrinsic_insertion_index(ciMethod* m, bool is_virtual); // helper CallGenerator* find_intrinsic(ciMethod* m, bool is_virtual); // query fn void register_intrinsic(CallGenerator* cg); // update fn + // Returns true if the intrinsic for method 'method' will perform a virtual dispatch. + static bool intrinsic_does_virtual_dispatch_for(vmIntrinsics::ID id); + + // A return value larger than 0 indicates that the intrinsic for method + // 'method' requires predicated logic. + static int intrinsic_predicates_needed_for(vmIntrinsics::ID id); + #ifndef PRODUCT static juint _intrinsic_hist_count[vmIntrinsics::ID_LIMIT]; static jubyte _intrinsic_hist_flags[vmIntrinsics::ID_LIMIT]; #endif // Function calls made by the public function final_graph_reshaping.
*** 1257,1266 **** --- 1264,1290 ---- // Update histogram. Return boolean if this is a first-time occurrence. static bool gather_intrinsic_statistics(vmIntrinsics::ID id, bool is_virtual, int flags) PRODUCT_RETURN0; static void print_intrinsic_statistics() PRODUCT_RETURN; + // An intrinsic is available if: + // - the intrinsic is enabled (by using the appropriate command-line flag) and + // - the intrinsic is supported by the VM (i.e., the platform on which the VM is + // running provides the instructions necessary for the C2 compiler to generate + // the intrinsic). + // + // The method 'is_intrinsic_available_for' returns true if the current + // platform provides an intrinsic for the method, for the compilation context, and + // for the dispatch mode (virtual or non-virtual) given as parameter. + // + // The parameter 'compilation_context' indicates the context in which 'method' + // is attempted to be intrinsified; 'compilation_context' is either a method + // that is calling 'method' or it is 'method' itself. The parameter + // 'compilation_context' is necessary to implement support for the + // DisableIntrinsic flag. + static bool is_intrinsic_available_for(Method* method, Method* compilation_context, bool is_virtual); + // Graph verification code // Walk the node list, verifying that there is a one-to-one // correspondence between Use-Def edges and Def-Use edges // The option no_dead_code enables stronger checks that the // graph is strongly connected from root in both directions.

src/share/vm/opto/compile.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File