Math trig intrinsics and compiler options
Joseph D. Darcy
Joe.Darcy at Sun.COM
Wed Jul 15 09:58:08 PDT 2009
Christian Thalinger wrote:
> gustav trede wrote:
>
>> Hello,
>>
>> Azeem Jiva told me an easy way to improve trig performance.
>> Changing the intrinsics to use an existing but faster path gives me a
>> boost of roughly 40% for the Math cos and sin on solaris x64.
>>
>>
>> library_call.cpp
>>
>> bool LibraryCallKit::inline_math_
>> native(vmIntrinsics::ID id) {
>> switch (id) {
>>
>> case vmIntrinsics::_dcos: return Matcher::has_match_rule(Op_CosD) ?
>> runtime_math(OptoRuntime::Math_D_D_Type(), CAST_FROM_FN_PTR(address,
>> SharedRuntime::dcos), "COS") : false;
>> case vmIntrinsics::_dsin: return Matcher::has_match_rule(Op_SinD) ?
>> runtime_math(OptoRuntime::Math_D_D_Type(), CAST_FROM_FN_PTR(address,
>> SharedRuntime::dsin), "SIN") : false;
>> case vmIntrinsics::_dtan: return Matcher::has_match_rule(Op_TanD) ?
>> runtime_math(OptoRuntime::Math_D_D_Type(), CAST_FROM_FN_PTR(address,
>> SharedRuntime::dtan), "TAN") : false;
>> case vmIntrinsics::_dlog: return Matcher::has_match_rule(Op_LogD) ?
>> runtime_math(OptoRuntime::Math_D_D_Type(), CAST_FROM_FN_PTR(address,
>> SharedRuntime::dlog), "LOG") : false;
>> case vmIntrinsics::_dlog10: return Matcher::has_match_rule(Op_Log10D)
>> ? runtime_math(OptoRuntime::Math_D_D_Type(), CAST_FROM_FN_PTR(address,
>> SharedRuntime::dlog10), "LOG10") : false;
>>
>>
>> Is there any potential problem with such a patch ?
>>
>
> I'm not sure I understand this "patch". Why should the code above be
> faster than the current code in HotSpot, which tries to inline the
> trigonometric functions? Maybe the speedup you're seeing is because of
> the missing fast/slow path check and you are always using the slow path
> because of rounding? Just a guess...
>
Hello.
Can you explain the nature of the selection difference?
Better semantics are provided if the instrinsified versions of sin, cos,
etc. are always used to implement the java.lang.Math flavor of those
methods.
-Joe
More information about the hotspot-dev
mailing list