[Mono-bugs] [Bug 524595] JIT produces very slow code if you use a temporary variable outside a try/catch block

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Jul 24 22:33:29 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=524595

User vargaz at gmail.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=524595#c4





--- Comment #4 from Zoltan Varga <vargaz at gmail.com>  2009-07-24 20:33:24 MDT ---
The last result shows only a 2x difference on amd64. Which could be expected
since the slow version does more work inside the loop.

The jit there generates the following code for the slow code:

<BB>:5
  20:    4d 8b ef                 mov    %r15,%r13
  23:    45 03 ee                 add    %r14d,%r13d
  26:    4d 8b fd                 mov    %r13,%r15
<BB>:4
  29:    b8 90 b1 fd 01           mov    $0x1fdb190,%eax
  2e:    48 63 00                 movslq (%rax),%rax
  31:    44 3b f8                 cmp    %eax,%r15d
  34:    7c ea                    jl     20 <nClass_Slow+0x20>

and for the fast code:

<BB>:5
  18:    45 03 fe                 add    %r14d,%r15d
<BB>:4
  1b:    b8 90 01 51 02           mov    $0x2510190,%eax
  20:    48 63 00                 movslq (%rax),%rax
  23:    44 3b f8                 cmp    %eax,%r15d
  26:    7c f0                    jl     18 <nClass_Fast+0x18>

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list