RFR: 8172733: [JVMCI] add ResolvedJavaMethod.hasNeverInlineDirective

Doug Simon doug.simon at oracle.com
Mon Jan 23 21:01:06 UTC 2017


> On 23 Jan 2017, at 18:26, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> Hi, Doug
> 
> About jvmciCompilerToVM.cpp changes. why you added CompilerOracle::should_exclude(method) check? CompilerOracle::should_not_inline() does it already except it does not check compileonly list.

Ok, I don’t think we need to check the compileonly list since this is explicitly only about inlining.

> I also thought that we should switch to using DirectiveSet::should_not_inline() as C1 and C2 does now but it is more complex change which we can do in jdk 10.

Ok.

> Otherwise looks good.

Thanks for the review!

-Doug
> 
> Thanks,
> Vladimir
> 
> On 1/22/17 12:39 PM, Doug Simon wrote:
>> The ResolvedJavaMethod.canBeInlined method captures 2 different constraints on inlining:
>> 
>> 1. Whether the method has an explicit directive (e.g., -XX:CompileCommand=dontinline) or a hotspot recognized annotation (e.g., @DontInline).
>> 2. Whether hotspot has marked it not compilable for policy reasons (e.g., failed earlier compilations or has a bytecode breakpoint).
>> 
>> Truffle partial evaluation (a JVMCI API client) doesn’t care about 2 and must ignore it for correct operation. However, it needs to know about 1. This webrev introduces a separate ResolvedJavaMethod.hasNeverInlineDirective method to support this feature.
>> 
>> https://bugs.openjdk.java.net/browse/JDK-8172733
>> http://cr.openjdk.java.net/~dnsimon/8172733/webrev/
>> 
>> -Doug
>> 



More information about the hotspot-compiler-dev mailing list