Preserve types when swapping constant arguments and commute LOGTEST
authorPaul Khuong <pvk@pvk.ca>
Wed, 22 May 2013 18:12:17 +0000 (14:12 -0400)
committerPaul Khuong <pvk@pvk.ca>
Wed, 22 May 2013 18:12:17 +0000 (14:12 -0400)
commitab705efcc1d020c427e63349275388a972617385
treec459e837f0cd0d8529e4487f49b62858dbdee7a2
parent1e2f52622d1f776daa5e4ef7947525224b531550
Preserve types when swapping constant arguments and commute LOGTEST

 * Add a transform to ensure any constant argument to LOGTEST is in
   second position.

 * Commutative-arg-swap used to often cause suboptimal code: subsequent
   transforms fire before constraint propagation has tightened types
   back to their original value.  Hack with TRULY-THE for now. A more
   general fix (e.g. by declaring the type of arguments in spliced-in
   lambda expressions) would be even better.
src/compiler/srctran.lisp