On Sun, Oct 27, 2013 at 10:20 PM, Ben Kloosterman <[email protected]>wrote:
> I thought Bartok had some mechanism for working out the worst cost of a > call tree and hence reduce the checks.. > Oh. Yeah. I'd forgotten about that. Remember that Bartok is a whole-program compiler, so it can do interprocedural analysis of this kind. Which is great when you have it in hand, but whole-program isn't really a viable compilation method at scale. > Curiously it was not the check cost on Rust that was the nail in the > coffin ( It was significant ) but the large amount of allocations (which > caused cache , TLB probs etc ) . > This should not have been the case. In reasonably structured programs the stack just isn't that big. They may have picked the wrong segment size, and it sounds like they didn't do a very good job recycling segments. What was it they were allocating? > With a single segment you can also use large pages but not if you need a > Read only page though you may need a seperate path to handle small stacks > anyway . ( Default in CLR is 1 meg) > 1MB doesn't let you use large pages either. For calibration, it's not uncommon to run pthreads threads on 8K or 16K stacks. But even at 1MB, the large page issue doesn't really enter in to it. Which is why I'm okay with using a guard page.
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
