Forum: Compiler & IDEs AVR removed in GCC 16 ?


von Thomas H. (thux)


Lesenswert?

Hallo,

wenn ich das richtig verstehe wird der AVR Support in GCC 16 entfernt 
weil  das neue LRA nicht unterstützt wird?

>This is the last release supporting the old reload local register allocation 
code. It will be removed for GCC 16, causing targets that do not support the new 
LRA local register allocation code to be removed. See the list of supported 
targets for which ports are going to be affected (look for missing a, the ports 
that do not use LRA by default).

1
a       Port uses LRA (by default, i.e. unless overridden by a switch).
2
3
           |      Characteristics
4
Target     | HMSLQNFICBD lqrpbfmgiates
5
avr        |    L  FI    l  p   g

Verstehe ich das falsch oder muss jetzt etwas gemacht werden?

Grüße

https://gcc.gnu.org/gcc-15/changes.html
https://gcc.gnu.org/backends.html

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Thomas H. schrieb:
> wenn ich das richtig verstehe wird der AVR Support in GCC 16
> entfernt weil  das neue LRA nicht unterstützt wird?
> Verstehe ich das falsch oder muss jetzt etwas gemacht werden?

Immerhin wird -mlra unterstützt, ist aber nicht default weil es noch 
mindestens einen Fall gibt, wo LRA falschen Code erzeugt (mit -Os 
-mmcu=atmega8 -mlra):
1
__attribute__((noipa))
2
void func2 (long long a1, long long a2, long b)
3
{
4
  static unsigned char count = 0;
5
  if (b != count++)
6
    __builtin_abort ();
7
}
8
9
int main (void)
10
{
11
  for (long b = 0; b < 5; ++b)
12
    {
13
      __asm ("/* some reg pressure */" ::: "r5", "r9");
14
      func2 (0, 0, b);
15
    }
16
17
  return 0;
18
}

https://gcc.gnu.org/PR118591

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.