Commit db89a34a authored by Milad Farazmand's avatar Milad Farazmand Committed by Commit Bot

s390: Check for zero-extended phi inputs during instruction selection

Port 5c0f7219

Original Commit Message:

    The 64-bit instruction selectors check whether the input value to
    a ChangeUint32ToUint64 node was produced by a node that sets the upper
    32 bits to zero, and if so, they avoid emitting an extra instruction to
    clear the upper bits. This change:

    1. Extends that existing mechanism to also include phi values: if all of
       the inputs to a phi value guarantee that the upper 32 bits are zero,
       then the phi value does too.
    2. Updates x64 to include non-negative int32 constants in the list of
       nodes that always clear the upper bits. I didn't add this to any
       other architecture because I'm less certain of how they resolve moves
       from constants.

    This change improves the speed of the Mono interpreter on x64 by about
    5%.

R=seth.brenith@microsoft.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Change-Id: Ic515a254025b518c767fb64c5b1282cdf226f5ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2393742Reviewed-by: 's avatarSeth Brenith <seth.brenith@microsoft.com>
Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#69710}
parent 2810faa9
...@@ -2201,6 +2201,10 @@ void InstructionSelector::VisitFloat64LessThanOrEqual(Node* node) { ...@@ -2201,6 +2201,10 @@ void InstructionSelector::VisitFloat64LessThanOrEqual(Node* node) {
VisitFloat64Compare(this, node, &cont); VisitFloat64Compare(this, node, &cont);
} }
bool InstructionSelector::ZeroExtendsWord32ToWord64NoPhis(Node* node) {
UNIMPLEMENTED();
}
void InstructionSelector::EmitPrepareArguments( void InstructionSelector::EmitPrepareArguments(
ZoneVector<PushParameter>* arguments, const CallDescriptor* call_descriptor, ZoneVector<PushParameter>* arguments, const CallDescriptor* call_descriptor,
Node* node) { Node* node) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment