Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 4097 invoked from network); 2 May 2007 04:55:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 May 2007 04:55:37 -0000 Received: (qmail 43323 invoked by uid 500); 2 May 2007 04:55:43 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 43226 invoked by uid 500); 2 May 2007 04:55:43 -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 43212 invoked by uid 99); 2 May 2007 04:55:43 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 May 2007 21:55:43 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 May 2007 21:55:35 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id BCDF971406D for ; Tue, 1 May 2007 21:55:15 -0700 (PDT) Message-ID: <28050031.1178081715770.JavaMail.jira@brutus> Date: Tue, 1 May 2007 21:55:15 -0700 (PDT) From: "Pavel Ozhdikhin (JIRA)" To: commits@harmony.apache.org Subject: [jira] Commented: (HARMONY-1788) [drlvm][jit][abcd] Inequality graph generation from HIR 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-1788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12493008 ] Pavel Ozhdikhin commented on HARMONY-1788: ------------------------------------------ The stack trace for the failure is provided below. Jitrino.OPT ran into assertion compiling the method java/nio/charset/Charset::getCachedCharsetEncoder. > jitrino.dll!Jitrino::BuildInequalityGraphWalker::addDistance(Jitrino::IOpndProxy * dst=0x03c1cd20, Jitrino::IOpndProxy * src=0x00000000, __int64 constant=0, bool negate=false) Line 283 + 0x20 C++ jitrino.dll!Jitrino::BuildInequalityGraphWalker::applyToInst(Jitrino::Inst * inst=0x03c8813c) Line 237 C++ jitrino.dll!Jitrino::WalkInstsInBlock<1,Jitrino::BuildInequalityGraphWalker>(Jitrino::Node * node=0x03c3ac18, Jitrino::BuildInequalityGraphWalker & walker={...}) Line 109 C++ jitrino.dll!Jitrino::ScopedDomNodeInst2DomWalker<1,Jitrino::BuildInequalityGraphWalker>::applyToDominatorNode(Jitrino::DominatorNode * domNode=0x03cc4300) Line 160 + 0x14 C++ jitrino.dll!Jitrino::DomTreeWalk<1,Jitrino::ScopedDomNodeInst2DomWalker<1,Jitrino::BuildInequalityGraphWalker> >(Jitrino::DominatorTree & dTree={...}, Jitrino::ScopedDomNodeInst2DomWalker<1,Jitrino::BuildInequalityGraphWalker> & walker={...}, Jitrino::MemoryManager & mm={...}) Line 74 C++ jitrino.dll!Jitrino::ClassicAbcd::runPass() Line 428 + 0x17 C++ jitrino.dll!Jitrino::CLASSIC_ABCDPass::_run(Jitrino::IRManager & irm={...}) Line 48 C++ jitrino.dll!Jitrino::OptPass::run() Line 61 + 0x11 C++ jitrino.dll!Jitrino::runPipeline(Jitrino::CompilationContext * c=0x046deef4) Line 227 + 0xd C++ jitrino.dll!Jitrino::compileMethod(Jitrino::CompilationContext * cc=0x046deef4) Line 262 + 0x9 C++ jitrino.dll!Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext * cc=0x046deef4) Line 287 + 0x9 C++ jitrino.dll!JIT_compile_method_with_params(void * jit=0x015a5d90, void * compilation=0x046df3c8, Method * method_handle=0x02feb5a8, OpenMethodExecutionParams compilation_params={...}) Line 279 + 0xc C++ harmonyvm.dll!Dll_JIT::compile_method_with_params(void * compilation=0x046df3c8, Method * method=0x02feb5a8, OpenMethodExecutionParams flags={...}) Line 86 + 0x18 C++ harmonyvm.dll!compile_do_compilation_jit(Method * method=0x02feb5a8, JIT * jit=0x015a5d90) Line 657 + 0x19 C++ harmonyvm.dll!vm_compile_method(void * jit=0x015a5d90, Method * method=0x02feb5a8) Line 2492 + 0xd C++ em.dll!DrlEMImpl::methodProfileIsReady(MethodProfile * mp=0x032aa8a8) Line 772 + 0x16 C++ em.dll!EdgeProfileCollector::onTimeout() Line 265 + 0x19 C++ em.dll!DrlEMImpl::tbsTimeout() Line 817 + 0xd C++ em.dll!ProfilerThreadTimeout() Line 55 + 0x15 C++ harmonyvm.dll!Java_java_lang_EMThreadSupport_onTimeout(JNIEnv_External * jenv=0x03529a18, _jobject * cls=0x046df8e4) Line 49 + 0x10 C++ 040bfd73() harmonyvm.dll!vm_invoke_native_array_stub(unsigned int * args=0x046df988, int sz=1, void * f=0x019e12a0) Line 77 C++ harmonyvm.dll!JIT_execute_method_default(void * jit=0x00000000, _jmethodID * methodID=0x02de3d40, jvalue * return_value=0x00000000, jvalue * args=0x046dfd04) Line 200 C++ em.dll!DrlEMImpl::executeMethod(_jmethodID * meth=0x02de3d40, jvalue * return_value=0x00000000, jvalue * args=0x046dfd04) Line 509 + 0x16 C++ em.dll!ExecuteMethod(_jmethodID * meth=0x02de3d40, jvalue * return_value=0x00000000, jvalue * args=0x046dfd04) Line 43 + 0x21 C++ harmonyvm.dll!vm_execute_java_method_array(_jmethodID * method=0x02de3d40, jvalue * result=0x00000000, jvalue * args=0x046dfd04) Line 51 + 0x1b C++ harmonyvm.dll!call_method_no_ref_result(JNIEnv_External * jni_env=0x03529a18, _jobject * obj=0x035281a0, _jmethodID * methodID=0x02de3d40, jvalue * args=0x00000000, jvalue * result=0x00000000, int non_virtual=0) Line 187 + 0x11 C++ harmonyvm.dll!CallVoidMethodA(JNIEnv_External * jni_env=0x03529a18, _jobject * obj=0x035281a0, _jmethodID * methodID=0x02de3d40, jvalue * args=0x00000000) Line 225 + 0x19 C++ harmonyvm.dll!wrapper_proc(void * arg=0x03521a78) Line 102 + 0x24 C hythr.dll!thread_start_proc(void * arg=0x00418470) Line 711 + 0x9 C hythr.dll!_threadstartex(void * ptd=0x0038d4d8) Line 241 + 0xd C kernel32.dll!77e66063() > [drlvm][jit][abcd] Inequality graph generation from HIR > ------------------------------------------------------- > > Key: HARMONY-1788 > URL: https://issues.apache.org/jira/browse/HARMONY-1788 > Project: Harmony > Issue Type: New Feature > Components: DRLVM > Environment: all > Reporter: Egor Pasko > Attachments: abcd_update_1.patch, abcd_update_1_full.patch, enable-inequality-graph-building.patch.txt, full_abcd_updated_20070425.diff, vm.zip > > > new files [vm.zip]: > vm/jitrino/src/optimizer/abcd/AbcdFlags.h > vm/jitrino/src/optimizer/abcd/insertpi.cpp > vm/jitrino/src/optimizer/abcd/classic_abcd.h > vm/jitrino/src/optimizer/abcd/insertpi.h > vm/jitrino/src/optimizer/abcd/classic_abcd.cpp > vm/jitrino/config/ia32/abcd_static.emconf > This issue depends on HARMONY-1564. > Features: > * new optimization pass added (classic_abcd), off by default > * old optimization pass (abcd) is preserved to work with no change > (with bug fixed by Naveen in HARMONY-1564) > the fix should NOT visibly affect anyone (!!!) > * new EM config file for easier ABCD development (abcd_static.emconf) > (use java -Xem:abcd_static Hello) > * Pi instructions are now inserted by the separate class (InsertPi) > that is reused between both old and new ABCD algorithms > * Inequality graph can be printed to a .dot file on request. > Do it like this for method "main": > java -Xem:abcd_static -Djit.p.filter=.main -Djit.p.arg.log=ct,irdump,dotdump > and find inequality.graph.dot > ("dot -Tpng inequality.graph.dot > viewme.png") > * checked on gcc 3.3.3 Linux/ia32 > * HelloWorld passed in the new mode, does not affect other modes > * against r454400 > Instructions on how to apply both contributions. > Suppose you have all files in working_vm/abcd_update: > abcd.patch (Naveen, HARMONY-1564) > abcd-original.tar.gz (Egor, HARMONY-1564) > naveen_2.patch (Naveen, HARMONY-1564) > enable-inequality-graph-building.patch.txt > vm.zip > $ cd working_vm > $ patch -p0 $ tar zxvf abcd_update/abcd-original.tar.gz > $ patch -p0 <../abcd_update/naveen_2.patch > $ mv * ../vm/jitrino/src/optimizer/abcd/ > $ cd .. > $ rm -rf abcd-original/ > $ unzip abcd_update/vm.zip > $ patch -p1 What is left to do for the new ABCD: > * teach the optimization to invoke the solver > (detect array lengths, bounds checking operands) > * acquire not-a-small amount of tests > * fix bugs :) > * improve the algorithm supporting semantics of more more operations > such as Op_Conv, etc. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.