src/share/vm/opto/compile.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
8130832-review Cdiff src/share/vm/opto/compile.hpp
src/share/vm/opto/compile.hpp
Print this page
rev 8688 : 1234567: Invalid bug number
Summary: This is a local commit to reduce jprt submit time.
Reviewed-by: kvn
*** 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