<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Apr 11, 2009, at 5:03 PM, Greg McGary wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<div bgcolor="#ffffff" text="#000000">
<font size="+1">As we've already seen, David Chisnall prefers hacking
LLVM over GCC </font><font size="+1">(see
<a class="moz-txt-link-freetext" href="http://www.informit.com/articles/article.aspx?p=1215438">http://www.informit.com/articles/article.aspx?p=1215438</a>): "In contrast,
every time I look at the GCC code, it takes two people to <br>
prevent me from clawing my eyeballs out."<br>
<br>
I'm sorry to report that so-far I have had the opposite experience. 
Some years ago, I ported binutils (via CGEN) and GCC to an embedded
RISC CPU and found it the process straightforward and pleasant.  CGEN
was especially handy for describing a sometimes quirky RISC instruction
set and offered great flexibility for factoring-out commonalities.  By
contrast, I have found TableGen to be much more rigid and brittle. 
There are too many constructs that need to be special-cased, and the
existing ports do them in gratuitously different ways.  There also seem
to be too many layers of classes and helper functions in proportion to
what's being specified.  I guess that sums-up my gripe: low
signal/noise and gratuitous complexity.  Sorry to be complaining rather
than proposing solutions.  When I better get the hang of all of this, I
expect to have some ideas on how to improve TableGen.  Is there a
development plan or wishlist for TableGen?  I see nothing on the wiki
yet.<br></font></div></blockquote><div><br></div>Surely these are two separate issues. TableGen being less than capable then CGEN doesn't have anything to do with the overall quality of rest of LLVM. Yes it's true it could be harder to port LLVM to certain architectures. But it's probably not the case for every target. Can you do a good port of x86 using CGEN? :-)</div><div><br></div><div>Evan</div><div><br><blockquote type="cite"><div bgcolor="#ffffff" text="#000000"><font size="+1">
<br>
I must also say that the LLVM code is considerably "denser" because of
the unfortunate choice of BiCapitalizedIdentifierNames.  Underscores
lend some horizontal whitespace to names and make their subtokens
visually distict.  BiCapped code is kinda like German with its
cumbersome compound nouns.<br>
<br>
Enough complaining for now--back to banging skull on stone!  8^)<br>
<br>
G<br>
<br>
</font>
</div>

_______________________________________________<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">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></body></html>