| PR | Optimization | Note
|
| 53049 | expand/TER unappropriate moving unspec volatile
| middle-end
|
| 52664 | gcc.dg/tree-ssa/pr31261.c fails
| ssa
|
| 52278 | inefficient register allocation for SUBREGs
| RA
|
| 52025 | -fcaller-saves triggers a frame without need
| RA
|
| 49807 | Missed byte (subreg) extraction when storing to volatile mem
|
|
| 49491 | Superfluous move because of unnecessary spill for 2-operand insn
| RA
|
| 41076 | pessimal code for logical OR of 8-bit fields
| TODO, patch upstream
|
| 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
| RTL-optimize, -fno-if-conversion
|
| 36561 | store using long array index not hoisted out of loop
|
|
| 30908 | tree cost for types which are > WORD_SIZE
|
|
| 27663 | missed-optimization transforming a byte array to unsigned long
| patch upstream
|
| 20296 | Speeding up small interrupts
|
| 18065 | usual arithmetic conversion not applying correctly
|
|
| 11180 | Optimization decrease performance of struct assignment.
|
|
| 3507 | appalling optimisation with sub/cmp on multiple targets
|
|
| PR | Fixed | Note
|
| 53344 | Assemble 3-byte symbols
| 4.8.0
|
|
|
| 53256 | Attribute 'interrupt' shall override attribute 'signal'
| 4.7.1
|
| 53065 | ICE: in replace_reg_with_saved_mem, at caller-save.c:1125
| 4.7.1
|
| 53033 | Wrong register number for 3-byte loads via X
| 4.7.1
|
| 52737 | -mtiny-stack shall not influence multilib selection
| 4.7.1
|
| 52692 | Add support for avr-specific built-ins + LTO
| 4.7.1
|
| 52545 | SECTION_EXCLUDE flag clobbers SECTION_MACH_DEP
| 4.7.1 other
|
| 52543 | lower-subreg.c: code bloat of 300%-400% for multi-word memory splits
| 4.7.1 middle-end Hack
|
| 52508 | HAVE_RAMPZ as condition to set RAMPZ prior to flash-read is no more appropriate
| 4.7.1
|
| 52507 | movmem loop for __memx address space uses wrong loop label
| 4.7.1
|
| 52506 | XMEGA: Wrong order of save/restore of RAMPX/Y/Z/D SFRs in ISR pro-/epilogue
| 4.7.1
|
| 52505 | __memx address space reading unintentionally from RAM
| 4.7.1
|
| 52496 | avr-specific built-ins missing memory barrier
| 4.7.1
|
| 52488 | ICE: unreconizable addqi -2000 insn
| 4.7.1
|
| 52484 | Missing __memx insn because of wrong register footprint
| 4.7.1
|
| 52461 | XMEGA+EBI: RAMPZ clobbered
| 4.7.1
|
| 51527 | ICE: 'convert_to_integer' enters infinite recursion for __int24
| 4.7.1 c
|
| 52261 | Add XMEGA support
| 4.7.0
|
| 52148 | ICE: spill_failure for movmemhi
| 4.7.0
|
| 51782 | Missing address-space information leads to wrong code
| 4.7.0 middle-end
|
| 51425 | no SBIS/SBIC instructions
| 4.7.0
|
| 51409 | Building avr-gcc fails if configured for other languages than from C family
| 4.7.0
|
| 51345 | Devices with 8-bit SP need their own multilib(s)
| 4.7.0
|
| 51050 | ICE: invalid rtl sharing found in the insn (ATtiny26)
| 4.7.0
|
| 51002 | SP_H register is used even on targets that do not have it (ATtiny26)
| 4.7.0
|
| 50931 | Support a 24-bit scalar integer mode
| 4.7.0
|
| 50910 | Inefficient division by 2
| 4.7.0
|
| 50887 | Support ACCUMULATE_OUTGOING_ARGS
| 4.7.0
|
| 50775 | Register allocator sets up frame and frame pointer with low register pressure
| 4.7.0, ra
|
| 50616 | ICE: lto1.exe: invalid resolution in the resolution file
| 4.7.0, lto, mingw32
|
| 50566 | Add support for better logging by means of -mlog=
| 4.7.0
|
| 50465 | Use insn attribute to depict if and how instruction lengths have to be adjusted
| 4.7.0
|
| 50449 | Loading some 32-bit constants not optimal
| 4.7.0
|
| 50448 | Missed optimization accessing struct component with integer address
| 4.7.0 middle-end
|
| 50447 | Better support of AND, OR, XOR and PLUS with constant integers
| 4.7.0
|
| 50446 | Implement rotate patterns with offset 1
| 4.7.0
|
| 50358 | Implement [u]maddqihi4 [u]msubqihi4 patterns
| 4.7.0
|
| 50063 | wrong code for gcc.dg/torture/pta-ptrarith-3.c
| 4.7.0
|
| 49939 | Skip 2-word instructions if applicable
| 4.7.0
|
| 49903 | Redundant comparisons in binary-seach switch/case expansion
| 4.7.0 FIXME
|
| 49881 | Inefficient stack manipulation around calls
| 4.7.0
|
| 49868 | Implement named address space to place/access data in flash memory
| 4.7.0 ← binutils PR13503
|
| 49864 | ICE: in maybe_record_trace_start, at dwarf2cfi.c:2439
| 4.7.0
|
| 49687 | Missed optimization for widening MUL
| 4.7.0
|
| 49313 | Inefficient libgcc implementations for avr
| 4.7.0
|
| 47597 | ICE: call frame debugging information is not handled when case is post_dec
| 4.7.0
|
| 46278 | avr-gcc 4.5.1 doing suboptimal reloads using X
| 4.7.0
|
| 45099 | Warning could be issued for use of register variables that will fail.
| 4.7.0
|
| 43746 | -fmerge-constants and -fmerge-all-constants don't work at AVR target
| 4.7.0
|
| 42210 | optimizing assignment to a bit field
| 4.7.0
|
| 39621 | Delaying operation to end of function causes high stack usage
| 4.7.0
|
| 36467 | Missed optimization with pointer arithmetic and mul*
| 4.7.0
|
| 35860 | [4.3/4.4/4.5/4.6 Regression] [avr] code bloat caused by -fsplit-wide-types
| 4.7.0
|
| 34888 | Stack patterns not optimal
| 4.7.0
|
| 34792 | c++ worse than c compiler at 8-bit optimisations
| 4.7.0
|
| 34791 | optimisation of 8-bit logic sometimes fails
| 4.7.0
|
| 34790 | no sibling call optimisation
| 4.7.0
|
| 34789 | sometimes the compiler keeps addresses in registers unnecessarily
| 4.7.0
|
| 33049 | bit extraction non optimal, inversing logic solves problem
| 4.7.0
|
| 29560 | Poor optimization for byte shifts
| 4.7.0
|
| 29524 | [4.3/4.4/4.5/4.6 Regression] Too much RAM used: __clz_tab[] linked
| 4.7.0
|
| 18145 | Do not emit __do_copy_data or __do_clear_bss if .data or .bss is empty.
| 4.7.0
|
| 17994 | avr-gcc does not output a dwarf2 .debug_frame section
| 4.7.0
|
|
|
| 52741 | -mtiny-stack must not make assumptions on upper 8 bits of SP/FP
| 4.6.4
|
| 51756 | Wrong warning: uninitialized variable put into program memory area
| 4.6.3
|
| 51374 | insn combine reorders volatile memory accesses
| 4.6.3 middle-end
|
| 50820 | Use EIND consistently
| 4.6.2, 4.5.4
|
| 50816 | Discriminators are emitted in DWARF 2 format
| 4.6.2
|
| 50652 | Incorrect data start value for ATmega164A
| 4.6.2
|
| 50289 | call-prologues saving/restoring global register variables
| 4.6.2
|
| 49824 | Missing documentation for OS_task and OS_main attributes
| 4.6.2
|
| 49764 | [avr-g++] Rejects attribute progmem
| 4.6.2
|
| 49487 | ICE: bytewise rotate
| 4.6.2
|
| 46779 | wrong code generation for values held in R28/R29
| 4.6.2, 4.5.4
|
| 34734 | attribute((progmem)) not handled properly in C++ for AVRs
| 4.6.2 → avr-libc #33716
|
| 44643 | ICE: in c-typeck.c
| 4.6.2 → avr-libc #32988
|
| 39633 | missing 8-bit comparison (*cmpqi)
| 4.6.2, 4.5.4
|
| 39386 | different computation results for O1 and O0 executables
| 4.6.2
|
| 48459 | [4.6/4.7 Regression] avr: Assertion failure with -gdwarf-2
| 4.6.1
|
| 45263 | registers used in __do_global_ctors can get clobbered
| 4.6.1, 4.5.4
|
|
|
| 45261 | Doesn't indicate failure status when it doesn't support (attiny2313A)
| 4.5.3
|
| 42240 | [4.3/4.4 Regression] wrong epilogue on naked function
| 4.5.3
|
| 41885 | Rotate patterns do not correctly consider overlap.
| 4.5.0
|