This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2, middle-end]: Introduce TARGET_REJECT_COMBINED_INSN target hook


On Sat, Aug 25, 2012 at 7:22 PM, Hans-Peter Nilsson <hp@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  <ubizjak@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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]