'Spill loactions' is mentioned one time in the manual:
"3.2.8 Optimization Options
--nogcse Will not do global subexpression elimination, this option may
be used when the compiler creates
undesirably large stack/data spaces to store compiler temporaries (spill
locations, sloc). A warning
message will be generated when this happens and the compiler will
indicate the number of extra bytes
it allocated. It is recommended that this option NOT be used, #pragma
nogcse can be used to turn off
global subexpression elimination for a given function only."
Would it help to use this option, maybe as a test?
Bobby
Mark Swayne wrote:
You probably have a build up of spill locations. Look in the .map file
for your project for any variables with 'sloc' in the name.
You will get spill locations any time you have too many active variables
in a routine. In my experience, the best way to deal with them is to
make simpler subroutines. Strictly scoping all your variables seems to
help make more of the spill locations overlayable, which helps as well.
You can also move some values into globals, which helps a little--but
this way leads to danger from too many globals. If you are working with
pointers a bunch, it helps to specify what type of memory a pointer is
pointing to, instead of using generic pointers. If you are doing a lot
of manipulation of long ints or other 3 or 4 byte types, and you can't
reduce your variable usage, your last hope is to port the routine to
assembly.
Fortunately, there is no need to remove all the spill locations, you
just need to keep the number small enough that your code builds and runs.
--Mark Swayne
Jesse Lackey wrote:
Hi - I'm using the large data model, and as I understand it all globals
are in external RAM. And isn't idata the precious first 256 bytes, why
would I want to put an array there?
I must be missing something.
Since I'm using the large data model, the unsigned 32-bit divide routine
should be using xdata as well, right?
J
Message: 6
Date: Tue, 9 Sep 2008 13:12:51 +0300
From: "Ori Idan" <[EMAIL PROTECTED]>
Subject: Re: [Sdcc-user] Emergency help... linker memory error with
DSEG
To: sdcc-user@lists.sourceforge.net
Message-ID:
<[EMAIL PROTECTED]>
Content-Type: text/plain; charset="utf-8"
Try to move some global variables to external RAM if possible.
Or maybe locating few arrays in idata.
-- Ori Idan
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user