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
