1. 01 Jan, 2019 1 commit
  2. 10 Jan, 2018 1 commit
    • Mostly revert r254296 · 2072a319
      r254296 added support for (const ...) wrappers around vectors,
      but in the end the agreement was to use a variable-length
      encoding of CONST_VECTOR (and VECTOR_CST) instead.  This patch
      therefore reverts the bits that are no longer needed.
      
      The rtl.texi part isn't a full revert, since r254296 also updated the
      documentation to mention unspecs in address calculations, and to relax
      the requirement that the mode had to be Pmode.
      
      2018-01-10  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* doc/rtl.texi: Remove documentation of (const ...) wrappers
      	for vectors, as a partial revert of r254296.
      	* rtl.h (const_vec_p): Delete.
      	(const_vec_duplicate_p): Don't test for vector CONSTs.
      	(unwrap_const_vec_duplicate, const_vec_series_p): Likewise.
      	* expmed.c (make_tree): Likewise.
      
      	Revert:
      	* common.md (E, F): Use CONSTANT_P instead of checking for
      	CONST_VECTOR.
      	* emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
      	checking for CONST_VECTOR.
      
      From-SVN: r256421
      Richard Sandiford committed
  3. 03 Jan, 2018 1 commit
  4. 01 Nov, 2017 1 commit
    • Allow vector CONSTs · 06ec586d
      This patch allows (const ...) wrappers to be used for rtx vector
      constants, as an alternative to const_vector.  This is useful
      for SVE, where the number of elements isn't known until runtime.
      
      It could also be useful in future for fixed-length vectors, to
      reduce the amount of memory needed to represent simple constants
      with high element counts.  However, one nice thing about keeping
      it restricted to variable-length vectors is that there is never
      any need to handle combinations of (const ...) and CONST_VECTOR.
      
      2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* doc/rtl.texi (const): Update description of address constants.
      	Say that vector constants are allowed too.
      	* common.md (E, F): Use CONSTANT_P instead of checking for
      	CONST_VECTOR.
      	* emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
      	checking for CONST_VECTOR.
      	* expmed.c (make_tree): Use build_vector_from_val for a CONST
      	VEC_DUPLICATE.
      	* expr.c (expand_expr_real_2): Check for vector modes instead
      	of checking for CONST_VECTOR.
      	* rtl.h (const_vec_p): New function.
      	(const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
      	(unwrap_const_vec_duplicate): Handle them here too.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254296
      Richard Sandiford committed
  5. 01 Jan, 2017 1 commit
  6. 04 Jan, 2016 1 commit
  7. 05 Jan, 2015 1 commit
  8. 11 Jun, 2014 1 commit
    • common.md: New file. · 8677664e
      gcc/
      	* common.md: New file.
      	* doc/md.texi: Update description of generic, machine-independent
      	constraints.
      	* config/s390/constraints.md (e): Delete.
      	* Makefile.in (md_file): Include common.md.
      	* config/m32c/t-m32c (md_file): Likewise.
      	* genpreds.c (general_mem): New array.
      	(generic_constraint_letters): Remove constraints now defined by
      	common.md.
      	(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
      	Allow the first character to be '<' or '>' as well.
      	* genoutput.c (general_mem): New array.
      	(indep_constraints): Remove constraints now defined by common.md.
      	(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
      	Remove special handling of 'm'.
      	* ira-costs.c (record_reg_classes): Remove special handling of
      	constraints now defined by common.md.
      	* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
      	* ira-lives.c (single_reg_class): Likewise.
      	(ira_implicitly_set_insn_hard_regs): Likewise.
      	* lra-constraints.c (reg_class_from_constraints): Likewise.
      	(process_alt_operands, process_address, curr_insn_transform): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* reload.c (push_secondary_reload, scratch_reload_class)
      	(find_reloads, alternative_allows_const_pool_ref): Likewise.
      	* reload1.c (maybe_fix_stack_asms): Likewise.
      	* targhooks.c (default_secondary_reload): Likewise.
      	* stmt.c (parse_output_constraint): Likewise.
      	* recog.c (preprocess_constraints): Likewise.
      	(constrain_operands, peep2_find_free_register): Likewise.
      	(asm_operand_ok): Likewise, but add a comment saying why 'o'
      	must be handled specially.
      
      From-SVN: r211475
      Richard Sandiford committed