Skip to content
This repository was archived by the owner on Nov 1, 2020. It is now read-only.

Conversation

@trylek
Copy link
Member

@trylek trylek commented Jul 20, 2018

In this part I have mechanically moved parts of CorInfoImpl
to be forked to both CorInfoImpl.RyuJit and CorInfoImpl.ReadyToRun.
I decided not to move getFieldInfo for now as it's a lengthy
method and right now I'm only changing one line in it so that
conditional compilation should be sufficient. We can fork it
later if the changes become more pronounced e.g. due to the
differences in thread static bases.

The full list of methods I'm moving in this change is as follows:

() ComputeLookup
(
) getReadyToRunHelper
() getReadyToRunDelegateCtorHelper
(
) GetHelperFtnUncached
() getFunctionEntryPoint
(
) constructStringLiteral

Apart from the mechanical move I have made a few other minor
changes:

  1. I have changed the hard-coded CORINFO_RUNTIME_ABI to a
    symbolic constant that is defined in CII.RJ and CII.RTR. In
    this one simple case I have already "executed" the split
    by putting the appropriate constant into each file, otherwise
    I left the moved methods unchanged for now.

  2. I have made one additional change I overlooked in my
    previous cleanup change: I modified getHelperFtn by adding
    optional support for indirection cells that are used for
    the helpers in R2R.

As mentioned above, for now I assume that I'll deal with the
differences in getCallInfo and getFieldInfo using

Thanks

Tomas

In this part I have mechanically moved parts of CorInfoImpl
to be forked to both CorInfoImpl.RyuJit and CorInfoImpl.ReadyToRun.
I decided not to move getFieldInfo for now as it's a lengthy
method and right now I'm only changing one line in it so that
conditional compilation should be sufficient. We can fork it
later if the changes become more pronounced e.g. due to the
differences in thread static bases.

The full list of methods I'm moving in this change is as follows:

(*) ComputeLookup
(*) getReadyToRunHelper
(*) getReadyToRunDelegateCtorHelper
(*) GetHelperFtnUncached
(*) getFunctionEntryPoint
(*) constructStringLiteral

Apart from the mechanical move I have made a few other minor
changes:

1) I have changed the hard-coded CORINFO_RUNTIME_ABI to a
symbolic constant that is defined in CII.RJ and CII.RTR. In
this one simple case I have already "executed" the split
by putting the appropriate constant into each file, otherwise
I left the moved methods unchanged for now.

2) I have made one additional change I overlooked in my
previous cleanup change: I modified getHelperFtn by adding
optional support for indirection cells that are used for
the helpers in R2R.

As mentioned above, for now I assume that I'll deal with the
differences in getCallInfo and getFieldInfo using

Thanks

Tomas
@trylek
Copy link
Member Author

trylek commented Jul 20, 2018

Ahh, I see, it treated it as a comment - the seemingly missing text at the end of the last sentence was supposed to read "... I'll deal with the differences in getCallInfo and getFieldINfo using #ifdef READYTORUN but I put the compiler directive at the beginning of the line and the commit message parser apparently threw it away as a comment :-).

_compilation = compilation;
}

private void ComputeLookup(ref CORINFO_RESOLVED_TOKEN pResolvedToken, object entity, ReadyToRunHelperId helperId, ref CORINFO_LOOKUP lookup)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These implementations look the same - are you folding in their differences in a follow up commit?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, currently I'm just making a mechanical copy to make the git history cleaner. The actual reimplementation of the ReadyToRun variants will require first merging in my other pending PR regarding the preparatory changes and basically lump in all the rest because the typical RTR changes in CorInfoImpl regard redirecting the various calls to NodeFactory to use the special R2R helpers.

@trylek trylek merged commit bbd676c into dotnet:r2r Jul 20, 2018
@trylek
Copy link
Member Author

trylek commented Jul 20, 2018

Thanks Michal and Simon for the immediate reviews!

Tomas

@trylek trylek deleted the CorInfoImplPart2 branch July 30, 2018 13:13
trylek added a commit to trylek/corert that referenced this pull request Oct 1, 2018
In this part I have mechanically moved parts of CorInfoImpl
to be forked to both CorInfoImpl.RyuJit and CorInfoImpl.ReadyToRun.
I decided not to move getFieldInfo for now as it's a lengthy
method and right now I'm only changing one line in it so that
conditional compilation should be sufficient. We can fork it
later if the changes become more pronounced e.g. due to the
differences in thread static bases.

The full list of methods I'm moving in this change is as follows:

(*) ComputeLookup
(*) getReadyToRunHelper
(*) getReadyToRunDelegateCtorHelper
(*) GetHelperFtnUncached
(*) getFunctionEntryPoint
(*) constructStringLiteral

Apart from the mechanical move I have made a few other minor
changes:

1) I have changed the hard-coded CORINFO_RUNTIME_ABI to a
symbolic constant that is defined in CII.RJ and CII.RTR. In
this one simple case I have already "executed" the split
by putting the appropriate constant into each file, otherwise
I left the moved methods unchanged for now.

2) I have made one additional change I overlooked in my
previous cleanup change: I modified getHelperFtn by adding
optional support for indirection cells that are used for
the helpers in R2R.

As mentioned above, for now I assume that I'll deal with the
differences in getCallInfo and getFieldInfo using #ifdef
READYTORUN.

Thanks

Tomas
trylek added a commit to trylek/corert that referenced this pull request Oct 15, 2018
In this part I have mechanically moved parts of CorInfoImpl
to be forked to both CorInfoImpl.RyuJit and CorInfoImpl.ReadyToRun.
I decided not to move getFieldInfo for now as it's a lengthy
method and right now I'm only changing one line in it so that
conditional compilation should be sufficient. We can fork it
later if the changes become more pronounced e.g. due to the
differences in thread static bases.

The full list of methods I'm moving in this change is as follows:

(*) ComputeLookup
(*) getReadyToRunHelper
(*) getReadyToRunDelegateCtorHelper
(*) GetHelperFtnUncached
(*) getFunctionEntryPoint
(*) constructStringLiteral

Apart from the mechanical move I have made a few other minor
changes:

1) I have changed the hard-coded CORINFO_RUNTIME_ABI to a
symbolic constant that is defined in CII.RJ and CII.RTR. In
this one simple case I have already "executed" the split
by putting the appropriate constant into each file, otherwise
I left the moved methods unchanged for now.

2) I have made one additional change I overlooked in my
previous cleanup change: I modified getHelperFtn by adding
optional support for indirection cells that are used for
the helpers in R2R.

As mentioned above, for now I assume that I'll deal with the
differences in getCallInfo and getFieldInfo using #ifdef
READYTORUN.

Thanks

Tomas
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants