harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gregory Shimansky <gshiman...@apache.org>
Subject Re: svn commit: r610727 - in /harmony/enhanced/drlvm/trunk/vm/vmcore/src: class_support/Environment.cpp init/vm_properties.cpp
Date Thu, 10 Jan 2008 12:25:32 GMT
Hello

This switch to uncompressed references by default broke several 
regression tests that run on JIT in server mode. For example running 
test for H3228 crashes on assertion in JIT:

#0  0x00002b5992689b75 in raise () from /lib64/libc.so.6
#1  0x00002b599268b060 in abort () from /lib64/libc.so.6
#2  0x00002b5992683246 in __assert_fail () from /lib64/libc.so.6
#3  0x00002aaaad23ab70 in Jitrino::HelperInliner::run (this=0xfd9fd0) at 
/nfs/ims/proj/drl/mrt2/users/gregory/em64t/trunk/working_vm/vm/jitrino/src/optimizer/helper_inliner.cpp:207
#4  0x00002aaaad23b808 in Jitrino::HelperInlinerSession::_run 
(this=0xfdef88, irm=@0xf4cc80) at 
/nfs/ims/proj/drl/mrt2/users/gregory/em64t/trunk/working_vm/vm/jitrino/src/optimizer/helper_inliner.cpp:200
#5  0x00002aaaad27fb31 in Jitrino::OptPass::run (this=0xfdef88) at 
/nfs/ims/proj/drl/mrt2/users/gregory/em64t/trunk/working_vm/vm/jitrino/src/optimizer/optpass.cpp:62
#6  0x00002aaaad137b0d in Jitrino::runPipeline (c=0x42410440) at 
/nfs/ims/proj/drl/mrt2/users/gregory/em64t/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:224
#7  0x00002aaaad137ba4 in Jitrino::compileMethod (cc=0x42410440) at 
/nfs/ims/proj/drl/mrt2/users/gregory/em64t/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:241
#8  0x00002aaaad137c54 in Jitrino::Jitrino::CompileMethod 
(cc=0x42410440) at 
/nfs/ims/proj/drl/mrt2/users/gregory/em64t/trunk/working_vm/vm/jitrino/src/main/Jitrino.cpp:258
<snip more stack frames>

Looking at the helper_inliner.cpp:207 I see the following code:

#ifdef _EM64T_
     assert(VMInterface::areReferencesCompressed());
#endif

which probably means that it is just not ready for uncompressed 
references mode. I want to ask JIT developers, whether it is easy to 
quickly fix this, or should we revert switching to uncompressed 
references as the default mode?

smishura@apache.org said the following on 10.01.2008 12:13:
> Author: smishura
> Date: Thu Jan 10 01:12:41 2008
> New Revision: 610727
> 
> URL: http://svn.apache.org/viewvc?rev=610727&view=rev
> Log:
> Apply patch from HARMONY-5355:
> [drlvm][object][testing] Change default references mode to uncompressed on x86-64
> 
> Modified:
>     harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp
>     harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_properties.cpp
> 
> Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp
> URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp?rev=610727&r1=610726&r2=610727&view=diff
> ==============================================================================
> --- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp (original)
> +++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp Thu Jan
10 01:12:41 2008
> @@ -126,7 +126,7 @@
>      use_lil_stubs = true;
>  #ifdef REFS_USE_RUNTIME_SWITCH
>  #ifdef POINTER64
> -    compress_references = true;
> +    compress_references = false;
>  #else // POINTER64
>      compress_references = false;
>  #endif // POINTER64
> 
> Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_properties.cpp
> URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_properties.cpp?rev=610727&r1=610726&r2=610727&view=diff
> ==============================================================================
> --- harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_properties.cpp (original)
> +++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/init/vm_properties.cpp Thu Jan 10 01:12:41
2008
> @@ -303,7 +303,7 @@
>          properties.set_new("thread.soft_unreservation", "false");
>  
>  #ifdef REFS_USE_RUNTIME_SWITCH
> -        properties.set_new("vm.compress_references", "true");
> +        properties.set_new("vm.compress_references", "false");
>  #endif
>  
>          int n_api_dll_files = sizeof(api_dll_files) / sizeof(char *);
> 
> 


Mime
View raw message