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