string methods intrinsics, place for checks
Vladimir.Kozlov at Sun.COM
Tue Aug 18 16:10:57 PDT 2009
I will send first draft tomorrow so you will see.
An other question: should I add the check for argument->is_Con()
(string constant) and load argument's parameters statically
(as we do in indexOf intrinsic on not SSE42 path)?
Or should I add the ideal optimization?
Currently ideal optimizations do not convert loadI(AddP(ConP, 28))
to static load.
Tom Rodriguez wrote:
> I don't know that there's a clear place to draw the line. I'd tend
> towards writing things in ideal if possible since that exposes it to
> optimization and reduces the amount of assembly. I'd probably have a
> stronger opinion about a more concrete example.
> On Aug 18, 2009, at 2:35 PM, Vladimir Kozlov wrote:
>> I am modifying our string intrinsics to pass char pointers and
>> counters instead of string oops to allow EA eliminate non-escaping
>> string object (6827605). This will also allow to do some checks
>> in ideal graph instead of in a mach node encoding. But it may affect
>> ideal optimizations since it may complicate control flow.
>> So I need your opinion where I should draw the line.
>> For example, for String.equals() I compare counters in ideal but
>> check it for 0 in mach (mach node needs only one counter) since
>> == 0 is rare case.
More information about the hotspot-compiler-dev