You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Nikolay Sidelnikov (JIRA)" <ji...@apache.org> on 2007/02/27 07:58:06 UTC

[jira] Created: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

[drlvm][jit][opt]It's possible to fill array with constant much faster
----------------------------------------------------------------------

                 Key: HARMONY-3243
                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
             Project: Harmony
          Issue Type: Improvement
          Components: DRLVM
            Reporter: Nikolay Sidelnikov


Filling an array with a constant is an often code pattern (see attached example).
We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov resolved HARMONY-3243.
--------------------------------------

    Resolution: Fixed

Applied at r521112.

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: faf_em64t.patch, faf_em64t_fixed.patch, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12481226 ] 

Egor Pasko commented on HARMONY-3243:
-------------------------------------

let's discuss this approach in dev@

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: faf_em64t.patch, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Nikolay Sidelnikov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nikolay Sidelnikov updated HARMONY-3243:
----------------------------------------

    Attachment:     (was: fastarrayfill.diff)

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: faf_em64t.patch, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Alexey Varlamov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Varlamov reassigned HARMONY-3243:
----------------------------------------

    Assignee: Alexey Varlamov

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: fastarrayfill.diff, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Nikolay Sidelnikov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nikolay Sidelnikov updated HARMONY-3243:
----------------------------------------

    Attachment: faf_em64t.patch

Optimization was enabled for EM64T platform.


> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: faf_em64t.patch, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Nikolay Sidelnikov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nikolay Sidelnikov updated HARMONY-3243:
----------------------------------------

    Attachment: fastarrayfill.diff

The optimization was added, it's turned off by default in server.emconf file

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Attachments: fastarrayfill.diff, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Nikolay Sidelnikov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nikolay Sidelnikov updated HARMONY-3243:
----------------------------------------

    Attachment: tp.java

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Attachments: tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Nikolay Sidelnikov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nikolay Sidelnikov updated HARMONY-3243:
----------------------------------------

    Attachment: faf_em64t_fixed.patch

I can't reproduce this failure, but the new patch contains a check to prevent it.
Egor, could you check it?

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: faf_em64t.patch, faf_em64t_fixed.patch, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-3243) [drlvm][jit][opt]It's possible to fill array with constant much faster

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12481588 ] 

Egor Pasko commented on HARMONY-3243:
-------------------------------------

After applying the patch it failed for me during compilation of Thread::<init>:
/home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/shared/LoopTree.h:85: bool Jitrino::LoopTree::hasLoops() const: Assertion `isValid()' failed.

steps to reproduce:
$DRLVM -showversion -Xem:server tp
Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
java version "1.5.0"
pre-alpha : not complete or compatible
svn = r515555, (Mar 15 2007), Linux/ia32/gcc 4.0.3, debug build
http://incubator.apache.org/harmony
java: /home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/shared/LoopTree.h:85: bool Jitrino::LoopTree::hasLoops() const: Assertion `isValid()' failed.
SIGABRT in VM code.
Stack trace:
addr2line: '[vdso]': No such file
Terminated

hangs here while printig stack

the actual stack can be obtained via running from within debugger:
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7a4b9a1 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7a4d2b9 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7a44f51 in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0xb5b6059f in Jitrino::LoopTree::hasLoops (this=0x8426090) at LoopTree.h:85
#5  0xb5b5f152 in Jitrino::FastArrayFillPass::_run (this=0x843533c, irManager=@0x8432e90)
    at /home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/optimizer/FastArrayFilling.cpp:52
#6  0xb5da6196 in Jitrino::OptPass::run (this=0x843533c) at /home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/optimizer/optpass.cpp:61
#7  0xb5c77c8b in Jitrino::runPipeline (c=0xbf989528) at /home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:226
#8  0xb5c7829a in Jitrino::compileMethod (cc=0xbf989528) at /home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:261
#9  0xb5c783ba in Jitrino::Jitrino::CompileMethod (cc=0xbf989528) at /home/pasko/svn/1/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:286

that should be easily fixable

Ubuntu 6.06.1 LTS

> [drlvm][jit][opt]It's possible to fill array with constant much faster
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-3243
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3243
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>            Reporter: Nikolay Sidelnikov
>         Assigned To: Alexey Varlamov
>         Attachments: faf_em64t.patch, tp.java
>
>
> Filling an array with a constant is an often code pattern (see attached example).
> We can encrease speed of such operation in about 4 times.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.