Good catch! It is a really hard bug. Thanks.

-xiaofeng

On Thu, Nov 13, 2008 at 4:50 PM, Xiaoming Gu (JIRA) <[EMAIL PROTECTED]> wrote:
> [drlvm][jit] An undetected interference in Graph Coloring register allocation
> -----------------------------------------------------------------------------
>
>                 Key: HARMONY-6016
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6016
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: IA32 Windows
>            Reporter: Xiaoming Gu
>
>
> When early_prop turned off in server_static mode, there is a 
> NullPointerException during running startup.helloworld. The bug comes from 
> the last BB of DataInputStream.readByte(). Following are the generated binary 
> code for this bug:
>
>  with early_prop
>        02D67855 I15: MOVSX t26(EAX):I_32,t12(EAX):I_32
>
>  without early_prop
>        02D67865 I33: MOV t25(BH):I_8,t12(EAX):I_32
>        02D67867 I15: MOVSX t26(EAX):I_32,t25(BH):I_8
>
> BH is defined if no early_prop. But actually EBX is defined before the above 
> part of code and assumed to keep unmodifed and be used later. So some part of 
> EBX (BH) is changed uncarefully and an exception is thrown out finally. With 
> early_prop the bug is gone because there is no changes about EBX.
>
> I verified my guess by changing server_static.emconf to only use bin packing 
> register allocation and found no bug when running startup.helloworld. My 
> basic assumption is early_prop is NOT indispensable and each optimization 
> pass should be independent as much as possible.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>



-- 
http://xiao-feng.blogspot.com

Reply via email to