Array

Array

A Compilation Framework for Lifelong Program Analysis & Transformation

Life-Long Program Optimization:

* Multiple-stages of analysis & transformation:
o compile-time, link-time, install-time, run-time, idle-time
o Use aggressive interprocedural optimizations
o Gather and exploit end-user profile information
o Tune the application to the user’s hardware
* But what constraints do we have to meet?
o Can’t interfere with the build process!
o Must support multiple source-!
o Must integrate with legacy systems and components!

Five key capabilities are needed:

* A persistent, rich code representation
o Enables analysis & optimization throughout lifetime
* Offline native code generation
o Must be able to generate high-quality code statically
* Profiling & optimization in the field
o Adapt to the end-user’s usage patterns
* Language independence
o No runtime, object model, or exception semantics
* Uniform whole-program optimization
o Allow optimization across languages and runtime

Our approach: The LLVM System

* Use a low-level, but typed, representation:
o Type information allows important high-level analysis
o Code representation is truly language neutral
o Allow off-line and runtime native code generation

* Our specific contributions:
o Novel features for language independence:
+ Typed arithmetic, exception mechanisms
o Novel capabilities:
+ First to su

download form Source

Popularity: 10% [?]

Share

Tags: , , , , , , ,

Related News - Architecture

AppFuse Architecture

Architecture and Design

A Compilation Framework for Lifelong Program Analysis & Transformation

Towards a New Naming Architectures

UPnP Device Architecture

Leave a Reply

*