[Bug target/39635] [avr] integer wrong code bug

2009-09-13 Thread hutchinsonandy at aim dot com
--- Comment #5 from hutchinsonandy at aim dot com 2009-09-13 16:14 --- It looks like most of AVR shift/rotates are messed up. For the case we where we have non constant shifts, the peephole may grab a scratch register. In this case it look like it grabs one that is free afterwards

[Bug target/36494] Char arrays gets corrupted in avr programs.

2008-06-11 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-06-11 22:05 --- I'm sure Eric will weight in again to verify code posted executes correctly (it looks correct to me). I suspect you have some config or memory issue. For example, unoptimized, the string is stored at location

[Bug middle-end/36447] simplify_subreg ICE with right shift more than length type AVR

2008-06-06 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-06-06 11:55 --- Subject: Re: simplify_subreg ICE with right shift more than length type AVR Thanks for quick response, I will give this a try and no doubt it will work. I was trying to think of how the other case should

[Bug target/36336] ICE push_reload - psuedo reg_equiv_constant

2008-06-06 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-06-06 19:42 --- Subject: Re: ICE push_reload - psuedo reg_equiv_constant O2 -- Sent from my Dingleberry wired device. -Original Message- From: eric dot weddington at atmel

[Bug target/36336] ICE push_reload - psuedo reg_equiv_constant

2008-06-06 Thread hutchinsonandy at aim dot com
--- Comment #5 from hutchinsonandy at aim dot com 2008-06-06 20:18 --- Subject: Re: ICE push_reload - psuedo reg_equiv_constant The patch for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31786 removes one problematic part of LEGITIMIZE_RELOAD_ADDRESS. This is applied to WinAVR

[Bug c/36447] New: simplify_subreg ICE with right shift more than length type AVR

2008-06-05 Thread hutchinsonandy at aim dot com
org ReportedBy: hutchinsonandy at aim dot com GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: avr-unknown-none http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36447

[Bug middle-end/36447] simplify_subreg ICE with right shift more than length type AVR

2008-06-05 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-06-06 03:08 --- rev 132971 appears to have created this problem. Revision: 132971 Author: bonzini Date: 8:30:10 AM, Thursday, March 06, 2008 Message: 2008-03-06 Paolo Bonzini [EMAIL PROTECTED] * simplify-rtx.c

[Bug target/27386] AVR: wrong code generated when passing three uint64_t arguments to function

2008-06-01 Thread hutchinsonandy at aim dot com
--- Comment #14 from hutchinsonandy at aim dot com 2008-06-01 15:22 --- It appears emit_single_push_insn() is BROKEN for targets with: a)STACK_GROWS_DOWNWARDS+POST_DEC push b)Upwards+POST_INC push. So if any target has this combo and #define PUSH_ROUNDING - it is broken. Fortunately

[Bug testsuite/36285] gcc.dg/compat/struct-by-value-xxx improper test for AVR target

2008-05-31 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-06-01 01:02 --- I have reduced number of failures slightly by setting higher optimisation and skipping complex int using set COMPAT_SKIPS [list {VA} {COMPLEX_INT}] set COMPAT_OPTIONS [list [list {-Os -mcall-prologues} {-Os -mcall

[Bug target/27386] AVR: wrong code generated when passing three uint64_t arguments to function

2008-05-31 Thread hutchinsonandy at aim dot com
--- Comment #13 from hutchinsonandy at aim dot com 2008-06-01 02:40 --- expr.c appears all messed up on emit_single_push_insn. This bad code gets executed when there is no push instruction available. As well as getting address of the mem created completely wrong, it does not account

[Bug testsuite/36284] New: gcc.dg-struct-layout fails AVR target - multiple reasons

2008-05-20 Thread hutchinsonandy at aim dot com
reasons Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: testsuite AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hutchinsonandy at aim dot com GCC host triplet: i686-pc

[Bug testsuite/36284] gcc.dg-struct-layout fails AVR target - multiple reasons

2008-05-20 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-05-20 22:41 --- Created an attachment (id=15658) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15658action=view) Extract from gcc.log Extract from gcc.log showing failure details. For economy, not all 28 tests are shown

[Bug testsuite/36285] New: gcc.dg/compat/struct-by-value-xxx improper test for AVR target

2008-05-20 Thread hutchinsonandy at aim dot com
dot org ReportedBy: hutchinsonandy at aim dot com GCC host triplet: i686-pc-linux-gnu GCC target triplet: avr-unknown-none http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36285

[Bug target/32871] [avr] Bad optimisation - gcc is pushing too many registers

2008-04-27 Thread hutchinsonandy at aim dot com
--- Comment #6 from hutchinsonandy at aim dot com 2008-04-28 00:58 --- Created an attachment (id=15540) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15540action=view) Partial solution using DF defs. -- hutchinsonandy at aim dot com changed: What|Removed

[Bug target/32871] [avr] Bad optimisation - gcc is pushing too many registers

2008-04-27 Thread hutchinsonandy at aim dot com
--- Comment #7 from hutchinsonandy at aim dot com 2008-04-28 00:59 --- Attached is INCOMPLETE attempt to fix this issue. Register saves appear to be ok. But same function is required for Argument pointer elimination offset. It would appear DF chain info is not maintained, when global.c

[Bug target/35860] [4.3 Regression] [avr] code bloat caused by -fsplit-wide-types

2008-04-16 Thread hutchinsonandy at aim dot com
--- Comment #8 from hutchinsonandy at aim dot com 2008-04-16 13:10 --- Subject: Re: [4.3 Regression] [avr] code bloat caused by -fsplit-wide-types Yes, indeed, I have patches in progress for AVR that do split operation to take more advantage of lowering but the bug is still

[Bug target/35860] code bloat caused by -fsplit-wide-types

2008-04-09 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-04-09 19:24 --- Subject: Re: code bloat caused by -fsplit-wide-types Try fwprop patch it might well help. I can't tell from report where the oppertunities are missed. But anything split at combine/split won't get any benefit

[Bug target/34916] [4.3/4.4 Regression] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os

2008-04-08 Thread hutchinsonandy at aim dot com
--- Comment #11 from hutchinsonandy at aim dot com 2008-04-08 17:23 --- Subject: Re: [4.3/4.4 Regression] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os I believe the rules allow for this after a suitable grace period. Remind me towards end of week and I will post

[Bug rtl-optimization/35542] [4.3 Regression] fwprop only propagates one operand

2008-04-02 Thread hutchinsonandy at aim dot com
--- Comment #6 from hutchinsonandy at aim dot com 2008-04-02 15:44 --- Subject: Re: [4.3 Regression] fwprop only propagates one operand Eric, it's difficult to give you a specfic example as the propagation is very sensitive to generated code. I found this looking at other AVR bugs

[Bug target/34879] __builtin_setjmp / __builtin_longjmp fails stack frame address with O2, O3 and Os

2008-03-29 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-03-29 11:37 --- Created an attachment (id=15395) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15395action=view) Setjmp patch for AVR The attached patch is a fix for AVR target. MIPS does something similar to get around same

[Bug target/21080] Excecution test failure for avr for pr17377 test case.

2008-03-29 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-03-29 12:55 --- Created an attachment (id=15396) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15396action=view) Patch to correct return_address The attached patch fixes this problem and PR21078 The AVR target support

[Bug target/35508] [avr] 4.3.0: undefined reference to `__ffshi2'

2008-03-22 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-03-22 23:51 --- This is same bug as: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34210 working on fix - to be posted soon. -- hutchinsonandy at aim dot com changed: What|Removed |Added

[Bug target/34210] ffs builtin calls undefined __ffshi2

2008-03-22 Thread hutchinsonandy at aim dot com
--- Comment #5 from hutchinsonandy at aim dot com 2008-03-23 00:24 --- Patch posted: http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01341.html -- hutchinsonandy at aim dot com changed: What|Removed |Added

[Bug target/35508] [avr] 4.3.0: undefined reference to `__ffshi2'

2008-03-22 Thread hutchinsonandy at aim dot com
--- Comment #2 from hutchinsonandy at aim dot com 2008-03-23 00:24 --- Patch posted http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01341.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35508

[Bug target/34932] [avr] ICE in reload

2008-03-21 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-03-21 22:52 --- Created an attachment (id=15357) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15357action=view) FIX for ICE This patches disables instruction pattern that causes ICE. This pattern is used for the case

[Bug target/30243] [4.1/4.2/4.3/4.4 Regression][avr] signbit() causes an internal compiler error

2008-03-17 Thread hutchinsonandy at aim dot com
--- Comment #8 from hutchinsonandy at aim dot com 2008-03-17 23:10 --- Fails 4.3 on recently added testcase for same bug. /cygdrive/e/gcc/gcc/testsuite/gcc.c-torture/execute/pr35456.c:17: internal compiler error: in gen_lowpart_general, at rtlhooks.c:53 Please submit a full bug report

[Bug target/34916] [4.3/4.4 Regression] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os

2008-03-15 Thread hutchinsonandy at aim dot com
--- Comment #8 from hutchinsonandy at aim dot com 2008-03-15 23:40 --- This appear to be same bug where combine is erroneously assuming all DF register references are to different instructions. So it tries combining instructions with themselves and stuff gets lost. http://gcc.gnu.org

[Bug middle-end/35519] COMBINE repeating same matches and can SEG fault

2008-03-15 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-03-15 23:49 --- This bug also causes incorrect code and appears to be regression from 4.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34916 The good news is that the fix is effective. Anything else I can do to help expedite

[Bug rtl-optimization/35542] New: fwprop only propagates one operand

2008-03-11 Thread hutchinsonandy at aim dot com
Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hutchinsonandy at aim dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35542

[Bug rtl-optimization/35542] fwprop only propagates one operand

2008-03-11 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-03-11 20:34 --- Created an attachment (id=15300) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15300action=view) Patch to search modified instruction for register. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35542

[Bug middle-end/35519] COMBINE repeating same matches and can SEG fault

2008-03-10 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-03-10 22:24 --- Subject: Re: COMBINE repeating same matches and can SEG fault The quadratic nature does not seem to be particularly problem with the data involved. The log_links is build up incrementally. (with duplicates

[Bug target/35507] [avr] 4.3.0: size of small funcion increases from 2 to 29 words

2008-03-09 Thread hutchinsonandy at aim dot com
--- Comment #2 from hutchinsonandy at aim dot com 2008-03-09 12:23 --- Here is more info: Testcase: static long foo99(long b,long a) { return b * a; } long foo2(long b, long a) { return foo99(b,a); } Looking at RTL, the USE of the respective libcalls

[Bug target/35507] [avr] 4.3.0: size of small funcion increases from 2 to 29 words

2008-03-09 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-03-09 18:36 --- The problem is not commutation knowledge to the backend. First - the use notes were a red herring. Reversing them did not help. After much chasing thru call.c and optabs.c, it looks like neither creates nor correct

[Bug middle-end/35519] New: COMBINE repeating same matches and can SEG fault

2008-03-09 Thread hutchinsonandy at aim dot com
: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hutchinsonandy at aim dot com GCC host triplet: i686-oc-cyqwin GCC target triplet: avr-unknown-none http://gcc.gnu.org/bugzilla

[Bug middle-end/35519] COMBINE repeating same matches and can SEG fault

2008-03-09 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-03-09 23:52 --- Created an attachment (id=15287) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15287action=view) Patch for consideratiom towards a solution Patch that removes duplicates when LOG_LINKS is created. -- http

[Bug target/35507] [avr] 4.3.0: size of small funcion increases from 2 to 29 words

2008-03-08 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-03-09 04:35 --- I can confirms this regression. There appears to be something strange in commutation of operands before RTL is created which may well explain why it used to work. BThe default expander are creating calls

[Bug target/32871] [avr] Bad optimisation - gcc is pushing too many registers

2008-03-02 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-03-02 17:22 --- Problem is caused by bug in gcc DF or at least incorrect documentation regarding prolog/epilog register save/resotres As specified in internals manual AVR prolog/epilog uses df_regs_ever_live_p(reg) to determine

[Bug target/32871] [avr] Bad optimisation - gcc is pushing too many registers

2008-03-02 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-03-02 23:32 --- Created an attachment (id=15254) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15254action=view) Patch to fix bug. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32871

[Bug target/34789] [avr] sometimes the compiler keeps addresses in registers unnecessarily

2008-02-21 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-02-22 01:22 --- This appears to be due to avr_rtx_costs not assigning same cost to SYMBOL_REF and CONST_INT. So SYMBOL_REF looks expensive - so is held in register to avoid recalculating it. Quick change to make SYMBOL_REF same

[Bug target/34790] [avr] no sibling call optimisation

2008-02-21 Thread hutchinsonandy at aim dot com
--- Comment #2 from hutchinsonandy at aim dot com 2008-02-22 01:43 --- We have not gotten around to adding support for tail calls for avr. So nothing happens. So it is not a bug - but a still a valid feature request. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34790

[Bug target/35013] Incomplete check in RTL for pm() annotation

2008-02-16 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-02-16 22:06 --- Created an attachment (id=15169) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15169action=view) Patch The attached patch allows function address expressions of the form address+k to be correctly recognized

[Bug target/11180] [avr-gcc] Optimization decrease performance of struct assignment.

2008-02-02 Thread hutchinsonandy at aim dot com
--- Comment #28 from hutchinsonandy at aim dot com 2008-02-02 15:44 --- The patch and suggestions on this are valid. However, memory moves - particular with base pointers, may require additional instruction to be added to reach required displacments. Splitting such moves may well incur

[Bug target/34916] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os

2008-01-22 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-01-22 23:41 --- The WRONG CODE is still present on 4.3.0 20080121 HEAD. This is a regresssion from 4.2 (A big one too!) 4.2.2 20071221 (Winavr) OK 4.3.0 20071213 FAILS 4.3.0 HEAD 20080121 FAILS vr-gcc -c -mmcu=atmega128 -g -w

[Bug target/34932] [avr] ICE in reload

2008-01-22 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-01-23 02:50 --- The pattern requires operand 1 to be same register as operand 0 Operands 1 2 share 2 subregs of same Himode register R22 But should have been solvable without any problem, since HI24 is just right! QI:21 - QI:24

[Bug target/34916] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os

2008-01-21 Thread hutchinsonandy at aim dot com
--- Comment #1 from hutchinsonandy at aim dot com 2008-01-22 00:23 --- Created an attachment (id=14991) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14991action=view) Combine pass RTL dump file -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34916

[Bug target/34916] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os

2008-01-21 Thread hutchinsonandy at aim dot com
--- Comment #2 from hutchinsonandy at aim dot com 2008-01-22 00:26 --- Created an attachment (id=14992) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14992action=view) dce pass RTL dump file (bfore combine) Posted two RTL dump file of smaller testcase: long f2(long

[Bug target/34916] gcc.c-torture/execute/pr27364.c fails with -O1, -O2 and -Os

2008-01-21 Thread hutchinsonandy at aim dot com
--- Comment #3 from hutchinsonandy at aim dot com 2008-01-22 00:52 --- Assembler of short testcase. Constant load (11L) missing 16.Ltext0: 17.global f2 19f2: 20.LFB2: 21.LM1

[Bug target/34888] New: Stack patterns for AVR not optimal

2008-01-20 Thread hutchinsonandy at aim dot com
Version: 4.3.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hutchinsonandy at aim dot com GCC target triplet: avr-*-* http://gcc.gnu.org/bugzilla

[Bug target/34412] ICE in extract_insn, at recog.c:1990

2008-01-11 Thread hutchinsonandy at aim dot com
--- Comment #4 from hutchinsonandy at aim dot com 2008-01-11 23:32 --- Created an attachment (id=14928) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14928action=view) Fix expander patch Prior analysis is correct. Typo resulted in QI addition to HI mode frame pointer, when Tiny

[Bug target/34412] ICE in extract_insn, at recog.c:1990

2008-01-11 Thread hutchinsonandy at aim dot com
--- Comment #5 from hutchinsonandy at aim dot com 2008-01-11 23:40 --- An instant work around for Tiny Targets is to optimise at higher level (-Os) This will most likely remove need for frame pointer and skirt around the bug. Though it will still happen if there are more auto