http://llvm.org/docs/GarbageCollection.html

 

“Unlike many GC algorithms which rely on a cooperative code generator to 
compile stack maps, this algorithm carefully maintains a linked list of stack 
roots [Henderson2002 <http://llvm.org/docs/GarbageCollection.html#henderson02> 
]. This so-called "shadow stack" mirrors the machine stack. Maintaining this 
data structure is slower than using a stack map compiled into the executable as 
constant data, but has a significant portability advantage because it requires 
no special support from the target code generator, and does not require tricky 
platform-specific code to crawl the machine stack.

The tradeoff for this simplicity and portability is:

*       High overhead per function call.
*       Not thread-safe.

Still, it's an easy way to get started. After your compiler and runtime are up 
and running, writing a plugin 
<http://llvm.org/docs/GarbageCollection.html#plugin>  will allow you to take 
advantage of more advanced GC features 
<http://llvm.org/docs/GarbageCollection.html#collector-algos>  of LLVM in order 
to improve performance.”

Has the shadow stack changed ? 

 

Basically as documented , the default GC architecture in LLVM allows you to get 
up and running quick ( which is great for research ) and works with most 
languages but there is a significant price in performance. The faster languages 
probably have written their own GC extensions or even GC.  

 

The CLR on the other hand gives a fast and mature concurrent GC ( but with 
large GC pauses)   the main issue is the manual pinning that needs to be done 
for references from static data..

 

Ben 

 

 

 

 

From: bitc-dev-boun...@coyotos.org [mailto:bitc-dev-boun...@coyotos.org] On 
Behalf Of Ben Karel
Sent: Thursday, April 07, 2011 11:00 PM
To: Discussions about the BitC language
Subject: Re: [bitc-dev] Request for advice on choice of a GSoC project

 

On Mon, Apr 4, 2011 at 8:42 AM, Ben Kloosterman <bkloo...@gmail.com> wrote:

I will second  that the whole shadow stack is a bad approach from the start , 
it needs a redesign. Eg apps can emit GC code snippets  , while not too 
difficult to do it’s a architectural change which requires  more from 
application and hence some politics.. 

 

Wait, who said anything about a shadow stack?

 

_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to