LLVM Helps Bring Flash to iPhone

10/8/2009

Prof. Vikram Adve's open source LLVM compilation strategy enabled Adobe to create Flash applications for the iPhone.

Written by

Wondering how Adobe was able to get Flash onto the iPhone, despite Apple’s prohibition against anyone’s runtime modules from appearing?

Look no further than University Illinois computer science professor Vikram Adve’s lab, where he and his students continue to work and support their open source Low Level Virtual Machine, or LLVM.  LLVM is a unique compilation strategy able to do sophisticated tasks throughout the complete lifecycle of a process: compile-time, link-time, install-time, load-time, run-time, and even idle-time.

Designed from the ground up as a framework for lifelong code representation, LLVM is designed to enable effective program optimization across the entire lifetime of a program.  LLVM is capable of supporting both sophisticated cross-module inter-procedural optimization and very fast run-time optimization and code generation. These capabilities make LLVM well-suited for developers looking to create new mid-level language-independent analyses and optimizations of all sorts, including those that require extensive inter-procedural analysis.

As Aditya Bansod, an Adobe engineer, blogged on Monday, "We created a new compiler front end that allowed LLVM to understand ActionScript 3 and used its existing ARM back end to output native ARM assembly code. We call this Ahead of Time (AOT) compilation -- in contrast to the way Adobe Flash Player and Adobe AIR function on the desktop using Just in Time (JIT) compilation. Since we are able to compile ActionScript to ARM ahead of time, the application gets all the performance benefits that the JIT would offer and the license compliance of not requiring a runtime in the final application."

This week's announcement from Adobe comes on the heels of the 3nd LLVM Developer's Meeting, held in California last week.  The conference boasted 190 attendees (up from 110 last year), 59 companies (up from about 35), and over $10,000 in company sponsorships from Google, Adobe, Qualcomm and Apple.

Read a complete article about how LLVM brought Flash to the iPhone: http://www.betanews.com/article/Clever-Adobe-compilation-trick-sneaks-Flash-apps-onto-iPhone/1254946502.  Or, view an Adobe video discussing Flash development on the iPhone platform here: http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/#divider.
 


Share this story

This story was published October 8, 2009.