This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 3/5] Pass an alternative_mask to constrain_operands
- From: Vladimir Makarov <vmakarov at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, ubizjak at gmail dot com, markus at trippelsdorf dot de, Ganesh dot Gopalasubramanian at amd dot com, richard dot sandiford at arm dot com
- Date: Tue, 21 Oct 2014 10:57:19 -0400
- Subject: Re: [PATCH 3/5] Pass an alternative_mask to constrain_operands
- Authentication-results: sourceware.org; auth=none
- References: <87bnpabvvx dot fsf at e105548-lin dot cambridge dot arm dot com> <87vbniagwq dot fsf at e105548-lin dot cambridge dot arm dot com>
On 10/17/2014 10:51 AM, Richard Sandiford wrote:
> After the previous patch there are cases where we want to constrain
> operands to any enabled alternative and cases where we want to also take
> size/speed preferences into account. The former applies when
> constraining an existing instruction (which might originally have been
> in a block with a different size/speed choice) or when making global
> decisions. The latter applies when evaluating a potential optimisation.
>
> This patch therefore passes the mask of allowable alternatives as a
> parameter to constrain_operands.
>
> Richard
>
RA parts look good for me too.
> gcc/
> * recog.h (constrain_operands): Add an alternative_mask parameter.
> (constrain_operands_cached): Likewise.
> (get_preferred_alternatives): Declare new form.
> * recog.c (get_preferred_alternatives): New bb-taking instance.
> (constrain_operands): Take the set of available alternatives as
> a parameter.
> (check_asm_operands, insn_invalid_p, extract_constrain_insn)
> (extract_constrain_insn_cached): Update calls to constrain_operands.
> * caller-save.c (reg_save_code): Likewise.
> * ira.c (setup_prohibited_mode_move_regs): Likewise.
> * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
> * ree.c (combine_reaching_defs): Likewise.
> * reload.c (can_reload_into): Likewise.
> * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
> (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
> (emit_insn_if_valid_for_reload): Likewise.
> * reorg.c (fill_slots_from_thread): Likewise.
> * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
> * config/pa/pa.c (pa_can_combine_p): Likewise.
> * config/rl78/rl78.c (insn_ok_now): Likewise.
> * config/sh/sh.md (define_peephole2): Likewise.
> * final.c (final_scan_insn): Update call to constrain_operands_cached.
>