-
Notifications
You must be signed in to change notification settings - Fork 506
CorInfoImpl refactoring part #2 #6126
Conversation
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
|
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) |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
|
Thanks Michal and Simon for the immediate reviews! 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 #ifdef READYTORUN. 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 #ifdef READYTORUN. 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:
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.
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