In any case, bleh, the area where the ICE occurs assumes the function start has already been expanded (and all incoming parms have been setup in the backend RTL). Furthermore, it seems a bit off the mark anyway...
rtx r = DECL_INCOMING_RTL(decl); // This assumes decl is a PARM_DECL
if (r == NULL_RTX)
r = DECL_RTL(decl); // Whoops, can't do this on PARM_DECLs or non-local VAR_DECLs