Hi, Arvind & Kun<div><br></div><div><span class="Apple-style-span" style="color: rgb(94, 94, 94); font-family: arial, helvetica, clean, sans-serif; font-size: 13px; line-height: 20px; ">"Generates crap code, has tons of bugs, the community is disorganized selfish and driven by corporate bullshit"</span></div>
<div>is Open64.</div><div><br></div><div><br></div><div><br><div class="gmail_quote">2010/7/2 Ling Kun <span dir="ltr"><<a href="mailto:erlv5241@gmail.com">erlv5241@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi, Arvind Sudarsanam:<br>
I know some of Open64. Above all, Open64 is designed for a high<br>
performance compiler. It is now supported by AMD, HP, ICT Chinese<br>
Academy of Science, etc. and has been ported to X86, Itanium, Loongson<br>
CPU etc.<br>
<br>
And to your questions<br>
1, Open64 already have some main optimization phases, Inline for<br>
aggressive inline opt. LNO for loop opt, WOPT for machine independent<br>
opt( transform WHIRL to SSA , do opt, and transform back to WHIRL),<br>
CG for basic block control flow and target specific opt. You can add<br>
your passes depend on what your opt is.<br>
<br>
2, Open64 has dump_* function and traces to get plenty of debugging<br>
information. It is very helpful for developers, According to my<br>
experience, WOPT phases is a little difficult to debug, because of<br>
SSA , alias computation,etc, however, nothing is difficult if you<br>
understand it :)<br>
<br>
3,What do you mean by quality? According to SPEC CPU official websit,<br>
Open64(or pathscale) get better performance on some X86 and Itanium<br>
processors, you can find more at <a href="http://www.pathscale.com/node/18" target="_blank">http://www.pathscale.com/node/18</a> .<br>
<br>
4,Open64 has a maillist, you can get more help there.<br>
<a href="http://www.open64.net/mailing-list.html" target="_blank">http://www.open64.net/mailing-list.html</a><br>
<br>
5. Compare to LLVM and GCC, Open64's document is less. But code is<br>
the best way, and the comment gives many information. : )<br>
<br>
6, while for retarget, Open64 use a targ_info directory for machine<br>
description, such as instruction, register, and scheduling<br>
information. While for multi core processors, Open64 already have<br>
openmp support.<br>
<br>
<br>
While for LLVM, I think other guys in this maillist can give you much<br>
more information : )<br>
<br>
<br>
yours,<br>
Ling kun<br>
<div><div></div><div class="h5"><br>
<br>
On Fri, Jul 2, 2010 at 2:25 AM, Arvind Sudarsanam<br>
<<a href="mailto:A.Sudarsanam@cputech.com">A.Sudarsanam@cputech.com</a>> wrote:<br>
> Hi,<br>
><br>
> I have been working towards developing compiler optimization tools<br>
> targeting multi core processors while using LLVM IR as the starting<br>
> point and building on top of the analysis and optimization passes<br>
> available in the llvm source.<br>
><br>
> Recently, I looked into Open64 and its intermediate representation<br>
> WHIRL. Documentation for developers to use Open64 seems to be inadequate<br>
> (when compared to LLVM documentation). I am planning to download the<br>
> source and look into it.<br>
><br>
> I was wondering if anyone has worked with both LLVM and Open64 and has<br>
> some qualitative comparisons between the two. Maybe, in terms of (a)<br>
> Ease of developing new passes (2) Ease of debugging (3) Quality of<br>
> results (4) Support for developers (5) Documentation (6) Ability to<br>
> retarget towards multi core processors.<br>
><br>
> Thanks in advance<br>
> Sincerely<br>
> Arvind<br>
><br>
> CPU Technology<br>
> Software Engineer<br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
<br>
<br>
<br>
</div></div><font color="#888888">--<br>
<a href="http://www.lingcc.com" target="_blank">http://www.lingcc.com</a><br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br></div>