Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 17677 invoked from network); 12 Oct 2008 08:09:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Oct 2008 08:09:35 -0000 Received: (qmail 68265 invoked by uid 500); 12 Oct 2008 08:09:35 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 68247 invoked by uid 500); 12 Oct 2008 08:09:35 -0000 Mailing-List: contact commits-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 commits@harmony.apache.org Received: (qmail 68238 invoked by uid 99); 12 Oct 2008 08:09:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Oct 2008 01:09:34 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Oct 2008 08:08:37 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 4E76B234C218 for ; Sun, 12 Oct 2008 01:08:44 -0700 (PDT) Message-ID: <1762119298.1223798924320.JavaMail.jira@brutus> Date: Sun, 12 Oct 2008 01:08:44 -0700 (PDT) From: "Aleksey Shipilev (JIRA)" To: commits@harmony.apache.org Subject: [jira] Commented: (HARMONY-5996) [HARMONY][JIT][OPTIMIZER] Assumption in array base address load asscoiated symbolic analysis of dabce caused bug In-Reply-To: <277546575.1223751104315.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HARMONY-5996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12638832#action_12638832 ] Aleksey Shipilev commented on HARMONY-5996: ------------------------------------------- Hi, BuQi! 1. Does this issue prevents scimark.lu.large to run? If yes, please state it in JIRA. If not, please down the priority to high. 2. Please also follow the general guideline for patch submission: do one solid patch for issue, relative to VM root, not some directory inside. I hadn't looked into the patch yet. Thanks, Aleksey. > [HARMONY][JIT][OPTIMIZER] Assumption in array base address load asscoiated symbolic analysis of dabce caused bug > ---------------------------------------------------------------------------------------------------------------- > > Key: HARMONY-5996 > URL: https://issues.apache.org/jira/browse/HARMONY-5996 > Project: Harmony > Issue Type: Bug > Components: DRLVM > Environment: Windows > Reporter: Cheng, BuQi > Priority: Critical > Attachments: dabce_fillTemplate_bug_cpp.patch, dabce_fillTemplate_bug_h.patch > > > In function code: > void DynamicABCE::fillTemplate(ArrayAccessTemplate* arrayAccess, Inst* checkInst) { > .... > Node* node = checkInst->getNode()->getUnconditionalEdgeTarget(); > for (Inst* inst = (Inst*)node->getFirstInst(); inst != NULL; inst = inst->getNextInst()) { > ... > } else if (opcode == Op_AddScaledIndex && > arrayAccess->index == inst->getSrc(1) && arrayAccess->array == NULL) { > assert(ldBaseInst == NULL); > ldBaseInst = inst->getSrc(0)->asSsaOpnd()->getInst(); > assert(ldBaseInst->getOpcode() == Op_LdArrayBaseAddr); > arrayAccess->array = ldBaseInst->getSrc(0)->asSsaOpnd(); > break; > } > } > ... > } > The code "assert(ldBaseInst->getOpcode() == Op_LdArrayBaseAddr);" assumes that after bound checking, the direct target block will access array immediately, and the array access instruction in it will use "Op_LdArrayBaseAddr" instruction to access the array base. However, this kind assumption is very tender. > In server: scimark.sor.small. > After loop peeling, phi instruction is generated for LDBASE instruction, this time LDVAR instruction will be used to get the variable from Phi. The assertion will fail and bug will happen. > There may be two kind solutions: > 1. In IR building, record the array access information. > 2. Or more accurate symbolic is used to find the array base load instruction. > Thanks! > Buqi -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.