gcc.git
7 years ago[1/77] Add an E_ prefix to mode names
Richard Sandiford [Wed, 30 Aug 2017 11:08:14 +0000 (11:08 +0000)]
[1/77] Add an E_ prefix to mode names

Later patches will add wrapper types for specific classes
of mode.  E.g. SImode will be a scalar_int_mode, SFmode will be a
scalar_float_mode, etc.  This patch prepares for that change by adding
an E_ prefix to the mode enum values.  It also adds #defines that map
the unprefixed names to the prefixed names; e.g:

  #define QImode E_QImode

Later patches will change this to use things like scalar_int_mode
where appropriate.

The patch continues to use enum values to initialise static data.
This isn't necessary for correctness, but it cuts down on the amount
of load-time initialisation and shouldn't have any downsides.

The patch also changes things like:

  cmp_mode == DImode ? DFmode : DImode

to:

  cmp_mode == DImode ? E_DFmode : E_DImode

This is because DImode and DFmode will eventually be different
classes, so the original ?: wouldn't be well-formed.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
(mode_nunits_inline): Likewise.
(mode_inner_inline): Likewise.
(mode_unit_size_inline): Likewise.
(mode_unit_precision_inline): Likewise.
(emit_insn_modes_h): Likewise.  Also emit a #define of the
unprefixed name.
(emit_mode_wider): Add an E_ prefix to mode names.
(emit_mode_complex): Likewise.
(emit_mode_inner): Likewise.
(emit_mode_adjustments): Likewise.
(emit_mode_int_n): Likewise.
* config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
(v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
(v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
(si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
(CRC32_BUILTIN, ENTRY): Likewise.
* config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
(aarch64_pop_regs): Likewise.
(aarch64_process_components): Likewise.
* config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
* config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
(v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
(v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
* config/arm/arm.c (arm_init_libfuncs): Likewise.
* config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
Likewise.
* config/i386/i386-builtin.def (pcmpestr): Likewise.
(pcmpistr): Likewise.
* config/microblaze/microblaze.c (double_memory_operand): Likewise.
* config/mmix/mmix.c (mmix_output_condition): Likewise.
* config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
Likewise.
* config/rl78/rl78.c (mduc_regs): Likewise.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
(htm_expand_builtin): Likewise.
* config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
* config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
* config/xtensa/xtensa.c (print_operand): Likewise.
* expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
(NUM_MODE_VECTOR_INT): Likewise.
* genoutput.c (null_operand): Likewise.
(output_operand_data): Likewise.
* genrecog.c (print_parameter_value): Likewise.
* lra.c (debug_operand_data): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251452

7 years agoSplit out parts of scompare_loc_descriptor and emit_store_flag
Richard Sandiford [Wed, 30 Aug 2017 11:08:00 +0000 (11:08 +0000)]
Split out parts of scompare_loc_descriptor and emit_store_flag

This patch splits some cases out of scompare_loc_descriptor and
emit_store_flag, which helps with the upcoming machmode series.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* dwarf2out.c (scompare_loc_descriptor_wide)
(scompare_loc_descriptor_narrow): New functions, split out from...
(scompare_loc_descriptor): ...here.
* expmed.c (emit_store_flag_int): New function, split out from...
(emit_store_flag): ...here.

From-SVN: r251451

7 years agodwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
Richard Biener [Wed, 30 Aug 2017 10:40:16 +0000 (10:40 +0000)]
dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.

2017-08-30  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
(dwarf2out_early_finish): Move setting of AT_pubnames from
early debug output to early finish.

From-SVN: r251450

7 years agomsp430.h: Pass -mcode/data-region to the linker and -mdata-region to the assembler.
Jozef Lawrynowicz [Wed, 30 Aug 2017 09:33:56 +0000 (09:33 +0000)]
msp430.h: Pass -mcode/data-region to the linker and -mdata-region to the assembler.

* gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
and -mdata-region to the assembler.

From-SVN: r251449

7 years agodwarf2out.c (add_dwarf_attr): Check we don't add duplicate attributes.
Richard Biener [Wed, 30 Aug 2017 09:29:05 +0000 (09:29 +0000)]
dwarf2out.c (add_dwarf_attr): Check we don't add duplicate attributes.

2017-08-30  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
attributes.
(gen_subprogram_die): Add DW_AT_object_pointer only early.
(dwarf2out_early_global_decl): Only generate a DIE for the
abstract origin if it doesn't already exist or is a declaration DIE.
(resolve_addr): Do not add the linkage name twice when
generating a stub DIE for the DW_TAG_GNU_call_site target.

* g++.dg/pr78112-2.C: Do not expect duplicate DW_AT_object_pointer.

From-SVN: r251448

7 years ago[rs6000] int->machine_mode in rs6000-c.c
Richard Sandiford [Wed, 30 Aug 2017 08:24:32 +0000 (08:24 +0000)]
[rs6000] int->machine_mode in rs6000-c.c

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Use machine_mode rather than int for arg1_mode.

From-SVN: r251447

7 years agoDaily bump.
GCC Administrator [Wed, 30 Aug 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251444

7 years agonet/internal/socktest: build sys_unix.go on AIX
Ian Lance Taylor [Tue, 29 Aug 2017 21:56:31 +0000 (21:56 +0000)]
net/internal/socktest: build sys_unix.go on AIX

    Reviewed-on: https://go-review.googlesource.com/59913

From-SVN: r251440

7 years agolibgo: netinet/icmp6.h require netinet/in.h on AIX
Ian Lance Taylor [Tue, 29 Aug 2017 21:51:49 +0000 (21:51 +0000)]
libgo: netinet/icmp6.h require netinet/in.h on AIX

    Reviewed-on: https://go-review.googlesource.com/59912

From-SVN: r251439

7 years agoPR c++/81236 - ICE with template-id in generic lambda
Jason Merrill [Tue, 29 Aug 2017 21:38:21 +0000 (17:38 -0400)]
PR c++/81236 - ICE with template-id in generic lambda

* semantics.c (finish_id_expression): Remove special dependent case.
Avoid some later pieces when dependent.
(finish_qualified_id_expr): Do normal BASELINK handling in a
template.  Always build a SCOPE_REF for a destructor BIT_NOT_EXPR.
(parsing_default_capturing_generic_lambda_in_template): Remove.
* parser.c (cp_parser_postfix_dot_deref_expression): Always give an
error for types that will never be complete.
* mangle.c (write_expression): Add sanity check.
* tree.c (build_qualified_name): Add sanity check.
(cp_walk_subtrees): Walk into the class context of a BASELINK.
* lambda.c (add_capture): Improve diagnostic for generic lambda
capture failure.
* call.c (build_new_method_call_1): Print the right constructor
name.

From-SVN: r251438

7 years agolibgo: fix Stat_t on AIX
Ian Lance Taylor [Tue, 29 Aug 2017 21:00:46 +0000 (21:00 +0000)]
libgo: fix Stat_t on AIX

    Reviewed-on: https://go-review.googlesource.com/59911

From-SVN: r251436

7 years agoruntime: make go-nosys.c compile with !HAVE_SYSCALL
Ian Lance Taylor [Tue, 29 Aug 2017 20:57:20 +0000 (20:57 +0000)]
runtime: make go-nosys.c compile with !HAVE_SYSCALL

    Reviewed-on: https://go-review.googlesource.com/59910

From-SVN: r251435

7 years agotweak ChangeLog
Jason Merrill [Tue, 29 Aug 2017 20:37:54 +0000 (16:37 -0400)]
tweak ChangeLog

From-SVN: r251434

7 years agoReimplement handling of lambdas in templates.
Jason Merrill [Tue, 29 Aug 2017 20:37:15 +0000 (16:37 -0400)]
Reimplement handling of lambdas in templates.

* cp-tree.h (LAMBDA_FUNCTION_P): Check DECL_DECLARES_FUNCTION_P.
* decl.c (start_preparsed_function): Call start_lambda_scope.
(finish_function): Call finish_lambda_scope.
* init.c (get_nsdmi): Call start/finish_lambda_scope.
* lambda.c (start_lambda_scope): Only ignore VAR_DECL in a function.
* parser.c (cp_parser_function_definition_after_declarator): Don't
call start/finish_lambda_scope.
* pt.c (retrieve_specialization): Ignore lambda functions in
templates.
(find_parameter_packs_r): Ignore capture proxies.  Look into
lambdas.
(check_for_bare_parameter_packs): Allow bare packs in lambdas.
(tsubst_default_argument): Call start/finish_lambda_scope.
(tsubst_function_decl): Handle lambda functions differently.
(tsubst_template_decl): Likewise.
(tsubst_expr) [DECL_EXPR]: Skip closure declarations and capture
proxies.
(tsubst_lambda_expr): Create a new closure rather than instantiate
the one from the template.
(tsubst_copy_and_build): Don't register a specialization of a pack.
(regenerate_decl_from_template): Call start/finish_lambda_scope.
(instantiate_decl): Remove special lambda function handling.
* semantics.c (process_outer_var_ref): Remove special generic lambda
handling.  Don't implicitly capture in a lambda in a template.  Look
for an existing proxy.
* class.c (current_nonlambda_class_type): Use decl_type_context.

From-SVN: r251433

7 years agore PR target/82015 (PowerPC should check if 2nd argument to __builtin_unpackv1ti...
Michael Meissner [Tue, 29 Aug 2017 20:25:57 +0000 (20:25 +0000)]
re PR target/82015 (PowerPC should check if 2nd argument to __builtin_unpackv1ti and similar functions is 0 or 1)

[gcc]
2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/82015
* config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
that the second argument of the built-in functions to unpack
128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
switch statement instead a lot of if statements.
* config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
Allow 64-bit values to be in Altivec registers as well as
traditional floating point registers.
(pack<mode>, FMOVE128_VSX iterator): Likewise.

[gcc/testsuite]
2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/82015
* gcc.target/powerpc/pr82015.c: New test.

From-SVN: r251432

7 years agoPR c++/78840 - ICE with const and nested generic lambda
Jason Merrill [Tue, 29 Aug 2017 20:21:23 +0000 (16:21 -0400)]
PR c++/78840 - ICE with const and nested generic lambda

* g++.dg/cpp1y/lambda-generic-const5.C: New.

From-SVN: r251431

7 years agoRemove unnecessary LAMBDA_EXPR fields.
Jason Merrill [Tue, 29 Aug 2017 20:17:02 +0000 (16:17 -0400)]
Remove unnecessary LAMBDA_EXPR fields.

* cp-tree.h (LAMBDA_EXPR_CLOSURE): Use TREE_TYPE.
(LAMBDA_EXPR_RETURN_TYPE): Remove.
(struct tree_lambda_expr): Remove closure and return_type fields.
* lambda.c (build_lambda_expr): Don't set LAMBDA_EXPR_RETURN_TYPE.
* pt.c (tsubst_copy_and_build): Likewise.
* parser.c (cp_parser_lambda_declarator_opt): Track return type.
(cp_parser_lambda_body): Adjust unspecified return type check.
* ptree.c (cxx_print_lambda_node): Don't print closure or
return type.

From-SVN: r251430

7 years agoPR c++/80935 - wrong C++17 error with lambda
Jason Merrill [Tue, 29 Aug 2017 19:51:30 +0000 (15:51 -0400)]
PR c++/80935 - wrong C++17 error with lambda

* decl.c (check_for_uninitialized_const_var): Check
is_instantiation_of_constexpr.
* constexpr.c (ensure_literal_type_for_constexpr_object): Check
is_instantiation_of_constexpr.
(potential_constant_expression_1): Check var_in_maybe_constexpr_fn.

From-SVN: r251429

7 years agoVarious small fixes.
Jason Merrill [Tue, 29 Aug 2017 19:51:23 +0000 (15:51 -0400)]
Various small fixes.

* lambda.c (build_lambda_object): Check for error_mark_node.
* pt.c (make_pack_expansion): Set PACK_EXPANSION_LOCAL_P on the type
pack as well.
(tsubst_decl) [FUNCTION_DECL]: Set DECL_CONTEXT on the parameters.
(tsubst) [TEMPLATE_PARM_INDEX]: Check for error_mark_node.

From-SVN: r251428

7 years agoPR c++/80767 - unnecessary instantiation of generic lambda
Jason Merrill [Tue, 29 Aug 2017 19:40:55 +0000 (15:40 -0400)]
PR c++/80767 - unnecessary instantiation of generic lambda

* call.c (convert_like_real): Call build_user_type_conversion_1 if
cand is null.
(add_conv_candidate): Build a ck_user conversion with no candidate.

From-SVN: r251427

7 years agoFix lambdas in template default argument of inherited ctor.
Jason Merrill [Tue, 29 Aug 2017 19:40:41 +0000 (15:40 -0400)]
Fix lambdas in template default argument of inherited ctor.

* 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

7 years agoAdjust C++17 class deduction use of DECL_ABSTRACT_ORIGIN.
Jason Merrill [Tue, 29 Aug 2017 19:40:32 +0000 (15:40 -0400)]
Adjust C++17 class deduction use of DECL_ABSTRACT_ORIGIN.

* pt.c (build_deduction_guide): Set DECL_ABSTRACT_ORIGIN on the
template, not the function.
(template_guide_p): Adjust.

From-SVN: r251425

7 years agoSupport copying local_specializations.
Jason Merrill [Tue, 29 Aug 2017 19:40:21 +0000 (15:40 -0400)]
Support copying local_specializations.

* 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

7 years agoAdd immediate potential_constant_expression variants.
Jason Merrill [Tue, 29 Aug 2017 19:40:14 +0000 (15:40 -0400)]
Add immediate potential_constant_expression variants.

* 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

7 years agoInstantiate default arguments/member initializers once.
Jason Merrill [Tue, 29 Aug 2017 19:40:08 +0000 (15:40 -0400)]
Instantiate default arguments/member initializers once.

* 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

7 years agoFix default argument conversion failure and SFINAE.
Jason Merrill [Tue, 29 Aug 2017 19:39:18 +0000 (15:39 -0400)]
Fix default argument conversion failure and SFINAE.

* 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

7 years agoruntime: fix lfstack for 64-bit AIX
Ian Lance Taylor [Tue, 29 Aug 2017 18:59:04 +0000 (18:59 +0000)]
runtime: fix lfstack for 64-bit AIX

    Reviewed-on: https://go-review.googlesource.com/57550

From-SVN: r251420

7 years ago*.c: Remove excess braces from target selectors.
Uros Bizjak [Tue, 29 Aug 2017 18:28:32 +0000 (20:28 +0200)]
*.c: Remove excess braces from target selectors.

* gcc.target/i386/*.c: Remove excess braces from target selectors.

From-SVN: r251419

7 years agoira-costs: avoid missing base registers in record_address_regs
Alexander Monakov [Tue, 29 Aug 2017 17:34:21 +0000 (20:34 +0300)]
ira-costs: avoid missing base registers in record_address_regs

* ira-costs.c (record_address_regs): Handle both operands of PLUS for
MAX_REGS_PER_ADDRESS == 1.

From-SVN: r251418

7 years ago20030926-1.c: Add dg-additional-options.
Uros Bizjak [Tue, 29 Aug 2017 17:21:21 +0000 (19:21 +0200)]
20030926-1.c: Add dg-additional-options.

* 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

7 years agoi386.opt (flag_fentry): Do not init to -1.
Uros Bizjak [Tue, 29 Aug 2017 16:56:57 +0000 (18:56 +0200)]
i386.opt (flag_fentry): Do not init to -1.

* 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

7 years agore PR tree-optimization/81503 (Wrong code at -O2)
Bill Schmidt [Tue, 29 Aug 2017 14:41:53 +0000 (14:41 +0000)]
re PR tree-optimization/81503 (Wrong code at -O2)

[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

7 years agoMake expansion of balanced binary trees of switches on tree level.
Martin Liska [Tue, 29 Aug 2017 14:12:44 +0000 (16:12 +0200)]
Make expansion of balanced binary trees of switches on tree level.

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

7 years agore PR target/80993 ([msp430] __attribute__((interrupt)) should imply __attribute__...
Jozef Lawrynowicz [Tue, 29 Aug 2017 13:20:54 +0000 (13:20 +0000)]
re PR target/80993 ([msp430] __attribute__((interrupt)) should imply __attribute__((used)))

PR target/80993
* gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
handlers as used.

From-SVN: r251410

7 years agodwarf2out.c (add_dwarf_attr): When checking is enabled verify we do not add a DW_AT_i...
Richard Biener [Tue, 29 Aug 2017 12:15:57 +0000 (12:15 +0000)]
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

7 years agoFix --help=target (Ada) (PR other/39851)
Martin Liska [Tue, 29 Aug 2017 08:35:46 +0000 (10:35 +0200)]
Fix --help=target (Ada) (PR other/39851)

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

7 years agoSet the call nothrow flag more often
Richard Sandiford [Tue, 29 Aug 2017 07:47:05 +0000 (07:47 +0000)]
Set the call nothrow flag more often

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

7 years agoFix --help=target (PR other/39851).
Martin Liska [Tue, 29 Aug 2017 07:46:10 +0000 (09:46 +0200)]
Fix --help=target (PR other/39851).

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

7 years agotree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine life to the active subtree.
Richard Biener [Tue, 29 Aug 2017 07:04:31 +0000 (07:04 +0000)]
tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine life to the active subtree.

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

7 years agotree-ssa-dom.c (edge_info::record_simple_equiv): Call derive_equivalences.
Jeff Law [Tue, 29 Aug 2017 05:03:36 +0000 (23:03 -0600)]
tree-ssa-dom.c (edge_info::record_simple_equiv): Call derive_equivalences.

* 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

7 years agotree-ssa-dom.c (class edge_info): Changed from a struct to a class.
Jeff Law [Tue, 29 Aug 2017 05:03:22 +0000 (23:03 -0600)]
tree-ssa-dom.c (class edge_info): Changed from a struct to a class.

* 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

7 years agoDaily bump.
GCC Administrator [Tue, 29 Aug 2017 00:16:39 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251395

7 years agore PR fortran/81770 (Bogus warning: Pointer in pointer assignment might outlive the...
Janus Weil [Mon, 28 Aug 2017 18:46:28 +0000 (20:46 +0200)]
re PR fortran/81770 (Bogus warning: Pointer in pointer assignment might outlive the pointer target)

2017-08-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/81770
* expr.c (gfc_check_pointer_assign): Improve the check whether pointer
may outlive pointer target.

2017-08-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/81770
* gfortran.dg/warn_target_lifetime_3.f90: Fix a typo.
* gfortran.dg/warn_target_lifetime_4.f90: New testcase.

From-SVN: r251390

7 years agodec_init_1.f90 (dummy): Use ichar in print statement.
Steve Ellcey [Mon, 28 Aug 2017 16:55:46 +0000 (16:55 +0000)]
dec_init_1.f90 (dummy): Use ichar in print statement.

2017-08-25  Steve Ellcey  <sellcey@cavium.com>

* gfortran.dg/dec_init_1.f90 (dummy): Use ichar in print statement.
* gfortran.dg/dec_init_2.f90 (dummy): Ditto.
* gfortran.dg/dec_init_3.f90 (dummy): Ditto.

From-SVN: r251389

7 years agocp-tree.h (lang_type): Replace sorted_fields vector with bindings map.
Nathan Sidwell [Mon, 28 Aug 2017 16:25:44 +0000 (16:25 +0000)]
cp-tree.h (lang_type): Replace sorted_fields vector with bindings map.

* cp-tree.h (lang_type): Replace sorted_fields vector with
bindings map.
(CLASSTYPE_SORTED_FIELDS): Delete.
(CLASSTYPE_BINDINGS): New.
* decl.c (finish_enum_value_list): Swap args of
insert_late_enum_def_bindings.
* name-lookup.c (lookup_field_1): Replace binary search of sorted
fields with map->get.
(sorted_fields_type_new, count_fields,
add_fields_to_record_type, add_enum_fields_to_record_type): Delete.
(add_class_member, add_class_members): New.
(set_class_bindings): Create map and insert.
(insert_late_enum_def_binding): Swap parms.  Use add_clasS_member.
* ptree.c (cxx_print_type): Delete sorted fields printing.

From-SVN: r251388

7 years agocp-tree.h (insert_late_enum_def_into_classtype_sorted_fields): Delete.
Nathan Sidwell [Mon, 28 Aug 2017 14:51:45 +0000 (14:51 +0000)]
cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields): Delete.

* cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
Delete.
* name-lookup.h (set_class_bindings,
insert_late_enum_def_bindings): Declare.
* decl.c (finish_enum_value_list): Adjust for
insert_late_enum_def_bindings name change.
* class.c (finish_struct_1): Call set_class_bindings.
(count_fields, add_fields_to_record_type,
add_enum_fields_to_record_type, sorted_fields_type_new,
insert_into_classtype_sorted_fields,
insert_late_enum_def_into_classtype_sorted_fields): Move to ...
* name-lookup.h (count_fields, add_fields_to_record_type,
add_enum_fields_to_record_type, sorted_fields_type_new,
set_class_bindings, insert_late_enum_def_bindings): ... here.

From-SVN: r251387

7 years agogcc.c (execute): Fold SIGPIPE handling into switch statement.
Nathan Sidwell [Mon, 28 Aug 2017 13:44:39 +0000 (13:44 +0000)]
gcc.c (execute): Fold SIGPIPE handling into switch statement.

* gcc.c (execute): Fold SIGPIPE handling into switch
statement.  Adjust internal error message.

From-SVN: r251385

7 years agore PR lto/81968 (early lto debug objects make Solaris ld SEGV)
Richard Biener [Mon, 28 Aug 2017 13:14:28 +0000 (13:14 +0000)]
re PR lto/81968 (early lto debug objects make Solaris ld SEGV)

2017-08-28  Richard Biener  <rguenther@suse.de>

PR lto/81968
* simple-object-elf.c (simple_object_elf_copy_lto_debug_section):
Adjust field with for sh_type write, set SHF_EXCLUDE only for
removed sections.

From-SVN: r251384

7 years agore PR debug/81993 (-gsplit-dwarf removes some symbols, causing some undefined references)
Richard Biener [Mon, 28 Aug 2017 13:13:23 +0000 (13:13 +0000)]
re PR debug/81993 (-gsplit-dwarf removes some symbols, causing some undefined references)

2017-08-28  Richard Biener  <rguenther@suse.de>

PR debug/81993
* dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
Do nothing for removed DIEs.

From-SVN: r251382

7 years agore PR tree-optimization/81977 (Issue with inline memcpy with optimizations enabled)
Richard Biener [Mon, 28 Aug 2017 11:42:23 +0000 (11:42 +0000)]
re PR tree-optimization/81977 (Issue with inline memcpy with optimizations enabled)

2017-08-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81977
* tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
memcpy.

* g++.dg/torture/pr81977.C: New testcase.

From-SVN: r251378

7 years agooptabs: ensure mem_thread_fence is a compiler barrier
Alexander Monakov [Mon, 28 Aug 2017 10:58:45 +0000 (13:58 +0300)]
optabs: ensure mem_thread_fence is a compiler barrier

PR target/80640
* doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
* optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
using targetm.gen_mem_thread_fence.
testsuite/
* gcc.dg/atomic/pr80640.c: New testcase.

From-SVN: r251377

7 years agore PR fortran/78387 (OpenMP segfault/stack size exceeded writing to internal file)
Jerry DeLisle [Mon, 28 Aug 2017 03:42:47 +0000 (03:42 +0000)]
re PR fortran/78387 (OpenMP segfault/stack size exceeded writing to internal file)

2017-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/78387
* io/list_read.c (nml_read_obj): Remove use of stash.
* io/transfer.c (st_read_done, st_write_done): Likewise.
* io/unit.c (stash_internal_unit): Delete function.
(get_unit): Remove use of stash.
(init_units): Likewise.
(close_units): Likewise.
* io/write.c (nml_write_obj): Likewise:

From-SVN: r251374

7 years agoDaily bump.
GCC Administrator [Mon, 28 Aug 2017 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251373

7 years agore PR target/81995 (gcc/reg-stack.c:2073:1: error: unrecognizable insn:)
Uros Bizjak [Sun, 27 Aug 2017 18:01:46 +0000 (20:01 +0200)]
re PR target/81995 (gcc/reg-stack.c:2073:1: error: unrecognizable insn:)

PR target/81995
* config/i386/i386.md (*<btsc><mode>): Change operand 2
predicate to register_operand.  Reorder operands.
(*btr<mode>): Ditto.
(*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
(*btr<mode>_mask): Ditto.

testsuite/ChangeLog:

PR target/81995
* gcc.target/i386/pr46091-4.c: Add -mregparm=2 for 32bit targets.
* gcc.target/i386/pr46091-4a.c: Ditto.

From-SVN: r251369

7 years agore PR fortran/81974 (ICE verify_gimple failed type mismatch in binary expression)
Thomas Koenig [Sun, 27 Aug 2017 08:01:25 +0000 (08:01 +0000)]
re PR fortran/81974 (ICE verify_gimple failed  type mismatch in binary expression)

2017-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/81974
* frontend-passes (inline_matumul_assign):  Explicity
set typespec for call to CONJG.

2017-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/81974
* gfortran.dg/inline_matmul_19.f90:  New test.

From-SVN: r251368

7 years agoDaily bump.
GCC Administrator [Sun, 27 Aug 2017 00:16:41 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251367

7 years agoDaily bump.
GCC Administrator [Sat, 26 Aug 2017 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251362

7 years agoPart 3/3 for contributing PPC64LE support for X86 SSE instrisics.
Steven Munroe [Fri, 25 Aug 2017 15:23:27 +0000 (15:23 +0000)]
Part 3/3 for contributing PPC64LE support for X86 SSE instrisics.
This patch includes testsuite/gcc.target tests for the intrinsics
in xmmintrin.h.  For these tests I added -Wno-psabi to dg-options
to suppress warnings associated with the vector ABI change in GCC5.

From-SVN: r251357

7 years agoPart 2/3 for contributing PPC64LE support for X86 SSE instrisics.
Steven Munroe [Fri, 25 Aug 2017 15:11:50 +0000 (15:11 +0000)]
Part 2/3 for contributing PPC64LE support for X86 SSE instrisics.

Part 2/3 for contributing PPC64LE support for X86 SSE
instrisics. This patch includes the new (for PPC) xmmintrin.h,
changes x86intrin.h to include xmmintrin.h and associated
config.gcc changes.

From-SVN: r251356

7 years agore PR target/81504 (gcc-7 regression: vec_st in loop misoptimized)
William Schmidt [Fri, 25 Aug 2017 15:08:30 +0000 (15:08 +0000)]
re PR target/81504 (gcc-7 regression: vec_st  in loop misoptimized)

2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/81504
* config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
parameter and_insn and return it.
(recombine_lvx_pattern): Insert a copy to ensure availability of
the base register of the copied masking operation at the point of
the instruction replacement.
(recombine_stvx_pattern): Likewise.

From-SVN: r251355

7 years agors6000.opt (-mpower9-dform-scalar): Delete undocumented switches.
Michael Meissner [Fri, 25 Aug 2017 13:07:10 +0000 (13:07 +0000)]
rs6000.opt (-mpower9-dform-scalar): Delete undocumented switches.

[gcc]
2017-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
undocumented switches.
(-mpower9-dform-vector): Likewise.
(-mpower9-dform): Likewise.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
comments to delete references to -mpower9-dform* switches.
* config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
Delete reference to -mpower9-dform* switches, test for
-mpower9-vector instead.
* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
(OTHER_P9_VECTOR_MASKS): Likewise.
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
tests against -mpower9-dform* to -mpower9-vector.  Delete code
that checked for -mpower9-dform* consistancy with other options.
Add test for -mpower9-misc to enable other power9 switches.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_option_override_internal): Likewise.
(rs6000_emit_prologue): Likewise.
(rs6000_emit_epilogue): Likewise.
(rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
(rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
(emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
-mpower9-vector.
(emit_fusion_p9_store): Likewise.
* config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
resetting these macros if the assembler does not support ISA 3.0
instructions.
(TARGET_P9_DFORM_VECTOR): Likewise.
* config/rs6000/rs6000.md (peepholes to optimize altivec memory):
Change to use -mpower9-vector instead of -mpower9-dform-scalar.

[gcc/testsuite]
2017-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/dform-1.c: Delete -mpower9-dform*
options.
* gcc.target/powerpc/dform-2.c: Likewise.
* gcc.target/powerpc/dform-3.c: Likewise.
* gcc.target/powerpc/pr71656-1.c: Likewise.
* gcc.target/powerpc/pr71656-2.c: Likewise.
* gcc.target/powerpc/pr80103-1.c: Likewise.
* gcc.target/powerpc/pr80098-1.c: Likewise.

From-SVN: r251352

7 years agore PR target/81921 (Fails to always-inline intrinsics with -flto)
Nathan Sidwell [Fri, 25 Aug 2017 12:32:54 +0000 (12:32 +0000)]
re PR target/81921 (Fails to always-inline intrinsics with -flto)

Retabify 2017-08-24  Richard Biener  <rguenther@suse.de>
PR target/81921

From-SVN: r251351

7 years agoclass.c (method_name_cmp, [...]): Method names can never be NULL.
Nathan Sidwell [Fri, 25 Aug 2017 12:27:48 +0000 (12:27 +0000)]
class.c (method_name_cmp, [...]): Method names can never be NULL.

* class.c (method_name_cmp, resort_method_name_cmp): Method names
can never be NULL.

From-SVN: r251350

7 years agoPR81747, ICE in operator[]
Alan Modra [Fri, 25 Aug 2017 12:21:00 +0000 (21:51 +0930)]
PR81747, ICE in operator[]

PR rtl-optimization/81747
* cse.c (cse_extended_basic_block): Don't attempt to record
equivalences for degenerate conditional branches that branch
to their fall-through.

From-SVN: r251349

7 years agoConversion operators have a special name
Nathan Sidwell [Fri, 25 Aug 2017 11:37:10 +0000 (11:37 +0000)]
Conversion operators have a special name

Conversion operators have a special name
* cp-tree.h (CPTI_CONV_OP_MARKER, CPTI_CONV_OP_IDENTIFIER): New.
(conv_op_marker, conv_op_identifier): New.
(CLASSTYPE_FIRST_CONVERSION_SLOT): Delete.
* decl.c (initialize_predefined_identifiers): Add
conv_op_identifier.
(cxx_init_decl_processing): Create conv_op_marker.
* decl2.c (check_classfn): Lookup conv-ops by name.
* class.c (add_method): Use conv_op_identifier & conv_op_marker.
(resort_type_method_vec): Don't skip conv-ops.
(finish_struct_methods, warn_hidden): Likewise.
* name-lookup.h (lookup_all_conversions): Delete.
* name-lookup.c (lookup_conversion_operator): Replace with ...
(extract_conversion_operator): ... this.
(lookup_fnfields_slot_nolazy): Find conv-ops by name.
(lookup_all_conversions): Delete.
* pt.c (check_explicit_specialization): Find conv-ops by name.
* search.c (lookup_conversions_r): Likewise.

From-SVN: r251348

7 years agoPR middle-end/81908 - FAIL: gfortran.dg/alloc_comp_auto_array_2.f90 -O3 -g -m32
Martin Sebor [Fri, 25 Aug 2017 00:25:57 +0000 (00:25 +0000)]
PR middle-end/81908 - FAIL: gfortran.dg/alloc_comp_auto_array_2.f90 -O3 -g -m32

gcc/ChangeLog:

PR middle-end/81908
* gimple-fold.c (size_must_be_zero_p): New function.
(gimple_fold_builtin_memory_op): Call it.

gcc/testsuite/ChangeLog:

PR middle-end/81908
* gcc.dg/tree-ssa/builtins-folding-gimple-2.c: New test.
* gcc.dg/tree-ssa/builtins-folding-gimple-3.c: New test.
* gcc.dg/tree-ssa/pr81908.c: New test.

From-SVN: r251347

7 years agoDaily bump.
GCC Administrator [Fri, 25 Aug 2017 00:16:43 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251346

7 years agostl_list.h [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
François Dumont [Thu, 24 Aug 2017 20:31:53 +0000 (20:31 +0000)]
stl_list.h [!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.

2017-08-24  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_list.h
[!_GLIBCXX_INLINE_VERSION](_List_base<>::_S_distance): Remove.
(_List_impl(_Node_alloc_type&&, _List_impl&&)): New.
(_List_base(_Node_alloc_type&&, _List_base&&)): New, use latter.
[!_GLIBCXX_INLINE_VERSION](_List_base(_Node_alloc_type&&,_List_base&&)):
Remove.
(_List_base(_Node_alloc_type&&)): New.
[!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_distance): Remove.
[!_GLIBCXX_INLINE_VERSION](_List_base<>::_M_node_count): Remove.
(list<>::_M_node_count): New.
(list<>::size()): Adapt to call latter.
(list<>::_S_distance(const_iterator, const_iterator)): New.
(list<>::splice(iterator, list&, const_iterator, const_iterator)):
Adapt to call latter.
(list(list&&, const allocator_type&, true_type)): New.
(list(list&&, const allocator_type&, false_type)): New.
(list(list&&, const allocator_type&)): Adapt to call latters.

From-SVN: r251342

7 years agors6000.opt (-mpower9-dform-scalar): Delete undocumented switches.
Michael Meissner [Thu, 24 Aug 2017 19:28:07 +0000 (19:28 +0000)]
rs6000.opt (-mpower9-dform-scalar): Delete undocumented switches.

[gcc]
2017-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
undocumented switches.
(-mpower9-dform-vector): Likewise.
(-mpower9-dform): Likewise.
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
comments to delete references to -mpower9-dform* switches.
* config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
Delete reference to -mpower9-dform* switches, test for
-mpower9-vector instead.
* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
(OTHER_P9_VECTOR_MASKS): Likewise.
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
tests against -mpower9-dform* to -mpower9-vector.  Delete code
that checked for -mpower9-dform* consistancy with other options.
Add test for -mpower9-misc to enable other power9 switches.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_option_override_internal): Likewise.
(rs6000_emit_prologue): Likewise.
(rs6000_emit_epilogue): Likewise.
(rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
(rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
(emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
-mpower9-vector.
(emit_fusion_p9_store): Likewise.
* config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
resetting these macros if the assembler does not support ISA 3.0
instructions.
(TARGET_P9_DFORM_VECTOR): Likewise.
* config/rs6000/rs6000.md (peepholes to optimize altivec memory):
Change to use -mpower9-vector instead of -mpower9-dform-scalar.

[gcc/testsuite]
2017-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/dform-1.c: Delete -mpower9-dform*
options.
* gcc.target/powerpc/dform-2.c: Likewise.
* gcc.target/powerpc/dform-3.c: Likewise.
* gcc.target/powerpc/pr71656-1.c: Likewise.
* gcc.target/powerpc/pr71656-2.c: Likewise.
* gcc.target/powerpc/pr80103-1.c: Likewise.
* gcc.target/powerpc/pr80098-1.c: Likewise.

From-SVN: r251341

7 years agoConversion operators kept on single overload set
Nathan Sidwell [Thu, 24 Aug 2017 18:39:41 +0000 (18:39 +0000)]
Conversion operators kept on single overload set

Conversion operators kept on single overload set
* class.c (add_method): Keep all conv-ops on one slot.
* name-lookup.c (lookup_conversion_operator): Pull the desired
conv op out of overload set.
* search.c (lookup_conversions_r): Lose template/non-template
distinction.
(lookup_conversions): Likewise.

From-SVN: r251340

7 years agoAdds the powerpc equivalent mm_malloc.h header which is needed by xmmintrin.h...
Steven Munroe [Thu, 24 Aug 2017 17:46:01 +0000 (17:46 +0000)]
Adds the powerpc equivalent mm_malloc.h header which is needed by xmmintrin.h...

Adds the powerpc equivalent mm_malloc.h header which is needed by
xmmintrin.h and cleans up some noisy warnings from the previous MMX
commit.

From-SVN: r251339

7 years agotarget-supports.exp: Group together target-dependant checks.
Uros Bizjak [Thu, 24 Aug 2017 17:19:50 +0000 (19:19 +0200)]
target-supports.exp: Group together target-dependant checks.

* lib/target-supports.exp: Group together target-dependant checks.

From-SVN: r251338

7 years agore PR tree-optimization/81913 (wrong code at -O1)
Bin Cheng [Thu, 24 Aug 2017 15:38:39 +0000 (15:38 +0000)]
re PR tree-optimization/81913 (wrong code at -O1)

PR tree-optimization/81913
* tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
analysis when either IVs in condition can wrap.

gcc/testsuite
* gcc.c-torture/execute/pr81913.c: New test.
* gcc.dg/tree-ssa/loop-niter-1.c: New test.
* gcc.dg/tree-ssa/loop-niter-2.c: New test.

From-SVN: r251337

7 years agoC: fix logic within c_expr::get_location
David Malcolm [Thu, 24 Aug 2017 14:28:16 +0000 (14:28 +0000)]
C: fix logic within c_expr::get_location

In r251239 I added a c_expr::get_location method for use by
c_parser_expr_list for building the vec<location_t> for
an expression list, rather than using the location of the first token.

When determining whether to use the location within the tree node,
or fall back to the range in the c_expr, I used EXPR_CAN_HAVE_LOCATION,
rather than EXPR_HAS_LOCATION.  This meant that any tree nodes of kinds
that *can* have a location but which erroneously had
   EXPR_LOCATION (value) == UNKNOWN_LOCATION
had that value added to the vec<location_t>, leading to missing
location information when reporting on the issue
(seen with gcc.dg/Wtraditional-conversion-2.c for m68k).

This patch addresses this in two ways:

(a) it fixes the specific issue in this failing test case, by
    setting up the location properly on the EXCESS_PRECISION_EXPR.

(b) updating c_expr::get_location by only using the EXPR_LOCATION
    if it's sane.  Arguably this is papering over bugs, but they are
    pre-existing ones exposed by r251239, and I'd rather have this
    fix in place than play whack-a-mole on any other such "missing
    location" bugs that are lurking in the codebase.

gcc/c/ChangeLog:
* c-tree.h (c_expr::get_location) Use EXPR_HAS_LOCATION rather
than CAN_HAVE_LOCATION_P when determining whether to use the
location_t value within "value".

gcc/c-family/ChangeLog:
* c-lex.c (interpret_float): Use token location
when building an EXCESS_PRECISION_EXPR.

From-SVN: r251335

7 years agodwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
Uros Bizjak [Thu, 24 Aug 2017 14:18:57 +0000 (16:18 +0200)]
dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.

* dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
* dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.

From-SVN: r251334

7 years agore PR target/81921 (Fails to always-inline intrinsics with -flto)
Richard Biener [Thu, 24 Aug 2017 13:44:35 +0000 (13:44 +0000)]
re PR target/81921 (Fails to always-inline intrinsics with -flto)

2017-08-23  Richard Biener  <rguenther@suse.de>

        PR target/81921
        * targhooks.c (default_target_can_inline_p): Properly
        use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
        is present and always compare.
        * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
imply -mfpmath=sse from TARGET_SSE_P.
        (ix86_can_inline_p): Properly use target_option_default_node when
        no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.

* gcc.target/i386/pr81921.c: New testcase.

From-SVN: r251333

7 years agore PR debug/81936 (ICE in dwarf2out_die_ref_for_decl, at dwarf2out.c:5543)
Richard Biener [Thu, 24 Aug 2017 13:41:51 +0000 (13:41 +0000)]
re PR debug/81936 (ICE in dwarf2out_die_ref_for_decl, at dwarf2out.c:5543)

2017-08-24  Richard Biener  <rguenther@suse.de>

PR debug/81936
* dwarf2out.c (output_die): Handle flag_generate_offload like
flag_generate_lto.
(output_comp_unit): Likewise.
(gen_array_type_die): Likewise.
(dwarf2out_early_finish): Likewise.
(note_variable_value_in_expr): Likewise.
(dwarf2out_finish): Likewise.  Adjust assert.
* cgraphunit.c (symbol_table::compile): Move setting of
flag_generate_offload earlier ...
(symbol_table::finalize_compilation_unit): ... here, before
early debug finalization.

From-SVN: r251332

7 years agoi386.c: Include symbol-summary.h, ipa-prop.h and ipa-fnsummary.h.
Richard Biener [Thu, 24 Aug 2017 12:22:30 +0000 (12:22 +0000)]
i386.c: Include symbol-summary.h, ipa-prop.h and ipa-fnsummary.h.

2017-08-24  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
and ipa-fnsummary.h.
(ix86_can_inline_p): When ix86_fpmath flags do not match
check whether the callee uses FP math at all.

From-SVN: r251330

7 years agore PR middle-end/81931 (r251260 breaks many tests on powerpc64)
Aldy Hernandez [Thu, 24 Aug 2017 11:40:55 +0000 (11:40 +0000)]
re PR middle-end/81931 (r251260 breaks many tests on powerpc64)

PR middle-end/81931
* tree-ssanames.c (get_nonzero_bits): Use element_precision
instead of TYPE_PRECISION.

From-SVN: r251328

7 years agoMake more use of subreg_offset_from_lsb
Richard Sandiford [Thu, 24 Aug 2017 07:47:13 +0000 (07:47 +0000)]
Make more use of subreg_offset_from_lsb

This patch makes use of the subreg_offset_from_lsb function
added by an earlier patch in the SVE series.

2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* combine.c (make_extraction): Use subreg_offset_from_lsb.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r251326

7 years agoDaily bump.
GCC Administrator [Thu, 24 Aug 2017 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251325

7 years agoPR target/80969 - Fix ICE with -mabi=ms -mavx512f, reduce wasted space when realignin...
Daniel Santos [Wed, 23 Aug 2017 21:46:14 +0000 (21:46 +0000)]
PR target/80969 - Fix ICE with -mabi=ms -mavx512f, reduce wasted space when realigning stack.

2017-08-23  Daniel Santos  <daniel.santos@pobox.com>

* config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
Remove field.
(ix86_frame::stack_realign_allocate): New field.
(struct machine_frame_state): Modify comments.
(machine_frame_state::sp_realigned_fp_end): New field.
* config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
layout calculation.
(sp_valid_at): Add assertion to assure no attempt to access invalid
offset of a realigned stack.
(fp_valid_at): Likewise.
(choose_baseaddr): Modify comments.
(ix86_emit_outlined_ms2sysv_save): Adjust to changes in
ix86_expand_prologue.
(ix86_expand_prologue): Modify stack realignment and allocation.
(ix86_expand_epilogue): Modify comments.
* doc/sourcebuild.texi: Add documentation for target selectors avx2,
avx2_runtime, avx512f, and avx512f_runtime.

2017-08-23  Daniel Santos  <daniel.santos@pobox.com>

* gcc.target/i386/pr80969-1.c: New testcase.
* gcc.target/i386/pr80969-2a.c: Likewise.
* gcc.target/i386/pr80969-2.c: Likewise.
* gcc.target/i386/pr80969-3.c: Likewise.
* gcc.target/i386/pr80969-4a.c: Likewise.
* gcc.target/i386/pr80969-4b.c: Likewise.
* gcc.target/i386/pr80969-4.c: Likewise.
* gcc.target/i386/pr80969-4.h: New header common to pr80969-4*.c
* lib/target-supports.exp (check_avx512_os_support_available,
check_avx512f_hw_available, check_effective_target_avx512f_runtime):
New proceedures for target avx512f and avx512f_runtime selectors.
(check_avx2_hw_available): Fix breakage due NULL being undefined.

From-SVN: r251321

7 years agocp-tree.h (lookup_field_1, [...]): Move declatations to ...
Nathan Sidwell [Wed, 23 Aug 2017 21:09:03 +0000 (21:09 +0000)]
cp-tree.h (lookup_field_1, [...]): Move declatations to ...

* cp-tree.h (lookup_field_1, lookup_fnfields_slot,
lookup_fnfields_slot_nolazy, lookup_all_conversions): Move
declatations to ...
* name-lookup.h (lookup_field_1, lookup_fnfields_slot,
lookup_fnfields_slot_nolazy, lookup_all_conversions): ... here.
* search.c (lookup_conversion_operator,
lookup_fnfields_slot_nolazy, lookup_field_1, lookup_fnfields_slot,
lookup_all_conversions): Move to ...
* name-lookup.c (lookup_conversion_operator,
lookup_fnfields_slot_nolazy, lookup_field_1, lookup_fnfields_slot,
lookup_all_conversions): ... here.

From-SVN: r251319

7 years agosemantics.c (finish_member_declaration): Move USING_DECL check earlier.
Nathan Sidwell [Wed, 23 Aug 2017 19:43:38 +0000 (19:43 +0000)]
semantics.c (finish_member_declaration): Move USING_DECL check earlier.

* semantics.c (finish_member_declaration): Move USING_DECL check
earlier.  Always set C++ linkage.  Commonize TYPE_FIELD and
template decl list insertion.

From-SVN: r251317

7 years agocp-tree.h (maybe_version_functions): Declare.
Nathan Sidwell [Wed, 23 Aug 2017 19:37:53 +0000 (19:37 +0000)]
cp-tree.h (maybe_version_functions): Declare.

* cp-tree.h (maybe_version_functions): Declare.
* decl.c (decls_match): Break function versioning check to
separate function.  Call it.
(maybe_version_functions): Broken out of decls_match.
* class.c (add_method): Use maybe_version_functions.

From-SVN: r251316

7 years agocp-tree.h (print_search_statistics, [...]): Don't declare.
Nathan Sidwell [Wed, 23 Aug 2017 19:33:08 +0000 (19:33 +0000)]
cp-tree.h (print_search_statistics, [...]): Don't declare.

* cp-tree.h (print_search_statistics,
reinit_search_statistics): Don't declare.
* search.c (n_fields_searched, n_calls_lookup_field,
n_calls_lookup_field_1, n_calls_lookup_fnfields,
n_calls_lookup_fnfields_1, n_calls_get_base_type,
n_outer_fields_searched, n_contexts_saved): Delete.
(lookup_field_1, lookup_member,
lookup_fnfields_slot_nolazy): Remove stat gathering.
(print_search_statistics, reinit_search_statistics): Delete.
* tree.c (cxx_print_statistics): Don't print search stats.

From-SVN: r251315

7 years agotestsuite: add param-type-mismatch.c/C testcases as a baseline
David Malcolm [Wed, 23 Aug 2017 15:53:41 +0000 (15:53 +0000)]
testsuite: add param-type-mismatch.c/C testcases as a baseline

gcc/testsuite/ChangeLog:
* g++.dg/diagnostic/param-type-mismatch.C: New test acse.
* gcc.dg/param-type-mismatch.c: New test case.

From-SVN: r251312

7 years agoi386.opt: Remove unneeded Init(0) initializations.
Uros Bizjak [Wed, 23 Aug 2017 14:45:30 +0000 (16:45 +0200)]
i386.opt: Remove unneeded Init(0) initializations.

* config/i386/i386.opt: Remove unneeded Init(0) initializations.
(mstackrealign): Do not init to -1.
* config/i386/i386.c (ix86_option_override_internal):
Check opts_set, not opts when setting default value of
opts->x_ix86_force_align_arg_pointer.

From-SVN: r251311

7 years agofold-vec-perm-char.c: New.
Will Schmidt [Wed, 23 Aug 2017 14:06:55 +0000 (14:06 +0000)]
fold-vec-perm-char.c: New.

[gcc/testsuite]

2017-08-23  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-perm-char.c: New.
* gcc.target/powerpc/fold-vec-perm-double.c: New.
* gcc.target/powerpc/fold-vec-perm-float.c: New.
* gcc.target/powerpc/fold-vec-perm-int.c: New.
* gcc.target/powerpc/fold-vec-perm-longlong.c: New.
* gcc.target/powerpc/fold-vec-perm-pixel.c: New.
* gcc.target/powerpc/fold-vec-perm-short.c: New.

From-SVN: r251310

7 years agoChangeLog: Fix last entry.
Richard Biener [Wed, 23 Aug 2017 13:50:02 +0000 (13:50 +0000)]
ChangeLog: Fix last entry.

2017-08-23  Richard Biener  <rguenther@suse.de>

        * testsuite/ChangeLog: Fix last entry.

From-SVN: r251309

7 years agofunction.c (fndecl_name): Use verbosity 1 (no arguments) for lang_hooks.decl_printabl...
Richard Biener [Wed, 23 Aug 2017 13:44:20 +0000 (13:44 +0000)]
function.c (fndecl_name): Use verbosity 1 (no arguments) for lang_hooks.decl_printable_name.

2017-08-23  Richard Biener  <rguenther@suse.de>

* function.c (fndecl_name): Use verbosity 1 (no arguments) for
lang_hooks.decl_printable_name.
* print-rtl-function.c (print_rtx_function): Likewise.
* tree-pretty-print.c (dump_function_header): Likewise.

* g++.dg/cpp1y/constexpr-instantiate.C: Adjust.
* g++.dg/tree-ssa/pr45605.C: Likewise.
* gnat.dg/noinline2.ad: Likewise.b
* gnat.dg/renaming6.ad: Likewise.b
* gnat.dg/renaming6.ad: Likewise.s
* gnat.dg/specs/noinline3.ad: Likewise.s

From-SVN: r251308

7 years agore PR lto/81940 (internal compiler error: in dwarf2out_abstract_function, at dwarf2ou...
Richard Biener [Wed, 23 Aug 2017 12:11:03 +0000 (12:11 +0000)]
re PR lto/81940 (internal compiler error: in dwarf2out_abstract_function, at dwarf2out.c:21613)

2017-08-23  Richard Biener  <rguenther@suse.de>

PR lto/81940
* dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
-g0 at compile-time.

* g++.dg/lto/pr81940_0.C: New testcase.

From-SVN: r251306

7 years agore PR middle-end/19706 (Recognize common Fortran usages of copysign.)
Tamar Christina [Wed, 23 Aug 2017 11:34:59 +0000 (11:34 +0000)]
re PR middle-end/19706 (Recognize common Fortran usages of copysign.)

2017-08-23  Tamar Christina  <tamar.christina@arm.com>

PR middle-end/19706
* doc/sourcebuild.texi (Other hardware attributes):
Document xorsign.

gcc/testsuite
2017-08-23  Tamar Christina  <tamar.christina@arm.com>

PR middle-end/19706
* gcc.dg/tree-ssa/pr19706.c: New.
* lib/target-supports.exp (check_effective_target_xorsign): New.

From-SVN: r251304

7 years agore PR middle-end/19706 (Recognize common Fortran usages of copysign.)
Tamar Christina [Wed, 23 Aug 2017 11:32:47 +0000 (11:32 +0000)]
re PR middle-end/19706 (Recognize common Fortran usages of copysign.)

2017-08-23  Tamar Christina  <tamar.christina@arm.com>

PR middle-end/19706
* tree-ssa-math-opts.c (convert_expand_mult_copysign):
Fix single-use check.

From-SVN: r251303

7 years agoFix broken MinGW build of gcc.c
Thomas Preud'homme [Wed, 23 Aug 2017 10:43:36 +0000 (10:43 +0000)]
Fix broken MinGW build of gcc.c

2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.

From-SVN: r251302

7 years agoDaily bump.
GCC Administrator [Wed, 23 Aug 2017 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251300

7 years agoMove entry to correct ChangeLog.
Daniel Santos [Tue, 22 Aug 2017 22:08:19 +0000 (22:08 +0000)]
Move entry to correct ChangeLog.

From-SVN: r251294

7 years agoAdd missing ChangeLog entry for previous commit
Daniel Santos [Tue, 22 Aug 2017 18:54:49 +0000 (18:54 +0000)]
Add missing ChangeLog entry for previous commit

From-SVN: r251290

7 years agodocs: Explain how to use multiple file-name patterns in RUNTESTFLAGS
Daniel Santos [Tue, 22 Aug 2017 18:52:10 +0000 (18:52 +0000)]
docs: Explain how to use multiple file-name patterns in RUNTESTFLAGS

* doc/install.texi: Modify to add more details on running
selected tests.

From-SVN: r251289

7 years agoPR target/71958: Error on -mx32 with -mabi=ms
Daniel Santos [Tue, 22 Aug 2017 17:59:24 +0000 (17:59 +0000)]
PR target/71958: Error on -mx32 with -mabi=ms

gcc/ChangeLog:
2017-08-11  Daniel Santos  <daniel.santos@pobox.com>

* config/i386/i386.c (ix86_option_override_internal): Error when
-mx32 is combined with -mabi=ms.
(ix86_function_type_abi): Limit errors for mixing -mx32 with
attribute ms_abi.

gcc/testsuite/ChangeLog:
2017-08-11  Daniel Santos  <daniel.santos@pobox.com>

* gcc.target/i386/pr71958.c: New test to verify error on -mx32
and -mabi=ms
  * gcc.target/i386/pr64409.c: Modify to only run on x32.
* gcc.target/i386/pr46470.c: Modify to skip x32 target.
  * gcc.target/i386/pr66275.c: Likewise.
  * gcc.target/i386/pr68018.c: Likewise.

From-SVN: r251287