GCC/Clang Optimizations for Embedded Linux
Talkat Embedded Linux Conference + OpenIoT Summit North America 2017 · on Thursday, 2017-02-23· at 15:30· Skyline II·
summary
Describes practical compiler levers for embedded Linux with exact flags and tradeoffs including -Os vs -O3 for size versus speed and the reason -O3 inflates code (loop unrolling) and auto vectorization needs SIMD targets. Shows how to use fstack-usage, -fconserve-stack, function/data sectioning plus linker GC to shrink images, and how LTO and PGO work including instrumented PGO versus sampling Auto SDO. Advises profiling hotspots, using -march/-mtune/-mcpu carefully, and avoiding nonportable GCC extensions that clang rejects.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:06Clang
- 2:32GCC
- 4:40Optimization Flags
- 10:13Optimization Flags Output
- 12:24Strictaliasing
- 15:27Inlining
- 19:04Stack Optimization
- 22:19Size Optimization
- 26:38Profile Guided Optimization
- 27:50Profile Generate
- 32:14LTO
- 37:20AutoVectorization
- 42:23CPU Optimizations
- 46:32Builtin Functions
- 47:53Unsupported Extensions
- 51:13Summary
related talks
45mA Few Effective gcc/clang Optimizations for Embedded Systems
34mCode Size Compiler Optimizations and Techniques for Embedded Systems
15mNot So Fast: Understanding and Mitigating Negative Impacts of Compiler Optimizations on Code Reuse G
46mClinging to Clang
19mExploiting Undefined Behavior in C/C++ Programs for Optimization: A Study on the(…)
28mCode optimization tips and tricks
52mUnderstanding Compiler Optimization
29mEmpirical Observations about Profile-Guided Optimizations for Mainstream C/C++ Compilers
