--- Comment #8 from gunnar at greyhound-data dot com 2008-11-10 12:54
---
(In reply to comment #7)
> (In reply to comment #4)
> > There are two causes where GCC generates unneeded TST instructions.
> > A) General arithmetic
> > lsr.l #1,D0
> > tst.l d0
: gunnar at greyhound-data dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: m68k-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36133
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gunnar at greyhound-data dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: m68k-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36134
-Modes
used
Product: gcc
Version: 4.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gunnar at greyhound-data dot com
GCC
dot org
ReportedBy: gunnar at greyhound-data dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: m68k-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36136
--- Comment #3 from gunnar at greyhound-data dot com 2008-05-28 16:14
---
(In reply to comment #1)
> It would have been nice to check at least gcc 4.3 (or better current trunk).
>
I've verified with latest source gcc source "version 4.4.0 20080523
(experimental) (GC
--- Comment #2 from gunnar at greyhound-data dot com 2008-05-28 16:18
---
(In reply to comment #1)
> It would have been nice to check at least gcc 4.3 (or better current trunk).
>
I've verified with latest source gcc source "version 4.4.0 20080523
(experimental) (
--- Comment #2 from gunnar at greyhound-data dot com 2008-05-28 16:23
---
(In reply to comment #1)
> It would have been nice to check at least gcc 4.3 (or better current trunk).
>
I have verified this for you with the most current GCC source.
Verified with gcc version 4.4.0 20
--- Comment #2 from gunnar at greyhound-data dot com 2008-05-28 16:28
---
(In reply to comment #1)
> It would have been nice to check at least gcc 4.3 (or better current trunk).
>
I have verified this with the most current GCC source trunk.
GCC 4.4 code snapshot 2008-05-2
--- Comment #3 from gunnar at greyhound-data dot com 2008-05-29 12:50
---
Created an attachment (id=15699)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15699&action=view)
Prefer 4 byte long LEA over 6 byte long ADD.L
Please include the attached patch for GCC.
The adde
--- Comment #4 from gunnar at greyhound-data dot com 2008-06-04 09:29
---
I want to add that this wrong behavior is partly related to the compile option
"-Os".
There are two causes where GCC generates unneeded TST instructions.
A) General arithmetic
lsr.l #1,D0
tst.
--
Summary: mregeparm
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gunnar at greyhound-data dot com
--- Comment #1 from gunnar at greyhound-data dot com 2008-06-04 09:54
---
The parameter -mregparm is not supported on M68k / Coldfire.
As it its known from the X86 platform compiling with mregparm does improve the
size and performance of the generated code. On X86 an overall
--- Comment #5 from gunnar at greyhound-data dot com 2008-06-05 12:07
---
Please find below a proposed patch.
The patch will making GCC aware that shift does set the CC already
and the TST is not needed in this case.
The same example could be used to used to make GCC aware of the CC
--- Comment #5 from gunnar at greyhound-data dot com 2008-06-10 15:24
---
(In reply to comment #4)
> Could you please submit your patch to [EMAIL PROTECTED], including a
> ChangeLog entry and stating how you tested it.
>
As requested I did send the email last week.
Do
ipelining
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gunnar at greyhound-data dot com
GCC host triplet: m68k-linux-gnu
GCC t
ase swap)
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gunnar at greyhound-data dot com
GCC host triplet: m68k-linux-
--- Comment #2 from gunnar at greyhound-data dot com 2008-06-10 16:02
---
> Note that
>
> cmp.l #65535,%d0
> jbhi .L10
>
> can be replaced with
>
> swap %d0
> tst.w %d0
> jbne .L10
>
> A similar trick can
--- Comment #6 from gunnar at greyhound-data dot com 2008-06-12 14:26
---
Andreas,
Could you have a look at this?
Cheers
Gunnar
--
gunnar at greyhound-data dot com changed:
What|Removed |Added
--- Comment #6 from gunnar at greyhound-data dot com 2008-06-12 14:27
---
Andreas,
could you please have a look at this?
Cheers
Gunnar
--
gunnar at greyhound-data dot com changed:
What|Removed |Added
--- Comment #3 from gunnar at greyhound-data dot com 2008-06-12 14:34
---
Andreas,
What is your opinion to this?
GCC 2.9 used to combine the move with increment in the combine step to
something like this:
***
(insn 32 30 33 (set (reg/v:SI 32)
(mem:SI (post_inc:SI (reg/v:SI 34
--- Comment #5 from gunnar at greyhound-data dot com 2008-06-13 09:31
---
(In reply to comment #4)
> This comes down to IV-OPTs not understanding {post,pre}_{dec,inc} at all.
> There is another bug about this somewhere I think for arm. PowerPC has the
> same issue too ...
&g
--- Comment #6 from gunnar at greyhound-data dot com 2008-06-13 13:34
---
(In reply to comment #4)
> This comes down to IV-OPTs not understanding {post,pre}_{dec,inc} at all.
> There is another bug about this somewhere I think for arm. PowerPC has the
> same issue too .
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gunnar at greyhound-data dot com
GCC build triplet: powerpc64-unknown-linux-gnu
GCC host tri
ReportedBy: gunnar at greyhound-data dot com
GCC build triplet: m68k-linux-gnu
GCC host triplet: m68k-linux-gnu
GCC target triplet: m68k-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36772
--- Comment #2 from gunnar at greyhound-data dot com 2008-07-10 09:18
---
(In reply to comment #1)
> forward-propagate is causing some of the issues as shown by:
> int *test2(int *a ){
> a[1]=a[0];
> a++;
> return a;
> }
Your example creates the followi
26 matches
Mail list logo