LCA13: Toolchain Working Group LLVM Update
Upcoming SlideShare
Loading in...5

LCA13: Toolchain Working Group LLVM Update



Resource: LCA13

Resource: LCA13
Name: Toolchain Working Group LLVM Update
Date: 04-03-2013
Speaker: Matthew Gretton-Dann



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

LCA13: Toolchain Working Group LLVM Update LCA13: Toolchain Working Group LLVM Update Presentation Transcript

  • ASIA 2013 (LCA13) Toolchain Working Group LLVM Update Matthew Gretton-Dann Technical Lead - Toolchain Working Group
  • ASIA 2013 (LCA13) Agenda What is LLVM? LLVM Team within TCWG What's been done so far What's next Discussion about Future Direction
  • ASIA 2013 (LCA13) LLVM – What is it? Low Level Virtual Machine (not Virtualisation!) Compiler and Code Generation Framework Not one project but many LLVM core: Libraries, optimizations, back-ends Clang: C/C++ front-end Libc++: C++ STL Compiler-rt: Run-time libraries Dragon egg: GCC back-end (ie. Using GCC's front-end) LLDB: Symbolic debugger, using JIT, disassembler, Clang's AST Polly: Auto-parallelism using polyhedral model Etc...
  • ASIA 2013 (LCA13) LLVM Team in TCWG Team of 1 Renato Golin Started in January Working at the Cambridge office
  • ASIA 2013 (LCA13) LLVM Team Goals Improve Performance on AArch32 and AArch64 Mostly back-end focused Will do mid-end work where appropriate Front-end agnostic Support the Community Support the Continuous Integration infrastructure Investigate and fix ARM specific issues as they arise Review patches that affect ARM on the short/medium term Help organize LLVM social events and conferences
  • ASIA 2013 (LCA13) Build Bots Linaro have contributed to the LLVM Community Build Farm: A PandaBoard for testing Fine tuning improved performance and build time 10-fold A ChromeBook for benchmarking Proposed a GsoC project to get better reports from LNT Perf DB Working on an old (non-Linaro) ARMv5 bot Commits are being tested on ARM boards immediately Build breakages noticed within hours, some fixed independently ARM bot is now recognized as always-green Continuous work to keep it green is lower than fixing bugs after weeks of it being introduced
  • ASIA 2013 (LCA13) Auto-vectorisation LLVM 3.3 will have auto-vectorization enabled by default Making sure ARM support is enabled from day 1 Overnight testing with vectorizer enabled Internal testing on micro-benchmarks Discussing with the community Working on the vectorizer to understand infrastructure Added cost model infrastructure to ARM Target Transform Info Added generic alias analysis for global structure members Discussions about some problems with cost model
  • ASIA 2013 (LCA13) What's next (March - July) Build Bots Re-introduce A15 buildbots Increase number of LNT A15 buildbots Add AArch64 build-bots Performance Continue supporting vectorization work Update cost model tables Cross-check Loop and BasicBlock vectorizers Enhance cost model to account for side-effects Enhance benchmark coverage and reporting More LNT bots Better reporting, warning system Fine-tune LNT benchmarks for ARM
  • ASIA 2013 (LCA13) What's Next (July onwards) What's of interest to the room... LLVM Integrated Assembler? Use it instead of GAS for ELF emission Re-enable GAS for Gnu-specific behaviour Zero-Cost Exception Handling? Only basic examples work on ARM SjLj works on Darwin Cross-compilation infrastructure? Command-line options nightmare! Will GsoC project proposal be taken? Study big.LITTLE impact? Discussion about IFUNC support in LLVM OpenCL? LLVMpipe? Renderscript? We're front-end agnostic, but IR produced by them is different How important is it for that IR to run efficiently on NEON?
  • More about Linaro Connect: More about Linaro: More about Linaro engineering: ASIA 2013 (LCA13)