Mercurial > hg > truffle
diff src/share/vm/opto/compile.hpp @ 12966:b2ee5dc63353
8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by: kvn, twisti
author | roland |
---|---|
date | Wed, 23 Oct 2013 12:40:23 +0200 |
parents | 3213ba4d3dff |
children | 94a83e0f9ce1 |
line wrap: on
line diff
--- a/src/share/vm/opto/compile.hpp Wed Oct 23 10:00:39 2013 +0200 +++ b/src/share/vm/opto/compile.hpp Wed Oct 23 12:40:23 2013 +0200 @@ -424,6 +424,8 @@ static int cmp_expensive_nodes(Node** n1, Node** n2); // Expensive nodes list already sorted? bool expensive_nodes_sorted() const; + // Remove the speculative part of types and clean up the graph + void remove_speculative_types(PhaseIterGVN &igvn); // Are we within a PreserveJVMState block? int _preserve_jvm_state; @@ -824,8 +826,8 @@ // Decide how to build a call. // The profile factor is a discount to apply to this site's interp. profile. CallGenerator* call_generator(ciMethod* call_method, int vtable_index, bool call_does_dispatch, - JVMState* jvms, bool allow_inline, float profile_factor, bool allow_intrinsics = true, - bool delayed_forbidden = false); + JVMState* jvms, bool allow_inline, float profile_factor, ciKlass* speculative_receiver_type = NULL, + bool allow_intrinsics = true, bool delayed_forbidden = false); bool should_delay_inlining(ciMethod* call_method, JVMState* jvms) { return should_delay_string_inlining(call_method, jvms) || should_delay_boxing_inlining(call_method, jvms);