Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Update compiler toolchain to 3.2.0#8868

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
d-a-v merged 3 commits intoesp8266:masterfromearlephilhower:tool320
Mar 29, 2023

Conversation

@earlephilhower
Copy link
Collaborator

Includes compiler updates from@jjsuwa-sys3175

d-a-v reacted with hooray emoji
@earlephilhower

This comment was marked as outdated.

@jjsuwa-sys3175
Copy link
Contributor

jjsuwa-sys3175 commentedFeb 25, 2023
edited
Loading

Thanks for building the toolchain :)

For the time being, regression tests have been done when merging to gcc mainline, so it shouldn't be completely unusable...

I checked the build of "fsbrowser" and the actual chip operation check for each patch submission.

Notable changes:

  • Preliminary -mlra option added (not ready for use yet)
  • Always save register A0 (function return address) to stack when -Og is specified, even for leaf functions
  • Improved register allocation efficiency by removing RA tweak remnants that no longer worked
  • Related to the above, the order of register allocation has changed
  • Once register A0 has been saved to the stack in the function prologue, the compiler may assign register A0 to variables or intermediate values in the function body
  • Improved inefficiency in automatic char array initialization.
    /* example */void test(void) {  char buffer[32] = { 0, 0, 0, 0, 0, };  asm volatile("" : : "m"(buffer));};; before.LC0:.string"".string"".string"".string"".string"".string"".zero26.literal_position.literal .LC1, .LC0test:addisp, sp, -48l32ra3, .LC1movi.na4, 6mov.na2, sps32i.na0, sp, 44call0memcpyaddi.na2, sp, 6addia3, sp, 32movi.na4, 0.L2:s16ia4, a2, 0addi.na2, a2, 2bnea2, a3, .L2l32i.na0, sp, 44addisp, sp, 48ret.n;; aftertest:addisp, sp, -32mov.na9, spaddia10, sp, 32movi.na11, 0.L2:s32i.na11, a9, 0addi.na9, a9, 4bnea9, a10, .L2addisp, sp, 32ret.n
d-a-v reacted with rocket emoji

@earlephilhower
Copy link
CollaboratorAuthor

I've run about a dozen examples (LittleFS, WiFi, HTTPClient, Arduino core, WebServer) and had no issues, so I think this is good to go whenever you guys want to update the toolchain.

@d-a-vd-a-v added the alphaincluded in alpha release labelFeb 26, 2023
@TD-er
Copy link
Contributor

Is LTO also supported with this updated toolchain?
If not, what is needed to support it?
On my ESP32 builds, it makes a difference of roughly 5 - 7% in binary size. (with debug symbols still included)

@earlephilhower
Copy link
CollaboratorAuthor

Not supported. If I remember correctly many years ago igrr tried LTO and had serious issues with the way it handled weak functions.

This is just the latest patches back ported from the upstream GCC later versions with some size and speed optimizations.

@TD-er
Copy link
Contributor

with some size and speed optimizations.

OK, fair enough. Let's hope those size optimizations are already helping out then...

@d-a-vd-a-v merged commitce9e720 intoesp8266:masterMar 29, 2023
@earlephilhowerearlephilhower deleted the tool320 branchMarch 29, 2023 15:56
hasenradball pushed a commit to hasenradball/Arduino that referenced this pull requestNov 18, 2024
* Update compiler toolchain to 3.2.0Includes compiler updates from@jjsuwa-sys3175* Manually update python3-via-env tools
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

alphaincluded in alpha release

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

4 participants

@earlephilhower@jjsuwa-sys3175@TD-er@d-a-v

[8]ページ先頭

©2009-2025 Movatter.jp