On Tue, Jul 30, 2013 at 5:14 PM, David Jeske <dav...@gmail.com> wrote:

> On Tue, Jul 30, 2013 at 4:16 PM, Jonathan S. Shapiro <s...@eros-os.org>wrote:
>
>> Not entirely. I continue to feel that there is an intermediate position
>> in which the dynamic portion of the compilation looks a lot more like a
>> relocation pass than a JIT pass.
>>
>
> I see, this is a solution for the field-offsets problem but does not offer
> the benefits of polymorphic inline caches for virtual methods. (unless you
> use some previously gathered stats to hint about them, which I suppose is
> possible).
>

Right. That kind of thing requires more serious optimization. Though we *can
* guarantee that the only places where VTable dispatch arises is when
explicit instances are used. In practice, that's not a bad position to be
in.


> It seems like you are going to paint yourself into a single static
> run-time bind pass through, forbidding run-time dynload -- because that
> could trigger an offset mismatch and thus a full relocation, which
> basically is turning back into JIT. CLR, for example, handles this and will
> shift data and rewrite code to adjust offsets to make new dynloads match,
> even if the original load was from AOT.
>

No no. The dynload gets a relocation at dynload time. The only way you can
get an offset mismatch is if you have a version mismatch across the
subsystems where some object structure changed in a significant way. That's
a case where the dynload needs to fail anyway.


> I understand your sensibilities here about static AOT, and I don't
> disagree with them. I guess so far I think there are too many wins of JIT
> to avoid it.
>

I'm not trying to avoid JIT. I'm trying to start with a lesser requirement
that executes faster and is more easily verified.


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

Reply via email to