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...
ASIA 2013 (LCA13)
www.linaro.org
LLVM – What is it?
Low Level Virtual Machine (not Virtualisation!)
http://llvm.org/
Compi...
ASIA 2013 (LCA13)
www.linaro.org
LLVM Team in TCWG
Team of 1
Renato Golin
Started in January
Working at the Cambridge offi...
ASIA 2013 (LCA13)
www.linaro.org
LLVM Team Goals
Improve Performance on AArch32 and AArch64
Mostly back-end focused
Will d...
ASIA 2013 (LCA13)
www.linaro.org
Build Bots
Linaro have contributed to the LLVM Community Build Farm:
A PandaBoard for tes...
ASIA 2013 (LCA13)
www.linaro.org
Auto-vectorisation
LLVM 3.3 will have auto-vectorization enabled by default
Making sure A...
ASIA 2013 (LCA13)
www.linaro.org
What's next (March - July)
Build Bots
Re-introduce A15 buildbots
Increase number of LNT A...
ASIA 2013 (LCA13)
www.linaro.org
What's Next (July onwards)
What's of interest to the room...
LLVM Integrated Assembler?
U...
More about Linaro Connect: www.linaro.org/connect/
More about Linaro: www.linaro.org/about/
More about Linaro engineering:...
Upcoming SlideShare
Loading in...5
×

LCA13: Toolchain Working Group LLVM Update

233

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
233
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

LCA13: Toolchain Working Group LLVM Update

  1. 1. ASIA 2013 (LCA13) Toolchain Working Group LLVM Update Matthew Gretton-Dann Technical Lead - Toolchain Working Group
  2. 2. 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
  3. 3. 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...
  4. 4. ASIA 2013 (LCA13) www.linaro.org LLVM Team in TCWG Team of 1 Renato Golin Started in January Working at the Cambridge office
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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?
  10. 10. 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)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×