gcc.git
7 years agoSet jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on...
Wilco Dijkstra [Thu, 4 May 2017 17:49:19 +0000 (17:49 +0000)]
Set jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on...

Set jump alignment to 4 for Cortex cores as it reduces codesize by 0.4% on
average with no obvious performance difference.  See original discussion of
the overheads of various alignments:
https://gcc.gnu.org/ml/gcc-patches/2016-06/msg02075.html.

    gcc/
* config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.

From-SVN: r247609

7 years agoWith -mcpu=generic the loop alignment is currently 4.
Wilco Dijkstra [Thu, 4 May 2017 17:43:43 +0000 (17:43 +0000)]
With -mcpu=generic the loop alignment is currently 4.

With -mcpu=generic the loop alignment is currently 4.  All but one of the
supported cores use 8 or higher.  Since using 8 provides performance gains
on several cores, it is best to use that by default.  As discussed in [1],
the jump alignment has no effect on performance, yet has a relatively high
codesize cost [2], so setting it to 4 is best.  This gives a 0.2% overall
codesize improvement as well as performance gains in several benchmarks.

    gcc/
* config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
Set loop alignment to 8.

[1] https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00574.html
[2] https://gcc.gnu.org/ml/gcc-patches/2016-06/msg02075.html

From-SVN: r247608

7 years agoPR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
Martin Sebor [Thu, 4 May 2017 17:40:05 +0000 (17:40 +0000)]
PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/c-family/ChangeLog:

PR translation/80280
* c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
(handle_weakref_attribute): Same.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/ChangeLog:

PR translation/80280
* config/i386/i386.c (ix86_function_versions): Quote a %D directive.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/cp/ChangeLog:

PR translation/80280
* call.c (print_z_candidate): Add missing quoting to %D and other
like directives.
(build_op_call_1): Same.
* constraint.cc (diagnose_check_constraint): Same.
* mangle.c (mangle_decl): Same.
* name-lookup.c (cp_binding_level_debug): Same.
(set_decl_namespace): Same.
* parser.c (cp_parser_tx_qualifier_opt): Same.
* pt.c (print_candidates_1): Same.
(check_template_variable): Same.
(tsubst_default_argument): Same.
(most_specialized_partial_spec): Same.
* semantics.c (omp_reduction_lookup): Same.
* tree.c (check_abi_tag_redeclaration): Same.
* typeck.c (comptypes): Same.
* typeck2.c (abstract_virtuals_error_sfinae): Same.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/ChangeLog:

PR translation/80280
* builtins.c (expand_builtin_object_size): Add missing quoting to
%D and like directives.
* hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
(hsa_type_for_tree_type): Same.
(verify_function_arguments): Same.
* symtab.c (symbol_table::change_decl_assembler_name): Same.
* varasm.c (get_section): Same.
(mark_weak): Same.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/objc/ChangeLog:

PR translation/80280
* objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
quoting to directives.
* objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
* objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.

PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c

gcc/testsuite/ChangeLog:

PR translation/80280
* g++.dg/abi/Wabi-2-3.C: Adjust.
* g++.dg/abi/Wabi-3-2.C: Ditto.
* g++.dg/lookup/using17.C: Ditto.
* gcc.dg/format/gcc_diag-1.c (foo): Ditto.

From-SVN: r247607

7 years agoAll cores which add a cpu_addrcost_table use a non-zero value for HI and TI...
Wilco Dijkstra [Thu, 4 May 2017 17:05:28 +0000 (17:05 +0000)]
All cores which add a cpu_addrcost_table use a non-zero value for HI and TI...

All cores which add a cpu_addrcost_table use a non-zero value for
HI and TI mode shifts (a non-zero value for general indexing also
applies to all shifts).  Given this, it makes no sense to use a
different setting in generic_addrcost_table.  So change it so that
all supported cores, including -mcpu=generic, now generate the same:

int f(short *p, short *q, long x) { return p[x] + q[x]; }

        lsl     x2, x2, 1
        ldrsh   w3, [x0, x2]
        ldrsh   w0, [x1, x2]
        add     w0, w3, w0
        ret

    gcc/
* config/aarch64/aarch64.c (generic_addrcost_table):
Change HI/TI mode setting.

From-SVN: r247606

7 years ago[PR 80622] Treat const pools as initialized in SRA
Martin Jambor [Thu, 4 May 2017 16:19:20 +0000 (18:19 +0200)]
[PR 80622] Treat const pools as initialized in SRA

2017-05-04  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/80622
* tree-sra.c (comes_initialized_p): New function.
(build_accesses_from_assign): Only set write lazily when
comes_initialized_p is false.
(analyze_access_subtree): Use comes_initialized_p.
(propagate_subaccesses_across_link): Assert !comes_initialized_p
instead of testing for PARM_DECL.

testsuite/
* gcc.dg/tree-ssa/pr80622.c: New test.

From-SVN: r247604

7 years ago[AArch64] Accept more addressing modes for PRFM
Kyrylo Tkachov [Thu, 4 May 2017 16:14:37 +0000 (16:14 +0000)]
[AArch64] Accept more addressing modes for PRFM

* config/aarch64/aarch64.md (prefetch); Adjust predicate and
constraint on operand 0 to allow more general addressing modes.
Adjust output template.
* config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
New function.
* config/aarch64/aarch64-protos.h
(aarch64_address_valid_for_prefetch_p): Declare prototype.
* config/aarch64/constraints.md (Dp): New address constraint.
* config/aarch64/predicates.md (aarch64_prefetch_operand): New
predicate.

* gcc.target/aarch64/prfm_imm_offset_1.c: New test.

From-SVN: r247603

7 years agoUpdate .po files.
Joseph Myers [Thu, 4 May 2017 15:54:08 +0000 (16:54 +0100)]
Update .po files.

* be.po, da.po, el.po, fi.po, hr.po, id.po, ja.po, nl.po, ru.po,
sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r247601

7 years agoMore global trees.
Nathan Sidwell [Thu, 4 May 2017 15:39:05 +0000 (15:39 +0000)]
More global trees.

* cp-tree.h (enum cp_tree_index): Add CPTI_GLOBAL,
CPTI_GLOBAL_TYPE, CPTI_GLOBAL_IDENTIFIER, CPTI_ANON_IDENTIFIER,
CPTI_INIT_LIST_IDENTIFIER.
(global_namespace, global_type_node, global_identifier)
anon_identifier, init_list_identifier): New.
* decl.c (global_type_node, global_scope_name): Delete.
(initialize_predefined_identifiers): Add new identifiers.
(cxx_init_decl_processing): Adjust.
* name-lookup.h (global_namespace, global_type_node): Delete.
* name-lookup.c (global_namespace, anonymous_namespace_name)
get_anonymous_namespace_name): Delete.
(namespace_scope_ht_size, begin_scope, pushtag_1)
push_namespace): Adjust,
* call.c (type_has_extended_temps): Use init_list_identifier.
* pt.c (listify): Likewise.
(((--This line, and those below, will be ignored--

M    cp/name-lookup.c
M    cp/name-lookup.h
M    cp/ChangeLog
M    cp/call.c
M    cp/pt.c
M    cp/cp-tree.h
M    cp/decl.c

From-SVN: r247599

7 years agoipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; update use of...
Jan Hubicka [Thu, 4 May 2017 13:57:35 +0000 (15:57 +0200)]
ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; update use of estimate_ipcp_clone_size_and_time.

* ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
update use of estimate_ipcp_clone_size_and_time.
(estimate_local_effects): Update use of
estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
* ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
* ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
Return nonspecialized time.

* gcc.dg/ipa/ipcp-2.c: Decrease ipcp threshold
* gcc.dg/tree-ssa/ipa-cp-1.c: Likewise.

From-SVN: r247597

7 years agotree-ssa-alias.c (get_continuation_for_phi): Improve looking for the last VUSE which...
Richard Biener [Thu, 4 May 2017 13:29:08 +0000 (13:29 +0000)]
tree-ssa-alias.c (get_continuation_for_phi): Improve looking for the last VUSE which def dominates the PHI.

2017-05-04  Richard Biener  <rguenther@suse.de>

* tree-ssa-alias.c (get_continuation_for_phi): Improve looking
for the last VUSE which def dominates the PHI.  Directly call
maybe_skip_until.
(get_continuation_for_phi_1): Remove.

* gcc.dg/tree-ssa/ssa-fre-58.c: New testcase.

From-SVN: r247596

7 years agoname-lookup.c: Reorder functions to make merging from modules branch simpler.
Nathan Sidwell [Thu, 4 May 2017 12:35:05 +0000 (12:35 +0000)]
name-lookup.c: Reorder functions to make merging from modules branch simpler.

* name-lookup.c: Reorder functions to make merging from modules
branch simpler.

From-SVN: r247592

7 years agoCap niter_for_unrolled_loop to upper bound
Richard Sandiford [Thu, 4 May 2017 11:37:05 +0000 (11:37 +0000)]
Cap niter_for_unrolled_loop to upper bound

For the reasons explained in PR77536, niter_for_unrolled_loop assumes 5
iterations in the absence of profiling information, although it doesn't
increase beyond the estimate for the original loop.  This left a hole in
which the new estimate could be less than the old one but still greater
than the limit imposed by CEIL (nb_iterations_upper_bound, unroll factor).

2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
to explain the use of truncating division.  Cap the number of
iterations to the maximum given by nb_iterations_upper_bound,
if defined.

gcc/testsuite/
* gcc.dg/vect/vect-profile-1.c: New test.

From-SVN: r247591

7 years agoFix previous commit
Richard Sandiford [Thu, 4 May 2017 11:03:54 +0000 (11:03 +0000)]
Fix previous commit

From-SVN: r247589

7 years agoconfigure.ac (--enable-mingw-wildcard): Add new configurable feature.
Thomas Preud'homme [Thu, 4 May 2017 11:02:08 +0000 (11:02 +0000)]
configure.ac (--enable-mingw-wildcard): Add new configurable feature.

2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

* configure.ac (--enable-mingw-wildcard): Add new configurable feature.
* configure: Regenerate.
* config.in: Regenerate.
* config/i386/driver-mingw32.c: new file.
* config/i386/x-mingw32: Add rule to build driver-mingw32.o.
* config.host: Link driver-mingw32.o on MinGW host.
* doc/install.texi: Document new --enable-mingw-wildcard configure
option.

From-SVN: r247588

7 years agoRemove bogus top-level ChangeLog commit (sorry!)
Richard Sandiford [Thu, 4 May 2017 11:00:48 +0000 (11:00 +0000)]
Remove bogus top-level ChangeLog commit (sorry!)

From-SVN: r247587

7 years agore PR tree-optimization/80612 (ICE in get_range_info, at tree-ssanames.c:375)
Marek Polacek [Thu, 4 May 2017 10:35:58 +0000 (10:35 +0000)]
re PR tree-optimization/80612 (ICE in get_range_info, at tree-ssanames.c:375)

PR tree-optimization/80612
* calls.c (get_size_range): Check for INTEGRAL_TYPE_P.

* gcc.dg/torture/pr80612.c: New test.

From-SVN: r247586

7 years ago[ARM] Enable Purecode for ARMv8-M Baseline
Prakhar Bahuguna [Thu, 4 May 2017 10:26:25 +0000 (10:26 +0000)]
[ARM] Enable Purecode for ARMv8-M Baseline

This patch adds support for purecode to ARMv8-M Baseline, in addition to
the existing support for ARMv7-M and ARMv8-M Mainline.

2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
            Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>

    gcc/
    * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
    (movt splitter): Likewise.
    * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
    to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
    (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
    block for Thumb-1 with MOVT.
    (thumb2_legitimate_address_p): Move code block ...
    (can_avoid_literal_pool_for_label_p): ... into this new function.
    (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
    literal pool.
    (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
    * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
    "M-profile targets with the MOVT instruction".

    gcc/testsuite/
    * gcc.target/arm/pure-code/pure-code.exp: Add conditional for
    check_effective_target_arm_thumb1_movt_ok.

Co-Authored-By: Andre Vieira <andre.simoesdiasvieira@arm.com>
From-SVN: r247585

7 years ago[ARM] Rename FPSCR builtins to correct names
Prakhar Bahuguna [Thu, 4 May 2017 10:16:04 +0000 (10:16 +0000)]
[ARM] Rename FPSCR builtins to correct names

The GCC documentation in section 6.60.8 ARM Floating Point Status and
Control Intrinsics states that the FPSCR register can be read and
written to using the intrinsics __builtin_arm_get_fpscr and
__builtin_arm_set_fpscr. However, these are misnamed within GCC itself
and these intrinsic names are not recognised.

This patch corrects the intrinsic names to match the documentation, and
adds tests to verify these intrinsics generate the correct
instructions.

2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

    gcc/
    * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
    __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
    __builtin_arm_stfscr to __builtin_arm_set_fpscr.

    gcc/testsuite/
    * gcc.target/arm/fpscr.c: New file.

From-SVN: r247584

7 years agoRemove an unused variable.
Martin Liska [Thu, 4 May 2017 10:06:54 +0000 (12:06 +0200)]
Remove an unused variable.

2017-05-04  Martin Liska  <mliska@suse.cz>

* tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
variable cond_code.

From-SVN: r247583

7 years agoRequire c99_runtime for pr78622.c
Thomas Preud'homme [Thu, 4 May 2017 09:36:29 +0000 (09:36 +0000)]
Require c99_runtime for pr78622.c

2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

gcc/testsuite/
    * gcc.c-torture/execute/pr78622.c: Require c99_runtime effective
    target.

From-SVN: r247582

7 years agotree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more...
Richard Biener [Thu, 4 May 2017 09:08:01 +0000 (09:08 +0000)]
tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more conservatively.

2017-05-04  Richard Biener  <rguenther@suse.de>

* tree.c (array_at_struct_end_p): Handle arrays at struct
end with flexarrays more conservatively.  Refactor and treat
arrays of arrays or aggregates more strict.  Fix
VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
* tree.c (array_at_struct_end_p): Adjust prototype.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
* gimple-fold.c (get_range_strlen): Likewise.
* tree-chkp.c (chkp_may_narrow_to_field): Likewise.

From-SVN: r247581

7 years agoReplace absolute line numbers in g++.dg/warn
Tom de Vries [Thu, 4 May 2017 07:55:11 +0000 (07:55 +0000)]
Replace absolute line numbers in g++.dg/warn

2017-05-04  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Replace absolute
line numbers.
* g++.dg/warn/miss-format-1.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* g++.dg/warn/overflow-warn-4.C: Same.

From-SVN: r247580

7 years agoReplace absolute line numbers in gcc.target/i386
Tom de Vries [Thu, 4 May 2017 07:54:59 +0000 (07:54 +0000)]
Replace absolute line numbers in gcc.target/i386

2017-05-04  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* gcc.target/i386/pr57655.c: Replace absolute line numbers.
* gcc.target/i386/pr68657.c: Same.
* gcc.target/i386/pr69255-1.c: Same.
* gcc.target/i386/pr69255-2.c: Same.
* gcc.target/i386/pr69255-3.c: Same.

From-SVN: r247579

7 years agore PR tree-optimization/31130 (VRP no longer derives range for division after negation)
Richard Biener [Thu, 4 May 2017 07:29:55 +0000 (07:29 +0000)]
re PR tree-optimization/31130 (VRP no longer derives range for division after negation)

2017-05-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/31130
* tree-vrp.c (needs_overflow_infinity): Remove as always returning
false.
(supports_overflow_infinity): Likewise.
(is_negative_overflow_infinity): Likewise.
(is_positive_overflow_infinity): Likewise.
(is_overflow_infinity): Likewise.
(stmt_overflow_infinity): Likewise.
(overflow_infinity_range_p): Likewise.
(usable_range_p): Remove as always returning true.
(make_overflow_infinity): Remove.
(negative_overflow_infinity): Likewise.
(positive_overflow_infinity): Likewise.
(avoid_overflow_infinity): Likewise.
(set_value_range): Adjust accordingly.
(set_value_range_to_nonnegative): Likewise, remove now unused
overflow_infinity arg.
(vrp_operand_equal_p): Adjust.
(update_value_range): Likewise.
(range_int_cst_singleton_p): Likewise.
(operand_less_p): Likewise.
(compare_values_warnv): Likewise.
(extract_range_for_var_from_comparison_expr): Likewise.
(vrp_int_const_binop): Likewise.
(zero_nonzero_bits_from_vr): Likewise.
(extract_range_from_multiplicative_op_1): Likewise.
(extract_range_from_binary_expr_1): Likewise.
(extract_range_from_unary_expr): Likewise.
(extract_range_from_comparison): Likewise.
(extract_range_basic): Likewise.
(adjust_range_with_scev): Likewise.
(compare_ranges): Likewise.
(compare_range_with_value): Likewise.
(dump_value_range): Likewise.
(test_for_singularity): Likewise, remove strict_overflow_p parameter
never used.
(simplify_cond_using_ranges): Adjust.

* gcc.dg/Wstrict-overflow-12.c: XFAIL.
* gcc.dg/Wstrict-overflow-13.c: Likewise.
* gcc.dg/Wstrict-overflow-21.c: Likewise.
* gcc.dg/pr52904.c: Remove XFAIL.
* gcc.dg/tree-ssa/vrp114.c: New testcase.

From-SVN: r247578

7 years agoRemoved accidentally committed conflict marker.
Pekka Jääskeläinen [Thu, 4 May 2017 05:56:32 +0000 (05:56 +0000)]
Removed accidentally committed conflict marker.

From-SVN: r247577

7 years agoMinor BRIG/HSAIL frontend updates and bug fixes:
Pekka Jääskeläinen [Thu, 4 May 2017 05:50:21 +0000 (05:50 +0000)]
Minor BRIG/HSAIL frontend updates and bug fixes:

* brig-builtins.def: Added a builtin for class_f64.
* builtin-types.def: Added a builtin type needed by class_f64.
* brigfrontend/brig-code-entry-handler.cc
 (brig_code_entry_handler::build_address_operand): Fix a bug
 with reg+offset addressing on 32b segments. In large mode,
 the offset is treated as 32bits unless it's global, readonly or
 kernarg address space.
* rt/workitems.c: Removed a leftover comment.
* rt/arithmetic.c (__hsail_class_f32, __hsail_class_f64): Fix the
 check for signaling/non-signalling NaN. Add class_f64 default
 implementation.

From-SVN: r247576

7 years agoDaily bump.
GCC Administrator [Thu, 4 May 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247575

7 years ago* de.po: Update.
Joseph Myers [Wed, 3 May 2017 22:24:30 +0000 (23:24 +0100)]
* de.po: Update.

From-SVN: r247570

7 years agoinvoke.texi: Note that -faligned-new is on by default for C++17.
Jason Merrill [Wed, 3 May 2017 18:50:25 +0000 (14:50 -0400)]
invoke.texi: Note that -faligned-new is on by default for C++17.

* doc/invoke.texi: Note that -faligned-new is on by default
for C++17.

From-SVN: r247564

7 years agotimevar.def: Add TV_CONSTEXPR.
Jason Merrill [Wed, 3 May 2017 18:50:20 +0000 (14:50 -0400)]
timevar.def: Add TV_CONSTEXPR.

* timevar.def: Add TV_CONSTEXPR.

* constexpr.c (cxx_eval_outermost_constant_expr): Use TV_CONSTEXPR.

From-SVN: r247563

7 years agoFix typo in common.opt
David Malcolm [Wed, 3 May 2017 18:35:27 +0000 (18:35 +0000)]
Fix typo in common.opt

gcc/ChangeLog:
* common.opt (fdiagnostics-parseable-fixits): Fix typo.

From-SVN: r247562

7 years agoRemove ipa_update_after_lto_read
Martin Jambor [Wed, 3 May 2017 16:49:47 +0000 (18:49 +0200)]
Remove ipa_update_after_lto_read

2017-05-03  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (ipa_update_after_lto_read): Removed.
* ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
* ipa-cp.c (ipcp_propagate_stage): Do not call
ipa_update_after_lto_read.
* ipa-inline.c (ipa_inline): Likewise.

From-SVN: r247559

7 years agoUse call_summary in ipa-prop and ipa-cp
Martin Jambor [Wed, 3 May 2017 16:48:20 +0000 (18:48 +0200)]
Use call_summary in ipa-prop and ipa-cp

2017-05-03  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
tag.  Added a default constructor and a destructor.
(ipa_edge_args_sum_t): New class;
(ipa_edge_args_sum): Declare.
(ipa_edge_args_vector): Remove declaration.
(IPA_EDGE_REF): Use ipa_edge_args_sum.
(ipa_free_edge_args_substructures): Remove declaration.
(ipa_check_create_edge_args): Use ipa_edge_args_sum.
(ipa_edge_args_info_available_for_edge_p): Likewise.
* ipa-prop.c (ipa_edge_args_vector): Removed.
(edge_removal_hook_holder): Likewise.
(edge_duplication_hook_holder): Likewise.
(ipa_edge_args_sum): New variable.
(ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
ipa_edge_args_vector.
(ipa_free_edge_args_substructures): Likewise.
(ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
ipa_edge_args_vector.
(ipa_edge_removal_hook): Turned into method
ipa_edge_args_sum_t::remove.
(ipa_edge_duplication_hook): Turned into method
ipa_edge_args_sum_t::duplicate.
(ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
registering edge hooks.
(ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
* ipa-inline-analysis.c (estimate_function_body_sizes): Test
ipa_edge_args_sum instead of ipa_edge_args_vector.
* ipa-profile.c (ipa_profile): Likewise.

From-SVN: r247558

7 years agocall_summary to keep info about cgraph_edges
Martin Jambor [Wed, 3 May 2017 16:41:39 +0000 (18:41 +0200)]
call_summary to keep info about cgraph_edges

2017-05-03  Martin Jambor  <mjambor@suse.cz>

* symbol-summary.h (function_summary): New method exists.
(function_summary::symtab_removal): Deallocate through release.
(call_summary): New class.
(gt_ggc_mx): New overload.
(gt_pch_nx): Likewise.
(gt_pch_nx): Likewise.

From-SVN: r247557

7 years agore PR tree-optimization/78496 (Missed opportunities for jump threading)
Jeff Law [Wed, 3 May 2017 16:33:45 +0000 (10:33 -0600)]
re PR tree-optimization/78496 (Missed opportunities for jump threading)

PR tree-optimization/78496
* tree-vrp.c (simplify_cond_using_ranges_1): Renamed
from simplify_cond_using_ranges.  Split off code to walk
backwards through casts into ...
(simplify_cond_using_ranges_2): New function.
(simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
(execute_vrp): After identifying jump threads, call
simplify_cond_using_ranges_2.

PR tree-optimization/78496
* gcc.dg/tree-ssa/ssa-thread-15.c: New test.

From-SVN: r247556

7 years agore PR ipa/80609 (crash_signal in reset_inline_summary on ia64 bootstrap)
Jan Hubicka [Wed, 3 May 2017 16:14:32 +0000 (18:14 +0200)]
re PR ipa/80609 (crash_signal in reset_inline_summary on ia64 bootstrap)

PR bootstrap/80609
* ipa-inline.h (inline_summary): Add ctor.
(create_ggc): Do not use ggc_cleared_alloc.

From-SVN: r247555

7 years agoconfig-list.mk (am33_2.0-linux): Remove from list of targets to build.
Jeff Law [Wed, 3 May 2017 15:23:35 +0000 (09:23 -0600)]
config-list.mk (am33_2.0-linux): Remove from list of targets to build.

2007-05-03  Jeff Law  <law@redhat.com>

* config-list.mk (am33_2.0-linux): Remove from list of targets
to build.

From-SVN: r247553

7 years agoSupport escaping special characters in specs
Jeff Downs [Wed, 3 May 2017 15:22:51 +0000 (15:22 +0000)]
Support escaping special characters in specs

2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

* gcc.c (handle_braces): Support escaping in switch matching
text.
* doc/invoke.texi (Spec Files): Document it.
Remove superfluous @code markup in items.

Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
From-SVN: r247552

7 years agopr79671_0.C (foo): Fix asm constraints.
Uros Bizjak [Wed, 3 May 2017 14:54:16 +0000 (16:54 +0200)]
pr79671_0.C (foo): Fix asm constraints.

* g++.dg/lto/pr79671_0.C (foo): Fix asm constraints.

From-SVN: r247550

7 years agoNew fix-it printer
David Malcolm [Wed, 3 May 2017 13:11:21 +0000 (13:11 +0000)]
New fix-it printer

The existing fix-it printer can lead to difficult-to-read output
when fix-it hints are near each other.  For example, in a recent
patch to add fix-it hints to the C++ frontend's -Wold-style-cast,
e.g. for:

  foo *f = (foo *)ptr->field;
                       ^~~~~

the fix-it hints:
 replace the open paren with "const_cast<"
 replace the close paren with "> ("
 insert ")" after the "ptr->field"

would be printed in this odd-looking way:

  foo *f = (foo *)ptr->field;
                       ^~~~~
           -
           const_cast<
                 -
                 > (        )

class rich_location consolidates adjacent fix-it hints, which helps
somewhat, but the underlying problem is that the existing printer
simply walks through the list of hints printing them, starting newlines
as necessary.

This patch reimplements fix-it printing by introducing a planning
stage: a new class line_corrections "plans" how to print the
fix-it hints affecting a line, generating a vec of "correction"
instances.  Hints that are sufficiently close to each other are
consolidated at this stage.

This leads to the much more reasonable output for the above case:

  foo *f = (foo *)ptr->field;
                       ^~~~~
           -----------------
           const_cast<foo *> (ptr->field);

where the 3 hints are consolidated into one "correction" at printing.

gcc/ChangeLog:
* diagnostic-show-locus.c (struct column_range): New struct.
(get_affected_columns): New function.
(get_printed_columns): New function.
(struct correction): New struct.
(correction::ensure_capacity): New function.
(correction::ensure_terminated): New function.
(struct line_corrections): New struct.
(line_corrections::~line_corrections): New dtor.
(line_corrections::add_hint): New function.
(layout::print_trailing_fixits): Reimplement in terms of the new
classes.
(selftest::test_overlapped_fixit_printing): New function.
(selftest::diagnostic_show_locus_c_tests): Call it.

From-SVN: r247548

7 years agocp-tree.h (enum cp_tree_index, [...]): Move earlier, along with #defines, to before...
Nathan Sidwell [Wed, 3 May 2017 12:54:56 +0000 (12:54 +0000)]
cp-tree.h (enum cp_tree_index, [...]): Move earlier, along with #defines, to before name-lookup include.

* cp-tree.h (enum cp_tree_index, cp_global_trees): Move earlier,
along with #defines, to before name-lookup include.

From-SVN: r247547

7 years agoCanonicalize canonical type hashing
Nathan Sidwell [Wed, 3 May 2017 12:15:05 +0000 (12:15 +0000)]
Canonicalize canonical type hashing

Canonicalize canonical type hashing
gcc/
* tree.h (type_hash_canon_hash): Declare.
* tree.c (type_hash_list, attribute_hash_list): Move into
type_hash_canon_hash.
(build_type_attribute_qual_variant): Break out hash code calc into
type_hash_canon_hash.
(type_hash_canon_hash): New.  Generic type hash computation.
(build_range_type_1, build_array_type_1, build_function_type)
build_method_type_directly, build_offset_type, build_complex_type,
make_vector_type): Call it.
gcc/c-family/
* c-common.c (complete_array_type): Use type_hash_canon.
(--This line, and those below, will be ignored--

M    gcc/tree.c
M    gcc/tree.h
M    gcc/c-family/ChangeLog
M    gcc/c-family/c-common.c
M    gcc/ChangeLog

From-SVN: r247546

7 years agotree-vect-data-refs.c (vect_enhance_data_refs_alignment): When all DRs have unknown...
Richard Biener [Wed, 3 May 2017 11:01:06 +0000 (11:01 +0000)]
tree-vect-data-refs.c (vect_enhance_data_refs_alignment): When all DRs have unknown misaligned do not always peel when...

2017-05-03  Richard Biener  <rguenther@suse.de>

* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
When all DRs have unknown misaligned do not always peel
when there is a store but apply the same costing model as if
there were only loads.

* gcc.dg/vect/costmodel/x86_64/costmodel-alignpeel.c: New testcase.

From-SVN: r247544

7 years agorevert: re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline...
Richard Biener [Wed, 3 May 2017 10:59:25 +0000 (10:59 +0000)]
revert: re PR tree-optimization/80492 (Wrong code when unrolling a loop with inline asm and local regs)

2017-05-03  Richard Biener  <rguenther@suse.de>

Revert
PR tree-optimization/80492
* tree-ssa-alias.c (decl_refs_may_alias_p): Handle
compare_base_decls returning dont-know properly.

From-SVN: r247543

7 years ago[ARM] Set mode for success result of atomic compare and swap
Thomas Preud'homme [Wed, 3 May 2017 10:11:44 +0000 (10:11 +0000)]
[ARM] Set mode for success result of atomic compare and swap

2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>

gcc/
    * config/arm/iterators.md (CCSI): New mode iterator.
    (arch): New mode attribute.
    * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
    (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
    (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
    code iterator for success result mode.
    * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
    the corresponding new insn generators.

From-SVN: r247542

7 years agoRevert r247509 2017-05-02 Bin Cheng <bin.cheng@arm.com>
Bin Cheng [Wed, 3 May 2017 10:10:43 +0000 (10:10 +0000)]
Revert r247509 2017-05-02 Bin Cheng <bin.cheng@arm.com>

Revert r247509
2017-05-02  Bin Cheng  <bin.cheng@arm.com>
* rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.

From-SVN: r247541

7 years agoWrap tree-data-ref.h macro arguments
Richard Sandiford [Wed, 3 May 2017 07:51:08 +0000 (07:51 +0000)]
Wrap tree-data-ref.h macro arguments

gcc/
2016-05-03  Richard Sandiford  <richard.sandiford@linaro.org>

* tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
(SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
(DDR_A): Wrap DDR argument in brackets.
(DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
(DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
(DDR_REVERSED_P): Likewise.

From-SVN: r247539

7 years agore PR tree-optimization/79472 (x86-64: Switch table generation fails if default case...
Jakub Jelinek [Wed, 3 May 2017 07:49:43 +0000 (09:49 +0200)]
re PR tree-optimization/79472 (x86-64: Switch table generation fails if default case has different code)

PR tree-optimization/79472
* tree-switch-conversion.c (struct switch_conv_info): Add
contiguous_range and default_case_nonstandard fields.
(collect_switch_conv_info): Compute contiguous_range and
default_case_nonstandard fields, don't clear final_bb if
contiguous_range and only the default case doesn't have the required
structure.
(check_all_empty_except_final): Set default_case_nonstandard instead
of failing if contiguous_range and the default case doesn't have empty
block.
(check_final_bb): Add SWTCH argument, don't fail if contiguous_range
and only the default case doesn't have the required constants.  Skip
virtual phis.
(gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
if default_case_nonstandard.
(build_constructors): Build constant 1 just once.  Assert that default
values aren't inserted in between cases if contiguous_range.  Skip
virtual phis.
(build_arrays): Skip virtual phis.
(prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
(fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
Handle virtual phis.
(gen_inbound_check): Handle default_case_nonstandard case.
(process_switch): Adjust check_final_bb caller.  Call
gather_default_values with the first non-default case instead of
default case if default_case_nonstandard.

* gcc.dg/tree-ssa/vrp40.c: Add -fno-tree-switch-conversion to dg-options.
* gcc.dg/tree-ssa/vrp113.c: New test.
* gcc.dg/tree-ssa/cswtch-3.c: New test.
* gcc.dg/tree-ssa/cswtch-4.c: New test.
* gcc.dg/tree-ssa/cswtch-5.c: New test.

From-SVN: r247538

7 years agoReplace absolute line numbers in c-c++-common
Tom de Vries [Wed, 3 May 2017 07:33:01 +0000 (07:33 +0000)]
Replace absolute line numbers in c-c++-common

2017-05-03  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* c-c++-common/Wshift-negative-value-1.c: Replace absolute line numbers.
* c-c++-common/Wshift-negative-value-2.c: Same.
* c-c++-common/Wshift-negative-value-3.c: Same.
* c-c++-common/Wshift-negative-value-4.c: Same.
* c-c++-common/cilk-plus/AN/pr57541.c: Same.
* c-c++-common/cpp/pr60400.c: Same.
* c-c++-common/fmax-errors.c: Same.
* c-c++-common/goacc/data-2.c: Same.
* c-c++-common/goacc/host_data-2.c: Same.
* c-c++-common/gomp/simd4.c: Same.
* c-c++-common/pr28656.c: Same.
* c-c++-common/pr43395.c: Same.
* c-c++-common/torture/pr57945.c: Same.

From-SVN: r247537

7 years agoAdd quotes to numerical comment arg of dg directive
Tom de Vries [Wed, 3 May 2017 07:32:49 +0000 (07:32 +0000)]
Add quotes to numerical comment arg of dg directive

2017-05-03  Tom de Vries  <tom@codesourcery.com>

* c-c++-common/goacc/data-default-1.c: Add quotes to numerical comment
arg of dg directive.
* c-c++-common/goacc/routine-3.c: Same.
* c-c++-common/goacc/routine-4.c: Same.

From-SVN: r247536

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

From-SVN: r247533

7 years agoggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- check.
Nathan Sidwell [Tue, 2 May 2017 22:39:23 +0000 (22:39 +0000)]
ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- check.

* ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
check.  Fix formatting.

From-SVN: r247529

7 years agoipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when compa...
Jan Hubicka [Tue, 2 May 2017 22:35:24 +0000 (00:35 +0200)]
ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when comparing specialized and unspecialized times.

* ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
errors when comparing specialized and unspecialized times.

From-SVN: r247528

7 years agopt.c (is_auto_or_concept): Remove.
Paolo Carlini [Tue, 2 May 2017 21:46:40 +0000 (21:46 +0000)]
pt.c (is_auto_or_concept): Remove.

2017-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (is_auto_or_concept): Remove.
(type_uses_auto_or_concept): Remove, unused.
(find_parameter_packs_r, extract_autos_r, is_auto_r): Adjust.
* parser.c (tree_type_is_auto_or_concept): Remove, unused.
* cp-tree.h (is_auto_or_concept): Remove.

From-SVN: r247526

7 years ago* es.po: Update.
Joseph Myers [Tue, 2 May 2017 20:46:15 +0000 (21:46 +0100)]
* es.po: Update.

From-SVN: r247524

7 years agoSupport fix-it hints that add new lines
David Malcolm [Tue, 2 May 2017 19:03:56 +0000 (19:03 +0000)]
Support fix-it hints that add new lines

Previously fix-it hints couldn't contain newlines.  This is
due to the need to print something user-readable for them
within diagnostic-show-locus, and for handling them within
edit-context for printing diffs and regenerating content.

This patch enables limited support for fix-it hints with newlines,
for suggesting adding new lines.
Such a fix-it hint must have exactly one newline character, at the
end of the content.  It must be an insertion at the beginning of
a line (so that e.g. fix-its that split a pre-existing line are
still rejected).

They are printed by diagnostic-show-locus with a '+' in the
left-hand margin, like this:

test.c:42:4: note: suggest adding 'break;' here
+      break;
     case 'b':
     ^~~~~~~~~

and the printer injects "spans" if the insertion location is not
near the primary range of the diagnostic e.g.:

test.c:4:2: note: unrecognized 'putchar'; suggest including '<stdio.h>'
test.c:1:1:
+#include <stdio.h>

test.c:4:2:
  putchar (ch);
  ^~~~~~~

gcc/ChangeLog:
* diagnostic-show-locus.c
(layout::should_print_annotation_line_p): Make private.
(layout::print_annotation_line): Make private.
(layout::annotation_line_showed_range_p): Make private.
(layout::show_ruler): Make private.
(layout::print_source_line): Make private.  Pass in line and
line_width, rather than calling location_get_source_line.  Drop
returned value.
(layout::print_leading_fixits): New method.
(layout::print_any_fixits): Rename to...
(layout::print_trailing_fixits): ...this, and make private.
Don't print newline fixits.
(diagnostic_show_locus): Move logic for printing one row into...
(layout::print_line): ...this new function.  Move the
location_get_source_line call and error-handling from
print_source_line to here.  Call print_leading_fixits, and rename
print_any_fixits to print_trailing_fixits.
(selftest::test_fixit_insert_containing_newline): Update now that
newlines are partially supported.
(selftest::test_fixit_insert_containing_newline_2): New test.
(selftest::test_fixit_replace_containing_newline): Update comments.
(selftest::diagnostic_show_locus_c_tests): Call the new test.
* edit-context.c (class added_line): New class.
(class edited_line): Describe newline handling in comment.
(edited_line::actually_edited_p): New method.
(edited_line::print_content): Delete redundant decl.
(edited_line::m_predecessors): New field.
(edited_file::print_content): Call edited_line::print_content.
(edited_file::print_diff): Update to support newlines.
(edited_file::print_diff_hunk): Likewise.
(edited_file::print_run_of_changed_lines): New function.
(edited_file::print_diff_line): Convert to...
(print_diff_line): ...this.
(edited_file::get_effective_line_count): New function.
(edited_line::edited_line): Initialize new field m_predecessors.
(edited_line::~edited_line): Clean up m_predecessors.
(edited_line::apply_fixit): Handle newlines.
(edited_line::get_effective_line_count): New function.
(edited_line::print_content): New function.
(edited_line::print_diff_lines): New function.
(selftest::test_applying_fixits_insert_containing_newline): New
test.
(selftest::test_applying_fixits_replace_containing_newline): New
test.
(selftest::insert_line): New function.
(selftest::test_applying_fixits_multiple_lines): Add example of
inserting a line.
(selftest::edit_context_c_tests): Call the new tests.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
(test_fixit_insert_newline): New function.
* gcc.dg/plugin/diagnostic-test-show-locus-color.c
(test_fixit_insert_newline): New function.
* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
(test_fixit_insert_newline): New function.
* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
(test_fixit_insert_newline): New function.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(test_show_locus): Handle test_fixit_insert_newline.

libcpp/ChangeLog:
* include/line-map.h (class rich_location): Update description of
newline handling.
(class fixit_hint): Likewise.
(fixit_hint::ends_with_newline_p): New decl.
* line-map.c (rich_location::maybe_add_fixit): Support newlines
in fix-it hints that are insertions of single lines at the start
of a line.  Don't consolidate into such fix-it hints.
(fixit_hint::ends_with_newline_p): New method.

From-SVN: r247522

7 years ago* fr.po: Update.
Joseph Myers [Tue, 2 May 2017 17:27:22 +0000 (18:27 +0100)]
* fr.po: Update.

From-SVN: r247520

7 years agotree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete parameter cand.
Bin Cheng [Tue, 2 May 2017 16:21:34 +0000 (16:21 +0000)]
tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete parameter cand.

* tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
parameter cand.  Update dump information.
(get_computation_cost): Update uses.

From-SVN: r247519

7 years agotree-ssa-loop-ivopts.c (get_computation_aff_1): New.
Bin Cheng [Tue, 2 May 2017 16:20:43 +0000 (16:20 +0000)]
tree-ssa-loop-ivopts.c (get_computation_aff_1): New.

* tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
(get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
(get_computation_at, rewrite_use_address): Update use of
get_computation_aff.

From-SVN: r247518

7 years agotree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
Bin Cheng [Tue, 2 May 2017 16:19:51 +0000 (16:19 +0000)]
tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.

* tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
(get_computation): Delete.
(get_computation_cost): Implement like get_computation_cost_at.
Use get_computation_at.
(get_computation_cost_at): Delete.
(rewrite_use_nonlinear_expr): Use get_computation_at.
(rewrite_use_compare, remove_unused_ivs): Ditto.

From-SVN: r247517

7 years ago* tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
Bin Cheng [Tue, 2 May 2017 16:18:42 +0000 (16:18 +0000)]
* tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.

From-SVN: r247516

7 years agotree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
Bin Cheng [Tue, 2 May 2017 16:14:53 +0000 (16:14 +0000)]
tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.

* tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
(ivopts_global_cost_for_size): Rename parameter and update uses.
(iv_ca_recount_cost): Update uses.
(iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
candidates seperately in n_invs and n_cands.
(iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.

From-SVN: r247515

7 years agotree-ssa-loop-ivopts.c (struct walk_tree_data): New.
Bin Cheng [Tue, 2 May 2017 16:12:41 +0000 (16:12 +0000)]
tree-ssa-loop-ivopts.c (struct walk_tree_data): New.

* tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
(find_inv_vars_cb): New.
(find_depends): Renamed to ...
(find_inv_vars): ... this.
(add_candidate_1, force_var_cost): Call find_inv_vars.
(split_address_cost, determine_group_iv_cost_cond): Ditto.

From-SVN: r247514

7 years agotree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to inv_vars.
Bin Cheng [Tue, 2 May 2017 16:09:23 +0000 (16:09 +0000)]
tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to inv_vars.

* tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
inv_vars.  Add inv_exprs.
(struct iv_cand): Rename depends_on to inv_vars.
(struct ivopts_data): Rename max_inv_id/n_invariant_uses to
max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
(dump_cand): Dump inv_vars.
(tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
(record_invariant, find_depends, add_candidate_1): Ditto.
(set_group_iv_cost, force_var_cost): Ditto.
(split_address_cost, ptr_difference_cost, difference_cost): Ditto.
(get_computation_cost_at, get_computation_cost): Ditto.
(determine_group_iv_cost_generic): Ditto.
(determine_group_iv_cost_address): Ditto.
(determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
(determine_group_iv_costs): Ditto.
(iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
(iv_ca_set_remove_invariants): Renamed to ...
(iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
(iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
(iv_ca_set_add_invariants):  Renamed to ...
(iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
(iv_ca_set_cp): Use iv_ca_set_add_invs.
(iv_ca_has_deps): Support inv_vars and inv_exprs.
(iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
(create_new_ivs): Remove useless dump.

gcc/testsuite
* g++.dg/tree-ssa/ivopts-3.C: Adjust test string.

From-SVN: r247512

7 years agotree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo iv_cand code.
Bin Cheng [Tue, 2 May 2017 16:03:49 +0000 (16:03 +0000)]
tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo iv_cand code.

* tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
iv_cand code.
(determine_group_iv_cost_cond, determine_iv_cost): Ditto.
(iv_ca_set_no_cp, create_new_iv): Ditto.

From-SVN: r247510

7 years ago* rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
Bin Cheng [Tue, 2 May 2017 15:57:45 +0000 (15:57 +0000)]
* rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.

From-SVN: r247509

7 years agotree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of function tree_check2.
Jeff Law [Tue, 2 May 2017 15:39:02 +0000 (09:39 -0600)]
tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of function tree_check2.

2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

* tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
function tree_check2.

From-SVN: r247508

7 years agoFix documentation and a ctor in gcov.c
Martin Liska [Tue, 2 May 2017 15:37:41 +0000 (17:37 +0200)]
Fix documentation and a ctor in gcov.c

2017-05-02  Martin Liska  <mliska@suse.cz>

* doc/gcov.texi: Add missing preposition.
* gcov.c (function_info::function_info): Properly fill up
all member variables.

From-SVN: r247507

7 years agoexpr.c (expand_expr_real_2): Re-cost if previous costs are the same.
Tamar Christina [Tue, 2 May 2017 15:20:47 +0000 (15:20 +0000)]
expr.c (expand_expr_real_2): Re-cost if previous costs are the same.

2017-04-26  Tamar Christina  <tamar.christina@arm.com>

* expr.c (expand_expr_real_2): Re-cost if previous costs are the same.

From-SVN: r247505

7 years agosimplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
Tamar Christina [Tue, 2 May 2017 15:19:07 +0000 (15:19 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.

gcc/
2017-04-27  Tamar Christina  <tamar.christina@arm.com>

* simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.

gcc/testsuite/
2017-04-27  Tamar Christina  <tamar.christina@arm.com>

* gcc.dg/lsr-div1.c: New testcase.

From-SVN: r247504

7 years agoMake right PR.
Martin Liska [Tue, 2 May 2017 15:11:29 +0000 (15:11 +0000)]
Make right PR.

From-SVN: r247503

7 years agore PR bootstrap/69506 (check-in 232454 seems to cause problems with cygwin builds)
Hugo Beauzée-Luyssen [Tue, 2 May 2017 15:04:39 +0000 (17:04 +0200)]
re PR bootstrap/69506 (check-in 232454 seems to cause problems with cygwin builds)

2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>

PR libstdc++/69506
* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r247502

7 years agoRemove LTO_STREAMER_DEBUG (PR lto/79489).
Martin Liska [Tue, 2 May 2017 15:00:47 +0000 (17:00 +0200)]
Remove LTO_STREAMER_DEBUG (PR lto/79489).

2017-05-02  Martin Liska  <mliska@suse.cz>

PR lto/79489.
* lto-streamer-in.c (lto_read_tree_1): Remove
LTO_STREAMER_DEBUG.
* lto-streamer.c (struct tree_hash_entry): Likewise.
(struct tree_entry_hasher): Likewise.
(tree_entry_hasher::hash): Likewise.
(tree_entry_hasher::equal): Likewise.
(lto_streamer_init): Likewise.
(lto_orig_address_map): Likewise.
(lto_orig_address_get): Likewise.
(lto_orig_address_remove): Likewise.
* lto-streamer.h: Likewise.
* tree-streamer-in.c (streamer_alloc_tree): Likewise.
* tree-streamer-out.c (streamer_write_tree_header): Likewise.

From-SVN: r247501

7 years ago* config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
Sebastian Peryt [Tue, 2 May 2017 13:07:12 +0000 (15:07 +0200)]
* config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
(_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
(mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
(mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
(mm_maskz_sub_round_ss, _mm_mask_add_sd)
(mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
(mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
(mm_maskz_sub_ss): New intrinsics.
* config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
* config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
(__builtin_ia32_subss_mask_round): New builtins.
* config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
* config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
Renamed to ...
(<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
Changed to ...
(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
... this.

testsuite/ChangeLog:

* gcc.target/i386/avx512f-vaddsd-1.c (_mm_mask_add_sd)
(_mm_maskz_add_sd, _mm_mask_add_round_sd)
(_mm_maskz_add_round_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vaddsd-2.c: New.
* gcc.target/i386/avx512f-vaddss-1.c (_mm_mask_add_ss)
(_mm_maskz_add_ss, _mm_mask_add_round_ss)
(_mm_maskz_add_round_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vaddss-2.c: New.
* gcc.target/i386/avx512f-vsubsd-1.c (_mm_mask_sub_sd)
(_mm_maskz_sub_sd, _mm_mask_sub_round_sd)
(_mm_maskz_sub_round_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vsubsd-2.c: New.
* gcc.target/i386/avx512f-vsubss-1.c (_mm_mask_sub_ss)
(_mm_maskz_sub_ss, _mm_mask_sub_round_ss)
(_mm_maskz_sub_round_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vsubss-2.c: New.
* gcc.target/i386/avx-1.c (__builtin_ia32_addsd_mask_round)
(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
(__builtin_ia32_subss_mask_round): Test new builtins.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
* gcc.target/i386/sse-14.c (_mm_maskz_add_round_sd)
(_mm_maskz_add_round_ss, _mm_maskz_sub_round_sd)
(_mm_maskz_sub_round_ss, _mm_mask_add_round_sd)
(_mm_mask_add_round_ss, _mm_mask_sub_round_sd)
(_mm_mask_sub_round_ss): Test new intrinsics.
* gcc.target/i386/testround-1.c: Ditto.

From-SVN: r247498

7 years ago[PR 78687] Set SRA grp_write lazily
Martin Jambor [Tue, 2 May 2017 12:49:55 +0000 (14:49 +0200)]
[PR 78687] Set SRA grp_write lazily

2017-05-02  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/78687
* tree-sra.c (access): New field parent.
(process_subtree_disqualification): New function.
(disqualify_candidate): Call it.
(build_accesses_from_assign): Reset write flag if creating an
assighnment link.
(build_access_subtree): Fill in parent field and also prpagate
down grp_write flag.
(create_artificial_child_access): New parameter set_grp_write, set
grp_write to its value.
(propagate_subaccesses_across_link): Also propagate grp_write flag
values.
(propagate_all_subaccesses): Push the closest parent back to work
queue if add_access_to_work_queue returned true.

testsuite/
* g++.dg/tree-ssa/pr78687.C: New test.

From-SVN: r247497

7 years agocommon.opt (fstrict-overflow): Alias negative to fwrapv.
Richard Biener [Tue, 2 May 2017 12:43:47 +0000 (12:43 +0000)]
common.opt (fstrict-overflow): Alias negative to fwrapv.

2017-05-02  Richard Biener  <rguenther@suse.de>

* common.opt (fstrict-overflow): Alias negative to fwrapv.
* doc/invoke.texi (fstrict-overflow): Remove all traces of
-fstrict-overflow documentation.
* tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
(POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
flag_strict_overflow.
* ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
* lto-opts.c (lto_write_options): Do not stream it.
* lto-wrapper.c (merge_and_complain): Do not handle it.
* opts.c (default_options_table): Do not set -fstrict-overflow.
(finish_options): Likewise do not clear it when sanitizing.
* simplify-rtx.c (simplify_const_relational_operation): Do not
test flag_strict_overflow.

ada/
* gcc-interface/misc.c (gnat_post_options): Do not set
-fstrict-overflow.

* c-c++-common/Wlogical-op-1.c: Add -fwrapv to restore previous
behavior.
* gcc.target/i386/pr46253.c: Make i unsigned to avoid warning.

From-SVN: r247495

7 years ago* gennews (files): Add files for GCC 7.
Jakub Jelinek [Tue, 2 May 2017 12:37:31 +0000 (14:37 +0200)]
* gennews (files): Add files for GCC 7.

From-SVN: r247491

7 years agoalpha.md (*add<mode>3_ieee): Merge to add<mode>3 using enabled attribute.
Uros Bizjak [Tue, 2 May 2017 11:56:35 +0000 (13:56 +0200)]
alpha.md (*add<mode>3_ieee): Merge to add<mode>3 using enabled attribute.

* config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
using enabled attribute.
(*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
(*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
(*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
(*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
(*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
(*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
(*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
(*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
(*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
(*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.

From-SVN: r247490

7 years agoi386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
Uros Bizjak [Tue, 2 May 2017 11:38:36 +0000 (13:38 +0200)]
i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.

* config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.

From-SVN: r247489

7 years agore PR tree-optimization/80591 (AArch64 kernel miscompilation starting with r246809)
Richard Biener [Tue, 2 May 2017 11:27:15 +0000 (11:27 +0000)]
re PR tree-optimization/80591 (AArch64 kernel miscompilation starting with r246809)

2017-05-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80591
Revert
2017-04-10  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c (find_func_aliases): Properly handle
asm inputs.

* gcc.dg/torture/pr80591.c: New testcase.

From-SVN: r247488

7 years agore PR tree-optimization/80549 (wrong code at -O2 and -O3 in both 32-bit and 64-bit...
Richard Biener [Tue, 2 May 2017 11:24:52 +0000 (11:24 +0000)]
re PR tree-optimization/80549 (wrong code at -O2 and -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (executable does not terminate))

2017-05-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80549
* tree-cfgcleanup.c (mfb_keep_latches): New helper.
(cleanup_tree_cfg_noloop): Create forwarders to known loop
headers if they do not have a preheader.

* gcc.dg/torture/pr80549.c: New testcase.

From-SVN: r247486

7 years agoFix 2 typos in documentation (PR other/80589).
Martin Liska [Tue, 2 May 2017 09:38:55 +0000 (11:38 +0200)]
Fix 2 typos in documentation (PR other/80589).

2017-05-02  Martin Liska  <mliska@suse.cz>

PR other/80589
* common.opt: Fix typo.
* doc/invoke.texi: Likewise.

From-SVN: r247485

7 years agotrans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only called...
Eric Botcazou [Tue, 2 May 2017 09:21:19 +0000 (09:21 +0000)]
trans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only called on discriminants.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* gcc-interface/trans.c (assoc_to_constructor): Make sure
Corresponding_Discriminant is only called on discriminants.
Skip the saving of the result only for them.
(gnat_to_gnu) <N_Selected_Component>: Likewise.
<N_Unchecked_Type_Conversion>: Translate the result type first.
(gigi): Set TREE_NOTHROW on Begin_Handler.
(stmt_list_cannot_raise_p): New predicate.
(Exception_Handler_to_gnu_gcc): Emit a simple final call instead of
a cleanup if the statements of the handler cannot raise.
(process_freeze_entity): Use Is_Record_Type.
(process_type): Likewise.

From-SVN: r247484

7 years agoFix broken pr78138.c for avr
Senthil Kumar Selvaraj [Tue, 2 May 2017 09:17:59 +0000 (09:17 +0000)]
Fix broken pr78138.c for avr

The declaration for memcpy had the size parameter declared as
unsigned long. For avr, __SIZE_TYPE__ is unsigned int, and
this caused a builtin-declaration-mismatch warning, resulting
in a couple of FAILs.

Fixed by typedef'ing __SIZE_TYPE__ to size_t and using size_t as the
type for memcpy's third parameter.

From-SVN: r247483

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:17:13 +0000 (11:17 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* einfo.ads (Corresponding_Record_Component): New alias
for Node21 used for E_Component and E_Discriminant.
* einfo.adb (Corresponding_Record_Component): New function.
(Set_Corresponding_Record_Component): New procedure.
(Write_Field21_Name): Handle Corresponding_Record_Component.
* sem_ch3.adb (Inherit_Component): Set
Corresponding_Record_Component for every component in
the untagged case.  Clear it afterwards for non-girder
discriminants.
* gcc-interface/decl.c (gnat_to_gnu_entity)
<E_Record_Type>: For a derived untagged type with discriminants
and constraints, apply the constraints to the layout of the
parent type to deduce the layout.
(field_is_aliased): Delete.
(components_to_record): Test DECL_ALIASED_P directly.
(annotate_rep): Check that fields are present except for
an extension.
(create_field_decl_from): Add DEBUG_INFO_P
parameter and pass it in recursive and other calls.  Add guard
for the manual CSE on the size.
(is_stored_discriminant): New predicate.
(copy_and_substitute_in_layout): Consider only
stored discriminants and check that original fields are present
in the old type.  Deal with derived types.  Adjust call to
create_variant_part_from.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): When locating the
accessibility entity created for an access parameter, handle
properly a reference to a formal of an enclosing subprogram. if
the reference appears in an inherited class-wide condition, it
is the rewriting of the reference in the ancestor expression,
but the accessibility entity must be that of the current formal.

2017-05-02  Javier Miranda  <miranda@adacore.com>

* exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram.
(Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus,
Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract):
Call Expand_Non_Binary_Modular_Op.

From-SVN: r247482

7 years agosem_ch3.adb (Build_Derived_Private_Type): If the parent type has discriminants...
Eric Botcazou [Tue, 2 May 2017 09:08:28 +0000 (09:08 +0000)]
sem_ch3.adb (Build_Derived_Private_Type): If the parent type has discriminants...

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch3.adb (Build_Derived_Private_Type): If the parent type
has discriminants, do not override the Stored_Constraint list of
the full view of the derived type with that of the derived type.

From-SVN: r247481

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:06:41 +0000 (11:06 +0200)]
[multiple changes]

2017-05-02  Bob Duff  <duff@adacore.com>

* sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

* s-os_lib.ads: Minor typo fix.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

* gnatls.adb: Merge and refactor code from Prj.Env and remove
this deprecated dependency.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_util.ads: minor comment addition.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and
pastos in part #3 of the head comment.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Freeze_Type): Do not generate an invariant
procedure body for a local (sub)type declaration within a
predicate function. Invariant checks do not apply to these, and
the expansion of the procedure will happen in the wrong scope,
leading to misplaced freeze nodes.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb (Insert_Library_Level_Action): Use proper scope
to analyze generated actions.  If the main unit is a body,
the required scope is that of the corresponding unit declaration.

2017-05-02  Arnaud Charlet  <charlet@adacore.com>

* einfo.adb (Declaration_Node): flip branches of
an IF statement to avoid repeated negations in its condition;
no change in semantics, only to improve readability.

From-SVN: r247480

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:04:23 +0000 (11:04 +0200)]
[multiple changes]

2017-05-02  Arnaud Charlet  <charlet@adacore.com>

* sem_case.adb: Remove extra spaces in parameter declarations.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* usage.adb: Replace space with hyphen ("run time" -> "run-time")
in usage line for new -gnatwE switch.

2017-05-02  Claire Dross  <dross@adacore.com>

* a-cofuve.ads (Remove): Remove unnecessary
conditions in precondition.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

* a-stream.ads, exp_imgv.adb, sem_ch10.adb,
sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix.

From-SVN: r247479

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 09:00:48 +0000 (11:00 +0200)]
[multiple changes]

2017-05-02  Justin Squirek  <squirek@adacore.com>

* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
alternative expression.
* sem_res.adb (Resolve_Case_Expression): Ditto.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT):
Refine predicate for the case where the primitive operation
is a renaming of equality.  An overriding operation that is
a user-defined renaming of predefined equality inherits its
slot from the overridden operation. Otherwise it is treated
as a predefined op and occupies the same predefined slot as
equality. A call to it is transformed into a call to its alias,
which is the predefined equality. A dispatching call thus uses
the proper slot if operation is further inherited and called
with class-wide arguments.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* errout.adb (Set_Msg_Text): Add a case to switch the message
type when the character '[' is detected signifying a warning
about a run-time exception.
* opt.ads Add a new Warning_Mode value for new switch
* switch-b.adb (Scan_Binder_Switches): Add case for the binder
to handle new warning mode
* usage.adb (Usage): Add usage entry for -gnatwE
* warnsw.adb (Set_Warning_Switch): Add case for the new switch

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Process_Conversion): Reject an intrinsic operator
declaration that operates on some fixed point type.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses.

From-SVN: r247478

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:57:44 +0000 (10:57 +0200)]
[multiple changes]

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Analyze_Null_Procedure): Revert previous change.

2017-05-02  Justin Squirek  <squirek@adacore.com>

* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
expression (Analyze_If_Expression): Add check for valid condition
* sem_eval.adb (Eval_Case_Expression): Add check for error posted
on case-expression
* sem_res.adb (Resolve_If_Expression): Add check for valid
condition and then-expression.

From-SVN: r247477

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 2 May 2017 08:55:34 +0000 (10:55 +0200)]
Minor reformatting.

From-SVN: r247476

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:55:03 +0000 (10:55 +0200)]
[multiple changes]

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Build_Initialization_Call): Generate a null
statement if the initialization call is a null procedure, as
can happen with a controlled type with no explicit Initialize
procedure, or an array of such.
* exp_ch7.adb (Process_Object_Declaration): For a type with
controlled components that has a trivial Initialize procedure,
insert declaration for finalization counter after object
declaration itself.
(Make_Deep_Array_Body, Build_Initialize_statements): Do not create
finalization block and attendant declarations if component has
a trivial Initialize procedure.
(Make_Init_Call): Do not generate a call if controlled type has
a trivial Initialize procedure.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* g-forstr.ads (Data): Move Format component last.
* g-forstr.adb ("+"): Adjust for above change.
* g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last.
* g-sechas.ads (Context): Move Key last.
* g-socket.ads (Service_Entry_Type): Move Aliases last.
* s-fileio.adb (Temp_File_Record): Move Name last.
* s-regexp.adb (Regexp_Value): Move Case_Sensitive last.
* xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last.

2017-05-02  Jerome Lambourg  <lambourg@adacore.com>

* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl
switch introduced recently. finally not needed.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Analyze_Null_Procedure): Set the
Corresponding_Body link for a null procedure declaration.

From-SVN: r247475

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:49:55 +0000 (10:49 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* atree.h (Flag290): Add missing terminating parenthesis.
* einfo.adb (Is_Class_Wide_Clone): Use Flag290.
(Set_Is_Class_Wide_Clone): Likewise.
* einfo.ads (Is_Class_Wide_Clone): Likewise.

2017-05-02  Gary Dismukes  <dismukes@adacore.com>

* checks.ads (Null_Exclusion_Static_Checks): Add Boolean
parameter Array_Comp to indicate the case of an array object
with null-excluding components.
* checks.adb (Null_Exclusion_Static_Checks):
Call Compile_Time_Constraint_Error instead of
Apply_Compile_Time_Constraint_Error in the component case. Also
call that when Array_Comp is True, with an appropriate warning for
the array component case. Only create an explicit initialization
by null in the case of an object of a null-excluding access type
(and no longer do that in the component case).
* sem_ch3.adb (Check_Component): Add a Boolean parameter
Array_Comp defaulted to False. Pass Empty for the Comp
actual when calling Null_Exclusion_Static_Checks in the case
where Comp_Decl matches Object_Decl, because we don't have a
component in that case. In the case of an object or component
of an array type, pass True for Array_Comp on the recursive call
to Check_Component.

From-SVN: r247474

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:47:29 +0000 (10:47 +0200)]
[multiple changes]

2017-05-02  Bob Duff  <duff@adacore.com>

* s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly
compute the linux priority from the Ada priority. Call this everywhere
required. In particular, the previous version was not doing this
computation when setting the ceiling priority in various places. It
was just converting to C.int, which results in a ceiling that is off
by 1.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb: Comment predicate inheritance.

From-SVN: r247473

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:44:41 +0000 (10:44 +0200)]
[multiple changes]

2017-05-02  Tristan Gingold  <gingold@adacore.com>

* s-trasym.ads: Add comment.

2017-05-02  Bob Duff  <duff@adacore.com>

* sem_elab.adb, sem_elab.ads: Minor comment fixes.
* sem_ch4.adb: Minor reformatting.
* s-taprop-linux.adb, s-taspri-posix.ads: Code refactoring.
* s-taspri-posix-noaltstack.ads: Minor refactoring.
* sinput.ads: Minor typo fix.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch9.adb (Discriminated_Size): Moved to sem_util.
* sem_util.ads, sem_util.adb (Discriminated_Size): Predicate moved
here from exp_ch9, to recognize objects whose creation requires
dynamic allocation, so that the proper warning can be emitted
when restriction No_Implicit_Heap_Allocation is in effect.
* sem_ch3.adb (Analyze_Object_Declaration): Use Discriminated_Size
to emit proper warning when an object that requires dynamic
allocation is declared.

From-SVN: r247472

7 years ago* s-trasym.ads, s-trasym.adb (Enable_Cache): New.
Tristan Gingold [Tue, 2 May 2017 08:40:12 +0000 (08:40 +0000)]
* s-trasym.ads, s-trasym.adb (Enable_Cache): New.

From-SVN: r247471

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:39:29 +0000 (10:39 +0200)]
[multiple changes]

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Find_Equality_Types, Try_One_Interp): The same relaxed
visibility rules for equality operators that apply within an
instantiation apply within an inlined body.
* sem_type.adb (Add_One_Interp): ditto.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Pragma): Forbid pragma Contract_Cases on null
procedures.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* snames.ads-tmpl
(Name_Assume, Name_Attribute_Definition, Name_Loop_Optimize,
Name_No_Tagged_Streams): Move to regular pragmas.  Add
placeholders for Default_Scalar_Storage_Order, Dispatching_Domain,
and Secondary_Stack_Size.
(Pragma_Id): Move Pragma_Assume,
Pragma_Attribute_Definition, Pragma_Loop_Optimize and
Pragma_No_Tagged_Streams to second part.

From-SVN: r247470

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:32:34 +0000 (10:32 +0200)]
[multiple changes]

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb: Minor reformatting.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Selected_Component): Improve error
detection for illegal references to private components or
operations of a protected type in the body of the type.

From-SVN: r247469

7 years ago[multiple changes]
Arnaud Charlet [Tue, 2 May 2017 08:31:12 +0000 (10:31 +0200)]
[multiple changes]

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

* opt.ads: Add missing GNAT markers in comments.
* opt.adb (Set_Opt_Config_Switches): Do not override earlier
settings of Optimize_Alignment at the end.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Apply_Constraint_Check): Do not apply
a discriminant check when the associated type is a constrained
subtype created for an unconstrained nominal type.
* exp_attr.adb: Minor reformatting.

2017-05-02  Bob Duff  <duff@adacore.com>

* sem_ch3.adb (OK_For_Limited_Init_In_05): Handle correctly
the N_Raise_Expression case.
* sem_ch6.adb (Check_Limited_Return): Minor: clarify comment,
and add assertions.

2017-05-02  Yannick Moy  <moy@adacore.com>

* exp_ch4.adb (Expand_N_Op_Ne): Do not bump parenthese level and
optimize length comparison in GNATprove mode.
* exp_spark.adb (Expand_SPARK_Op_Ne): New function to rewrite
operator /= into negation of operator = when needed.
(Expand_SPARK): Call new
function to expand operator /=.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_fixd.adb (Expand_Divide_Fixed_By_Fixed_Giving_Fixed):
Simplify the expression for a fixed-fixed division to remove
divisions by constants whenever possible, as an optimization
for restricted targets.

From-SVN: r247468

7 years agoMinor reformatting.
Arnaud Charlet [Tue, 2 May 2017 08:28:16 +0000 (10:28 +0200)]
Minor reformatting.

From-SVN: r247467