[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 and

[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 loc

[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 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 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 be

[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

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

2008-06-05 Thread hutchinsonandy at aim dot com
- Summary: simplify_subreg ICE with right shift more than length type AVR Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc d

[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 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/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 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 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=15658&action=view) Extract from gcc.log Extract from gcc.log showing failure details. For economy, not all 28 tests ar

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

2008-05-20 Thread hutchinsonandy at aim dot com
ayout fails AVR target - multiple 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 do

[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/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=15540&action=view) Partial solution using DF defs. -- hutchinsonandy at aim dot com changed: What|

[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" i

[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

[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 for

[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

[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=15396&action=view) Patch to correct return_address The attached patch fixes this problem and PR21078 The AVR target supp

[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=15395&action=view) Setjmp patch for AVR The attached patch is a fix for AVR target. MIPS does something similar to get arou

[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/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 #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/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=15357&action=view) FIX for ICE This patches disables instruction pattern that causes ICE. This pattern is used for the

[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 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 the

[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 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=15300&action=view) Patch to search modified instruction for register. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35542

[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 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 at

[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=15287&action=view) Patch for consideratiom towards a solution Patch that removes duplicates when LOG_LINKS is

[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 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 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 are

[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 to

[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=15254&action=view) Patch to fix bug. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32871

[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/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/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 SYMBO

[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=15169&action=view) Patch The attached patch allows function address expressions of the form address+k to be correctly rec

[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/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 -

[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/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/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=14992&action=view) dce pass RTL dump file (bfore combine) Posted two RTL dump file of smaller testcase: 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 #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=14991&action=view) Combine pass RTL dump file -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34916

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

2008-01-20 Thread hutchinsonandy at aim dot com
l Product: gcc 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://

[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

[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=14928&action=view) Fix expander patch Prior analysis is correct. Typo resulted in QI addition to HI mode frame pointer, wh