Presentation is loading. Please wait.

Presentation is loading. Please wait.

Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling Petri Tuononen - 17/5/2011.

Similar presentations


Presentation on theme: "Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling Petri Tuononen - 17/5/2011."— Presentation transcript:

1

2 Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling Petri Tuononen - 17/5/2011

3 Topics What is LLVM and Eclipse CDT? Why one should consider using LLVM toolchain? Why integrate LLVM to an IDE? Design and implementation of LLVM plug-in for Eclipse CDT Motivation for implementing the plug-in Petri Tuononen - 17/5/2011

4 What is LLVM? Collection of advanced cross-platform compiler tools Backend: libraries which are used to build compiler tools Backend: tools: assembler, archiver, parser, linker, optimizer, code generator etc. Front-ends: Clang & LLVM-GCC Petri Tuononen - 17/5/2011

5 What is CDT? C/C++ development environment for Eclipse Eclipse is a cross-platform IDE (Integrated Development Environment) Additional functionality to Eclipse platform is provided as plug-ins Plug-ins extend Eclipse libraries via extension points The Plug-in Development Environment plug-in is used to develop Eclipse plug-ins Petri Tuononen - 17/5/2011

6 Benefits of LLVM LLVM with Clang compiles faster than Gnu Compiler Collection Executable code runs faster Executable code is smaller in size Modularity of compiler tools Modularity allows compile-time and link-time optimization LLVM code library is simpler and smaller than GCC’s and therefore allows easier implementation of additional compiler tools Petri Tuononen - 17/5/2011

7 Why integrate LLVM to an IDE? First nonproprietary LLVM toolchain support for graphical IDE for Linux and Windows Simple and fast build process via automation No need to study man pages of dozen tools and understand all the command line options Developer gets benefits of LLVM without the need to know much about LLVM Easy to adopt LLVM Petri Tuononen - 17/5/2011

8 Design & Implementation Extensions – Build definitions: Configuration of LLVM tools and their options Petri Tuononen - 17/5/2011

9 Design & Implementation Toolchain/tool configuration schema Petri Tuononen - 17/5/2011

10 Design & Implementation Extensions – Preference page: provides user interface for workspace-wide preference settings – Preference store: to store preference page values – Preference initializer: to initialize preference page values – Template associations: associates toolchains to project wizards Petri Tuononen - 17/5/2011

11 Design & Implementation Extensions – Scanner discovery profile: automatically find compiler specific include paths – Environment variable supplier: store/get/set LLVM specific system environment variables – Project nature: tag LLVM specific projects Petri Tuononen - 17/5/2011

12 Contributing to Eclipse Foundation Plan to integrate as a part of CDT 9.0 Will to help developing CDT Regular discussions with CDT developers to get ideas and clues Other CDT developers may provide maintenance and patches All CDT users will have out-of-the-box LLVM capability Petri Tuononen - 17/5/2011

13 Final words The LLVM plug-in has had a very positive reception Received suggestion and testing help from end-users/developers Long waited feature Petri Tuononen - 17/5/2011

14 Thanks! C/C++ developers might want to test if their project can benefit from LLVM Any suggestions, patches and testing help are more than welcome Project website http://code.google.com/p/llvm4eclipsecdt Eclipse marketplace http://marketplace.eclipse.org/node/28778 Petri Tuononen - 17/5/2011

15 This is the end


Download ppt "Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling Petri Tuononen - 17/5/2011."

Similar presentations


Ads by Google