RFR(L): 8024070: C2 needs some form of type speculation
vladimir.kozlov at oracle.com
Mon Sep 16 14:08:07 PDT 2013
On 9/16/13 4:32 AM, Roland Westrelin wrote:
> Hi Vladimir,
> Thanks for your comments.
>> You need to add jtreg tests to verify these changes for different cases (especially merge points with different profile types).
> Do you mean tests that show an improvement (artificially pollute profiling at a call site and verify that some profiling that dominates the call site helps for instance)? I have such tests but they need manual inspection of the resulting code or inlining. Given the effect of the change has no visible effects at the java level how would I automate testing? Run with -XX:+PrintInlining and parse the output? Have we done that before on other tests?
No. I just want to test correctness. Something like merging array and
instance types, reflection, constant types etc. To make sure your new
code in C2 types works correctly (correct inlining). Use test cases
which you think can be problematic. Even if a test doesn't fail with
your current changes we need it.
>> Please, explain why we need CastPP. In merge points it will leak to Phi nodes and further anyway.
> I don't see how this can be made to work in general without the extra CastPP nodes. Can you elaborate on how you would do it?
Nevermind that. You need it since it is control dependent (different
branches can have different profiling types for the same object). Then
why not use CheckCastPP with control edge?. CastPP is mostly used to
More information about the hotspot-compiler-dev