1. 24 Aug, 2015 1 commit
  2. 23 Aug, 2015 1 commit
    • Rename vect_no_int_max to vect_no_int_min_max · 1b950569
      2015-08-23  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/vect/trapv-vect-reduc-4.c: Use vect_no_int_min_max.
      	* gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Rename
      	vect_no_int_max to vect_no_int_min_max.
      	* gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: Same.
      	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Same.
      	* gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Same.
      	* gcc.dg/vect/slp-reduc-4.c: Same.
      	* gcc.dg/vect/slp-reduc-5.c: Same.
      	* gcc.dg/vect/vect-125.c: Same.
      	* gcc.dg/vect/vect-13.c: Same.
      	* gcc.dg/vect/vect-double-reduc-3.c: Same.
      	* gcc.dg/vect/vect-reduc-1.c: Same.
      	* gcc.dg/vect/vect-reduc-1char-big-array.c: Same.
      	* gcc.dg/vect/vect-reduc-1char.c:Same.
      	* gcc.dg/vect/vect-reduc-1short.c: Same.
      	* gcc.dg/vect/vect-reduc-2.c: Same.
      	* gcc.dg/vect/wrapv-vect-reduc-2char.c: Same.
      	* gcc.dg/vect/wrapv-vect-reduc-2short.c: Same.
      	* lib/target-supports.exp: Same.
      
      	* doc/sourcebuild.texi: Rename vect_no_int_max with
      	vect_no_int_min_max.  Update description.
      
      From-SVN: r227102
      Tom de Vries committed
  3. 21 Aug, 2015 1 commit
    • add default for CONSTANT_ALIGNMENT · 6b00e42d
      gcc/ChangeLog:
      
      2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* defaults.h (CONSTANT_ALIGNMENT): New macro definition.
      	* builtins.c (get_object_alignment_2): Adjust.
      	* varasm.c (align_variable): Likewise.
      	(get_variable_align): Likewise.
      	(build_constant_desc): Likewise.
      	(force_const_mem): Likewise.
      	* doc/tm.texi.in: Likewise.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r227052
      Trevor Saunders committed
  4. 19 Aug, 2015 1 commit
    • common.opt (fstack-protector): Initialize to -1. · e0f6cba0
             * common.opt (fstack-protector): Initialize to -1.
              (fstack-protector-all): Likewise.
              (fstack-protector-strong): Likewise.
              (fstack-protector-explicit): Likewise.
              * configure.ac: Add --enable-default-ssp.
              * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
              * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
              -1.
              * doc/install.texi: Document --enable-default-ssp.
              * config.in: Regenerated.
              * configure: Likewise.
      
              * lib/target-supports.exp
              (check_effective_target_fstack_protector_enabled): New test.
              * gcc.target/i386/ssp-default.c: New test.
      
      From-SVN: r227017
      Magnus Granberg committed
  5. 18 Aug, 2015 1 commit
    • re PR middle-end/36757 (__builtin_signbit should be type-generic) · 61717a45
      	PR middle-end/36757
      
      	* builtins.c (expand_builtin_signbit): Add asserts to make sure
      	we can expand BUILT_IN_SIGNBIT inline.
      	* builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
      	* doc/extend.texi: Document the type-generic __builtin_signbit.
      
      	* c-common.c (check_builtin_function_arguments): Add check
      	for BUILT_IN_SIGNBIT argument.
      
      	* gcc.dg/builtins-error.c: Add checks for __builtin_signbit.
      	* gcc.dg/tg-tests.h: Add checks for __builtin_signbit.
      
      From-SVN: r226990
      Francois-Xavier Coudert committed
  6. 14 Aug, 2015 2 commits
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 1f9ceff1
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	PR bootstrap/66978
      	PR middle-end/66983
      	PR rtl-optimization/67000
      	PR middle-end/67034
      	PR middle-end/67035
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Do not coalesce
      	maybe-byref parms with SSA_NAMEs of other variables, or
      	anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
      	(ssa_default_def_partition): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(align_local_variable, add_stack_var): Support anonymous SSA
      	names.
      	(defer_stack_allocation): Likewise.  Declare earlier.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	Do no record deferred-allocation marker in
      	SA.partition_to_pseudo.
      	(expand_stack_vars): Adjust check for the marker in it.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c: Include stor-layout.h.
      	(set_reg_attrs_for_parm): Handle NULL decl.
      	(set_reg_attrs_for_decl_rtl): Take mode from expression if
      	it's not a DECL.
      	* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
      	rather than its possibly-NULL DECL.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	(read_complex_part): Export.
      	* expr.h (read_complex_part): Declare.
      	* cfgexpand.h (parm_maybe_byref_p): Declare.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(split_complex_args): Take assign_parm_data_all argument.
      	Pass it to rtl_for_parm.  Set up rtl and context for split
      	args.  Reset complex parm before fetching its default decl
      	rtl.
      	(assign_parms_unsplit_complex): Use the default-def complex
      	parm rtl if it matches the components.
      	(assign_parms_augmented_arg_list): Adjust.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.  Recognize split complex args.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location, and
      	fill in its address if the memory location of a maybe-byref
      	parm was not assigned by cfgexpand.
      	(assign_parm_setup_reg): Likewise.  Adjust its mode as
      	needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
      	sure passed_pointer parms don't need conversion.  Copy address
      	or value as needed.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
      	to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* stor-layout.c (layout_decl): Don't set mem attributes of
      	non-MEMs.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r226901
      Alexandre Oliva committed
    • driver-i386.c (host_detect_local_cpu): Add support for skylake. · 3e0f3349
      gcc/
      
      	* config/i386/driver-i386.c (host_detect_local_cpu): Add support
      	for skylake.
      	* config/i386/i386.c (PTA_SKYLAKE): New macros.
      	(processor_alias_table): Add skylake description.
      	(enum processor_model): Add skylake processor.
      	(arch_names_table): Add skylake record.
      	* doc/invoke.texi: Add skylake item.
      
      gcc/testsuite/
      
      	* gcc.target/i386/builtin_target.c: Add skylake check.
      
      libgcc/
      
      	* config/i386/cpuinfo.c (enum processor_subtypes): Add skylake.
      	(get_intel_cpu): Likewise.
      
      From-SVN: r226884
      Yuri Rumyantsev committed
  7. 12 Aug, 2015 2 commits
    • xtensa: add -mauto-litpools option · a024f514
      With support from assembler this option allows compiling huge functions,
      where single literal pool at the beginning of a function may not be
      reachable by L32R instructions at its end.
      
      Currently assembler --auto-litpools option cannot deal with literals
      used from multiple locations separated by more than 256 KBytes of code.
      Don't turn constants into literals, instead use MOVI instruction to load
      them into registers and let the assembler turn them into literals as
      necessary.
      
      2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/constraints.md (define_constraint "Y"): New
      	constraint.
      	* config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
      	* config/xtensa/linux.h (ASM_SPEC): Likewise.
      	* config/xtensa/predicates.md (move_operand): Match constants
      	and symbols in the presence of TARGET_AUTO_LITPOOLS.
      	* config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
      	immediate references to TLS data.
      	(xtensa_emit_move_sequence): Don't force constants to memory in
      	the presence of TARGET_AUTO_LITPOOLS.
      	(print_operand): Add 'y' format, same as default, but capable of
      	printing SF mode constants as well.
      	* config/xtensa/xtensa.md (movsi_internal, movhi_internal)
      	(movsf_internal): Add movi pattern that loads literal.
      	(movsf, movdf): Don't force constants to memory in the presence
      	of TARGET_AUTO_LITPOOLS.
      	(movdf_internal): Add 'Y' constraint.
      	* config/xtensa/xtensa.opt (mauto-litpools): New option.
      	* doc/invoke.text (Xtensa options): Document -mauto-litpools.
      
      From-SVN: r226828
      Max Filippov committed
    • Remove --with-host-libstdcxx · 5dc85f7e
      2015-08-12  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/67092
      	PR other/67098
      	* configure.ac: Remove --with_host_libstdcxx support.
      	* configure: Regenerate.
      
      	* doc/install.texi: Remove --with_host_libstdcxx item.  Update
      	--with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
      	accordingly.  Mention default for --with-stage1-ldflags.
      
      From-SVN: r226819
      Tom de Vries committed
  8. 09 Aug, 2015 1 commit
    • options.texi (EnabledBy): Document that the argument must be a Common option. · c2d89095
      gcc/ChangeLog:
      
      2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* doc/options.texi (EnabledBy): Document that the argument must be
      	a Common option.
      	* doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
      	Not enabled by -Wall.
      	* optc-gen.awk: Give nicer error messages. Detect if the argument
      	of EnabledBy is not a Common option.
      	* common.opt (Wnull-dereference): Not enabled by -Wall.
      	* opt-functions.awk (lang_enabled_by): Nicer error messages.
      
      gcc/c-family/ChangeLog:
      
      2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.
      
      From-SVN: r226751
      Manuel López-Ibáñez committed
  9. 07 Aug, 2015 1 commit
    • Add C++ Concepts TS support. · 971e17ff
      gcc/c-family/
      	* c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
      	* c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
      	(D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
      	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
      	* c-opts.c (set_std_cxx1z): Set flag_concepts.
      	* c.opt (fconcepts): New.
      gcc/cp/
      	* constraint.cc, logic.cc: New files.
      	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Add constraint.o and logic.o.
      	(c++.tags): Also process .cc files.
      	* call.c (enum rejection_reason_code): Add rr_constraint_failure.
      	(print_z_candidate): Handle it.
      	(constraint_failure): New.
      	(add_function_candidate): Check constraints.
      	(build_new_function_call): Handle evaluating concepts.
      	(joust): Check more_constrained.
      	* class.c (add_method): Check equivalently_constrained.
      	(build_clone): Copy constraints.
      	(currently_open_class): Return tree.
      	(resolve_address_of_overloaded_function): Check constraints.
      	* constexpr.c (cxx_eval_constant_expression): Handle REQUIRES_EXPR.
      	(potential_constant_expression_1): Likewise.
      	* cp-objcp-common.c (cp_tree_size): Handle CONSTRAINT_INFO.
      	(cp_common_init_ts): Handle WILDCARD_DECL and REQUIRES_EXPR.
      	* cp-tree.def: Add CONSTRAINT_INFO, WILDCARD_DECL, REQUIRES_EXPR,
      	SIMPLE_REQ, TYPE_REQ, COMPOUND_REQ, NESTED_REQ, PRED_CONSTR,
      	EXPR_CONSTR, TYPE_CONSTR, ICONV_CONSTR, DEDUCT_CONSTR,
      	EXCEPT_CONSTR, PARM_CONSTR, CONJ_CONSTR, DISJ_CONSTR.
      	* cp-tree.h (struct tree_constraint_info, check_nonnull)
      	(check_constraint_info, CI_TEMPLATE_REQS, CI_DECLARATOR_REQS)
      	(CI_ASSOCIATED_CONSTRAINTS, CI_NORMALIZED_CONSTRAINTS)
      	(CI_ASSUMPTIONS, TEMPLATE_PARMS_CONSTRAINTS)
      	(TEMPLATE_PARM_CONSTRAINTS, COMPOUND_REQ_NOEXCEPT_P)
      	(PLACEHOLDER_TYPE_CONSTRAINTS, PRED_CONSTR_EXPR, EXPR_CONSTR_EXPR)
      	(TYPE_CONSTR_TYPE, ICONV_CONSTR_EXPR, ICONV_CONSTR_TYPE)
      	(DEDUCT_CONSTR_EXPR, DEDUCT_CONSTR_PATTERN)
      	(DEDUCT_CONSTR_PLACEHOLDER, EXCEPT_CONSTR_EXPR, PARM_CONSTR_PARMS)
      	(PARM_CONSTR_OPERAND, CONSTRAINT_VAR_P, CONSTRAINED_PARM_CONCEPT)
      	(CONSTRAINED_PARM_EXTRA_ARGS, CONSTRAINED_PARM_PROTOTYPE)
      	(DECL_DECLARED_CONCEPT_P, WILDCARD_PACK_P, struct cp_unevaluated)
      	(struct local_specialization_stack, enum auto_deduction_context)
      	(variable_concept_p, concept_template_p)
      	(struct deferring_access_check_sentinel): New.
      	(enum cp_tree_node_structure_enum): Add TS_CP_CONSTRAINT_INFO.
      	(union lang_tree_node): Add constraint_info field.
      	(struct lang_decl_base): Add concept_p flag.
      	(enum cp_decl_spec): Add ds_concept.
      	(struct cp_declarator): Add requires_clause.
      	* cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
      	(cxx_pretty_printer::expression): Handle REQUIRES_EXPR,
      	TRAIT_EXPR, *_CONSTR.
      	(pp_cxx_parameter_declaration_clause): Accept a chain of
      	PARM_DECLs.
      	(cxx_pretty_printer::declarator): Print requires-clause.
      	(pp_cxx_template_declaration): Likewise.
      	(pp_cxx_trait_expression): Handle CPTK_IS_SAME_AS.
      	(pp_cxx_requires_clause, pp_cxx_requirement)
      	(pp_cxx_requirement_list, pp_cxx_requirement_body)
      	(pp_cxx_requires_expr, pp_cxx_simple_requirement)
      	(pp_cxx_type_requirement, pp_cxx_compound_requirement)
      	(pp_cxx_nested_requirement, pp_cxx_predicate_constraint)
      	(pp_cxx_expression_constraint, pp_cxx_type_constraint)
      	(pp_cxx_implicit_conversion_constraint)
      	(pp_cxx_argument_deduction_constraint)
      	(pp_cxx_exception_constraint, pp_cxx_parameterized_constraint)
      	(pp_cxx_conjunction, pp_cxx_disjunction, pp_cxx_constraint): New.
      	* cxx-pretty-print.h: Declare them.
      	* decl.c (decls_match): Compare constraints.
      	(duplicate_decls): Likewise.  Remove constraints before freeing.
      	(cxx_init_decl_processing): Call init_constraint_processing.
      	(cp_finish_decl): Diagnose concept without initializer.
      	(grokfndecl, grokvardecl): Handle concepts and constraints.
      	(grokdeclarator): Handle concept, requires-clause.
      	(grokparms): No longer static.
      	(xref_tag_1): Check constraints.
      	(finish_function): Call check_function_concept.
      	(cp_tree_node_structure): Handle CONSTRAINT_INFO.
      	(check_concept_refinement, is_concept_var, check_concept_fn): New.
      	* decl2.c (check_classfn): Compare constraints.
      	(mark_used): Don't instantiate concepts.
      	* error.c (dump_template_decl): Print constraints.
      	(dump_function_decl): Likewise.
      	(dump_expr): Handle REQUIRES_EXPR, *_REQ, *_CONSTR.
      	* lex.c (init_reswords): Set D_CXX_CONCEPTS.
      	* method.c (implicitly_declare_fn): Copy constraints from
      	inherited ctor.
      	* parser.h (struct cp_parser): Add in_result_type_constraint_p and
      	prevent_constrained_type_specifiers fields.
      	* parser.c (make_call_declarator): Add requires_clause parm.
      	(cp_parser_new): Clear prevent_constrained_type_specifiers.
      	(cp_parser_primary_expression): Handle RID_IS_SAME_AS, RID_REQUIRES.
      	(cp_parser_postfix_expression): Set prevent_constrained_type_specifiers.
      	(cp_parser_trait_expr): Handle RID_IS_SAME_AS.
      	(cp_parser_declaration): Handle concept introduction.
      	(cp_parser_member_declaration): Likewise.
      	(cp_parser_template_parameter): Handle constrained parameter.
      	(cp_parser_type_parameter): Handle constraints.
      	(cp_parser_decl_specifier_seq): Handle RID_CONCEPT.
      	(cp_parser_template_id): Handle partial concept id.
      	(cp_parser_type_name): Add overload that takes typename_keyword_p.
      	Handle constrained parameter.
      	(cp_parser_nonclass_name): Handle concept names.
      	(cp_parser_alias_declaration): Handle constraints.
      	(cp_parser_late_return_type_opt): Also handle requires-clause.
      	(cp_parser_type_id_1): Handle deduction constraint.
      	(cp_parser_parameter_declaration): Handle constrained parameters.
      	(cp_parser_class_specifier_1): Handle constraints.
      	(cp_parser_template_declaration_after_parameters): Split out from
      	cp_parser_template_declaration_after_export.
      	(cp_parser_single_declaration): Handle constraints.
      	(synthesize_implicit_template_parm): Handle constraints.
      	(cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
      	(cp_parser_introduction_list, get_id_declarator)
      	(get_unqualified_id, is_constrained_parameter)
      	(cp_parser_check_constrained_type_parm)
      	(cp_parser_constrained_type_template_parm)
      	(cp_parser_constrained_template_template_parm)
      	(constrained_non_type_template_parm, finish_constrained_parameter)
      	(declares_constrained_type_template_parameter)
      	(declares_constrained_template_template_parameter)
      	(check_type_concept, cp_parser_maybe_constrained_type_specifier)
      	(cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
      	(cp_parser_requires_clause, cp_parser_requires_clause_opt)
      	(cp_parser_requires_expression)
      	(cp_parser_requirement_parameter_list, cp_parser_requirement_body)
      	(cp_parser_requirement_list, cp_parser_requirement)
      	(cp_parser_simple_requirement, cp_parser_type_requirement)
      	(cp_parser_compound_requirement, cp_parser_nested_requirement)
      	(cp_parser_template_introduction)
      	(cp_parser_explicit_template_declaration)
      	(get_concept_from_constraint): New.
      	* pt.c (local_specialization_stack): Implement.
      	(maybe_new_partial_specialization): New.
      	(maybe_process_partial_specialization): Use it.
      	(retrieve_local_specialization, register_local_specialization)
      	(template_parm_to_arg, build_template_decl, extract_fnparm_pack)
      	(tsubst_expr): No longer static.
      	(spec_hasher::equal): Compare constraints.
      	(determine_specialization): Handle constraints.
      	(check_explicit_specialization): Handle concepts.
      	(process_template_parm): Handle constraints.
      	(end_template_parm_list): Add overload taking no arguments.
      	(process_partial_specialization): Handle concepts and constraints.
      	Register partial specializations of variable templates.
      	(redeclare_class_template): Handle constraints.
      	(convert_template_argument): Handle WILDCARD_DECL.  Check
      	is_compatible_template_arg.
      	(coerce_template_parameter_pack): Handle wildcard packs.
      	(coerce_template_parms): DR 1430 also applies to concepts.  Add
      	overloads taking fewer parameters.
      	(lookup_template_class_1): Handle constraints.
      	(lookup_template_variable): Concepts are always bool.
      	(finish_template_variable): Handle concepts and constraints.
      	(tsubst_friend_class): Handle constraints.
      	(gen_elem_of_pack_expansion_instantiation): Handle constraints.
      	(tsubst_pack_expansion): Handle local parameters.
      	(tsubst_decl) [FUNCTION_DECL]: Handle constraints.
      	(tsubst) [TEMPLATE_TYPE_PARM]: Handle deduction constraints.
      	(tsubst_copy_and_build): Handle REQUIRES_EXPR.
      	(more_specialized_fn, more_specialized_partial_spec): Check constraints.
      	(more_specialized_inst): Split out from most_specialized_instantiation.
      	(most_specialized_partial_spec): Check constraints.
      	(instantiate_decl): Never instantiate a concept.
      	(value_dependent_expression_p): Handle REQUIRES_EXPR, TYPE_REQ,
      	variable concepts.
      	(type_dependent_expression_p): Handle WILDCARD_DECL, REQUIRES_EXPR.
      	(instantiation_dependent_r): Handle REQUIRES_EXPR and concepts.
      	(do_auto_deduction): Add overload taking tsubst flags and context enum.
      	Handle constraints.
      	(get_template_for_ordering, most_constrained_function)
      	(is_compatible_template_arg, convert_wildcard_argument)
      	(struct	constr_entry, struct constr_hasher, decl_constraints)
      	(valid_constraints_p, get_constraints, set_constraints)
      	(remove_constraints, init_constraint_processing): New.
      	* ptree.c (cxx_print_xnode): Handle CONSTRAINT_INFO.
      	* search.c (lookup_member): Do lookup in the open partial
      	instantiation.
      	* semantics.c (finish_template_template_parm): Handle constraints.
      	(fixup_template_type): New.
      	(finish_template_type): Call it.
      	(trait_expr_value, finish_trait_expr): Handle CPTK_IS_SAME_AS.
      	* tree.c (cp_tree_equal): Handle local parameters, CONSTRAINT_INFO.
      	(cp_walk_subtrees): Handle REQUIRES_EXPR.
      	* typeck.c (cp_build_function_call_vec): Check constraints.
      
      Co-Authored-By: Braden Obrzut <admin@maniacsvault.net>
      Co-Authored-By: Jason Merrill <jason@redhat.com>
      
      From-SVN: r226713
      Andrew Sutton committed
  10. 06 Aug, 2015 1 commit
  11. 05 Aug, 2015 1 commit
    • re PR c/16351 (NULL dereference warnings) · 76787f70
      gcc/ChangeLog:
      
      2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      	    Jeff Law  <law@redhat.com>
      
      	PR c/16351
      	* doc/invoke.texi (Wnull-dereference): New.
      	* tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
      	Warn for potential NULL dereferences.
      	(find_explicit_erroneous_behaviour): Warn for NULL dereferences.
      	* ubsan.c (instrument_nonnull_arg): Call
      	infer_nonnull_range_by_attribute.
      	(instrument_nonnull_return): Likewise.
      	* common.opt (Wnull-dereference); New.
      	* gimple.c (infer_nonnull_range): Remove bool arguments.
      	(infer_nonnull_range_by_dereference): New.
      	(infer_nonnull_range_by_attribute): New.
      	* gimple.h: Update declarations.
      
      gcc/testsuite/ChangeLog:
      
      2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      	    Jeff Law  <law@redhat.com>
      
      	PR c/16351
      	* gcc.dg/tree-ssa/isolate-2.c: Close comment.
      	* gcc.dg/tree-ssa/isolate-4.c: Likewise.
      	* gcc.dg/tree-ssa/wnull-dereference.c: New test.
      	* gcc.dg/tree-ssa/isolate-1.c: Test warnings with -Wnull-dereference.
      	* gcc.dg/tree-ssa/isolate-3.c: Likewise.
      	* gcc.dg/tree-ssa/isolate-5.c: Likewise.
      
      
      
      Co-Authored-By: Jeff Law <law@redhat.com>
      
      From-SVN: r226640
      Manuel López-Ibáñez committed
  12. 04 Aug, 2015 1 commit
  13. 03 Aug, 2015 1 commit
    • vector.md (VEC_L): Add KFmode and TFmode. · c477a667
      2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
      	(VEC_M): Likewise.
      	(VEC_N): Likewise.
      	(mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
      	point in VSX registers.
      
      	* config/rs6000/constraints.md (wb constraint): Document unused
      	w<x> constraint.
      	(we constraint): Likewise.
      	(wo constraint): Likewise.
      	(wp constraint): New constraint for IEEE 128-bit floating point in
      	VSX registers.
      	(wq constraint): Likewise.
      
      	* config/rs6000/predicates.md (easy_fp_constant): Add support for
      	IEEE 128-bit floating point in VSX registers.
      	(easy_scalar_constant): Likewise.
      
      	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
      	constraints (wp, wq) for IEEE 128-bit floating point in VSX
      	registers.
      	(rs6000_init_hard_regno_mode_ok): Likewise.
      
      	* config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
      	floating point in VSX registers.
      	(VSX_L): Likewise.
      	(VSX_M): Likewise.
      	(VSX_M2): Likewise.
      	(VSm): Likewise.
      	(VSs): Likewise.
      	(VSr): Likewise.
      	(VSa): Likewise.
      	(VSv): Likewise.
      	(vsx_le_permute_<mode>): Add support to properly swap bytes for
      	IEEE 128-bit floating point in VSX registers on little endian.
      	(vsx_le_undo_permute_<mode>): Likewise.
      	(vsx_le_perm_load_<mode>): Likewise.
      	(vsx_le_perm_store_<mode>): Likewise.
      	(splitters for IEEE 128-bit fp moves): Likewise.
      
      	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
      	wq constraints.
      
      	* config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
      	floating point in VSX registers.
      	(VM2): Likewise.
      
      	* doc/md.text (Machine Constraints): Document wp and wq
      	constraints on PowerPC.
      
      From-SVN: r226520
      Michael Meissner committed
  14. 02 Aug, 2015 1 commit
    • c.opt (-Wframe-address): New warning option. · 8423e57c
      gcc/ChangeLog
      2015-07-28  Martin Sebor  <msebor@redhat.com>
      
          * c-family/c.opt (-Wframe-address): New warning option.
          * doc/invoke.texi (Wframe-address): Document it.
          * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
          Clarify possible effects of calling the functions with non-zero
          arguments and mention -Wframe-address.
          * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
      
      gcc/testsuite/ChangeLog
      2015-07-28  Martin Sebor  <msebor@redhat.com>
      
          * g++.dg/Wframe-address-in-Wall.C: New test.
          * g++.dg/Wframe-address.C: New test.
          * g++.dg/Wno-frame-address.C: New test.
          * gcc.dg/Wframe-address-in-Wall.c: New test.
          * gcc.dg/Wframe-address.c: New test.
          * gcc.dg/Wno-frame-address.c: New test.
      
      From-SVN: r226480
      Martin Sebor committed
  15. 27 Jul, 2015 2 commits
    • arm-arches.def: Add "armv6kz". · 39c12541
      2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
      
      	* config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
      	and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
      	* config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
      	for armv6kz targets.
      	* config/arm/arm-cores.def: Replace 6ZK with 6KZ.
      	* config/arm/arm-protos.h (FL_ARCH6KZ): New.
      	(FL_FOR_ARCH6ZK): Remove.
      	(FL_FOR_ARCH6KZ): New.
      	(arm_arch6zk): New declaration.
      	* config/arm/arm-tables.opt: Regenerate.
      	* config/arm/arm.c (arm_arch6kz): New.
      	(arm_option_override): Set arm_arch6kz.
      	* config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
      	* config/arm/driver-arm.c: Add comment to "armv6zk" entry.
              * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
      
      From-SVN: r226243
      Matthew Wahab committed
    • re PR c++/66555 (Fails to warn for if (j == 0 && i == i)) · 05b28fd6
      	PR c++/66555
      	PR c/54979
      	* c-common.c (find_array_ref_with_const_idx_r): New function.
      	(warn_tautological_cmp): New function.
      	* c-common.h (warn_tautological_cmp): Declare.
      	* c.opt (Wtautological-compare): New option.
      
      	* c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
      
      	* call.c (build_new_op_1): Call warn_tautological_cmp.
      	* pt.c (tsubst_copy_and_build): Use sentinel to suppress tautological
      	compare warnings.
      
      	* doc/invoke.texi: Document -Wtautological-compare.
      
      	* c-c++-common/Wtautological-compare-1.c: New test.
      
      From-SVN: r226242
      Marek Polacek committed
  16. 25 Jul, 2015 2 commits
  17. 24 Jul, 2015 1 commit
    • re PR other/66259 (Combined gcc and binutils build from git-master fails, with… · 6b1786aa
      re PR other/66259 (Combined gcc and binutils build from git-master fails, with gas/as-new not existing)
      
      	PR other/66259
      	* config-ml.in: Reflects renaming of configure.in to configure.ac
      	* configure: Likewise
      	* configure.ac: Likewise
      
      boehm-gc/
      
      	PR other/66259
      	* Makefile.direct: Reflects renaming of configure.in to configure.ac
      	* Makefile.dist: Likewise
      	* version.h: Likewise
      	* doc/README: Likewise
      
      config/
      
      	PR other/66259
      	* gettext.m4: Reflects renaming of configure.in to configure.ac
      	* po.m4: Likewise
      	* stdint.m4: Likewise
      	* tcl.m4: Likewise
      
      gcc/
      
      	PR other/66259
      	* acinclude.m4: Reflects renaming of configure.in to configure.ac
      	* configure: Likewise
      	* configure.ac: Likewise
      	* doc/install.texi: Likewise
      	* doc/tm.texi: Likewise
      	* doc/tm.texi.in: Likewise
      
      gcc/ada/
      
      	PR other/66259
      	* prj-nmsc.adb: Reflects renaming of configure.in to configure.ac
      	* gcc-interface/Makefile.in: Likewise
      
      intl/
      
      	PR other/66259
      	* configure: Reflects renaming of configure.in to configure.ac
      
      libjava/
      
      	PR other/66259
      	* configure: Reflects renaming of configure.in to configure.ac
      
      libjava/classpath
      
      	PR other/66259
      	* INSTALL: Reflects renaming of configure.in to configure.ac
      	* ltconfig: Likewise
      	* missing: Likewise
      	* m4/ac_prog_javac.m4: Likewise
      	* m4/ac_prog/javac_works.m4: Likewise
      	* resource/META-INF/mimetypes.default: Likewise
      
      libjava/libltdl
      
      	PR other/66259
      	* THREADS: Reflects renaming of configure.in to configure.ac
      
      liboffloadmic/
      
      	PR other/66259
      	* configure: Reflects renaming of configure.in to configure.ac
      
      From-SVN: r226183
      Jeff Law committed
  18. 23 Jul, 2015 2 commits
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 7eb9f42e
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Moved to
      	tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(split_complex_args): Take assign_parm_data_all argument.
      	Pass it to rtl_for_parm.  Set up rtl and context for split
      	args.
      	(assign_parms_augmented_arg_list): Adjust.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.  Recognize split complex args.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location.
      	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
      	if stack_parm is NULL.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* stor-layout.c (layout_decl): Don't set mem attributes of
      	non-MEMs.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r226113
      Alexandre Oliva committed
    • I6400 scheduling. · 7ccb4e4e
      gcc/
      	* config/mips/i6400.md: New file.
      	* config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
      	(mips64r6): Likewise.
      	(i6400): Define.
      	* config/mips/mips-tables.opt: Regenerate.
      	* config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
      	(mips_issue_rate): Add support for i6400.
      	(mips_multipass_dfa_lookahead): Likewise.
      	* config/mips/mips.h (TUNE_I6400): Define.
      	* config/mips/mips.md: Include i6400.md.
      	(processor): Add i6400.
      	* doc/invoke.texi (-march=@var{arch}): Add i6400.
      
      From-SVN: r226090
      Prachi Godbole committed
  19. 22 Jul, 2015 3 commits
    • Add scheduling for M51xx core family. · 6dd74463
      gcc/
      	* config/mips/m5100.md: New file.
      	* config/mips/mips-cpus.def (m5100, m5101): Define.
      	* config/mips/mips-tables.opt: Regenerate.
      	* config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
      	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
      	-march=m5101 to -mips32r5.
      	(MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
      	(MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
      	!-msoft-float.
      	* config/mips/mips.md: Include m5100.md.
      	(processor): Add m5100.
      	* doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
      
      From-SVN: r226066
      Prachi Godbole committed
    • Add -march=interaptiv. · 8ced5d2d
      gcc/
      	* config/mips/mips-cpus.def (interaptiv): Define.
      	* config/mips/mips-tables.opt: Regenerate.
      	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
      	-mips32r2.
      	(BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
      	* doc/invoke.texi (-march=@var{arch}): Add interaptiv.
      
      From-SVN: r226065
      Robert Suchanek committed
    • invoke.texi (Language Independent Options): Rename node to Diagnostic Message Formatting Options. · ebaec5f0
      	* doc/invoke.texi (Language Independent Options): Rename node to
      	Diagnostic Message Formatting Options.
      
      From-SVN: r226058
      Jonathan Wakely committed
  20. 20 Jul, 2015 2 commits
    • re PR target/66217 (PowerPC rotate/shift/mask instructions not optimal) · 7fc5cca3
      	PR target/66217
      	* config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
      	"available letters" comment.
      	* config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
      	mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
      	and_2rld_operand):  Delete.
      	(and_operand): Adjust.
      	(rotate_mask_operator): New.
      	* config/rs6000/rs6000-protos.h (build_mask64_2_operands,
      	includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
      	includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
      	extract_ME): Delete.
      	(rs6000_is_valid_mask, rs6000_is_valid_and_mask,
      	rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
      	rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
      	rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
      	rs6000_emit_2insn_and): New.
      	* config/rs6000/rs6000.c (num_insns_constant): Adjust.
      	(build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
      	includes_rldic_lshift_p, includes_rldicr_lshift_p,
      	insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
      	(rs6000_is_valid_mask, rs6000_is_valid_and_mask,
      	rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
      	s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
      	rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
      	rs6000_emit_2insn_and): New.
      	(print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
      	(rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
      	handling.
      	<NOT>: Don't fall through to next case.
      	<AND>: Handle the various rotate-and-mask cases directly.
      	<IOR>: Always cost as one insn.
      	* config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
      	(and<mode>3): Adjust expander for the new patterns.
      	(and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
      	and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
      	(*and<mode>3_imm_dot_shifted): New.
      	(*and<mode>3_mask): Delete, rewrite as ...
      	(and<mode>3_mask): ... New.
      	(*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
      	(andsi3_internal0_nomc): Delete.
      	(*andsi3_internal6): Delete.
      	(*and<mode>3_2insn): New.
      	(insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
      	*insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
      	*insvsi_internal6, insvdi_internal, *insvdi_internal2,
      	*insvdi_internal3): Delete.
      	(*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
      	*rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
      	*rotl<mode>3_insert_4, two splitters for multi-precision shifts,
      	*ior<mode>_mask): New.
      	(extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
      	*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
      	*ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
      	*lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
      	Delete.
      	(ashr<mode>3): Delete expander.
      	(*ashr<mode>3): Rename to ...
      	(ashr<mode>3): ... This.
      	(ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
      	(*rotldi3_internal4, *rotldi3_internal5 and split,
      	*rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
      	and split, *ashldi3_internal6 and split, *ashldi3_internal7,
      	ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
      	(*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
      	(splitter for loading a mask): Adjust.
      	* doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
      
      From-SVN: r226005
      Segher Boessenkool committed
    • re PR c++/55095 (Wshift-overflow) · 451b5e48
      	PR c++/55095
      	* c-common.c (c_fully_fold_internal): Warn about left shift overflows.
      	Use EXPR_LOC_OR_LOC.
      	(maybe_warn_shift_overflow): New function.
      	* c-common.h (maybe_warn_shift_overflow): Declare.
      	* c-opts.c (c_common_post_options): Set warn_shift_overflow.
      	* c.opt (Wshift-overflow): New option.
      
      	* c-typeck.c (digest_init): Pass OPT_Wpedantic to pedwarn_init.
      	(build_binary_op): Warn about left shift overflows.
      
      	* typeck.c (cp_build_binary_op): Warn about left shift overflows.
      
      	* doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
      
      	* c-c++-common/Wshift-overflow-1.c: New test.
      	* c-c++-common/Wshift-overflow-2.c: New test.
      	* c-c++-common/Wshift-overflow-3.c: New test.
      	* c-c++-common/Wshift-overflow-4.c: New test.
      	* c-c++-common/Wshift-overflow-5.c: New test.
      	* g++.dg/cpp1y/left-shift-1.C: New test.
      	* gcc.dg/c90-left-shift-2.c: New test.
      	* gcc.dg/c90-left-shift-3.c: New test.
      	* gcc.dg/c99-left-shift-2.c: New test.
      	* gcc.dg/c99-left-shift-3.c: New test.
      	* gcc.dg/pr40501.c: Use -Wno-shift-overflow.
      	* gcc.c-torture/execute/pr40386.c: Likewise.
      	* gcc.dg/vect/pr33373.c: Likewise.
      	* gcc.dg/vect/vect-shift-2-big-array.c: Likewise.
      	* gcc.dg/vect/vect-shift-2.c: Likewise.
      
      Co-Authored-By: Richard Sandiford <richard.sandiford@arm.com>
      
      From-SVN: r225998
      Marek Polacek committed
  21. 18 Jul, 2015 1 commit
    • fix pr46851 and pr60340: remove unmaintained omega dependence test · 49b8fe6c
      Regstrapped on amd64-linux.
      
      2015-07-18  Sebastian Pop  <s.pop@samsung.com>
      
      	PR middle-end/46851
      	PR middle-end/60340
      	* Makefile.in: Removed omega.o.
      	* common.opt: Remove flag fcheck-data-deps.
      	* doc/invoke.texi: Remove documentation for fcheck-data-deps and
      	its associated params: omega-max-vars, omega-max-geqs,
      	omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
      	omega-max-keys, omega-eliminate-redundant-constraints.
      	* doc/loop.texi: Remove all the section on Omega.
      	* graphite-blocking.c: Include missing params.h: it used to be
      	included through tree-data-ref.h and omega.h.
      	* graphite-isl-ast-to-gimple.c: Same.
      	* graphite-optimize-isl.c: Same.
      	* graphite-sese-to-poly.c: Same.
      	* graphite.c: Same.
      	* omega.c: Remove.
      	* omega.h: Remove.
      	* params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
      	PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
      	PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
      	PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
      	* passes.def: Remove pass_check_data_deps.
      	* tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
      	(dump_conflict_function): Same.
      	(dump_subscript): Same.
      	(print_direction_vector): Same.
      	(print_dir_vectors): Same.
      	(print_lambda_vector): Same.
      	(print_dist_vectors): Same.
      	(dump_data_dependence_relation): Same.
      	(dump_data_dependence_relations): Same.
      	(dump_dist_dir_vectors): Same.
      	(dump_ddrs): Same.
      	(init_omega_eq_with_af): Removed.
      	(omega_extract_distance_vectors): Removed.
      	(omega_setup_subscript): Removed.
      	(init_omega_for_ddr_1): Removed.
      	(init_omega_for_ddr): Removed.
      	(ddr_consistent_p): Removed.
      	(compute_affine_dependence): Do not use omega to check data
      	dependences.
      	(compute_data_dependences_for_bb): Removed.
      	(analyze_all_data_dependences): Removed.
      	(tree_check_data_deps): Removed.
      	* tree-data-ref.h: Do not include omega.h.
      	(compute_data_dependences_for_bb): Removed.
      	(tree_check_data_deps): Removed.
      	* tree-ssa-loop.c (pass_check_data_deps): Removed.
      	(make_pass_check_data_deps): Removed.
      	* tree-ssa-phiopt.c: Include params.h.
      	* tree-vect-data-refs.c: Same.
      	* tree-vect-slp.c: Same.
      
      testsuite/
      	* gcc.dg/tree-ssa/pr42327.c: Removed.
      	* g++.dg/other/pr35011.C: Removed.
      
      From-SVN: r225979
      Sebastian Pop committed
  22. 15 Jul, 2015 1 commit
    • Support new interrupt handler options. · 0256a844
      gcc/
      	* config/mips/mips.c (mips_int_mask): New enum.
      	(mips_shadow_set): Likewise.
      	(int_mask): New variable.
      	(use_shadow_register_set_p): Change type to enum mips_shadow_set.
      	(machine_function): Add int_mask and use_shadow_register_set.
      	(mips_attribute_table): Add attribute handlers for interrupt and
      	use_shadow_register_set.
      	(mips_interrupt_mask): New static function.
      	(mips_handle_interrupt_attr): Likewise.
      	(mips_handle_use_shadow_register_set_attr): Likewise.
      	(mips_use_shadow_register_set): Change return type to enum
      	mips_shadow_set.  Add argument handling for use_shadow_register_set
      	attribute.
      	(mips_interrupt_extra_called_saved_reg_p): Update the conditional to
      	compare with mips_shadow_set enum.
      	(mips_compute_frame_info): Add interrupt mask and
      	use_shadow_register_set to per-function information structure.
      	Add a stack slot for EPC unconditionally.
      	(mips_expand_prologue): Compare use_shadow_register_set value
      	with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
      	masked interrupt register but in EIC mode use K0 and save Cause in K0.
      	EPC saved and restored unconditionally.  Use PMODE_INSN macro when
      	copying the stack pointer from the shadow register set.
      	* config/mips/mips.h (SR_IM0): New define.
      	* config/mips/mips.md (mips_rdpgpr): Rename to...
      	(mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
      	* doc/extend.texi (Declaring Attributes of Functions): Document
      	optional arguments for interrupt and use_shadow_register_set
      	attributes.
      
      gcc/testsuite/
      	* gcc.target/mips/interrupt_handler-4.c: New test.
      
      Co-Authored-By: Robert Suchanek <robert.suchanek@imgtec.com>
      
      From-SVN: r225819
      Matthew Fortune committed
  23. 14 Jul, 2015 4 commits
    • constraints.md (U, v): New constraints. · 524d2e49
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/constraints.md (U, v): New constraints.
      	* config/nios2/predicates.md (rdprs_dcache_operand): New.
      	(ldstex_memory_operand): New.
      	* config/nios2/sync.md: New file.
      	* config/nios2/nios2.md (unspecv): Add new builtin function
      	UNSPECV codes.
      	(rdprs, flushd, flushda, wrpie, eni): New patterns.
      	(top-level): Include sync.md.
      	* config/nios2/nios2.c (N2_FTYPES): Add function types for
      	new builtins.
      	(N2_BUILTINS): Add arch field setting, add new builtins.
      	(enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
      	for arch field.
      	(nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
      	Also handle ldex/stex/ldsex/stsex builtins.
      	(nios2_expand_rdprs_builtin): New function.
      	(nios2_expand_cache_builtin): New function.
      	(nios2_expand_wrpie_builtin): New function.
      	(nios2_expand_eni_builtin): New function.
      	(nios2_expand_builtin): Add arch field handling and new builtin 
              cases.
      	* doc/extend.texi (Altera Nios II Built-in Functions): Document
      	new builtins.
      	* doc/md.texi (Machine Constraints): Document U and v constraints.
      
      	gcc/testsuite/
      	* gcc.target/nios2/nios2-flushd.c: New.
      	* gcc.target/nios2/nios2-rdprs.c: New.
      	* gcc.target/nios2/r2-atomic.c: New.
      	* gcc.target/nios2/r2-eni.c: New.
      	* gcc.target/nios2/r2-wrpie.c: New.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225800
      Sandra Loosemore committed
    • nios2.h (LABEL_ALIGN): Define. · 3bbbe009
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.h (LABEL_ALIGN): Define.
      	(REG_ALLOC_ORDER): Define.
      	(ADJUST_REG_ALLOC_ORDER): Define.
      	(HONOR_REG_ALLOC_ORDER): Define.
      	(CDX_REG_P): Define.
      	(ANDCLEAR_INT): Define.
      	* config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
      	(nios2_label_align): Declare.
      	(nios2_cdx_narrow_form_p): Declare.
      	(nios2_adjust_reg_alloc_order): Declare.
      	* config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
      	operation.
      	(nios2_large_unspec_reloc_p): New function, split from...
      	(nios2_legitimate_pic_operand_p): ...here.
      	(nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
      	(nios2_print_operand_punct_valid_p): New.
      	(nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
      	(split_mem_address): New.
      	(split_alu_insn): New.
      	(cdxreg): New.
      	(cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
      	(enum nios2_add_insn_kind): New.
      	(nios2_add_insn_names, nios2_add_insn_narrow): New.
      	(nios2_add_insn_classify): New.
      	(nios2_add_insn_asm): New.
      	(nios2_cdx_narrow_form_p): New.
      	(label_align, min_labelno, max_labelno): New.
      	(nios2_reorg): New.
      	(nios2_label_align): New.
      	(nios2_adjust_reg_alloc_order): New.
      	(TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
      	(TARGET_MACHINE_DEPENDENT_REORG): Define.
      	* config/nios2/constraints.md (P): New constraint.
      	* config/nios2/predicates.md (const_and_operand): New.
      	(and_operand): New.
      	(stack_memory_operand): New.
      	* config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
      	(length): Update to use nios2_cdx_narrow_form_p().
      	(type): Add new insn type values.
      	(control, alu, st, ld, shift): Update insn reservations with
      	new insn type values.
      	(*high, *lo_sum): Define new insn patterns for constant generation.
      	(movqi_internal, movhi_internal, movsi_internal): Reduce
      	alternatives, update asm template to handle CDX variants, update
      	type attributes.
      	(zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
      	template, update type attributes.
      	(extendhisi2, extendqi<mode>2): Likewise.
      	(addsi3): Change to use function for asm string.
      	(subsi3): Add CDX notation to asm template, update type attributes.
      	(negsi3, one_cmplsi3): Likewise.
      	(andsi3): New pattern, specialized from logical patterns.
      	(<code>si3): Remove and case, combine alternatives, update asm
      	template.
      	(<shift_op>si3): Add CDX notation, update type attributes.
      	(rotrsi3): Update type attribute.
      	(*merge, extzv, insv): New insn patterns.
      	(return): Change to define_expand.
      	(simple_return): Add CDX notation, update type attributes.
      	(indirect_jump): Add CDX notation.
      	(jump): Update asm cases, update length attribute expression.
      	(*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
      	(nios2_cbranch): Update asm cases and length attribute expression
      	to handle CDX variants.
      	(nios2_cmp<code>): Update asm template.
      	(nop): Add CDX notation, update type attributes.
      	(trap): Add CDX notation.
      	(ctrapsi4): Update asm cases and length attribute expression to
      	handle CDX variant.
      	* doc/md.texi (Machine Constraints): Document P constraint.
      
      	gcc/testsuite/
      	* gcc.target/nios2/andci.c: New.
      	* gcc.target/nios2/bmx.c: New.
      	* gcc.target/nios2/cdx-add.c: New.
      	* gcc.target/nios2/cdx-branch.c: New.
      	* gcc.target/nios2/cdx-callret.c: New.
      	* gcc.target/nios2/cdx-loadstore.c: New.
      	* gcc.target/nios2/cdx-logical.c: New.
      	* gcc.target/nios2/cdx-mov.c: New.
      	* gcc.target/nios2/cdx-shift.c: New.
      	* gcc.target/nios2/cdx-sub.c: New.
      	* gcc.target/nios2/nios2-trap-insn.c: Adjust pattern.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225796
      Sandra Loosemore committed
    • nios2.h (SMALL_INT12): New macro. · 42e6ab74
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.h (SMALL_INT12): New macro.
      	* config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
      	(nios2_valid_addr_expr_p): Use it.
      	(nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
      	with implicit "io" instructions on R2.
      	* config/nios2/constraints.md (w): New constraint.
      	* config/nios2/predicates.md (ldstio_memory_operand): New.
      	* config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
      	operand predicate and constraint.
      	(ld<bh>io_signed, st<bhw>io>): Likewise.
      	* doc/md.texi (Machine Constraints): Document w constraint.
      
      	gcc/testsuite/
      	* gcc.target/nios2/r2-io-range.c: New.
      	* gcc.target/nios2/r2-stio-1.c: New.
      	* gcc.target/nios2/r2-stio-2.c: New.
      	* gcc.target/nios2/nios2-ldxio.c: New.
      	* gcc.target/nios2/nios2-stxio.c: Change to assemble test instead
      	of just compile.  Add more tests.
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225792
      Sandra Loosemore committed
    • nios2.opt (march, mbmx, mcdx): New options. · 77c50d73
      2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
      	    Cesar Philippidis  <cesar@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.opt (march, mbmx, mcdx): New options.
      	* config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
      	Nios II architecture level.
      	* config/nios2/nios2.h (TARGET_ARCH_R2): New define.
      	(TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
      	(OPTION_DEFAULT_SPECS): Define.
      	(ASM_SPEC): Add -march= spec strings.
      	* config/nios2/nios2.c (nios2_option_override): Check for
      	conflicts involving new options.
      	* config.gcc (nios2*-*-*): Support --with-arch=.
      	* doc/invoke.texi (Option Summary, Nios II Options): Document
      	-march=, -mbmx,	and -mcdx.
      
      
      Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r225791
      Sandra Loosemore committed
  24. 13 Jul, 2015 1 commit
  25. 09 Jul, 2015 2 commits
    • always define WORD_REGISTER_OPERATIONS · 9e11bfef
      gcc/ChangeLog:
      
      2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
      	* config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
      	* config/arc/arc.h: Likewise.
      	* config/arm/arm.h: Likewise.
      	* config/bfin/bfin.h: Likewise.
      	* config/epiphany/epiphany.h: Likewise.
      	* config/frv/frv.h: Likewise.
      	* config/ia64/ia64.h: Likewise.
      	* config/iq2000/iq2000.h: Likewise.
      	* config/lm32/lm32.h: Likewise.
      	* config/m32r/m32r.h: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/mep/mep.h: Likewise.
      	* config/microblaze/microblaze.h: Likewise.
      	* config/mips/mips.h: Likewise.
      	* config/mmix/mmix.h: Likewise.
      	* config/mn10300/mn10300.h: Likewise.
      	* config/nds32/nds32.h: Likewise.
      	* config/nios2/nios2.h: Likewise.
      	* config/pa/pa.h: Likewise.
      	* config/rl78/rl78.h: Likewise.
      	* config/sh/sh.h: Likewise.
      	* config/sparc/sparc.h: Likewise.
      	* config/stormy16/stormy16.h: Likewise.
      	* config/tilegx/tilegx.h: Likewise.
      	* config/tilepro/tilepro.h: Likewise.
      	* config/v850/v850.h: Likewise.
      	* config/xtensa/xtensa.h: Likewise.
      	* doc/tm.texi: Regenerate.
      	* doc/tm.texi.in: Adjust.
      	* combine.c (simplify_set): Likewise.
      	(simplify_comparison): Likewise.
      	* expr.c (store_constructor): Likewise.
      	* internal-fn.c (expand_arith_overflow): Likewise.
      	* reload.c (push_reload): Likewise.
      	(find_reloads): Likewise.
      	(find_reloads_subreg_address): Likewise.
      	* reload1.c (eliminate_regs_1): Likewise.
      	* rtlanal.c (nonzero_bits1): Likewise.
      	(num_sign_bit_copies1): Likewise.
      	* simplify-rtx.c (simplify_truncation): Likewise.
      
      From-SVN: r225597
      Trevor Saunders committed
    • always define SHORT_IMMEDIATES_SIGN_EXTEND · 58f2ae18
      gcc/ChangeLog:
      
      2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* combine.c (update_rsp_from_reg_equal): Don't check if
      	SHORT_IMMEDIATES_SIGN_EXTEND is defined.
      	(reg_nonzero_bits_for_combine): Likewise.
      	* config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
      	1.
      	* config/frv/frv.h: Likewise.
      	* config/lm32/lm32.h: Likewise.
      	* config/mep/mep.h: Likewise.
      	* config/mips/mips.h: Likewise.
      	* config/rs6000/rs6000.h: Likewise.
      	* config/sh/sh.h: Likewise.
      	* config/tilegx/tilegx.h (enum reg_class): Likewise.
      	* config/tilepro/tilepro.h: Likewise.
      	* defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
      	* doc/tm.texi: Regenerate.
      	* doc/tm.texi.in: Adjust.
      	* rtlanal.c (nonzero_bits1): Likewise.
      
      From-SVN: r225593
      Trevor Saunders committed
  26. 08 Jul, 2015 1 commit
    • target.def (rtx_costs): Remove "code" param, add "mode". · e548c9df
      	* target.def (rtx_costs): Remove "code" param, add "mode".
      	* rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
      	(set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
      	(set_rtx_cost, get_full_set_rtx_cost): Move later in file.
      	* rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
      	call.  Track mode when given in rtx.
      	(get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
      	(default_address_cost): Pass Pmode to rtx_cost.
      	(insn_rtx_cost): Pass dest mode of set to set_src_cost.
      	* cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
      	with NULL set.
      	* cse.c (COST, COST_IN): Add MODE param.  Update all uses.
      	(notreg_cost): Add mode param.  Use it.
      	* gcse.c (want_to_gcse_p): Delete forward declaration.  Add
      	mode param and pass to set_src_cost.  Update all calls.
      	(hash_scan_set): Formatting.
      	* hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
      	(hook_bool_rtx_mode_int_int_intp_bool_false): New function.
      	* hooks.h: Ditto.
      	* expmed.c (init_expmed_one_conv, init_expmed_one_mode,
      	init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
      	emit_store_flag): Update set_src_cost and rtx_cost calls.
      	* auto-inc-dec.c (attempt_change): Likewise.
      	* calls.c (precompute_register_parameters): Likewise.
      	* combine.c (expand_compound_operation, make_extraction,
      	force_to_mode, distribute_and_simplify_rtx): Likewise.
      	* dojump.c (prefer_and_bit_test): Likewise.
      	* dse.c (find_shift_sequence): Likewise.
      	* expr.c (compress_float_constant): Likewise.
      	* fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
      	* ifcvt.c (noce_try_sign_mask): Likewise.
      	* loop-doloop.c (doloop_optimize): Likewise.
      	* loop-invariant.c (create_new_invariant): Likewise.
      	* lower-subreg.c (shift_cost, compute_costs): Likewise.
      	* optabs.c (avoid_expensive_constant, prepare_cmp_insn,
      	lshift_cheap_p): Likewise.
      	* postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
      	try_replace_in_use, reload_cse_move2add): Likewise.
      	* reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
      	Likewise.
      	* simplify-rtx.c (simplify_binary_operation_1): Likewise.
      	* tree-ssa-loop-ivopts.c (computation_cost): Likewise.
      	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
      	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
      	add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
      	to rtx_cost calls.
      	* config/alpha/alpha.c (alpha_rtx_costs): Likewise.
      	* config/arc/arc.c (arc_rtx_costs): Likewise.
      	* config/arm/arm.c (arm_rtx_costs): Likewise.
      	* config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
      	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
      	* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
      	* config/cris/cris.c (cris_rtx_costs): Likewise.
      	* config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
      	* config/frv/frv.c (frv_rtx_costs): Likewise.
      	* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
      	* config/i386/i386.c (ix86_rtx_costs): Likewise.
      	* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
      	* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
      	* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
      	* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
      	* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
      	* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
      	* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
      	* config/mep/mep.c (mep_rtx_cost): Likewise.
      	* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
      	* config/mips/mips.c (mips_rtx_costs): Likewise.
      	* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
      	* config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
      	* config/msp430/msp430.c (msp430_rtx_costs): Likewise.
      	* config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
      	* config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
      	* config/nds32/nds32.c (nds32_rtx_costs): Likewise.
      	* config/nios2/nios2.c (nios2_rtx_costs): Likewise.
      	* config/pa/pa.c (hppa_rtx_costs): Likewise.
      	* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
      	* config/rl78/rl78.c (rl78_rtx_costs): Likewise.
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
      	* config/s390/s390.c (s390_rtx_costs): Likewise.
      	* config/sh/sh.c (sh_rtx_costs): Likewise.
      	* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
      	* config/spu/spu.c (spu_rtx_costs): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
      	* config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
      	* config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
      	* config/v850/v850.c (v850_rtx_costs): Likewise.
      	* config/vax/vax.c (vax_rtx_costs): Likewise.
      	* config/visium/visium.c (visium_rtx_costs): Likewise.
      	* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
      	* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
      	"code" param, and pass as outer_code to first rtx_cost call.  Pass
      	mode to rtx_cost calls.
      	(aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
      	calls.
      	(aarch64_rtx_costs_wrapper): Update.
      	* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
      	arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
      	rtx_cost calls.
      	* config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
      	and rtx_cost calls.
      	(avr_operand_rtx_cost): Similarly.
      	(avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
      	for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
      	* config/mips/mips.c (mips_stack_address_p): Comment typo.
      	(mips_binary_cost): Update rtx_cost and set_src_cost calls.
      	(mips_rtx_costs): Use GET_MODE (x) to detect const_int.
      	* config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
      	rtx_cost.
      	(mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
      	* config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
      	* config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r225532
      Alan Modra committed
  27. 06 Jul, 2015 1 commit
  28. 05 Jul, 2015 1 commit