This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH, middle-end]: Introduce TARGET_REJECT_COMBINED_INSN target hook
On Thu, Aug 23, 2012 at 10:46 PM, Georg-Johann Lay <firstname.lastname@example.org> wrote:
> For the hook in question, it would be the same effort as far as
> the hook is concerned: Ir really makes no difference if you
> - Pass X to the hook and return true or false
> - Pass X to the hook and return X or NULL_RTX.
> However, the latter interface is much more general and powerful and
> allows to change X -- or simply leave it alone like in
> legitimize_address (target_legitimize_combine or so).
I did some experiments with your proposal, but it is not as simple as
it is written above. We use existing insn as a testing place, where we
stuff various combinations and call recog. After all processing, we
have to restore insn to its original state and singal
recog_for_combine caller that we recognized the combination, but with
optional clobbers. So, calling sites only expect the
confirmation/rejection of the proposed patterns, and in case of
confirmation, recog_for_combine is allowed to decorate the pattern
with optional clobbers.
Your proposal that recog_for_combine changes the pattern is not what
callers expect from this function. Probably, there are better places
to implement target-dependent transformations, and leave
recog_for_combine just the task to confirm that them combined pattern