[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 jbne ... This tst instruction

[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 following ASM code: test2: mr

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

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

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

2008-07-09 Thread gunnar at greyhound-data dot com
-- Summary: GCC generates impossible BRANCH instruction Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gunnar at greyhound-data

[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

[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 ... Hi Andrew

[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/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 you need anything

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

2008-06-10 Thread gunnar at greyhound-data dot com
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 target triplet: m68k-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36487

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

2008-06-10 Thread gunnar at greyhound-data dot com
: 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 target triplet: m68k-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id

[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 be applied to signed comparisons as well

[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/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.l d0 jbne

[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/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=15699action=view) Prefer 4 byte long LEA over 6 byte long ADD.L Please include the attached patch for GCC. The added patch has

[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) (GCC) The problem

[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) (GCC) The most current

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

[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-23 The problem

[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
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=36136