I got the following error when using --oldralloc option: C:\SDCC\BIN\sdcc ne2000.c -mz80 -c --oldralloc --std-c99 --codeseg CODE0 Internal error: validateOpType failed in OP_SYMBOL(IC_RESULT (ic)) @ /home/sdcc- builder/build/sdcc-build/orig/sdcc/src/z80/ralloc.c:863: expected symbol, got va lue ..\bin\make: *** [ne2000.rel] Error 1
Woody http://palmmicro.com/woody/ ----- Original Message ----- From: "Philipp Klaus Krause" <p...@spth.de> To: <sdcc-user@lists.sourceforge.net> Sent: Tuesday, July 12, 2011 6:39 PM Subject: Re: [Sdcc-user] Z80 code size reduction > Am 12.07.2011 07:27, schrieb Lin Rongrong: >> I tried 3.0.4 #6622 (Jul 11 2011) (MINGW32) version today. It took my >> Intel >> Core2 Duo CPU T5800@2GHz with 4GB RAM 34 minutes to build current AR1688 >> 0.53.012 SIP software. The previous 3.0.1 only need less than 2 minutes. > > What's the difference in code size? > I have some dieas about how to get a better compilation speed / code > size trade-off, but I don't want to implement them before the 3.1.0 > release. There's already enough new, potentially buggy stuff in sdcc > that needs more testing as is. > >> Although there is no compile problem now and the code size is indeed >> reduced >> a lot, the compiled result is bad. It can still boot up with DHCP ok, but >> major functions like software upgrade and SIP registration are broken. >> I guess I need to debug with the options mentioned in the following >> email, >> since the compile time is so long right now, I'd like to ask if there is >> any >> option update before I start. >> >> Woody >> >> http://palmmicro.com/woody/ >> >> ----- Original Message ----- >> From: "Philipp Klaus Krause" <p...@spth.de> >> To: "Sdcc-User" <sdcc-user@lists.sourceforge.net> >> Cc: <z88dk-develop...@lists.sourceforge.net> >> Sent: Wednesday, April 06, 2011 11:01 PM >> Subject: [Sdcc-user] Z80 code size reduction >> >> >>> Dear users of the Z80 port, >>> >>> I've been working on a new register allocator for some months. >>> >>> The current protoype already generates better code than current 'normal' >>> sdcc in most cases. A code size reduction of about 10% seems typical. >>> >>> A small benchmark can be found at >>> https://sourceforge.net/apps/trac/sdcc/wiki/Philipp%27s%20TODO%20list, >>> where the rightmost column gives the code sizes for the new allocator. >>> As you can see, with the new allocator sdcc in most cases generates >>> smaller code than all other compilers, including the last HITECH-C >>> compiler. >>> >>> You can download sdcc with the new allocator from >>> http://colecovision.eu/stuff/sdcc-or-2011-4-6.tar.gz. I have worked on >>> fixing bugs for about a week; all regression tests complete without >>> errors, and my own Z80 applications work when compiled with this >>> version. >>> >>> However it's likely that there are still lots of bugs, thus it needs >>> testing. Please test this version of sdcc on your code, and tell me >>> about any problems you encounter. >>> >>> A short description of the command line options you might want to try: >>> >>> --optralloc-exact-cost : Use an exact cost function. This should >>> generate slightly better code than without this option. > > This option has been removed. The exact cost function works so well, > that it is always used in the z80 port now. And since it was never > implemented in the gbz80 port, there's no need for the option there > either. > >>> >>> --max-allocs-per-node : Higher values result in better code, at the cost >>> of longer compile time (and higher memory usage during compilation). The >>> default value is 10000. > > Of course this can be used to speed up compilation, by setting it to a > value lower than 10000 as well. > >>> >>> --opt-code-size : Optimize for code size instead of speed. Currently has >>> a relatively small impact on the code generated. >>> >>> --no-peep : Disables the peephole optimizer. When there's a problem that >>> goes away when using --no-peep it's most likely a bug in the peephole >>> optimizer or the peephole rules. > > I recommend to use this early in testing: Peephole rule bugs seem > relatively common and tend to be easy to track down and fix. > > There's --oldralloc now as well, which uses the old register allocator. > This is probably useful to track problems down to a single source file. > > Philipp > > ------------------------------------------------------------------------------ > All of the data generated in your IT infrastructure is seriously valuable. > Why? It contains a definitive record of application performance, security > threats, fraudulent activity, and more. Splunk takes this data and makes > sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-d2d-c2 > _______________________________________________ > Sdcc-user mailing list > Sdcc-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sdcc-user ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user