This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH 3/5] Pass an alternative_mask to constrain_operands
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, vmakarov at redhat dot com, 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 17:34:47 +0000
- 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/14 14:51, 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.
* recog.h (constrain_operands): Add an alternative_mask parameter.
(get_preferred_alternatives): Declare new form.
* recog.c (get_preferred_alternatives): New bb-taking instance.
(constrain_operands): Take the set of available alternatives as
(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.
* 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.
OK. Thanks for taking care of this.