Comment 7 for bug 1502611

Revision history for this message
Strntydog (strntydog) wrote :

Upstream has confirmed this bug exists, and I just tested this on the latest release "gcc-arm-none-eabi-6-2017-q1-update" and it still persists. I have updated the upstream report, but the code generation for Cortex M0 is abysmal, especially with regard to addressing registers at known locations, something microcontroller programs do all the time.

To put the Optimisation failure into perspective, this is the difference between the 6 tests in the test case upstream:

Test 1 - Code Size is 40% Bigger for M0, and the Function is 114% bigger.
Test 2 - Code Size is 20% bigger for M0, and the Function is 44% bigger.
Test 3 - Code Size is same between M0 and M3, but the Function is 43% bigger.
Test 4 - Code Size is 40% Bigger for M0, and the Function is 86% bigger.
Test 5 - Code Size is same between M0 and M3, but the Function is 14% bigger.
Test 6 - Code Size is 38% Bigger for M0, and the Function is 100% bigger.

These failures directly and significantly negatively effect program execution time AND Flash usage.