Re: Heap Allocated Stack Frame x86 Compiler?

"Ira Baxter" <idbaxter@semdesigns.com>
8 Sep 2002 22:57:44 -0400

          From comp.compilers

Related articles
Heap Allocated Stack Frame x86 Compiler? siavash_massoumi@yahoo.co.uk (Bruce) (2002-09-03)
Re: Heap Allocated Stack Frame x86 Compiler? stephen@dino.dnsalias.com (Stephen J. Bevan) (2002-09-08)
Re: Heap Allocated Stack Frame x86 Compiler? firefly@diku.dk (Peter \Firefly\Lund) (2002-09-08)
Re: Heap Allocated Stack Frame x86 Compiler? fjh@cs.mu.OZ.AU (Fergus Henderson) (2002-09-08)
Re: Heap Allocated Stack Frame x86 Compiler? idbaxter@semdesigns.com (Ira Baxter) (2002-09-08)
Re: Heap Allocated Stack Frame x86 Compiler? bonzini@gnu.org (Paolo Bonzini) (2002-09-12)
| List of all articles for this month |

From: "Ira Baxter" <idbaxter@semdesigns.com>
Newsgroups: comp.compilers
Date: 8 Sep 2002 22:57:44 -0400
Organization: Compilers Central
References: 02-09-005
Keywords: storage
Posted-Date: 08 Sep 2002 22:57:44 EDT

"Bruce" <siavash_massoumi@yahoo.co.uk> wrote in message
> Is there a compiler available that will create native x86 code that
> makes no use of the stack. Instead it could dynamically allocate space
> for a stack frame on the heap and then set the EBP and ESP registers
> and then use the stack as normal.
> I searched the internet but all I can find are langauges such as
> python and PicoC that run on top of virtual machines.
>
> A C compiler would be ideal but any language would do.
> [I doubt there are any 386 compilers that do heap allocation of
> individual call frames, since you need a stack anyway to handle
> interrupts ..... -John]




Our PARLANSE programming language allocates all working storage on the
heap, by doing exactly what Bruce said. (You can't use a single
global stack when you have a parallel program). That means you have
to have fast stack frame allocation and deallocation procedures to
implement this, which we do by providing per-processor queues of
frames of various sizes. We pay a 5-10% penalty for calling functions
this way for functions the size of FIBONACCI, etc.


It seems a bit odd to say "it doesn't use the stack" when ESP is
explicitly involved. It is true that it isn't using the "big stack
model" assumed by most flat-address space OSes like Uniz and W/NT.


PARLANSE is very C-like in capability with all kinds of additional
parallelism facilities, including exception handling that works
cheaply and cleanly across parallelism boundaries. However, Bruce
didn't say what he really wanted to do, so it isn't clear that
PARLANSE will really satisfy his needs. See the website for a few
more details.
--
Ira Baxter, Ph.D. CTO Semantic Designs
www.semdesigns.com 512-250-1018


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.