[Bug target/36133] GCC creates suboptimal ASM : Code includes unneeded TST instructions

2008-11-10 Thread gunnar at greyhound-data dot com
--- 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

[Bug c/36133] New: GCC creates suboptimal ASM : Code includes unneeded TST instructions

2008-05-05 Thread gunnar at greyhound-data dot com
: 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

[Bug c/36134] New: GCC creates suboptimal ASM : usage of ADDA.L where LEA could be used

2008-05-05 Thread gunnar at greyhound-data dot com
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

[Bug c/36135] New: GCC creates suboptimal ASM : suboptimal Adressing-Modes used

2008-05-05 Thread gunnar at greyhound-data dot com
-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

[Bug c/36136] New: GCC creates suboptimal ASM : constant work registers are set up inside work loops and not outside of the loop

2008-05-05 Thread gunnar at greyhound-data dot com
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

[Bug target/36133] GCC creates suboptimal ASM : Code includes unneeded TST instructions

2008-05-28 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36134] GCC creates suboptimal ASM : usage of ADDA.L where LEA could be used

2008-05-28 Thread gunnar at greyhound-data dot com
--- 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) (

[Bug target/36135] GCC creates suboptimal ASM : suboptimal Adressing-Modes used

2008-05-28 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36136] GCC creates suboptimal ASM : constant work registers are set up inside work loops and not outside of the loop

2008-05-28 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36134] GCC creates suboptimal ASM : usage of ADDA.L where LEA could be used

2008-05-29 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36133] GCC creates suboptimal ASM : Code includes unneeded TST instructions

2008-06-04 Thread gunnar at greyhound-data dot com
--- 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.

[Bug c/36433] New: mregeparm

2008-06-04 Thread gunnar at greyhound-data dot com
-- 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

[Bug c/36433] mregeparm not supported on 68k / Coldfire

2008-06-04 Thread 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

[Bug target/36133] GCC creates suboptimal ASM : Code includes unneeded TST instructions

2008-06-05 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36134] GCC creates suboptimal ASM : usage of ADDA.L where LEA could be used

2008-06-10 Thread gunnar at greyhound-data dot com
--- 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

[Bug c/36487] New: Generated 68K code bad for pipelining

2008-06-10 Thread gunnar at greyhound-data dot com
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

[Bug c/36488] New: Generated 68K code bad for pipelining (case swap)

2008-06-10 Thread gunnar at greyhound-data dot com
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-

[Bug target/25128] [m68k] Suboptimal comparisons against 65536

2008-06-10 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36133] GCC creates suboptimal ASM : Code includes unneeded TST instructions

2008-06-12 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36134] GCC creates suboptimal ASM : usage of ADDA.L where LEA could be used

2008-06-12 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36135] GCC creates suboptimal ASM : suboptimal Adressing-Modes used

2008-06-12 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36135] GCC creates suboptimal ASM : suboptimal Adressing-Modes used

2008-06-13 Thread gunnar at greyhound-data dot com
--- 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

[Bug target/36135] GCC creates suboptimal ASM : suboptimal Adressing-Modes used

2008-06-13 Thread gunnar at greyhound-data dot com
--- 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 .

[Bug c/36770] New: PowerPC generated PTR code ineffiency

2008-07-09 Thread gunnar at greyhound-data dot com
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

[Bug c/36772] New: GCC generates impossible BRANCH instruction

2008-07-09 Thread gunnar at greyhound-data dot com
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

[Bug middle-end/36770] PowerPC generated PTR code inefficiency

2008-07-10 Thread gunnar at greyhound-data dot com
--- 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