1 / 14

Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling

Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling. Petri Tuononen - 17/5/2011. Topics. What is LLVM and Eclipse CDT? W hy one should consider using LLVM toolchain? Why integrate LLVM to an IDE? D esign and implementation of LLVM plug-in for Eclipse CDT

azriel
Download Presentation

Low-Level Virtual Machine support for Eclipse C/C++ Development Tooling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

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

  8. Design & Implementation • Toolchain/tool configuration schema Petri Tuononen - 17/5/2011

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. This is the end

More Related