On Sat, Aug 3, 2013 at 1:55 AM, Jonathan S. Shapiro <s...@eros-os.org>wrote:
> Bennie or David (or both?) were looking for examples where regions help > GC. I happen to be staring at one. > > I'm implementing sign/magnitude BigNums (yet again, sigh). The addition > operator (among others) can have a carry out. This means that you have to > allocate an intermediate vector to hold the computation result, and that > vector must be one word larger than the larger of the two arguments. In > most cases, you won't use that word, and you'll want to trim the vector > back down to a smaller length. The temporary result vector never escapes, > but allocating it eventually triggers GC. > > Because it never escapes, that temporary could be stack allocated. Region > analysis can easily detect this, and allocating the temporary in that way > reduces GC pressure. > > There's a surprising amount of GC pressure that is produced in this > fashion. It's why the stack allocation optimization is so importnat. > > > shap > > _______________________________________________ > bitc-dev mailing list > bitc-dev@coyotos.org > http://www.coyotos.org/mailman/listinfo/bitc-dev > >
_______________________________________________ bitc-dev mailing list bitc-dev@coyotos.org http://www.coyotos.org/mailman/listinfo/bitc-dev