Skip to content

Develop.json - optimize on size rather than performance #5274

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

JanneKiiskila
Copy link
Contributor

Description

The profiles must now have different optimization targets,
if customer assumes the tests done with develop are the same
as with release profile (sans the debugs) - they would be assuming
wrongly. The code can behave unfortunately very differently if one
is optimizing for size and one for performance.

If customer wants to optimize for performance, they should change
it to both profiles so that any tests done with develop and release
match as closely as possible.

This change impacts both IAR and ARM CC.

  • ARM and uARM were optimizing on time in release profile.
  • IAR was optimizing on "High, balaned" in develop profile.

GCC is defined to behave logically between these profiles (-Os).

Status

READY

Migrations

NO

The profiles must now have different optimization targets,
if customer assumes the tests done with develop are the same
as with release profile (sans the debugs) - they would be assuming
wrongly. The code can behave unfortunately very differently if one
is optimizing for size and one for performance.

If customer wants to optimize for performance, they should change
it to both profiles so that any tests done with develop and release
match as closely as possible.

This change impacts both IAR and ARM CC.
- ARM and uARM were optimizing on time in release profile.
- IAR was optimizing on "High, balaned" in develop profile.

GCC is defined to behave logically between these profiles (-Os).
@0xc0170
Copy link
Contributor

0xc0170 commented Oct 9, 2017

cc @sg- @theotherjimmy @kjbracey-arm

@0xc0170
Copy link
Contributor

0xc0170 commented Oct 9, 2017

Similar discussion already in #2600.

This is considered being a breaking change (changining the default profile).

@sg-
Copy link
Contributor

sg- commented Oct 9, 2017

Why do we keep revisiting this...

GCC is defined to behave logically between these profiles (-Os).

If you read the PR conversation as to why this was changed (I've very much disagreed with) it was to "make client fit in 512k block for K64F" which never should have happened and is not precedent for this type of a change. The profiles have different optimization levels by design. Why not propose that release profile optimizes for speed with logs removed?

@mbed-ci
Copy link

mbed-ci commented Oct 9, 2017

Build : SUCCESS

Build number : 12
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/5274/

@0xc0170
Copy link
Contributor

0xc0170 commented Oct 13, 2017

@JanneKiiskila Please read the comments above.

retest uvisor

@adbridge
Copy link
Contributor

@JanneKiiskila any update on this after @sg- comments ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants