There was an error fetching the commit references. Please try again later.
Bring in enhancements from the experimental branch:
* On the X86 port stack SCs may be placed in the list of operand preferred SCs and these are selected by emit-coerce-vop in preference to the register SCs because they happen to be defined first in vm.lisp. Since in most cases a register SC is preferable, emit-coerce-vop now searches these first. Note that there are a few VOPs on the X86 port for which a stack SC is preferable, typically when the argument must be in memory, e.g. integer to float coercion, so this could use a little move work. * Add-representation-costs ignores the representation costs for MOVE VOPs when the representation of neither argument has been determined. In this case select-tn-representation chooses the first possible representation which may not be the most appropriate, and which can be improved upon by delaying the choice for the MOVE VOPs. This patch modifies select-representations to use two passes. On the first pass ambiguous choices are ignored giving a better chance for the propagation of argument and result representations for the MOVE VOPs after which a second pass can make a better choice. This required an extension to select-tn-representation to return a second value indicating if a unique choice could be made.
Please register or sign in to comment