8062280: C2: inlining failure due to access checks being too strict

Reviewed-by: kvn
This commit is contained in:
Vladimir Ivanov 2015-04-14 18:11:06 +03:00
parent ce40bf07b2
commit 5ff12acb9d
8 changed files with 249 additions and 27 deletions

View file

@ -255,11 +255,12 @@ class ciMethod : public ciMetadata {
// its calling environment.
ciMethod* find_monomorphic_target(ciInstanceKlass* caller,
ciInstanceKlass* callee_holder,
ciInstanceKlass* actual_receiver);
ciInstanceKlass* actual_receiver,
bool check_access = true);
// Given a known receiver klass, find the target for the call.
// Return NULL if the call has no target or is abstract.
ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver);
ciMethod* resolve_invoke(ciKlass* caller, ciKlass* exact_receiver, bool check_access = true);
// Find the proper vtable index to invoke this method.
int resolve_vtable_index(ciKlass* caller, ciKlass* receiver);