• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LCA13: Toolchain Working Group LLVM Update
 

LCA13: Toolchain Working Group LLVM Update

on

  • 222 views

Resource: LCA13

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

Statistics

Views

Total Views
222
Views on SlideShare
222
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

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.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
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) www.linaro.org Agenda What is LLVM? LLVM Team within TCWG What's been done so far What's next Discussion about Future Direction
    • ASIA 2013 (LCA13) www.linaro.org LLVM – What is it? Low Level Virtual Machine (not Virtualisation!) http://llvm.org/ 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) www.linaro.org LLVM Team in TCWG Team of 1 Renato Golin Started in January Working at the Cambridge office
    • ASIA 2013 (LCA13) www.linaro.org 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) www.linaro.org Build Bots Linaro have contributed to the LLVM Community Build Farm: A PandaBoard for testing http://lab.llvm.org:8011/builders/clang-native-arm-cortex-a9 Fine tuning improved performance and build time 10-fold A ChromeBook for benchmarking http://lab.llvm.org:8011/builders/clang-native-arm-lnt http://llvm.org/perf/db_default/v4/nts/machine/10 Proposed a GsoC project to get better reports from LNT Perf DB Working on an old (non-Linaro) ARMv5 bot http://lab.llvm.org:8011/builders/llvm-armv5-linux 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) www.linaro.org 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) www.linaro.org 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) www.linaro.org 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: www.linaro.org/connect/ More about Linaro: www.linaro.org/about/ More about Linaro engineering: www.linaro.org/engineering/ ASIA 2013 (LCA13)