loop customization: a key challenge
John Rose
john.r.rose at oracle.com
Mon Sep 10 12:13:58 PDT 2012
On Sep 10, 2012, at 11:50 AM, Aleksey Shipilev wrote:
> "see this argument? You better specialize on it's type"
That's why the JSR 292 EG put MH.bindTo and Lookup.bind into the API, even though MHs.insertArguments is more general.
The methods strongly hint to implementors and users that bind and findVirtual + bindTo perform the obvious devirtualization.
It would be reasonable to agree to focus such specialization optimizations around leading arguments.
(Outside of Java, functional languages also use the leading argument convention for partial application, and use such partial application to express specialization.)
Of course, loop customization does not really appear to be a case of devirtualization… unless perhaps you treat each loop superstructure as a defender method on the loop kernel interface. Then L1_X is really X.L1, and the JVM optimization framework can swing into action, cloning L1 into each receiver type X. So that's a MH-free way to think about it.
— John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120910/199ecd56/attachment.html
More information about the hotspot-compiler-dev
mailing list