[Mono-bugs] [Bug 47968][Cri] New - mono crashes when executing a program that relies heavily on structs

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Wed, 27 Aug 2003 15:16:03 -0400 (EDT)

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by klaehn@gamemakers.de.


--- shadow/47968	2003-08-27 15:16:03.000000000 -0400
+++ shadow/47968.tmp.32568	2003-08-27 15:16:03.000000000 -0400
@@ -0,0 +1,45 @@
+Bug#: 47968
+Product: Mono/MCS
+Version: unspecified
+OS: All
+OS Details: Tried with Windows and Debian Unstable
+Status: NEW   
+Priority: Critical
+Component: Misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: klaehn@gamemakers.de               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+Summary: mono crashes when executing a program that relies heavily on structs
+I wrote a matrix and vector library in cs, which uses only structs for 
+performance reasons. The performance under microsoft.net is quite bad 
+since it is incapable of inlining many simple method calls. You have to 
+make the code quite ugly by using lots of static methods and ref 
+parameters to get decent performance. 
+I wanted to check out wether mono would do better, but it does not even 
+run it! I tried both aot and jit.
+Here is the output of the program. I also tried this under debian 
+unstable, with the same result, so it is not OS specific.
+C:\Documents and Settings\Ruediger Klaehn\My Documents\SharpDevelop 
+Projects\MatrixBenchmark>mono Benchmark.exe
+** (Benchmark.exe:2876): WARNING **: wrong maximal instruction length of 
+instruction vcall (expected 8, got 11)
+This application has requested the Runtime to terminate it in an unusual 
+If you are interested in the code then contact me. It should be a nice 
+benchmark for the quality of the JIT and AOT compiler once it compiles. 
+It contains lots of small methods and temporary creation of structs, but 
+a decent optimizer should be able to reduce it to a few instructions.