LLVM projects you may not be aware of

All Mac and iPhone OS developers must by now be familiar with LLVM, the Low-Level Virtual Machine compiler that Apple has backed in preference to GCC (presumably at least partially because because GCC 4.5 is now a GPLv3 project, in addition to technical problems with improving the older compiler). You’ll also be familiar with Clang, the modular C/ObjC/C++ lexer/parser that can be used as an LLVM front-end, or as a library for providing static analysis, refactoring and other code comprehension facilities. And of course MacRuby uses LLVM’s optimisation libraries.

The LLVM umbrella also covers a number of other projects that Mac/iPhone developers may not yet have heard about, but which nonetheless are pretty cool. This post is just a little tour of some of those. There are other projects that have made use of LLVM code, but which aren’t part of the compiler project – they are not the subject of this post.

LibC++ is a C++ library, targeting 100% compatibility with the C++0x (draft) standard.

KLEE looks very cool. It’s a “symbolic execution tool”, capable of automatically generating unit tests for software with high degrees of coverage (well over 90%). Additionally, given information about an application’s constraints and requirements it can automatically discover bugs, generating failing tests to demonstrate the bug and become part of the test suite. There’s a paper describing KLEE including a walkthrough of discovering a bug in tr, and tutorials in its use.

vmkit is a substrate layer for running bytecode. It takes high-level bytecode (currently JVM bytecode or IL, the bytecode of the .Net runtime) and translates it to IR, the LLVM intermediate representation. In doing so it can make use of LLVM’s optimisations and make better decisions regarding garbage collection.

This entry was posted in C++, Java, objc. Bookmark the permalink.

27 Responses to LLVM projects you may not be aware of

  1. Anonymous says:

    Wise men learn by other mens mistakes; fools by their own.......................................................

  2. Anonymous says:

    道歉是人類一定必要的禮節 ..................................................

  3. 淑芬楊 says:

    ^^~~輕輕鬆鬆的逛部落格,多謝有您的分享哦~~~ .................................................................

  4. Anonymous says:

    在莫非定律中有項笨蛋定律:「一個組織中的笨蛋,恆大於等於三分之二。」.................................................................

  5. Anonymous says:

    人不能像動物一樣活著,而應該追求知識和美德....................................................................

  6. Anonymous says:

    當一個人內心能容納兩樣相互衝突的東西,這個人便開始變得有價值了。............................................................

  7. Anonymous says:

    原來天鵝嫁給癩蛤蟆就會生出醜小鴨。。。............................................................

  8. Anonymous says:

    If you can not be kind, at least have the decency to be vague.............................................................

  9. Anonymous says:

    來幫忙拼人氣~Go Go Go 時間可證明一切.................................................................

  10. Anonymous says:
  11. Anonymous says:

    培養健全孩子最好的方法是父母先成為健全的人。............................................................

  12. Anonymous says:

    經一事,長一智。經驗是良師 experience is the best teacher.............................................................

  13. Anonymous says:

    良言一句三冬暖,惡語傷人六月寒。......................................................................

  14. 我們能互相給予的最佳禮物是「真心的關懷」。.................................................

  15. Anonymous says:

    困難的不在於新概念,而在於逃避舊有的概念。......................................................................

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.