Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 90387 invoked from network); 18 Jan 2008 07:46:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 18 Jan 2008 07:46:55 -0000 Received: (qmail 31180 invoked by uid 500); 18 Jan 2008 07:46:44 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 31152 invoked by uid 500); 18 Jan 2008 07:46:44 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 31142 invoked by uid 99); 18 Jan 2008 07:46:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Jan 2008 23:46:44 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of aleksey.shipilev@gmail.com designates 209.85.198.184 as permitted sender) Received: from [209.85.198.184] (HELO rv-out-0910.google.com) (209.85.198.184) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Jan 2008 07:46:19 +0000 Received: by rv-out-0910.google.com with SMTP id k20so835656rvb.0 for ; Thu, 17 Jan 2008 23:46:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=Zw+UoU5T5L0hVBLv37Bpc9G4UMM0lzrQQFLJ4eBY9sg=; b=xy31VxNPRWErlOKHwD+5lX6Y8V63b7YyCe24JMOSSckQ/GdRyqPGDutQXLmxzaXAcu0SLU37ZLstYY5FukuEOUuYRfuArGWKP3Kje23jYs/uQhA77aeSyAClS/XwNX3qYi5AV8/x0IM7J2VBm9p1zbUDYrIfhz7jLrcBIdgrzBQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=tDCikyOKNPJH6gLGyIsxdycW6ibr5CeFe0bXw1Fk+D46hRoIMHkjin2TWRmaAKxOxmjrsuaFTvQcKstViC3DGC5GQq0VTCkLpC3w4GNRXrlcSH5BaZhtpcW5l+piLVlbyOuIuyJabi4g416dcHN8JHVebKO24pxBYJQZ8Qy1aiI= Received: by 10.141.13.16 with SMTP id q16mr2166946rvi.99.1200642384476; Thu, 17 Jan 2008 23:46:24 -0800 (PST) Received: by 10.140.141.1 with HTTP; Thu, 17 Jan 2008 23:46:24 -0800 (PST) Message-ID: <4bebff790801172346m36f11f06s1247d07bca885ad5@mail.gmail.com> Date: Fri, 18 Jan 2008 10:46:24 +0300 From: "Aleksey Shipilev" To: dev@harmony.apache.org Subject: Re: [jira] Commented: (HARMONY-5399) [drlvm][jit] Enabling arraycopy optimization for primitive types when write barriers are enabled In-Reply-To: <9623c9a50801172247k74525597m916714a026b6b61d@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20845865.1200573276722.JavaMail.jira@brutus> <880513.1200637837625.JavaMail.jira@brutus> <9623c9a50801172247k74525597m916714a026b6b61d@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org Hi, Xiao Feng, Gregory, I believe that current implementation of WB support for arraycopy is good in case of unknown GC design. It would hit WB for every element in the array, and then maintain compatibility across different GC implementations, right? I'm also thinking of specialized write barrier helper for arrays, which would exploit your design but keep VM/JIT unaware of the details. Gregory, I have modified the patch to cover your concern, does it fits well? Thanks, Aleksey. On Jan 18, 2008 9:47 AM, Xiao-Feng Li wrote: > On Jan 18, 2008 2:30 PM, George Timoshenko (JIRA) wrote: > > > > [ https://issues.apache.org/jira/browse/HARMONY-5399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12560243#action_12560243 ] > > > > George Timoshenko commented on HARMONY-5399: > > -------------------------------------------- > > > > I have one consern. > > > > By the modification of "arraycopyOptimizable" you turn of the both > > > > genArrayCopy and > > genArrayCopyRepMove > > > > optimizations of the arrays of Object types. > > > > BUT the first one, genArrayCopy, does not use REP instruction. It generates a copying loop so it can work with WB. > > > For array write, it's ok to have only one WB for the whole object. In > my current generational GC design, I use WB actually for object > remembering rather than slot remembering. So one WB for the whole > arraycopy is enough. > > (Well, write barrier support in DRLVM needs cleanup thenafter.) > > Thanks, > xiaofeng > > > > > > > [drlvm][jit] Enabling arraycopy optimization for primitive types when write barriers are enabled > > > ------------------------------------------------------------------------------------------------ > > > > > > Key: HARMONY-5399 > > > URL: https://issues.apache.org/jira/browse/HARMONY-5399 > > > Project: Harmony > > > Issue Type: Improvement > > > Environment: All > > > Reporter: Aleksey Shipilev > > > Attachments: WB-2.patch, WB-3.patch, WB-4.patch > > > > > > > > > JIT arraycopy optimization is disabled automatically when WB are enabled. Attached patch re-enables arraycopy optimization for arrays of primitive types, which shouldn't interfere with WB activity. > > > > -- > > 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 >