[LLVMdev] Qualitative comparisons between Open64 and llvm

Ling Kun erlv5241 at gmail.com
Thu Jul 1 19:44:09 PDT 2010


Hi, Arvind Sudarsanam:
   I  know some of Open64. Above all, Open64 is designed for a high
performance compiler. It is now supported by AMD, HP, ICT Chinese
Academy of Science, etc. and has been ported to X86, Itanium, Loongson
CPU etc.

And to your questions
1, Open64 already have some main  optimization phases, Inline for
aggressive inline opt. LNO for loop opt, WOPT for machine independent
opt( transform WHIRL to SSA ,  do opt, and transform back to WHIRL),
CG for basic block control flow and target specific opt. You can add
your  passes depend on what your opt is.

2, Open64 has dump_* function and traces to get plenty of  debugging
information. It is very helpful for developers,  According to my
experience, WOPT phases is a little  difficult to debug, because of
SSA , alias computation,etc, however, nothing is difficult if you
understand it :)

3,What do you mean by quality? According to SPEC CPU official websit,
Open64(or pathscale) get better performance on some X86 and Itanium
processors, you can find more at http://www.pathscale.com/node/18 .

4,Open64 has a maillist, you can get more help there.
http://www.open64.net/mailing-list.html

5. Compare to LLVM and GCC, Open64's document is  less. But code is
the best way, and the comment gives many information.  : )

6, while for retarget, Open64 use a targ_info directory for machine
description, such as instruction, register, and scheduling
information. While for multi core processors, Open64 already have
openmp support.


While for LLVM, I think other guys in this maillist can give you much
more information : )


yours,
 Ling kun


On Fri, Jul 2, 2010 at 2:25 AM, Arvind Sudarsanam
<A.Sudarsanam at cputech.com> wrote:
> Hi,
>
> I have been working towards developing compiler optimization tools
> targeting multi core processors while using LLVM IR as the starting
> point and building on top of the analysis and optimization passes
> available in the llvm source.
>
> Recently, I looked into Open64 and its intermediate representation
> WHIRL. Documentation for developers to use Open64 seems to be inadequate
> (when compared to LLVM documentation). I am planning to download the
> source and look into it.
>
> I was wondering if anyone has worked with both LLVM and Open64 and has
> some qualitative comparisons between the two. Maybe, in terms of (a)
> Ease of developing new passes (2) Ease of debugging (3) Quality of
> results (4) Support for developers (5) Documentation (6) Ability to
> retarget towards multi core processors.
>
> Thanks in advance
> Sincerely
> Arvind
>
> CPU Technology
> Software Engineer
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



-- 
http://www.lingcc.com




More information about the llvm-dev mailing list