--- 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
--- 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
--- 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
--- 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
--- 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
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
--- 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
--- 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
--- 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
--- 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
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
--- 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
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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
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
--- 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
--- 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
--- 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
--- 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
: 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
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
--- 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
--- 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
50 matches
Mail list logo