SlideShare a Scribd company logo
1 of 26
Download to read offline
Presented by
Date
Event
HKG15-203: TCWG 2015
Roadmap Review
Ryan S. Arnold
Engineering Manager
Linaro Toolchain Working Group
February 10, 2015
Linaro Connect HKG15
TCWG 2015 Roadmap Review
● TCWG Priorities
● High Level Roadmaps - GNU & LLVM
● ONGOING efforts
○ Linaro Toolchain Products
○ GNU Toolchain
○ LLVM Toolchain
● GNU Toolchain Development - Specifics
● LLVM Toolchain Development - Specifics
2015 TCWG Priorities
1. GNU Toolchain Development
2. Toolchain Releases
3. LLVM Development
4. Member Requests
Strategy: Align development effort toward 80%
development and 20% products.
Methodology: Be more efficient through automation.
LC-HKG15 LC-next
Oct ‘14 Nov ‘14 Dec ‘14 Jan ‘15 Feb ‘15 Oct ‘15Apr ‘15 Jun ‘15 Aug ‘15 Apr ‘16 Oct ‘16 Apr ‘17 Oct ‘17
Benchmark Automation Enablement
ILP32 Toolchain Integration
GCC Thread Sanitizer for Aarch64
Upstream NEON Intrinsics Tests
Libm Performance Investigations
GDB for Android on ARM64
Multiple GDB watchpoint support for ARM
Watchpoint Support for Aarch64
GDB Testsuite Coverage Improvements
Aarch32 Binary Toolchains
x86_64 Binary Toolchains
Native Binary Toolchains
GCC Modularization
Non-stop debugging for Aarch64
Linaro Toolchain Quarterly Binary Releases,
Monthly Linaro GCC Source releases (including backports),
Release Validation,
Periodic GNU Toolchain Package Releases (glibc, binutils, GDB),
ONGOING: GNU Toolchain Maintenance (bug fixing),
Monthly GCC Benchmarking,
GCC Performance Development,
System Library Performance,
Toolchain Validation Automation Improvements
GNU Toolchain Roadmap long-term due to minimal investment
LLVM Toolchain RoadmapLC-HKG15 LC-next
Oct ‘14 Nov ‘14 Dec ‘14 Jan ‘15 Feb ‘15 Oct ‘15Apr ‘15 Jun ‘15 Aug ‘15 Apr ‘16 Oct ‘16 Apr ‘17 Oct ‘17
ONGOING:LLVM community releases, LLVM community maintenance, LLVM Buildbots, LLVM Libraries,
LLVM Linux Kernel
LLVM Linker (LLD) for ELF on Aarch64 and Aarch32
LLDB for Aarch64
LLVM Thread Sanitizer for Aarch64
LLD Buildbot Enablement
Sanitizer Bots
LLDB Buildbot Enablement
LLVM Linux Kernel
LLVM Performance
Other Sanitizers (undef,
address, etc) for Aarch64
LLVM Incubation for Aarch64
long-term due to lack of staffing
long-term due to minimal investment
TCWG Ongoing Efforts
● GNU Toolchain Ongoing Efforts
○ Linaro Toolchain Products
■ Monthly Linaro GCC Source releases (including backports)
■ Linaro Toolchain Quarterly Binary Releases
■ Periodic GNU Toolchain Package Releases (glibc, binutils, GDB)
■ Linaro GNU Toolchain Release Validation
■ Monthly Toolchain Benchmarking
○ Development
■ GNU Toolchain Maintenance (bug fixing)
■ GCC Performance Development
■ System Library Performance Improvements
■ Toolchain Validation Automation Improvements
● LLVM Toolchain Ongoing Efforts
○ LLVM community releases
○ LLVM community maintenance
○ LLVM Buildbots
○ LLVM Libraries
○ LLVM Linux Kernel
Linaro Toolchain Products for 2015
● Source Package Releases
○ Linaro GCC 4.9 Maintenance Quarterly Source Release
○ Linaro GCC 5.0 Backports Monthly Source Release
○ Linaro Glibc (as-needed) Source Releases
○ Linaro Binutils (as-needed) Source Releases
○ Linaro GDB (as-needed) Source Releases
● Quarterly Binary Releases
○ Linaro GCC 4.9 Maintenance Quarterly Binary Release
○ Linaro GCC 5.0 Backports Quarterly Binary Release
Confidential
TCWG Toolchain Release Schedule (planned)
May Aug Nov Feb
May Jun Jul Aug Sep Oct Nov Dec Jan Feb
Feb May Aug Nov Feb
Linaro GCC
4.9 (binary)
Linaro GCC
5.0 (source)
Feb May Aug Nov FebMar
Linaro GCC
4.9 (source)
Linaro GCC
5.0 (binary)
Feb
FebLinaro GCC
4.8 (source)
Linaro GCC
4.8 (binary)
2015 2016
Apr
Last Linaro GCC 4.8
maintenance
quarterly binary
release
First Linaro GCC 4.9
maintenance
quarterly binary
release
First Linaro GCC 5.0
quarterly stable
binary release
Possible first
Linaro GCC 5.0
source release
● Target - 25 backports a month
● Reality - 25+ backports a month
● Objective - increase efficiency of
backporting to provide greater flexibility w/rt
staffing other initiatives while continuing to
hit backport targets.
Linaro GCC Stable Backporting Effort
● Method
○ early in product release life-cycle
■ Backport based on consecutive revisions
○ late in product release life-cycle
■ Backport more selectively based upon suspected
performance gains
○ respin when releases when necessary
Linaro GCC Stable Backporting Effort
(continued)
Linaro GCC 4.9 Backports stats
Release
Version
Number of
Backports
Comment
2014.04 0 First Linaro GCC 4.9 Release based on FSF GCC 4.9.0
2014.05 5 Limited Backports Available for backporting
2014.06 41 Used for first ARMv8 Linaro Release
2014.07 65 Including 1 respin of 2014.06
2014.08 39
2014.09 30 LCU14
2014.10 33
2014.11 2 Linaro Lab Move. 2 backports for A53 errata fixes
2014.12 51
2015.01 33
Sum: 299 + FSF Branch Merge each release
Linaro Validation Automation
● Automate backporting using backflip (best-case)
● Backport(s) triggers gerrit review
○ triggers jenkins automated validation on myriad of targets
■ triggers automated update of pass/fail regression information in gerrit
● triggers jenkins backport benchmark automation
○ triggers performance regression information in gerrit
○ All backports together create a release
■ release triggers jenkins automated release benchmarking
○ Release that passes performance regression testing triggers the
binary toolchain build.
● From the first backport to quarterly binary release the
build environment is held as constant as possible and
the resulting toolchain is made available.
Linaro GCC Automated Benchmarking
● Activities:
○ Release Benchmarking (SPEC2K6)
○ Automated Regression Benchmarking for each backport
○ Investigative Benchmarking for performance improvements
○ Pre-commit Benchmarking for upstreaming
○ Development Benchmarking to prove efficacy of patches
● Reality:
○ We’re looking forward to improved hardware becoming available in 2015
■ hardware stability (ARMv8 maturing & options)
■ system images (automation ready out-of-the box)
GCC Performance
● Areas & Examples:
○ Member/Stakeholder Identified Performance Improvements
■ Zero-Sign Extension Elimination using Value-Range-Propagation Pass in GCC
Middle End
■ Drop in Stream Benchmark Performance
■ Libvpx Neon Intrinsics Usage
○ Linaro GCC 4.9/5.0 Toolchain Performance Regressions
■ Compare month over month performance results and triage into bugzilla
○ Feature Exploitation
■ Auto-vectorization using NEON
○ Comparing relative gains between Aarch64 and x86_64
■ LTO instruction counts on Aarch64 vs x86_64.
LLVM Community Stewardship
● LLVM Maintenance
● LLVM Buildbots
● LLVM Releases
● LLVM Libraries
● LLVM & GCC Liaison
● LLVM Linux Kernel
GNU Toolchain Development - Specifics
Efforts of interest:
● GCC Modularization
● GDB Test-Suite Coverage for Arch32/Aarch64
● ILP32 Toolchain Integration and Benchmarking
● GCC Thread Sanitizer for Aarch64
Not mentioned are the ONGOING GCC Performance
efforts described earlier.
GCC Modularization
● Description:
This is a long-term, low-investment effort to decouple the GCC front, middle, and back ends from
each other to enable a single compiler driver to compile code for several different backends.
● Objective(s):
○ Header file flattening
○ Include File Reduction
○ Turn Target Macros into target hooks
○ Split tree.[hc]
● Reason(s):
○ Reduce unique instances of toolchain products to reduce maintenance and release costs.
○ Deploy/Update a single toolchain instance to in-field products to reduce complexity,
support, delivery, etc.
○ Provide use experience for arm/Aarch64 that matches experience for other architectures.
● Status: Staffed
○ Create front-end interface
○ Replace TYPE nodes with Gimple wrappers
○ Enhance Gimple builders
○ Remove gimplification
GDB Test-Suite Coverage for
Arch32/Aarch64
● Description:
Cover GDB test-suite gaps in the following:
● Objective(s):
○ Parity between x86[64] and Aarch[32|64]
○ Parity between Aarch32 and Aarch64
○ Mix-mode debuggings (e.g., thumb & arm interlaced)
○ Improving known and discovered failures for Aarch32 and Aarch64
○ Address debug info bugs
○ Available feature testing
● Reason(s):
Guarantee high-quality debugging support on arm/Aarch64.
● Status: Staffed
ILP32 Toolchain Integration and
Benchmarking
● Description:
Produce a Linaro based ILP32 toolchain from upstreamed/pending sources to investigate
performance characteristics as compared to Aarch32.
● Objective(s):
○ Enable ABE to build ILP32 toolchain
○ Benchmark ILP32 vs Aarch32 on Juno
○ Identify gaps and plan accordingly
■ Upstream state of Linux Kernel and Glibc support
■ Investigate performance improvement opportunities
● Reason(s):
Investigate performance characteristics of ILP32.
● Status: Staffed
GCC Thread Sanitizer for Aarch64
● Description:
Implement thread sanitizer for Aarch64
● Objective(s):
○ Enable GCC configury for TSAN.
○ Port TSAN to Aarch64 for a variety of Virtual Address Spaces
○ Upstream port/enablement into LLVM
○ Upstream port/enablement into GCC
● Reason(s):
Member desire for powerful analysis tools.
● Status: Staffed
LLVM Toolchain Development - Specifics
Efforts of interest:
● LLVM Linker
● LLDB
● LLVM Benchmarking
● LLVM Performance
LLVM Linker - LLD
● Description:
This is the effort to port the LLVM Linker LLD to the ELF ABI for Aarch64 and prepare it for
eventual inclusion into the LLVM Toolchain.
● Objective(s):
○ Base ELF enablement for Aarch64 (ELF sections, Symbols, ARM & Aarch64 Relocations,
Name Mangling).
○ Interoperability of binaries linked with LLD and binutils ld.
○ LTO Support
○ Features in MCLinker missing in LLD
○ Make LLDB linked objects compatible with oldest ABI in the linking group.
● Reason(s):
○ Broad adoption of LLVM toolchain requires an integrated link-editor.
● Status: Staffed
LLDB
● Description:
This describes an effort to implement arm and Aarch64 debugging support for the ELF ABI in
LLDB.
● Objective(s):
○ arm native debugging (it’s easier right away than cross)
○ x86_64 -> arm remote debugging
○ LLDB debugging itself
○ x86_64 native debugging
○ x86_64 -> aarch64 remote debugging
● Reason(s):
○ Support most common existing devices and move to support next generation of common
devices.
○ Broad adoption of LLVM toolchain requires an integrated link-editor.
● Status: Staffed
LLVM Benchmarking
● Description:
This describes an effort implement benchmarking automation with the LLVM toolchain and to
analyze and triage the results into regressions and/or opportunities.
● Objective(s):
○ ABE enablement for LLVM Builds
○ ABE enablement for LLVM Benchmarking
○ Jenkins triggers for LLVM Builds
○ Jenkins triggers for LLVM Benchmarking
○ Procedures for triaging issues into regression and opportunities.
● Reason(s):
This is a prerequisite to any in-depth LLVM Performance effort.
● Status: Partially Staffed
LLVM Performance
● Description:
This describes an effort to improve performance of LLVM and make it competitive with GCC on
arm and Aarch64 by responding to ongoing benchmarking investigations into the following
areas:
● Objective(s):
○ EEMBC
○ SPEC2K
○ SPEC2K6
○ Auto-vectorization
● Reason(s):
● Status: Not Staffed
HKG15-203: TCWG 2015 Roadmap Review

More Related Content

Viewers also liked

Viewers also liked (10)

HKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolationHKG15-305: Real Time processing comparing the RT patch vs Core isolation
HKG15-305: Real Time processing comparing the RT patch vs Core isolation
 
HKG15-101: Programming for Performance
HKG15-101: Programming for PerformanceHKG15-101: Programming for Performance
HKG15-101: Programming for Performance
 
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driverSFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
 
SFO15-TR2: Upstreaming 101
SFO15-TR2: Upstreaming 101SFO15-TR2: Upstreaming 101
SFO15-TR2: Upstreaming 101
 
HKG15-901: Upstreaming 101
HKG15-901: Upstreaming 101HKG15-901: Upstreaming 101
HKG15-901: Upstreaming 101
 
BKK16-104 sched-freq
BKK16-104 sched-freqBKK16-104 sched-freq
BKK16-104 sched-freq
 
LAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backporting
 
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)HKG15-107: ACPI Power Management on ARM64 Servers (v2)
HKG15-107: ACPI Power Management on ARM64 Servers (v2)
 
SFO15-301: Benchmarking Best Practices 101
SFO15-301: Benchmarking Best Practices 101SFO15-301: Benchmarking Best Practices 101
SFO15-301: Benchmarking Best Practices 101
 
BKK16-411 Devicetree Specification
BKK16-411 Devicetree SpecificationBKK16-411 Devicetree Specification
BKK16-411 Devicetree Specification
 

More from Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
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
 

More from Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
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
 

Recently uploaded

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

HKG15-203: TCWG 2015 Roadmap Review

  • 1. Presented by Date Event HKG15-203: TCWG 2015 Roadmap Review Ryan S. Arnold Engineering Manager Linaro Toolchain Working Group February 10, 2015 Linaro Connect HKG15
  • 2. TCWG 2015 Roadmap Review ● TCWG Priorities ● High Level Roadmaps - GNU & LLVM ● ONGOING efforts ○ Linaro Toolchain Products ○ GNU Toolchain ○ LLVM Toolchain ● GNU Toolchain Development - Specifics ● LLVM Toolchain Development - Specifics
  • 3. 2015 TCWG Priorities 1. GNU Toolchain Development 2. Toolchain Releases 3. LLVM Development 4. Member Requests Strategy: Align development effort toward 80% development and 20% products. Methodology: Be more efficient through automation.
  • 4. LC-HKG15 LC-next Oct ‘14 Nov ‘14 Dec ‘14 Jan ‘15 Feb ‘15 Oct ‘15Apr ‘15 Jun ‘15 Aug ‘15 Apr ‘16 Oct ‘16 Apr ‘17 Oct ‘17 Benchmark Automation Enablement ILP32 Toolchain Integration GCC Thread Sanitizer for Aarch64 Upstream NEON Intrinsics Tests Libm Performance Investigations GDB for Android on ARM64 Multiple GDB watchpoint support for ARM Watchpoint Support for Aarch64 GDB Testsuite Coverage Improvements Aarch32 Binary Toolchains x86_64 Binary Toolchains Native Binary Toolchains GCC Modularization Non-stop debugging for Aarch64 Linaro Toolchain Quarterly Binary Releases, Monthly Linaro GCC Source releases (including backports), Release Validation, Periodic GNU Toolchain Package Releases (glibc, binutils, GDB), ONGOING: GNU Toolchain Maintenance (bug fixing), Monthly GCC Benchmarking, GCC Performance Development, System Library Performance, Toolchain Validation Automation Improvements GNU Toolchain Roadmap long-term due to minimal investment
  • 5. LLVM Toolchain RoadmapLC-HKG15 LC-next Oct ‘14 Nov ‘14 Dec ‘14 Jan ‘15 Feb ‘15 Oct ‘15Apr ‘15 Jun ‘15 Aug ‘15 Apr ‘16 Oct ‘16 Apr ‘17 Oct ‘17 ONGOING:LLVM community releases, LLVM community maintenance, LLVM Buildbots, LLVM Libraries, LLVM Linux Kernel LLVM Linker (LLD) for ELF on Aarch64 and Aarch32 LLDB for Aarch64 LLVM Thread Sanitizer for Aarch64 LLD Buildbot Enablement Sanitizer Bots LLDB Buildbot Enablement LLVM Linux Kernel LLVM Performance Other Sanitizers (undef, address, etc) for Aarch64 LLVM Incubation for Aarch64 long-term due to lack of staffing long-term due to minimal investment
  • 6. TCWG Ongoing Efforts ● GNU Toolchain Ongoing Efforts ○ Linaro Toolchain Products ■ Monthly Linaro GCC Source releases (including backports) ■ Linaro Toolchain Quarterly Binary Releases ■ Periodic GNU Toolchain Package Releases (glibc, binutils, GDB) ■ Linaro GNU Toolchain Release Validation ■ Monthly Toolchain Benchmarking ○ Development ■ GNU Toolchain Maintenance (bug fixing) ■ GCC Performance Development ■ System Library Performance Improvements ■ Toolchain Validation Automation Improvements ● LLVM Toolchain Ongoing Efforts ○ LLVM community releases ○ LLVM community maintenance ○ LLVM Buildbots ○ LLVM Libraries ○ LLVM Linux Kernel
  • 7. Linaro Toolchain Products for 2015 ● Source Package Releases ○ Linaro GCC 4.9 Maintenance Quarterly Source Release ○ Linaro GCC 5.0 Backports Monthly Source Release ○ Linaro Glibc (as-needed) Source Releases ○ Linaro Binutils (as-needed) Source Releases ○ Linaro GDB (as-needed) Source Releases ● Quarterly Binary Releases ○ Linaro GCC 4.9 Maintenance Quarterly Binary Release ○ Linaro GCC 5.0 Backports Quarterly Binary Release
  • 8. Confidential TCWG Toolchain Release Schedule (planned) May Aug Nov Feb May Jun Jul Aug Sep Oct Nov Dec Jan Feb Feb May Aug Nov Feb Linaro GCC 4.9 (binary) Linaro GCC 5.0 (source) Feb May Aug Nov FebMar Linaro GCC 4.9 (source) Linaro GCC 5.0 (binary) Feb FebLinaro GCC 4.8 (source) Linaro GCC 4.8 (binary) 2015 2016 Apr Last Linaro GCC 4.8 maintenance quarterly binary release First Linaro GCC 4.9 maintenance quarterly binary release First Linaro GCC 5.0 quarterly stable binary release Possible first Linaro GCC 5.0 source release
  • 9. ● Target - 25 backports a month ● Reality - 25+ backports a month ● Objective - increase efficiency of backporting to provide greater flexibility w/rt staffing other initiatives while continuing to hit backport targets. Linaro GCC Stable Backporting Effort
  • 10. ● Method ○ early in product release life-cycle ■ Backport based on consecutive revisions ○ late in product release life-cycle ■ Backport more selectively based upon suspected performance gains ○ respin when releases when necessary Linaro GCC Stable Backporting Effort (continued)
  • 11. Linaro GCC 4.9 Backports stats Release Version Number of Backports Comment 2014.04 0 First Linaro GCC 4.9 Release based on FSF GCC 4.9.0 2014.05 5 Limited Backports Available for backporting 2014.06 41 Used for first ARMv8 Linaro Release 2014.07 65 Including 1 respin of 2014.06 2014.08 39 2014.09 30 LCU14 2014.10 33 2014.11 2 Linaro Lab Move. 2 backports for A53 errata fixes 2014.12 51 2015.01 33 Sum: 299 + FSF Branch Merge each release
  • 12. Linaro Validation Automation ● Automate backporting using backflip (best-case) ● Backport(s) triggers gerrit review ○ triggers jenkins automated validation on myriad of targets ■ triggers automated update of pass/fail regression information in gerrit ● triggers jenkins backport benchmark automation ○ triggers performance regression information in gerrit ○ All backports together create a release ■ release triggers jenkins automated release benchmarking ○ Release that passes performance regression testing triggers the binary toolchain build. ● From the first backport to quarterly binary release the build environment is held as constant as possible and the resulting toolchain is made available.
  • 13. Linaro GCC Automated Benchmarking ● Activities: ○ Release Benchmarking (SPEC2K6) ○ Automated Regression Benchmarking for each backport ○ Investigative Benchmarking for performance improvements ○ Pre-commit Benchmarking for upstreaming ○ Development Benchmarking to prove efficacy of patches ● Reality: ○ We’re looking forward to improved hardware becoming available in 2015 ■ hardware stability (ARMv8 maturing & options) ■ system images (automation ready out-of-the box)
  • 14. GCC Performance ● Areas & Examples: ○ Member/Stakeholder Identified Performance Improvements ■ Zero-Sign Extension Elimination using Value-Range-Propagation Pass in GCC Middle End ■ Drop in Stream Benchmark Performance ■ Libvpx Neon Intrinsics Usage ○ Linaro GCC 4.9/5.0 Toolchain Performance Regressions ■ Compare month over month performance results and triage into bugzilla ○ Feature Exploitation ■ Auto-vectorization using NEON ○ Comparing relative gains between Aarch64 and x86_64 ■ LTO instruction counts on Aarch64 vs x86_64.
  • 15. LLVM Community Stewardship ● LLVM Maintenance ● LLVM Buildbots ● LLVM Releases ● LLVM Libraries ● LLVM & GCC Liaison ● LLVM Linux Kernel
  • 16. GNU Toolchain Development - Specifics Efforts of interest: ● GCC Modularization ● GDB Test-Suite Coverage for Arch32/Aarch64 ● ILP32 Toolchain Integration and Benchmarking ● GCC Thread Sanitizer for Aarch64 Not mentioned are the ONGOING GCC Performance efforts described earlier.
  • 17. GCC Modularization ● Description: This is a long-term, low-investment effort to decouple the GCC front, middle, and back ends from each other to enable a single compiler driver to compile code for several different backends. ● Objective(s): ○ Header file flattening ○ Include File Reduction ○ Turn Target Macros into target hooks ○ Split tree.[hc] ● Reason(s): ○ Reduce unique instances of toolchain products to reduce maintenance and release costs. ○ Deploy/Update a single toolchain instance to in-field products to reduce complexity, support, delivery, etc. ○ Provide use experience for arm/Aarch64 that matches experience for other architectures. ● Status: Staffed ○ Create front-end interface ○ Replace TYPE nodes with Gimple wrappers ○ Enhance Gimple builders ○ Remove gimplification
  • 18. GDB Test-Suite Coverage for Arch32/Aarch64 ● Description: Cover GDB test-suite gaps in the following: ● Objective(s): ○ Parity between x86[64] and Aarch[32|64] ○ Parity between Aarch32 and Aarch64 ○ Mix-mode debuggings (e.g., thumb & arm interlaced) ○ Improving known and discovered failures for Aarch32 and Aarch64 ○ Address debug info bugs ○ Available feature testing ● Reason(s): Guarantee high-quality debugging support on arm/Aarch64. ● Status: Staffed
  • 19. ILP32 Toolchain Integration and Benchmarking ● Description: Produce a Linaro based ILP32 toolchain from upstreamed/pending sources to investigate performance characteristics as compared to Aarch32. ● Objective(s): ○ Enable ABE to build ILP32 toolchain ○ Benchmark ILP32 vs Aarch32 on Juno ○ Identify gaps and plan accordingly ■ Upstream state of Linux Kernel and Glibc support ■ Investigate performance improvement opportunities ● Reason(s): Investigate performance characteristics of ILP32. ● Status: Staffed
  • 20. GCC Thread Sanitizer for Aarch64 ● Description: Implement thread sanitizer for Aarch64 ● Objective(s): ○ Enable GCC configury for TSAN. ○ Port TSAN to Aarch64 for a variety of Virtual Address Spaces ○ Upstream port/enablement into LLVM ○ Upstream port/enablement into GCC ● Reason(s): Member desire for powerful analysis tools. ● Status: Staffed
  • 21. LLVM Toolchain Development - Specifics Efforts of interest: ● LLVM Linker ● LLDB ● LLVM Benchmarking ● LLVM Performance
  • 22. LLVM Linker - LLD ● Description: This is the effort to port the LLVM Linker LLD to the ELF ABI for Aarch64 and prepare it for eventual inclusion into the LLVM Toolchain. ● Objective(s): ○ Base ELF enablement for Aarch64 (ELF sections, Symbols, ARM & Aarch64 Relocations, Name Mangling). ○ Interoperability of binaries linked with LLD and binutils ld. ○ LTO Support ○ Features in MCLinker missing in LLD ○ Make LLDB linked objects compatible with oldest ABI in the linking group. ● Reason(s): ○ Broad adoption of LLVM toolchain requires an integrated link-editor. ● Status: Staffed
  • 23. LLDB ● Description: This describes an effort to implement arm and Aarch64 debugging support for the ELF ABI in LLDB. ● Objective(s): ○ arm native debugging (it’s easier right away than cross) ○ x86_64 -> arm remote debugging ○ LLDB debugging itself ○ x86_64 native debugging ○ x86_64 -> aarch64 remote debugging ● Reason(s): ○ Support most common existing devices and move to support next generation of common devices. ○ Broad adoption of LLVM toolchain requires an integrated link-editor. ● Status: Staffed
  • 24. LLVM Benchmarking ● Description: This describes an effort implement benchmarking automation with the LLVM toolchain and to analyze and triage the results into regressions and/or opportunities. ● Objective(s): ○ ABE enablement for LLVM Builds ○ ABE enablement for LLVM Benchmarking ○ Jenkins triggers for LLVM Builds ○ Jenkins triggers for LLVM Benchmarking ○ Procedures for triaging issues into regression and opportunities. ● Reason(s): This is a prerequisite to any in-depth LLVM Performance effort. ● Status: Partially Staffed
  • 25. LLVM Performance ● Description: This describes an effort to improve performance of LLVM and make it competitive with GCC on arm and Aarch64 by responding to ongoing benchmarking investigations into the following areas: ● Objective(s): ○ EEMBC ○ SPEC2K ○ SPEC2K6 ○ Auto-vectorization ● Reason(s): ● Status: Not Staffed