You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Ivashin Sergey (JIRA)" <ji...@apache.org> on 2006/12/20 13:46:31 UTC
[jira] Created: (HARMONY-2816) [drlvm][jit] Jitrino operand
priority calculation in bin pack register allocator
[drlvm][jit] Jitrino operand priority calculation in bin pack register allocator
--------------------------------------------------------------------------------
Key: HARMONY-2816
URL: http://issues.apache.org/jira/browse/HARMONY-2816
Project: Harmony
Issue Type: Bug
Components: DRLVM
Reporter: Ivashin Sergey
Calculation of operand's priority for register assignment is based on execution counters and register pressures for all blocks where the operand is used. Block execution counter is a float (double) value, but currently result of this calculation is truncated to integer value. This truncation causes (1) errors in estimating priorities of operands and (2) different allocation results for different compilers used (run-time routines from ICL and MSVC produce different floating point results).
Using floating point values for operand priorities (weight calculation) significantly reduce numeric instability and help reproduce allocation results for different compilers. It should not have a negative impact on performance, because double to integer truncation is removed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (HARMONY-2816) [drlvm][jit] Jitrino operand
priority calculation in bin pack register allocator
Posted by "Ivashin Sergey (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/jira/browse/HARMONY-2816?page=all ]
Ivashin Sergey updated HARMONY-2816:
------------------------------------
Attachment: H-2816.patch
This patch solves the problem described (also it contains minor source code cleanup).
The patch was tested on Windows and Linux.
> [drlvm][jit] Jitrino operand priority calculation in bin pack register allocator
> --------------------------------------------------------------------------------
>
> Key: HARMONY-2816
> URL: http://issues.apache.org/jira/browse/HARMONY-2816
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Ivashin Sergey
> Attachments: H-2816.patch
>
>
> Calculation of operand's priority for register assignment is based on execution counters and register pressures for all blocks where the operand is used. Block execution counter is a float (double) value, but currently result of this calculation is truncated to integer value. This truncation causes (1) errors in estimating priorities of operands and (2) different allocation results for different compilers used (run-time routines from ICL and MSVC produce different floating point results).
> Using floating point values for operand priorities (weight calculation) significantly reduce numeric instability and help reproduce allocation results for different compilers. It should not have a negative impact on performance, because double to integer truncation is removed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (HARMONY-2816) [drlvm][jit] Jitrino operand
priority calculation in bin pack register allocator
Posted by "Vyacheslav Shakin (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/jira/browse/HARMONY-2816?page=comments#action_12461181 ]
Vyacheslav Shakin commented on HARMONY-2816:
--------------------------------------------
I reviewed the patch and found it simple and correct, thanks a lot. The truncation often caused rather strange prioritization of operands leading to inefficient register allocation, especially with the static profile estimator.
> [drlvm][jit] Jitrino operand priority calculation in bin pack register allocator
> --------------------------------------------------------------------------------
>
> Key: HARMONY-2816
> URL: http://issues.apache.org/jira/browse/HARMONY-2816
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Ivashin Sergey
> Attachments: H-2816.patch
>
>
> Calculation of operand's priority for register assignment is based on execution counters and register pressures for all blocks where the operand is used. Block execution counter is a float (double) value, but currently result of this calculation is truncated to integer value. This truncation causes (1) errors in estimating priorities of operands and (2) different allocation results for different compilers used (run-time routines from ICL and MSVC produce different floating point results).
> Using floating point values for operand priorities (weight calculation) significantly reduce numeric instability and help reproduce allocation results for different compilers. It should not have a negative impact on performance, because double to integer truncation is removed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Assigned: (HARMONY-2816) [drlvm][jit] Jitrino operand
priority calculation in bin pack register allocator
Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/jira/browse/HARMONY-2816?page=all ]
Alexey Varlamov reassigned HARMONY-2816:
----------------------------------------
Assignee: Alexey Varlamov
> [drlvm][jit] Jitrino operand priority calculation in bin pack register allocator
> --------------------------------------------------------------------------------
>
> Key: HARMONY-2816
> URL: http://issues.apache.org/jira/browse/HARMONY-2816
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Ivashin Sergey
> Assigned To: Alexey Varlamov
> Attachments: H-2816.patch
>
>
> Calculation of operand's priority for register assignment is based on execution counters and register pressures for all blocks where the operand is used. Block execution counter is a float (double) value, but currently result of this calculation is truncated to integer value. This truncation causes (1) errors in estimating priorities of operands and (2) different allocation results for different compilers used (run-time routines from ICL and MSVC produce different floating point results).
> Using floating point values for operand priorities (weight calculation) significantly reduce numeric instability and help reproduce allocation results for different compilers. It should not have a negative impact on performance, because double to integer truncation is removed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Closed: (HARMONY-2816) [drlvm][jit] Jitrino operand priority
calculation in bin pack register allocator
Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
[ http://issues.apache.org/jira/browse/HARMONY-2816?page=all ]
Alexey Varlamov closed HARMONY-2816.
------------------------------------
Resolution: Fixed
Applied at r490936, thanks!
> [drlvm][jit] Jitrino operand priority calculation in bin pack register allocator
> --------------------------------------------------------------------------------
>
> Key: HARMONY-2816
> URL: http://issues.apache.org/jira/browse/HARMONY-2816
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Ivashin Sergey
> Assigned To: Alexey Varlamov
> Attachments: H-2816.patch
>
>
> Calculation of operand's priority for register assignment is based on execution counters and register pressures for all blocks where the operand is used. Block execution counter is a float (double) value, but currently result of this calculation is truncated to integer value. This truncation causes (1) errors in estimating priorities of operands and (2) different allocation results for different compilers used (run-time routines from ICL and MSVC produce different floating point results).
> Using floating point values for operand priorities (weight calculation) significantly reduce numeric instability and help reproduce allocation results for different compilers. It should not have a negative impact on performance, because double to integer truncation is removed.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira