1. 09 Sep, 2017 1 commit
  2. 31 Aug, 2017 1 commit
  3. 30 Aug, 2017 3 commits
    • [77/77] Add a complex_mode class · a97390bf
      This patch adds another machine_mode wrapper for modes that are
      known to be COMPLEX_MODE_P.  There aren't yet many places that make
      use of it, but that might change in future.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* coretypes.h (complex_mode): New type.
      	* gdbhooks.py (build_pretty_printer): Handle it.
      	* machmode.h (complex_mode): New class.
      	(complex_mode::includes_p): New function.
      	(is_complex_int_mode): Likewise.
      	(is_complex_float_mode): Likewise.
      	* genmodes.c (get_mode_class): Handle complex mode classes.
      	* function.c (expand_function_end): Use is_complex_int_mode.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Use is_complex_float_mode.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251527
      Richard Sandiford committed
    • [20/77] Replace MODE_INT checks with is_int_mode · b4206259
      Replace checks of "GET_MODE_CLASS (...) == MODE_INT" with
      "is_int_mode (..., &var)", in cases where it becomes useful
      to refer to the mode as a scalar_int_mode.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* machmode.h (is_int_mode): New fuction.
      	* combine.c (find_split_point): Use it.
      	(combine_simplify_rtx): Likewise.
      	(simplify_if_then_else): Likewise.
      	(simplify_set): Likewise.
      	(simplify_shift_const_1): Likewise.
      	(simplify_comparison): Likewise.
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
      	* cse.c (notreg_cost): Likewise.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_lookup_1): Likewise.
      	* dojump.c (do_jump_1): Likewise.
      	(do_compare_rtx_and_jump): Likewise.
      	* dse.c (get_call_args): Likewise.
      	* dwarf2out.c (rtl_for_decl_init): Likewise.
      	(native_encode_initializer): Likewise.
      	* expmed.c (emit_store_flag_1): Likewise.
      	(emit_store_flag): Likewise.
      	* expr.c (convert_modes): Likewise.
      	(store_field): Likewise.
      	(expand_expr_real_1): Likewise.
      	* fold-const.c (fold_read_from_constant_string): Likewise.
      	* gimple-ssa-sprintf.c (get_format_string): Likewise.
      	* optabs-libfuncs.c (gen_int_libfunc): Likewise.
      	* optabs.c (expand_binop): Likewise.
      	(expand_unop): Likewise.
      	(expand_abs_nojump): Likewise.
      	(expand_one_cmpl_abs_nojump): Likewise.
      	* simplify-rtx.c (mode_signbit_p): Likewise.
      	(val_signbit_p): Likewise.
      	(val_signbit_known_set_p): Likewise.
      	(val_signbit_known_clear_p): Likewise.
      	(simplify_relational_operation_1): Likewise.
      	* tree.c (vector_type_mode): Likewise.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Use is_int_mode.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251472
      Richard Sandiford committed
    • [7/77] Add scalar_float_mode · e386a52f
      This patch adds a scalar_float_mode class, which wraps a mode enum
      that is known to satisfy SCALAR_FLOAT_MODE_P.  Things like "SFmode"
      now give a scalar_float_mode object instead of a machine_mode.
      This in turn needs a change to the real.h format_helper, so that
      it can accept both machine_modes and scalar_float_modes.
      
      2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* coretypes.h (scalar_float_mode): New type.
      	* machmode.h (mode_traits::from_int): Use machine_mode if
      	USE_ENUM_MODES is defined.
      	(is_a): New function.
      	(as_a): Likewise.
      	(dyn_cast): Likewise.
      	(scalar_float_mode): New class.
      	(scalar_float_mode::includes_p): New function.
      	(is_float_mode): Likewise.
      	* gdbhooks.py (MachineModePrinter): New class.
      	(build_pretty_printer): Use it for scalar_float_mode.
      	* real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
      	(format_helper::format_helper): Turn into a template.
      	* genmodes.c (get_mode_class): New function.
      	(emit_insn_modes_h): Give modes the class returned by get_mode_class,
      	or machine_mode if none.
      	* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
      	as_a <scalar_float_mode>.
      	* dwarf2out.c (mem_loc_descriptor): Likewise.
      	(insert_float): Likewise.
      	(add_const_value_attribute): Likewise.
      	* simplify-rtx.c (simplify_immed_subreg): Likewise.
      	* optabs.c (expand_absneg_bit): Take a scalar_float_mode.
      	(expand_unop): Update accordingly.
      	(expand_abs_nojump): Likewise.
      	(expand_copysign_absneg): Take a scalar_float_mode.
      	(expand_copysign_bit): Likewise.
      	(expand_copysign): Update accordingly.
      
      gcc/ada/
      	* gcc-interface/utils.c (gnat_type_for_mode): Use is_a
      	<scalar_float_mode> instead of SCALAR_FLOAT_MODE_P.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Use is_float_mode.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r251458
      Richard Sandiford committed
  4. 29 Aug, 2017 5 commits
  5. 18 Aug, 2017 3 commits
  6. 16 Aug, 2017 2 commits
  7. 09 Aug, 2017 2 commits
  8. 07 Aug, 2017 1 commit
    • Canonicalize names of attributes. · 577eec56
      2017-08-07  Martin Liska  <mliska@suse.cz>
      
      	* attribs.h (canonicalize_attr_name): New function.
      	(cmp_attribs): Move from c-format.c and adjusted.
      	(is_attribute_p): Moved from tree.h.
      	* tree-inline.c: Add new includes.
      	* tree.c (cmp_attrib_identifiers): Use cmp_attribs.
      	(private_is_attribute_p): Remove.
      	(private_lookup_attribute): Likewise.
      	(private_lookup_attribute_by_prefix): Simplify.
      	(remove_attribute): Use is_attribute_p.
      	* tree.h: Remove removed declarations.
      2017-08-07  Martin Liska  <mliska@suse.cz>
      
      	* array-notation-common.c: Add new includes.
      	* c-format.c( handle_format_attribute): Canonicalize a format
      	function name.
      	* c-lex.c (c_common_has_attribute): Canonicalize name of an
      	attribute.
      	* c-pretty-print.c: Add new include.
      2017-08-07  Martin Liska  <mliska@suse.cz>
      
      	* parser.c (cp_parser_gnu_attribute_list): Canonicalize name of an
      	attribute.
      	(cp_parser_std_attribute): Likewise.
      	* tree.c: Add new include.
      2017-08-07  Martin Liska  <mliska@suse.cz>
      
      	* c-parser.c (c_parser_attributes): Canonicalize name of an
      	attribute.
      2017-08-07  Martin Liska  <mliska@suse.cz>
      
      	* go-gcc.cc (Gcc_backend::function): Look up for no_split_stack
      	and not __no_split_stack__.
      2017-08-07  Martin Liska  <mliska@suse.cz>
      
      	* g++.dg/cpp0x/pr65558.C: Update scanned pattern.
      	* gcc.dg/parm-impl-decl-1.c: Likewise.
      	* gcc.dg/parm-impl-decl-3.c: Likewise.
      	* gcc.dg/Wattributes-5.c: New test.
      
      From-SVN: r250911
      Martin Liska committed
  9. 04 Aug, 2017 1 commit
  10. 03 Aug, 2017 1 commit
  11. 02 Aug, 2017 1 commit
  12. 28 Jul, 2017 4 commits
  13. 26 Jul, 2017 1 commit
  14. 25 Jul, 2017 1 commit
    • compiler: clean up unresolved placeholders for pointer types · 08327dfa
          
          Add a new helper routine Type::finish_pointer_types that walks through
          the pointer type cache and looks for placeholder types that may have
          been created at some point before conversion of named types, and
          invokes Type::finish_backend() on said placeholders.  This is needed
          to handle cases where the compiler manufactures a pointer type as part
          of lowering, then a placeholder is created for it due to a call to
          Type::backend_type_size(), but there is no explicit reference to the
          type in user code.
          
          Reviewed-on: https://go-review.googlesource.com/51131
      
      From-SVN: r250548
      Ian Lance Taylor committed
  15. 21 Jul, 2017 4 commits
  16. 20 Jul, 2017 1 commit
  17. 18 Jul, 2017 4 commits
  18. 14 Jul, 2017 2 commits
  19. 13 Jul, 2017 1 commit
  20. 29 Jun, 2017 1 commit