From: SourceForge.net <no...@so...> - 2007-04-14 23:21:49
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-04-17 17:34:01
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-04-18 08:04:34
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by frief You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 10:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: Lin R. <wo...@ar...> - 2007-04-18 08:23:14
|
Thanks Philip, we are eager to test 2.7.0 improvement in our project. frief, you are right, we are using SDCC Z80 port. We are using 2.6.0 steady version for over 40k products world-wide now, and are seeing its growth everyday. We have 145k compiled code today with little data and hand-coded asm. I believe the code size and speed can be greatly improved with 2.7.0. Woody AR1688/PA1688 based IP phone mailing list -- http://groups.yahoo.com/group/pa1688/ VOIP/AR1688 BLOG -- http://aredfox.spaces.live.com/ MSN: wo...@ar... ----- Original Message ----- From: "SourceForge.net" <no...@so...> To: <no...@so...> Sent: Wednesday, April 18, 2007 4:04 PM Subject: [sdcc-devel] [ sdcc-Patches-1700823 ] Z80 peephole and codegeneration patch > Patches item #1700823, was opened at 2007-04-15 01:21 > Message generated for change (Comment added) made by frief > You can respond by visiting: > https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 > > Please note that this message will contain a full copy of the comment thread, > including the initial issue submission, for this request, > not just the latest update. > Category: None > Group: None > Status: Open > Resolution: None > Priority: 5 > Private: No > Submitted By: Philipp Krause (spth) > Assigned to: Nobody/Anonymous (nobody) > Summary: Z80 peephole and code generation patch > > Initial Comment: > This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. > > This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: > > sdcc 2.6.5 #4749: 23354 bytes. > sdcc 2.6.5 #4749 with this patch: 23081 bytes. > sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. > > This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. > > Philipp > > > ---------------------------------------------------------------------- > > >Comment By: Frieder Ferlemann (frief) > Date: 2007-04-18 10:04 > > Message: > Logged In: YES > user_id=589052 > Originator: NO > > Hi Z80 users, hi Philip, > > being a Z80 illiterate I cannot review the patch. > Yet I feel the change to gen.c should go in (before 2.7.0) > > As to the changes to the peephole rules I'm not sure > (the regression test suite would for example be > a poor test bed for missing "notVolatile" checks). > Without review by Z80 users I feel this is > "post 2.7.0". > Currently the Z80 community is surprisingly silent > although SDCC for Z80 seems to be in use > (f.e. http://aredfox.com/eqa.htm). > > Borut would have the last word on this. > > > ---------------------------------------------------------------------- > > Comment By: Philipp Krause (spth) > Date: 2007-04-17 19:34 > > Message: > Logged In: YES > user_id=564030 > Originator: YES > > One of the optimizations in this patch implements feature request > #1491847. > > ---------------------------------------------------------------------- > > You can respond by visiting: > https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > sdcc-devel mailing list > sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-devel > > |
From: Frieder F. <fri...@we...> - 2007-04-18 09:04:00
|
Hi Woody, Lin Rongrong schrieb: > Thanks Philip, we are eager to test 2.7.0 improvement in our project. > > frief, you are right, we are using SDCC Z80 port. We are using 2.6.0 steady > version for over 40k products world-wide now, and are seeing its growth > everyday. We have 145k compiled code today with little data and hand-coded > asm. I believe the code size and speed can be greatly improved with 2.7.0. Would you make yourself heard if a 2.7.0 release candidate for SDCC would not work with your project? According to: http://www.aredfox.com/download/English/documents/AR1688DevelopManual_US.pdf you seem to make heavy use of (hand-written) bank-switching. If you find time you might comment on "patches to support gb/z80 bank switching" ?) https://sourceforge.net/tracker/index.php?func=detail&aid=1597883&group_id=599&atid=300599 Greetings, Frieder |
From: Lin R. <wo...@ar...> - 2007-04-18 11:38:57
|
Frieder, Of course we will cry out loudly for any problem with 2.7.0 release candidate. I tested with 2.6.5 Apr 17 snapshot (file name: sdcc-src-20070417-4752.tar.tar) today and found the following: 1. in src\SDCCmain.c, line 1154-1163, the "--codeseg" option is handled wrong, will cause as-z80.exe report "Error: <u> undefined symbol encountered during assembly". Modify line 1159: dbuf_printf (&segname, "%-8s(CODE)", getStringArg (OPTION_CODE_SEG, argv, &i, argc)); to dbuf_printf (&segname, "%-8s", getStringArg (OPTION_CODE_SEG, argv, &i, argc)); solved this problem. 2. After changed 1 and re-compile, other tools work fine so far.We will have a complete function test tomorrow. 3. The code size optimization is not so great as expected. The new compiler reduced less than 1k bytes of our 145k bytes program. Anyway it is working fine, has improvement in almost every module. I am testing the compiler under windows XP. > If you find time you might comment on "patches to support gb/z80 bank switching" ?) > https://sourceforge.net/tracker/index.php?func=detail&aid=1597883&group_id=599&atid=300599 This patch is for gameboy gbz80, we are not using it. Woody AR1688/PA1688 based IP phone mailing list -- http://groups.yahoo.com/group/pa1688/ VOIP/AR1688 BLOG -- http://aredfox.spaces.live.com/ MSN: wo...@ar... ----- Original Message ----- From: "Frieder Ferlemann" <fri...@we...> To: "Development chatter about sdcc" <sdc...@li...> Cc: <wo...@ar...>; <su...@ar...>; <ra...@us...>; <pa...@ya...> Sent: Wednesday, April 18, 2007 5:03 PM Subject: Re: [sdcc-devel] [ sdcc-Patches-1700823 ] Z80 peephole and codegeneration patch > Hi Woody, > > Lin Rongrong schrieb: > > Thanks Philip, we are eager to test 2.7.0 improvement in our project. > > > > frief, you are right, we are using SDCC Z80 port. We are using 2.6.0 steady > > version for over 40k products world-wide now, and are seeing its growth > > everyday. We have 145k compiled code today with little data and hand-coded > > asm. I believe the code size and speed can be greatly improved with 2.7.0. > > Would you make yourself heard if a 2.7.0 release candidate > for SDCC would not work with your project? > > According to: http://www.aredfox.com/download/English/documents/AR1688DevelopManual_US.pdf > you seem to make heavy use of (hand-written) bank-switching. > If you find time you might comment on "patches to support gb/z80 bank switching" ?) > https://sourceforge.net/tracker/index.php?func=detail&aid=1597883&group_id=599&atid=300599 > > Greetings, > Frieder > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > sdcc-devel mailing list > sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-devel > > |
From: Borut R. <bor...@si...> - 2007-04-20 17:33:54
|
Lin Rongrong wrote: > Frieder, > > Of course we will cry out loudly for any problem with 2.7.0 release > candidate. > > I tested with 2.6.5 Apr 17 snapshot (file name: > sdcc-src-20070417-4752.tar.tar) today and found the following: > > 1. in src\SDCCmain.c, line 1154-1163, the "--codeseg" option is handled > wrong, will cause as-z80.exe report "Error: <u> undefined symbol encountered > during assembly". Modify line 1159: > dbuf_printf (&segname, "%-8s(CODE)", getStringArg > (OPTION_CODE_SEG, argv, &i, argc)); > to > dbuf_printf (&segname, "%-8s", getStringArg (OPTION_CODE_SEG, > argv, &i, argc)); > solved this problem. > > 2. After changed 1 and re-compile, other tools work fine so far.We will > have a complete function test tomorrow. > > I (hopefully) fixed the problem in snapshot build 20070420-4759. Can you please verify it? <http://sdcc.sourceforge.net/snapshots/i386-unknown-linux2.5/sdcc-snapshot-i386-unknown-linux2.5-20070420-4759.tar.bz2> > 3. The code size optimization is not so great as expected. The new > compiler reduced less than 1k bytes of our 145k bytes program. Anyway it is > working fine, has improvement in almost every module. > > I am testing the compiler under windows XP. > I assume that you are talking about patch http://sourceforge.net/tracker/index.php?func=detail&aid=1700823&group_id=599&atid=300599. Do you think that the patch should be included into the sdcc 2.7.0 release? Borut |
From: SourceForge.net <no...@so...> - 2007-04-21 08:14:07
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by borutr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) >Assigned to: Borut Razem (borutr) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Borut Razem (borutr) Date: 2007-04-21 10:14 Message: Logged In: YES user_id=568035 Originator: NO Hi Philip, I took a look to the patch and I have a question: if I understand well you put all z80 peephole rules to peeph-z80.def and you remove everything from peeph.def. But now the problem are gbz80 rules: they are in peeph.def and peeph-gbz80.def, but peeph.def is now empty!? Is this correct? Probably we should move the old content of peeph.def to peeph-gbz80.def? Borut ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 10:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-04-21 09:05:58
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Borut Razem (borutr) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2007-04-21 11:05 Message: Logged In: YES user_id=564030 Originator: YES > Is this correct? I do not know much about the gbz80 CPU, so I placed my new peephole rules in peeph-z80.def to not breake the gbz80 port. I've looked at some information about the gbz80 CPU though and noticed that some of the instructions used in peephole rules in the old peeph.def are not valid gbz80 instructions. So I decided to not add rules from peeph.def to peeph-gbz80.def. I'll post a new patch with some rules moved from peeph-z80.def to peeph.def, but only rules from the top of peeph-z80.def where I am sure that they'll cause not problems on the gbz80. a gbz80 expert should look at it some day in the future and decide if more rules can be moved to peeph.def or if simular rules should be added to peeph-gbz80.def. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 10:14 Message: Logged In: YES user_id=568035 Originator: NO Hi Philip, I took a look to the patch and I have a question: if I understand well you put all z80 peephole rules to peeph-z80.def and you remove everything from peeph.def. But now the problem are gbz80 rules: they are in peeph.def and peeph-gbz80.def, but peeph.def is now empty!? Is this correct? Probably we should move the old content of peeph.def to peeph-gbz80.def? Borut ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 10:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-04-21 09:34:54
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by borutr You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Borut Razem (borutr) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Borut Razem (borutr) Date: 2007-04-21 11:34 Message: Logged In: YES user_id=568035 Originator: NO > I've looked at some > information about the gbz80 CPU though and noticed that some of the > instructions used in peephole rules in the old peeph.def are not valid > gbz80 instructions. So I decided to not add rules from peeph.def to > peeph-gbz80.def. How is this possible??? gbz80 includes both peeph.def and peeph-gbz80.def, so it means that gbz80 was broken? Borut ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-21 11:05 Message: Logged In: YES user_id=564030 Originator: YES > Is this correct? I do not know much about the gbz80 CPU, so I placed my new peephole rules in peeph-z80.def to not breake the gbz80 port. I've looked at some information about the gbz80 CPU though and noticed that some of the instructions used in peephole rules in the old peeph.def are not valid gbz80 instructions. So I decided to not add rules from peeph.def to peeph-gbz80.def. I'll post a new patch with some rules moved from peeph-z80.def to peeph.def, but only rules from the top of peeph-z80.def where I am sure that they'll cause not problems on the gbz80. a gbz80 expert should look at it some day in the future and decide if more rules can be moved to peeph.def or if simular rules should be added to peeph-gbz80.def. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 10:14 Message: Logged In: YES user_id=568035 Originator: NO Hi Philip, I took a look to the patch and I have a question: if I understand well you put all z80 peephole rules to peeph-z80.def and you remove everything from peeph.def. But now the problem are gbz80 rules: they are in peeph.def and peeph-gbz80.def, but peeph.def is now empty!? Is this correct? Probably we should move the old content of peeph.def to peeph-gbz80.def? Borut ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 10:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-05-01 09:17:50
|
Patches item #1700823, was opened at 2007-04-14 16:21 Message generated for change (Comment added) made by nobody You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Borut Razem (borutr) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2007-05-01 02:17 Message: Logged In: NO Here's a new patch. I've added a few peephole rules, moved many peephole rules which should work on the gbz80 from peeph-z80.def to peeph.def. I've run the Z80 regression tests and got no errors. I used sdcc #4749. Now all peephole rules except for the gbz80-specific ones add comments to the .asm-files. This should make debugging and improving the peephole rules easier. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 02:34 Message: Logged In: YES user_id=568035 Originator: NO > I've looked at some > information about the gbz80 CPU though and noticed that some of the > instructions used in peephole rules in the old peeph.def are not valid > gbz80 instructions. So I decided to not add rules from peeph.def to > peeph-gbz80.def. How is this possible??? gbz80 includes both peeph.def and peeph-gbz80.def, so it means that gbz80 was broken? Borut ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-21 02:05 Message: Logged In: YES user_id=564030 Originator: YES > Is this correct? I do not know much about the gbz80 CPU, so I placed my new peephole rules in peeph-z80.def to not breake the gbz80 port. I've looked at some information about the gbz80 CPU though and noticed that some of the instructions used in peephole rules in the old peeph.def are not valid gbz80 instructions. So I decided to not add rules from peeph.def to peeph-gbz80.def. I'll post a new patch with some rules moved from peeph-z80.def to peeph.def, but only rules from the top of peeph-z80.def where I am sure that they'll cause not problems on the gbz80. a gbz80 expert should look at it some day in the future and decide if more rules can be moved to peeph.def or if simular rules should be added to peeph-gbz80.def. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 01:14 Message: Logged In: YES user_id=568035 Originator: NO Hi Philip, I took a look to the patch and I have a question: if I understand well you put all z80 peephole rules to peeph-z80.def and you remove everything from peeph.def. But now the problem are gbz80 rules: they are in peeph.def and peeph-gbz80.def, but peeph.def is now empty!? Is this correct? Probably we should move the old content of peeph.def to peeph-gbz80.def? Borut ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 01:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 10:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-05-01 09:19:28
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Borut Razem (borutr) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2007-05-01 11:19 Message: Logged In: YES user_id=564030 Originator: YES Here's the patch, sorry for not logging in for the last post. File Added: Z80peephole.patch ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2007-05-01 11:17 Message: Logged In: NO Here's a new patch. I've added a few peephole rules, moved many peephole rules which should work on the gbz80 from peeph-z80.def to peeph.def. I've run the Z80 regression tests and got no errors. I used sdcc #4749. Now all peephole rules except for the gbz80-specific ones add comments to the .asm-files. This should make debugging and improving the peephole rules easier. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 11:34 Message: Logged In: YES user_id=568035 Originator: NO > I've looked at some > information about the gbz80 CPU though and noticed that some of the > instructions used in peephole rules in the old peeph.def are not valid > gbz80 instructions. So I decided to not add rules from peeph.def to > peeph-gbz80.def. How is this possible??? gbz80 includes both peeph.def and peeph-gbz80.def, so it means that gbz80 was broken? Borut ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-21 11:05 Message: Logged In: YES user_id=564030 Originator: YES > Is this correct? I do not know much about the gbz80 CPU, so I placed my new peephole rules in peeph-z80.def to not breake the gbz80 port. I've looked at some information about the gbz80 CPU though and noticed that some of the instructions used in peephole rules in the old peeph.def are not valid gbz80 instructions. So I decided to not add rules from peeph.def to peeph-gbz80.def. I'll post a new patch with some rules moved from peeph-z80.def to peeph.def, but only rules from the top of peeph-z80.def where I am sure that they'll cause not problems on the gbz80. a gbz80 expert should look at it some day in the future and decide if more rules can be moved to peeph.def or if simular rules should be added to peeph-gbz80.def. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 10:14 Message: Logged In: YES user_id=568035 Originator: NO Hi Philip, I took a look to the patch and I have a question: if I understand well you put all z80 peephole rules to peeph-z80.def and you remove everything from peeph.def. But now the problem are gbz80 rules: they are in peeph.def and peeph-gbz80.def, but peeph.def is now empty!? Is this correct? Probably we should move the old content of peeph.def to peeph-gbz80.def? Borut ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 10:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |
From: SourceForge.net <no...@so...> - 2007-05-05 13:48:04
|
Patches item #1700823, was opened at 2007-04-15 01:21 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Philipp Krause (spth) >Assigned to: Maarten Brock (maartenbrock) Summary: Z80 peephole and code generation patch Initial Comment: This patch contains a complete rewrite of the Z80 peephole rules and a minor modification of Z80 code generation. This patch significantly improves size and speed of generated Z80 asm code. The regression tests pass without failures. In my test program I got this size reduction: sdcc 2.6.5 #4749: 23354 bytes. sdcc 2.6.5 #4749 with this patch: 23081 bytes. sdcc 2.6.5 #4749 with this patch and the one in bugreport 1677178: 22940 bytes. This test program contains ~15KB data and hand-coded asm, so we see a significant improvement in the sdcc-generated code. Philipp ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2007-05-05 15:48 Message: Logged In: YES user_id=888171 Originator: NO Phillip, I've reviewed your patch, made some changes to it and applied it to SDCC 2.6.5 #4786. The regression tests do not show much size reduction, but they do show 1.5% speed improvement. My Z80 coding is a bit rusty so I hope I didn't break anything. Thanks, Maarten ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-05-01 11:19 Message: Logged In: YES user_id=564030 Originator: YES Here's the patch, sorry for not logging in for the last post. File Added: Z80peephole.patch ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2007-05-01 11:17 Message: Logged In: NO Here's a new patch. I've added a few peephole rules, moved many peephole rules which should work on the gbz80 from peeph-z80.def to peeph.def. I've run the Z80 regression tests and got no errors. I used sdcc #4749. Now all peephole rules except for the gbz80-specific ones add comments to the .asm-files. This should make debugging and improving the peephole rules easier. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 11:34 Message: Logged In: YES user_id=568035 Originator: NO > I've looked at some > information about the gbz80 CPU though and noticed that some of the > instructions used in peephole rules in the old peeph.def are not valid > gbz80 instructions. So I decided to not add rules from peeph.def to > peeph-gbz80.def. How is this possible??? gbz80 includes both peeph.def and peeph-gbz80.def, so it means that gbz80 was broken? Borut ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-21 11:05 Message: Logged In: YES user_id=564030 Originator: YES > Is this correct? I do not know much about the gbz80 CPU, so I placed my new peephole rules in peeph-z80.def to not breake the gbz80 port. I've looked at some information about the gbz80 CPU though and noticed that some of the instructions used in peephole rules in the old peeph.def are not valid gbz80 instructions. So I decided to not add rules from peeph.def to peeph-gbz80.def. I'll post a new patch with some rules moved from peeph-z80.def to peeph.def, but only rules from the top of peeph-z80.def where I am sure that they'll cause not problems on the gbz80. a gbz80 expert should look at it some day in the future and decide if more rules can be moved to peeph.def or if simular rules should be added to peeph-gbz80.def. ---------------------------------------------------------------------- Comment By: Borut Razem (borutr) Date: 2007-04-21 10:14 Message: Logged In: YES user_id=568035 Originator: NO Hi Philip, I took a look to the patch and I have a question: if I understand well you put all z80 peephole rules to peeph-z80.def and you remove everything from peeph.def. But now the problem are gbz80 rules: they are in peeph.def and peeph-gbz80.def, but peeph.def is now empty!? Is this correct? Probably we should move the old content of peeph.def to peeph-gbz80.def? Borut ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2007-04-18 10:04 Message: Logged In: YES user_id=589052 Originator: NO Hi Z80 users, hi Philip, being a Z80 illiterate I cannot review the patch. Yet I feel the change to gen.c should go in (before 2.7.0) As to the changes to the peephole rules I'm not sure (the regression test suite would for example be a poor test bed for missing "notVolatile" checks). Without review by Z80 users I feel this is "post 2.7.0". Currently the Z80 community is surprisingly silent although SDCC for Z80 seems to be in use (f.e. http://aredfox.com/eqa.htm). Borut would have the last word on this. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2007-04-17 19:34 Message: Logged In: YES user_id=564030 Originator: YES One of the optimizations in this patch implements feature request #1491847. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300599&aid=1700823&group_id=599 |