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

Reply via email to