You're viewing an article in iPO's historic archive vault. Here, we've preserved the comments and how the site looked along with the article. Use this link to view the article on our current site: An iPhone Performance Secret: LLVM

News

An iPhone Performance Secret: LLVM

Apple has found a way to achieve amazing graphics speed a shirt pocket device, the iPhone, by using a special form of code optimization called "Low Level Virtual Machine," (LLVM) according to graphics and algorithms specialist Charles Ying.

Mr. Ying wrote Thursday that Apple has taken the approach of using its expertise in Mac OS X, OpenGL, and code optimization via LLVM in the development in the iPhone.

Small personal electronics that can fit in your pocket are always short of the electrical power required for fast video processing. And yet Apple has demonstrated very impressive graphics capabilities with the iPhone. The key is extensive code optimization at every stage, from the CPU to the graphics system, from compile to runtime, and that can be done with LLVM.

Because the iPhone is running "OS X," a variant of Mac OS X, Apple can take advantage of their expertise in OpenGL graphics used by Mac OS X to achieve the amazing scrolling feature and finger resizing of graphics of the iPhone. But any interpreted interface, like OpenGL would have to be highly optimized to achieve that kind of performance in a small device. With LLVM, the programmer can enable program optimization in every realm: compile, link, and even at runtime.

Apple has taken several steps to achieve this. Apple has quietly contributed ARM enhancements to LLVM. Secondly, LLVM has been integrated with Apple's primary compiler in Xcode, called gcc.

When all is said and done, Apple has achieved a highly optimized OS X and Open GL code base that can exploit Core Animation on an ARM processor.

This is very likely why Apple chose to use "OS X" in the iPhone and how Apple can achieve amazing graphics in a shirt pocket device with limited electrical power.


Warning: include(/var/www/bbm/ipodobserver.com/htdocs/comments/includes/constants.php) [function.include]: failed to open stream: No such file or directory in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 188

Warning: include() [function.include]: Failed opening '/var/www/bbm/ipodobserver.com/htdocs/comments/includes/constants.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 188

Warning: include(/var/www/bbm/ipodobserver.com/htdocs/comments/includes/template.php) [function.include]: failed to open stream: No such file or directory in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 189

Warning: include() [function.include]: Failed opening '/var/www/bbm/ipodobserver.com/htdocs/comments/includes/template.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 189

Warning: include(/var/www/bbm/ipodobserver.com/htdocs/comments/includes/sessions.php) [function.include]: failed to open stream: No such file or directory in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 190

Warning: include() [function.include]: Failed opening '/var/www/bbm/ipodobserver.com/htdocs/comments/includes/sessions.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 190

Warning: include(/var/www/bbm/ipodobserver.com/htdocs/comments/includes/auth.php) [function.include]: failed to open stream: No such file or directory in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 191

Warning: include() [function.include]: Failed opening '/var/www/bbm/ipodobserver.com/htdocs/comments/includes/auth.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 191

Warning: include(/var/www/bbm/ipodobserver.com/htdocs/comments/includes/functions.php) [function.include]: failed to open stream: No such file or directory in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 192

Warning: include() [function.include]: Failed opening '/var/www/bbm/ipodobserver.com/htdocs/comments/includes/functions.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 192

Warning: include(/var/www/bbm/ipodobserver.com/htdocs/comments/includes/db.php) [function.include]: failed to open stream: No such file or directory in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 193

Warning: include() [function.include]: Failed opening '/var/www/bbm/ipodobserver.com/htdocs/comments/includes/db.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 193

Fatal error: Call to undefined function encode_ip() in /var/www/bbm/ipodobserver.com/htdocs/comments/common.php on line 204