-
Milad Farazmand authored
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: Seth Brenith <seth.brenith@microsoft.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#69710}
db89a34a