Code Monkey home page Code Monkey logo

Comments (5)

technoblogy avatar technoblogy commented on August 21, 2024 1

Thank you.

from dxcore.

nomakewan avatar nomakewan commented on August 21, 2024

https://gcc.gnu.org/news/gcse.html

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

from dxcore.

SpenceKonde avatar SpenceKonde commented on August 21, 2024

I'm trying to comment on here without saying something that would be controversial, so all the ways this could have been a funny comment, sorry, couldn't come up with a way that I wasn't concerned would offend someone.

But yeah, toggling GCSE is when you do when you have no ideas on how to save space, don't need that much space, and haven't recently tried GCSE toggle.

In my tests, about 50% of the time it saved flash, and the rest of the time it cost flash.

Can you tell me exactly where that line is or submit a PR though? We no longer offer an option to select the level of optimization. You can still toggle GCSE, but you can't change the overall optimization level, because the dirty trick I used to prevent up to fifteen unused copies of the serial interrupt handlers kicking around breaks when speed optimized compilation is used, because it will attempt (utterly unsuccessfully) to undo all the things I did with great care in hand optimized asm and make it bloated and slower like it was before. Except because it doesn't do that successfully, the compilation fails.

As I am unaware of any way around this problem, and due to the magnitude (and frankly, the amount of effort it took alone would make me fall on my sword before removing it. It was a great deal of effort, and - now that it's in - does save like 500 bytes or something for each serial port after the first.

But it cost the optimization options. If the O2 and O3 optimization options were useful on AVR that would be a big deal. Thankfully the optimizer is such shit that we're really losing any functionality :-/

from dxcore.

technoblogy avatar technoblogy commented on August 21, 2024

Thanks! I would have been happy with something like:

"GCSE stands for Global Common Subexpression Elimination, and sometimes saves flash, but sometimes costs flash."

Can you tell me exactly where that line is or submit a PR though?

It was in 1.5.6 but is no longer in 1.5.11.

P.S. I was sorry not to get one of your funny comments!

from dxcore.

SpenceKonde avatar SpenceKonde commented on August 21, 2024

from dxcore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.