> if (!is_gimple_reg_type (TREE_TYPE (param)) > ! || !tree_ssa_useless_type_conversion_1 (TREE_TYPE (param), > ! TREE_TYPE (arg)))
Seems reasonable. These are the conversions we strip across move statements. Which is about the same for what we'd want across a return. What about the other cases where this would apply? I can't think of any cases where checking the lang hook directly is correct. Can you?