1. 29 Aug, 2017 22 commits
    • Fix lambdas in template default argument of inherited ctor. · b3eae0dd
      	* method.c (synthesized_method_base_walk): Replace an inherited
      	template with its specialization.
      	(synthesized_method_walk): Make inheriting_ctor a pointer.
      	(maybe_explain_implicit_delete, explain_implicit_non_constexpr)
      	(deduce_inheriting_ctor, implicitly_declare_fn): Adjust.
      
      From-SVN: r251426
      Jason Merrill committed
    • Adjust C++17 class deduction use of DECL_ABSTRACT_ORIGIN. · 4cc20315
      	* pt.c (build_deduction_guide): Set DECL_ABSTRACT_ORIGIN on the
      	template, not the function.
      	(template_guide_p): Adjust.
      
      From-SVN: r251425
      Jason Merrill committed
    • Support copying local_specializations. · 82b0ce2e
      	* cp-tree.h (enum lss_policy): New.
      	(local_specialization_stack): Add policy parameter to default ctor.
      	* pt.c (local_specialization_stack): Copy local_specializations if
      	lss_copy.
      
      From-SVN: r251424
      Jason Merrill committed
    • Add immediate potential_constant_expression variants. · a0ab7ccd
      	* constexpr.c (potential_constant_expression_1): Add "now" parm.
      	(is_constant_expression, require_constant_expression): New.
      	(is_static_init_expression, is_nondependent_constant_expression)
      	(is_nondependent_static_init_expression): Drop "potential".
      	* except.c (build_must_not_throw_expr): Do type conversion on
      	value-dependent argument.
      	* pt.c, semantics.c, typeck2.c: Use variants without "potential".
      
      From-SVN: r251423
      Jason Merrill committed
    • Instantiate default arguments/member initializers once. · 12659e10
      	* init.c (get_nsdmi): Remember NSDMI instantiations.
      	* parser.c (inject_this_parameter): Be more picky about
      	current_class_ptr.
      	* pt.c (tsubst_copy): Simplify 'this' handling.
      	(tsubst_default_argument): Remember default argument
      	instantiations.  Take parameter number.
      	(tsubst_default_arguments): Pass it.
      	* call.c (convert_default_arg): Likewise.
      
      From-SVN: r251422
      Jason Merrill committed
    • Fix default argument conversion failure and SFINAE. · 1aeafba2
      	* call.c (build_over_call): Check convert_default_arg result for
      	error_mark_node.
      	* parser.c (cp_parser_late_parsing_default_args): Remember
      	error_mark_node.
      
      From-SVN: r251421
      Jason Merrill committed
    • runtime: fix lfstack for 64-bit AIX · a2aa807e
          
          Reviewed-on: https://go-review.googlesource.com/57550
      
      From-SVN: r251420
      Ian Lance Taylor committed
    • *.c: Remove excess braces from target selectors. · 4e395d91
      	* gcc.target/i386/*.c: Remove excess braces from target selectors.
      
      From-SVN: r251419
      Uros Bizjak committed
    • ira-costs: avoid missing base registers in record_address_regs · 9f1c93df
      	* ira-costs.c (record_address_regs): Handle both operands of PLUS for
      	MAX_REGS_PER_ADDRESS == 1.
      
      From-SVN: r251418
      Alexander Monakov committed
    • 20030926-1.c: Add dg-additional-options. · 2ffc0382
      	* gcc.target/i386/20030926-1.c: Add dg-additional-options.
      	* gcc.target/i386/abi-2.c: Ditto.
      	* gcc.target/i386/interrupt-sibcall-2.c: Ditto.
      	* gcc.target/i386/pr22076.c: Ditto.
      	* gcc.target/i386/pr37216.c: Ditto.
      	* gcc.target/i386/pr39431.c: Ditto.
      	* gcc.target/i386/pr40906-1.c: Ditto.
      	* gcc.target/i386/pr40906-2.c: Ditto.
      	* gcc.target/i386/pr43766.c: Ditto.
      	* gcc.target/i386/pr46226.c: Ditto.
      	* gcc.target/i386/pr46470.c: Ditto.
      	* gcc.target/i386/pr59929.c: Ditto.
      	* gcc.target/i386/sse-10.c: Ditto.
      	* gcc.target/i386/vararg-1.c: Ditto.
      	* gcc.target/i386/vararg-1.c: Ditto.
      	* gcc.target/i386/asm-6.c: Compile for fpic target only.
      	* gcc.target/i386/pr44223.c: Ditto.
      	* gcc.target/i386/bitfield1.c (dg-options): Remove target selector.
      	* gcc.target/i386/bitfield2.c (dg-options): Ditto.
      	* gcc.target/i386/pr67480.c (dg-options): Ditto.
      	* gcc.target/i386/vect-cond-1.c (dg-options): Ditto.
      	* gcc.target/i386/bittest.c (scan-assembler-times): Ditto.
      	* gcc.target/i386/darwin-fpmath.c (dg-do): Simplify target selector.
      	* gcc.target/i386/mvc9.c: Compile for lto target only.
      	* gcc.target/i386/pr45234.c: Compile for ia32 target only.
      	* gcc.target/i386/pr49866.c: Compile for lp64 target only.
      	* gcc.target/i386/pr57091.c: Ditto.
      	* gcc.target/i386/pr61599-2.c: Ditto.
      
      From-SVN: r251417
      Uros Bizjak committed
    • i386.opt (flag_fentry): Do not init to -1. · be0ffecc
      	* config/i386/i386.opt (flag_fentry): Do not init to -1.
      	* config/i386/i386.c (ix86_option_override_internal): Simplify
      	setting of opts->x_flag_entry.
      
      From-SVN: r251416
      Uros Bizjak committed
    • re PR tree-optimization/81503 (Wrong code at -O2) · 8eb91869
      [gcc]
      
      2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      	    Jakub Jelinek  <jakub@redhat.com>
      	    Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81503
      	* gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
      	folded constant fits in the target type; reorder tests for clarity.
      
      [gcc/testsuite]
      
      2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR tree-optimization/81503
      	* gcc.c-torture/execute/pr81503.c: New file.
      
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      Co-Authored-By: Richard Biener <rguenther@suse.de>
      
      From-SVN: r251414
      Bill Schmidt committed
    • Make expansion of balanced binary trees of switches on tree level. · 9dc3d6a9
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	* passes.def: Include pass_lower_switch.
      	* stmt.c (dump_case_nodes): Remove and move to
      	tree-switch-conversion.
      	(case_values_threshold): Likewise.
      	(expand_switch_as_decision_tree_p): Likewise.
      	(emit_case_decision_tree): Likewise.
      	(expand_case): Likewise.
      	(balance_case_nodes): Likewise.
      	(node_has_low_bound): Likewise.
      	(node_has_high_bound): Likewise.
      	(node_is_bounded): Likewise.
      	(emit_case_nodes): Likewise.
      	(struct simple_case_node): New struct.
      	(add_case_node): Remove.
      	(emit_case_dispatch_table): Use vector instead of case_list.
      	(reset_out_edges_aux): Remove.
      	(compute_cases_per_edge): Likewise.
      	(expand_case): Build list of simple_case_node.
      	(expand_sjlj_dispatch_table): Use it.
      	* tree-switch-conversion.c (struct case_node): Moved from
      	stmt.c and adjusted.
      	(emit_case_nodes): Likewise.
      	(node_has_low_bound): Likewise.
      	(node_has_high_bound): Likewise.
      	(node_is_bounded): Likewise.
      	(case_values_threshold): Likewise.
      	(reset_out_edges_aux): Likewise.
      	(compute_cases_per_edge): Likewise.
      	(add_case_node): Likewise.
      	(dump_case_nodes): Likewise.
      	(balance_case_nodes): Likewise.
      	(expand_switch_as_decision_tree_p): Likewise.
      	(emit_jump): Likewise.
      	(emit_case_decision_tree): Likewise.
      	(try_switch_expansion): Likewise.
      	(do_jump_if_equal): Likewise.
      	(emit_cmp_and_jump_insns): Likewise.
      	(fix_phi_operands_for_edge): New function.
      	(record_phi_operand_mapping): Likewise.
      	(class pass_lower_switch): New pass.
      	(pass_lower_switch::execute): New function.
      	(make_pass_lower_switch): Likewise.
      	(conditional_probability):
      	* timevar.def: Add TV_TREE_SWITCH_LOWERING.
      	* tree-pass.h: Add make_pass_lower_switch.
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/tree-prof/update-loopch.c: Scan patterns in
      	switchlower.
      	* gcc.dg/tree-ssa/vrp104.c: Likewise.
      
      From-SVN: r251412
      Martin Liska committed
    • re PR target/80993 ([msp430] __attribute__((interrupt)) should imply __attribute__((used))) · 10bcba61
      	PR target/80993
      	* gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
      	handlers as used.
      
      From-SVN: r251410
      Jozef Lawrynowicz committed
    • dwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a… · 12d84791
      dwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a DW_AT_inline attribute twice.
      
      2017-08-29  Richard Biener  <rguenther@suse.de>
      
      	* dwarf2out.c (add_dwarf_attr): When checking is enabled verify
      	we do not add a DW_AT_inline attribute twice.
      	(gen_subprogram_die): Remove code setting DW_AT_inline on
      	DECL_ABSTRACT_P nodes.
      
      From-SVN: r251409
      Richard Biener committed
    • Fix --help=target (Ada) (PR other/39851) · 0694da45
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	PR other/39851
      	* gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL.
      
      From-SVN: r251406
      Martin Liska committed
    • Set the call nothrow flag more often · a844293d
      This patch sets the nothrow flag for various calls to internal functions
      that are not inherently NOTHROW (and so can't be declared that way in
      internal-fn.def) but that are used in contexts that can guarantee
      NOTHROWness.
      
      2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* gimplify.c (gimplify_call_expr): Copy the nothrow flag to
      	calls to internal functions.
      	(gimplify_modify_expr): Likewise.
      	* tree-call-cdce.c (use_internal_fn): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	(convert_to_divmod): Set the nothrow flag.
      	* tree-if-conv.c (predicate_mem_writes):  Likewise.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
      	(vectorizable_call): Likewise.
      	(vectorizable_store): Likewise.
      	(vectorizable_load): Likewise.
      	* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
      	(vect_recog_mask_conversion_pattern): Likewise.
      
      From-SVN: r251401
      Richard Sandiford committed
    • Fix --help=target (PR other/39851). · 130fcab0
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	PR other/39851
      	* gcc.c (driver_handle_option): Add new argument.
      	* opts-common.c (handle_option): Pass
      	target_option_override_hook.
      	* opts-global.c (lang_handle_option): Add new option.
      	(set_default_handlers):  Add new argument.
      	(decode_options): Likewise.
      	* opts.c (target_handle_option): Likewise.
      	(common_handle_option): Call target_option_override_hook.
      	* opts.h (struct cl_option_handler_func): Add hook for
      	target option override.
      	(struct cl_option_handlers): Likewise.
      	(set_default_handlers): Add new argument.
      	(decode_options): Likewise.
      	(common_handle_option): Likewise.
      	(target_handle_option): Likewise.
      	* toplev.c (toplev::main): Pass targetm.target_option.override
      	hook.
      2017-08-29  Martin Liska  <mliska@suse.cz>
      
      	PR other/39851
      	* c-common.c (parse_optimize_options): Add argument to function
      	call.
      	* c-pragma.c (handle_pragma_diagnostic): Likewise.
      
      From-SVN: r251400
      Martin Liska committed
    • tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine life to the active subtree. · faa5399b
      2017-08-29  Richard Biener  <rguenther@suse.de>
      	Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
      
      	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
      	life to the active subtree.
      
      	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c: New testcase.
      
      Co-Authored-By: Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
      
      From-SVN: r251398
      Richard Biener committed
    • tree-ssa-dom.c (edge_info::record_simple_equiv): Call derive_equivalences. · 14d62813
      	* tree-ssa-dom.c (edge_info::record_simple_equiv): Call
      	derive_equivalences.
      	(derive_equivalences_from_bit_ior, record_temporary_equivalences):
      	Code moved into....
      	(edge_info::derive_equivalences): New private member function
      
      	* gcc.dg/torture/pr57214.c: Fix type of loop counter.
      	* gcc.dg/tree-ssa/ssa-sink-16.c: Disable DOM.
      	* gcc.dg/tree-ssa/ssa-dom-thread-11.c: New test.
      	* gcc.dg/tree-ssa/ssa-dom-thread-12.c: New test.
      	* gcc.dg/tree-ssa/ssa-dom-thread-13.c: New test.
      	* gcc.dg/tree-ssa/ssa-dom-thread-14.c: New test.
      	* gcc.dg/tree-ssa/ssa-dom-thread-15.c: New test.
      	* gcc.dg/tree-ssa/ssa-dom-thread-16.c: New test.
      	* gcc.dg/tree-ssa/ssa-dom-thread-17.c: New test.
      
      From-SVN: r251397
      Jeff Law committed
    • tree-ssa-dom.c (class edge_info): Changed from a struct to a class. · a09f784a
      	* tree-ssa-dom.c (class edge_info): Changed from a struct
      	to a class.  Add ctor/dtor, methods and data members.
      	(edge_info::edge_info): Renamed from allocate_edge_info.
      	Initialize additional members.
      	(edge_info::~edge_info): New.
      	(free_dom_edge_info): Delete the edge info.
      	(record_edge_info): Use new class & associated member functions.
      	Tighten forms for testing for edge equivalences.
      	(record_temporary_equivalences): Iterate over the simple
      	equivalences rather than assuming there's only one per edge.
      	(cprop_into_successor_phis): Iterate over the simple
      	equivalences rather than assuming there's only one per edge.
      	(optimize_stmt): Use operand_equal_p rather than pointer
      	equality for mini-DSE code.
      
      From-SVN: r251396
      Jeff Law committed
    • Daily bump. · f73e77f7
      From-SVN: r251395
      GCC Administrator committed
  2. 28 Aug, 2017 11 commits
  3. 27 Aug, 2017 3 commits
  4. 26 Aug, 2017 1 commit
  5. 25 Aug, 2017 3 commits