On Sat, Aug 25, 2012 at 7:22 PM, Hans-Peter Nilsson <h...@bitrange.com> wrote:
>> v2 patch differences: >> - moves hook description text to target.def >> - fixes error path to clear clobbers, as expected by recog_for_combine >> callers >> >> 2012-08-25 Uros Bizjak <ubiz...@gmail.com> >> >> * target.def (reject_combined_insn): New target hook. >> * doc/tm.texi.in (TARGET_REJECT_COMBINED_INSN): New hook. >> * doc/tm.texi: Regenerated. >> * combine.c (recog_for_combine): Call targetm.reject_combined_insn >> to allow targets to reject combined insn. > > Maybe mention that the default is to allow all combinations for > which a pattern match? And that the reason to disallow them can > be that they're known to result in suboptimal code? Or other > reasons. Something like this perhaps: /* Returns true if the combined insn should be rejected for some reason. */ DEFHOOK (reject_combined_insn, "Take an instruction in @var{insn} and return @code{true} if the instruction\ should be rejected as a combination of two or more instructions. The\ default is to accept all instructions.", bool, (rtx insn), hook_bool_rtx_false) > I don't think it should be mentioned that it can be used to stop > invalid code to be generated; that'd just be encouraging > covering up bugs in reload. (Using it to simplify the port may > be valid.) Please note that there is no mention of the specific purpose of this hook. x86 uses it to counter a specific reload problem, but this is just hook _implementation_ detail. Thanks, Uros.