Re: Euphoria To C Translator Optimisations (2)
- Posted by Robert Craig <rds at RapidEuphoria.com> Feb 01, 2001
- 443 views
Rather than reply individually to the many posts made by Mike The Spike today, I'll just supply a few bits of information: --- register variables: Why don't you alter the C source files generated and tell me if "register" helps. WATCOM ignores register declarations. Most decent compilers do their own assignment of variables to registers. On the Pentium there aren't many registers available anyway. --- *((int *)_2 = *((int *){9,34,14,18,33,46}; Seems to me something like that only works for static initializations. Not dynamically executing code. --- in-lining: The routines that you want to inline are a bit too large. inlining increases the size of your code, but does not necessarily increase the speed. There is a severe penalty for executing code that is not in the Pentium code cache. If your code is larger you will likely have more cache misses. --- peeks/pokes with DJGPP DJGPP puts low memory in a completely separate memory segment, so you have to call that go32 macro to peek or poke into it. WATCOM /Causeway made low memory contiguous with high memory in the same data segment. For compatibility I had to handle DJGPP this way. You really don't want me to put a single poke of one byte into memory into a subroutine, rather than *inlining* it would you? --- #ifdef: The Euphoria source consists of *one* set of source files. There are #ifdef's throughout the code to select: Windows vs. DOS vs. Linux Public Domain vs Complete Translator vs Interpreter vs. Runtime Library Debug vs Release build It would be potentially exciting to release the source to other people, but it has to be done in a way that maintains my income. I can't make any decisions about this for a couple of months (so stop nagging me ). Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com