SlideShare a Scribd company logo
1 of 10
Download to read offline
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)

More Related Content

More from Linaro

HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
Linaro
 

More from Linaro (20)

Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 

LCA13: Toolchain Working Group LLVM Update

  • 1. ASIA 2013 (LCA13) Toolchain Working Group LLVM Update Matthew Gretton-Dann Technical Lead - Toolchain Working Group
  • 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. 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. ASIA 2013 (LCA13) www.linaro.org LLVM Team in TCWG Team of 1 Renato Golin Started in January Working at the Cambridge office
  • 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. 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. 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. 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. 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. 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)