This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/34888] New: Stack patterns for AVR not optimal
- From: "hutchinsonandy at aim dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Jan 2008 19:06:28 -0000
- Subject: [Bug target/34888] New: Stack patterns for AVR not optimal
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
There are several instruction patterns related to stack pointer operations.
These are not quite right:
1) popqi and poph1 patterns use post_inc codes - when in fact there are pre_inc
- this could fail if gcc ever used them outside prolog/epilog
2) Stack moves such as push/pop should be placed before mov patterns, to
provide best matching.
3)Stack adjustment (SP=SP+c) is matching with *addhi pattern, which causes
reloads of output and input. We really want it to match "*addhi3_sp_R_pc2" when
offset is small so *addhi3_sp_R_pc2 needs to be placed before *addhi
4)"*addhi3_sp_R_pc2" does not provide full range of optimal adjustment. For
example, SP=SP+8 takes 4 instructions using rcall but around 8 using addition
through register. This functionality needs extending accordingly as SP=SP+8 is
very common.
--
Summary: Stack patterns for AVR not optimal
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://gcc.gnu.org/bugzilla/show_bug.cgi?id=34888