Giter Site home page Giter Site logo

sprintersb / avr-gcc-8 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gcc-mirror/gcc

0.0 0.0 0.0 3.35 GB

A fork of GCC v8 to add changes to the releases/gcc-8 branch that affect target AVR.

Home Page: https://gcc.gnu.org

License: GNU General Public License v2.0

Emacs Lisp 0.01% Makefile 2.01% Shell 0.44% M4 0.57% Python 0.18% Perl 0.05% Vim Script 0.01% C 54.43% C++ 15.93% Awk 0.06% HTML 0.91% Smarty 0.01% RPC 0.13% Ada 19.59% TeX 0.13% Pawn 0.02% Objective-C 0.33% GCC Machine Description 5.22% OCaml 0.01% Standard ML 0.01%
gcc gcc-cross-compiler avr-gcc avr-gcc-toolchain

avr-gcc-8's Introduction

What is it?

This is a fork of the GCC project https://gcc.gnu.org with additional changes to the releases/gcc-8 branch.

All the changes you find in this fork address the AVR backend.

Why is it here?

The latest of the GCC v8 releases, v8.5, was created from releases/gcc-8 in May 2021, and then that branch was closed.

Some patches are back-ported from v14 to v8 because newer versions of GCC may have some problems that v8 does not have. However, v8 has also some problems and shortcoming, which this fork tries to address.

Bugs Fixed

  • PR92606: Inter-procedural analysis optimizes data across address-spaces and PROGMEM. This is fixed in v14 for address-spaces but still persists for PROGMEM. The local fix just disables the bogus IPA optimization.

  • PR101188: A rare wrong-code bug that can be tracket back to GCC v5 and beyond. It's fixed in v14 but not in v13.2, and it is unclear if the fix will be back-ported to the v13 branch.

  • PR107201: The -nodevicelib option did not work as expected for devices which start with "AVR", like AVR32DA32.

  • The options -g -mrelax -flto did not work together and failed with an --relax and -r may not be used together error from the linker.

  • PR88236, PR87376, PR115726: Fixed code for reading from address-space __memx (fixed in v12.5, v13.4 and v14.2+).

  • PR98762: Fixed a wrong code bug on Reduced Tiny (fixed in v12.5, v13.4 and v14.2+).

Extensions

  • Support all devices that avr-gcc v14 supports. For a complete list, see the online documentation on ‑mmcu=.

  • PR112944: Support command-line option -m[no-]rodata-in-ram. When Binutils support PR31124, then read-only data on AVR64* and AVR128* devices is located in program memory. For a detailed description with further reading, see the GCC v14 Release Notes.

  • In C++ compilations, don't implicitly wrap headers found per -isystem in extern "C" { ... }.

Problems Avoided

The GCC v8 release avoids some problems of more recent compiler versions, namely the following performance regressions from the register allocator:

  • PR110093: Move frenzy leading to code bloat.

  • PR114243: -fsplit-wide-types bloats float code by more than 50%. As a work-around, -fno-split-wide-types can be used, though that option cannot be recommended in general.

  • PR90706: Useless code generated for stack / register operations (partially fixed in v12.3+).

avr-gcc-8's People

Contributors

jakubjelinek avatar rguenth avatar jicama avatar jsm28 avatar jwakely avatar hjl-tools avatar ubizjak avatar tob2 avatar davidmalcolm avatar mpolacek avatar rorth avatar marxin avatar rsandifo avatar urnathan avatar aldyh avatar nickclifton avatar bonzini avatar jamborm avatar sprintersb avatar segher avatar geoffk01 avatar hpataxisdotcom avatar janusw avatar vnmakarov avatar fxcoudert avatar ebotcazou avatar djdelorierh avatar tobischluter avatar edschonberg avatar andreas-schwab avatar

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.