Hi,

I just found this at
http://www.satine.org/archives/2007/02/01/connect-the-dots-iphone-graphics-os-x-llvm-arm-and-ruby/

Interesting read about the performance of Mac OS X.

Connect The Dots: iPhone Graphics, OS X, LLVM, ARM, and
Ruby?<http://www.satine.org/archives/2007/02/01/connect-the-dots-iphone-graphics-os-x-llvm-arm-and-ruby/>
Filed
under: Life <http://www.satine.org/tag/life/>,
Technology<http://www.satine.org/tag/technology/>— cying @ 12:46 am

I'd like to connect the dots between Apple's iPhone Graphics, OS X, LLVM and
the ARM architecture, and what it means for compilers, interpreters,
high-performance embedded software systems, specifically in graphics and
bytecode engines.

We'll start with what the heck LLVM does, and go from there.

  - LLVM <http://www.llvm.org/> is a fascinating compiler system that
  optimizes code at many stages, from compile-time to run-time optimizations;
  e.g., your code is optimized while it's still running!
  - Apple uses LLVM to optimize OS X's
OpenGL<http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-August/006492.html>pipeline
to emulate older video hardware features and accelerate modern
  hardware.
  - Apple is integrating LLVM with GCC and supporting OS X's executable
  file format. Chris Lattner posted about it
here<http://gcc.gnu.org/ml/gcc/2005-11/msg00888.html>
  .
  - Apple has also contributed ARM backend
enhancements<http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-January/007813.html>to
LLVM that would allow a ARM version for portions of a OpenGL graphics
  pipeline, and subsequently, Core Animation.

It means that any type of performance critical code that's "interpreted" or
"pipelined", like OpenGL pipelines and JavaScript engines, can be
effectively JITed automatically through run-time optimizations via LLVM.

Let's see: Simple JavaScript engine <http://www.webkit.org/>, with automatic
JIT compiler vs. manually coded
JIT<http://www.mozilla.org/projects/tamarin/>VM and compiler… hmmm….

This also has interesting implications for high-level languages like Ruby.
Could a 
LLVM-Ruby<http://lists.cs.uiuc.edu/pipermail/llvmdev/2004-April/001018.html>provide
the performance of
YARV <http://atdot.net/yarv/> *without the complexity of a manual JIT
compiler and VM?* I know that Python's looking at
it<http://llvm.org/ProjectsWithLLVM/#pypy>
…

Plus you'd get a JIT embedded ARM mobile processor port of Ruby for nearly
free. And if that's true for Ruby… why not for all the important bits of OS
X?

Ahh, so that's how iPhone runs Mac OS
X<http://www.apple.com/iphone/technology/osx.html>…
_______________________________________________
Performance-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/performance-list

Reply via email to