<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
And what needs to be done to get the global allocator to work?<br>
<br>
Rodrigo Kumpera wrote:
<blockquote
 cite="mid:8cca42d81003111556h6547c528t6eff3f647be32204@mail.gmail.com"
 type="cite">Hi Sergei,<br>
  <br>
  <div class="gmail_quote">On Thu, Mar 11, 2010 at 8:30 PM, Sergei
Dyshel <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:qyron.private@gmail.com">qyron.private@gmail.com</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello,<br>
I'm doing some research on vectorization using Mono. I've noticed that<br>
code generated by Mono's JIT contains many unnecessary memory loads<br>
and stores. Here is simple example, the full code is attached:<br>
    <br>
public static unsafe int sum(int* a, int size) {<br>
&nbsp;Vector4i temp = new Vector4i();<br>
&nbsp;Vector4i* p = (Vector4i*) a;<br>
&nbsp;for (int i = 0; i &lt; size/4; i++) {<br>
&nbsp; &nbsp;temp += *p;<br>
&nbsp; &nbsp;p += 1;<br>
&nbsp;}<br>
&nbsp;return temp.X + temp.Y + temp.Z + temp.W;<br>
}<br>
    <br>
  </blockquote>
  <div><br>
&nbsp;<br>
  </div>
  </div>
The problem you're seen of going to memory when not needed is due to
the fact that<br>
mono lacks a working global register allocator. If you use a value in a
single basic block,<br>
you'll notice that it's kept in memory the whole time.<br>
  <br>
We don't eliminate a lot of redundancies, even under SSA, because our
JIT doesn't know how<br>
to handle SIMD ops under that form. It's an open problem requiring some
work. The same<br>
applies to our global register allocator.<br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Mono-devel-list mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a>
<a class="moz-txt-link-freetext" href="http://lists.ximian.com/mailman/listinfo/mono-devel-list">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a>
  </pre>
</blockquote>
<br>
</body>
</html>