Avr-gcc Bugs
Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Bugs
| PR | Description | Note |
|---|---|---|
| 46779 | wrong code generation for array access | = 46779 |
| 45291 | avr miscompilations related to frame pointer registers | = 46779 |
| 45263 | registers used in __do_global_ctors can get clobbered | |
| 44940 | XMEGA RAMPZ Initialization | |
| 44643 | ice in c-typeck.c | |
| 44506 | -mtiny-stack causes internal compiler error on gcc for avr | |
| 42240 | [4.3/4.4 Regression] wrong epilogue on naked function | 4.6.0, 4.5.3, |
| 42204 | update_eliminables should be called in reload after something changes | |
| 42149 | ICE:verify_gimple failed for avr target | |
| 42146 | ICE in tree_low_cst | |
| 41894 | wrong code with -fno-split-wide-types | = 46779 |
| 41885 | AVR Rotate patterns do not correctly consider overlap. | 4.5.0 |
| 39633 | [avr] loop bug | |
| 39386 | [avr] different computation results for O1 and O0 executables | |
| 39212 | ice for AVR target: unable to find a register to spill in class 'POINTER_REGS' | |
| 38549 | [avr] eicall not properly set for > 128K program space | |
| 38342 | [4.3/4.4/4.5/4.6 Regression] __attribute__((__progmem__)) not propagated from typedef to data | |
| 38159 | [avr] ICE: gcc.c-torture/execute/pr38051.c compilation, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions | |
| 37165 | [4.4/4.5/4.6 Regression] FAIL: gcc.dg/matrix/matrix-1.c scan-ipa-dump-times matrix-reorg "Flattened 3 dimensions" 1 | |
| 36571 | Default untyped return for AVR is byte register. | |
| 35073 | illegal opcode movw for mcu avr3 | |
| 34734 | attribute((progmem)) not handled properly in C++ for AVRs | |
| 28718 | Call to -lgcc added prior to user libraries | |
| 26883 | ICE when assigning memory attribute to class with simple constructor | |
| 26882 | [AVR][C++] ICE when using template function with memory attributes |
Optimierung
| PR | Optimization |
|---|---|
| 46278 | avr-gcc 4.5.1 doing suboptimal reloads using X |
| 43745 | [avr] g++ puts VTABLES in SRAM |
| 18065 | usual arithmetic conversion not applying correctly |
| 43746 | -fmerge-constants and -fmerge-all-constants don't work at AVR target |
| 43088 | [avr] Suspect optimizer missed code in gcc 4.4.3.. |
| 43095 | [avr] GCC produces poor code for 4- and 8-byte values |
| 42210 | avr: optimizing assignment to a bit field |
| 39250 | unsigned char times 64U produces long slow loop |
| 33970 | Missed optimization using unsigned char loop variable |
| 33050 | [avr] unnessary register save |
| 33049 | [avr] bit extraction non optimal, inversing logic solves problem |
| 30908 | tree cost for types which are > WORD_SIZE |
| 29560 | [avr] Poor optimization for byte shifts |
| 29524 | [4.3/4.4/4.5/4.6 Regression] Too much RAM used: __clz_tab[] linked |
| 41076 | [avr] pessimal code for logical OR of 8-bit fields |
| 39819 | [avr] Missed optimisation when setting 4-byte values |
| 39621 | Delaying operation to end of function causes high stack usage |
| 39760 | register allocation costs are not well described on AVR |
| 38629 | target-specific parameters for inline heuristics not defined for AVR |
| 36884 | ifcvt poor optimization |
| 36561 | store using long array index not hoisted out of loop |
| 36467 | [avr] Missed optimization with pointer arithmetic and mul* |
| 41849 | optimization fails when register variables are used for an interrupt |
| 35860 | [4.3/4.4/4.5/4.6 Regression] [avr] code bloat caused by -fsplit-wide-types |
| 34888 | Stack patterns for AVR not optimal |
| 34792 | [avr] c++ worse than c compiler at 8-bit optimisations |
| 34791 | [avr] optimisation of 8-bit logic sometimes fails |
| 34789 | [avr] sometimes the compiler keeps addresses in registers unnecessarily |
| 11180 | [avr-gcc] Optimization decrease performance of struct assignment. |
| 3507 | appalling optimisation with sub/cmp on multiple targets |
| 20296 | Speeding up small interrupts on avr |
| 18145 | Do not emit __do_copy_data or __do_clear_bss if .data or .bss is empty. |
| 27663 | missed-optimization transforming a byte array to unsigned long |
Debug-Info, Build, Ada, Fortran, ...
| PR | Debug-Info, Build, Ada, Fortran | Note |
|---|---|---|
| 45261 | Doesn't indicate failure status when it doesn't support (attiny2313A) | 4.6.0, 4.5.3, |
| 47597 | ICE: call frame debugging information is not handled when case is post_dec | |
| 20072 | make install doesn't create /usr/local/info/dir if .../dir not already present. | |
| 46426 | [avr] avr/libgcc.S in SVN r166596 fails to compile | |
| 46192 | renaming of a volatile variable generates wrong code | ada |
| 34040 | Support for DOUBLE_TYPE_SIZE != 64 targets | fortran |
| 17994 | avr-gcc does not output a dwarf2 .debug_frame section | |
| 18989 | A few potentially ominous, and several likely harmless warnings during 4.0 build | |
| 14118 | h8300-elf, avr-elf, m68k-elf ports cannot build libmudflap |
Erweiterungen
| PR | Extensions |
|---|---|
| 45099 | [avr] Warning could be issued for use of register variables that will fail. |
Ungültig
| PR | Invalid |
|---|