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

[jira] Commented: (HARMONY-1788) [drlvm][jit][abcd] Inequality graph generation from HIR

    [ 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 <abcd_update/abcd.patch
> $ 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 <abcd_update/enable-inequality-graph-building.patch.txt
> 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.