Note that there are some explanatory texts on larger screens.

plurals
  1. PODifferences between open64 versus llvm compilers
    primarykey
    data
    text
    <p>Could someone point out the differences between the open64 and llvm?</p> <p>I know that the open64 uses whirl IR which has 5 stages and differs a lot since each stage lowers significantly the code to the machine whereas the llvm has a single IR which is used in midlevel optimizations, later is lowered into target independent instructions (dags) and dependent ones. </p> <p><strong>1)</strong> Is whirl also SSA,<br> <strong>2)</strong> and does it uses virtual registers,<br> <strong>3)</strong> does open64 has modular design like llvm,<br> <strong>4)</strong> is it easy to develop pass and plug it into the toolchain?</p> <p>Both compilers excel at midlevel interprocedural optimizations and transformations but<br> <strong>5)</strong> does open64 have support for JITting or any kinds of dynamic translation natively built into the framework?</p> <p>It looks that the quality of CG more or less is similar in both cases.<br> <strong>6)</strong> What about the front ends, is it possible to easily extend ones with pragmas or bind new ones without modifying the Whirl IR (that is the problem with SUIF)?</p> <p>As far as I can tell the open64 is widely used in many commercial and academical projects (UPC, AMD, Nvidia, Tensilica) but it looks that there are many branches of it (growing after 2003) and each has it's own features and limitations. Moreover, there isn't fixed developer community and environment or support, the documentation hardly exists in contrast to the llvm, and simply there isn't simple one direction in which the compiler advances.</p> <p>There are also differences in licensing where the llvm matches more to BSD licensing style and the open64 is based on GPL.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload