aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-07-04Add missing libgcc/ChangeLog entry.Olivier Hainque1-0/+4
From-SVN: r249953
2017-07-04function-argument-3.C: Add -Wno-psabi to additional options.Jakub Jelinek2-0/+4
* g++.dg/asan/function-argument-3.C: Add -Wno-psabi to additional options. From-SVN: r249952
2017-07-04re PR target/81175 (EXC_BAD_ACCESS in ↵Jakub Jelinek2-1/+8
::slpeel_duplicate_current_defs_from_edges(edge, edge, edge, edge) at is-a.h:192) PR target/81175 * gcc.target/i386/pr69255-2.c (foo): Use the return value of the gather. From-SVN: r249951
2017-07-04vxworks.h (PTRDIFF_TYPE, SIZE_TYPE): Restore unconditional basic definitions.Olivier Hainque2-8/+19
2017-07-04 Olivier Hainque <hainque@adacore.com> * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE): Restore unconditional basic definitions. (VXWORKS_LIBS_RTP): Likewise, prefixed by VXWORKS_SYSCALL_LIBS_RTP, empty by default. * config/i386/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE): Redefine, accounting for 64bit ABIs using cpu specific macros available for this purpose. (VXWORKS_SYSCALL_LIBS_RTP): Likewise. From-SVN: r249950
2017-07-04Add dg-require ifunc for mvc test-cases.Martin Liska5-0/+12
2017-07-04 Martin Liska <mliska@suse.cz> PR ipa/81214 * g++.dg/ext/mvc2.C: Add dg-require ifunc. * g++.dg/ext/mvc3.C: Likewise. * gcc.target/i386/mvc2.c: Likewise. * gcc.target/i386/mvc3.c: Likewise. From-SVN: r249949
2017-07-04parser.c (cp_parser_decomposition_declaration): Replace decomposition ↵Jakub Jelinek22-119/+144
declaration with structured binding in diagnostics. * parser.c (cp_parser_decomposition_declaration): Replace decomposition declaration with structured binding in diagnostics. * decl.c (cp_finish_decomp): Likewise. (grokdeclarator): Likewise. * g++.dg/cpp1z/decomp1.C: Expect structured binding instead of decomposition declaration in diagnostics. * g++.dg/cpp1z/decomp2.C: Likewise. * g++.dg/cpp1z/decomp3.C: Likewise. * g++.dg/cpp1z/decomp4.C: Likewise. * g++.dg/cpp1z/decomp5.C: Likewise. * g++.dg/cpp1z/decomp6.C: Likewise. * g++.dg/cpp1z/decomp7.C: Likewise. * g++.dg/cpp1z/decomp8.C: Likewise. * g++.dg/cpp1z/decomp13.C: Likewise. * g++.dg/cpp1z/decomp14.C: Likewise. * g++.dg/cpp1z/decomp18.C: Likewise. * g++.dg/cpp1z/decomp19.C: Likewise. * g++.dg/cpp1z/decomp22.C: Likewise. * g++.dg/cpp1z/decomp23.C: Likewise. * g++.dg/cpp1z/decomp24.C: Likewise. * g++.dg/cpp1z/decomp25.C: Likewise. * g++.dg/cpp1z/decomp26.C: Likewise. * g++.dg/cpp1z/decomp28.C: Likewise. From-SVN: r249948
2017-07-04re PR c++/81258 (ICE on C++1z code with invalid decomposition declaration: ↵Jakub Jelinek5-1/+36
in cp_finish_decl, at cp/decl.c:6760) PR c++/81258 * parser.c (cp_parser_decomposition_declaration): Diagnose invalid forms of structured binding initializers. * g++.dg/cpp1z/decomp21.C (foo): Adjust expected diagnostics. * g++.dg/cpp1z/decomp30.C: New test. From-SVN: r249947
2017-07-04* c-warn.c (warn_if_unused_value): Remove WITH_CLEANUP_EXPR handling.Marek Polacek2-1/+4
From-SVN: r249943
2017-07-04Daily bump.GCC Administrator1-1/+1
From-SVN: r249942
2017-07-03t-vxworks7: New file.Olivier Hainque1-0/+16
2017-06-27 Olivier Hainque <hainque@adacore.com> * config/t-vxworks7: New file. New file mistakenly omitted from previous commit referencing it. From-SVN: r249938
2017-07-03re PR c++/65775 (Late-specified return type bypasses return type checks ↵Paolo Carlini4-28/+59
(qualified, function, array)) /cp 2017-07-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65775 * decl.c (grokdeclarator): Move checks on function return type after the splice_late_return_type call; if declspecs->locations[ds_type_spec] is UNKNOWN_LOCATION fall back to input_location. /testsuite 2017-07-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65775 * g++.dg/cpp0x/trailing14.C: New. From-SVN: r249935
2017-07-03re PR fortran/79866 (diagnostics: typo in "Variable %s at %L of type ↵Dominique d'Humieres4-1/+24
EVENT_TYPE") 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/79866 * resolve.c (resolve_symbol): Fix typo. PR testsuite/79866 * gfortran.dg/coarray_event_2.f08: New test. From-SVN: r249934
2017-07-03re PR fortran/79843 (diagnostics: missing word in fortran/symbol.c, ↵Dominique d'Humieres5-4/+15
conflict_std) 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/79843 * symbol.c (check_conflict): Add missing "conflicts". PR testsuite/79843 * gfortran.dg/namelist_3.f90: Adjust the dg-error string. * gfortran.dg/pointer_intent_2.f90: Likewise. From-SVN: r249933
2017-07-03C++: fix "RT_INTERATION" typoDavid Malcolm2-3/+10
gcc/cp/ChangeLog: * parser.c (enum required_token): Fix spelling of RT_INTERATION to RT_ITERATION. (cp_parser_iteration_statement): Likewise. (cp_parser_required_error): Likewise. From-SVN: r249931
2017-07-03re PR bootstrap/81033 (there are cases where ld64 is not able to determine ↵Dominique d'Humieres2-1/+7
correct atom boundaries from the output GCC currently produces) 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> PR target/81033 * config/darwin.c (darwin_function_switched_text_sections): Fix spaces. From-SVN: r249930
2017-07-03* tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.Jan Hubicka2-2/+6
From-SVN: r249929
2017-07-03[arm] Add -mbe8 and -mbe32 to options summary.Richard Earnshaw2-1/+6
* doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary. From-SVN: r249928
2017-07-03Avoid minimum - 1 confusion in vectoriserRichard Sandiford3-23/+23
The variables that claimed to be the "minimum number of iterations" for which vectorisation was profitable were actually the maximum number of iterations for which vectorisation wasn't profitable. The loop threshold was too. This patch makes the values be what the variable names suggest. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound, min_profitable_iters, and th as inclusive lower bounds. Fix LOOP_VINFO_PEELING_FOR_GAPS condition. (vect_estimate_min_profitable_iters): Return inclusive lower bounds for min_profitable_iters and min_profitable_estimate. (vect_transform_loop): Treat th as an inclusive lower bound. * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. From-SVN: r249927
2017-07-03re PR bootstrap/81033 (there are cases where ld64 is not able to determine ↵Dominique d'Humieres2-4/+9
correct atom boundaries from the output GCC currently produces) 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> PR target/81033 * config/darwin.c (darwin_function_switched_text_sections): Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw in two pieces, and suppress the use of buf. From-SVN: r249926
2017-07-03* hash-table.h (hash_table_mod1): Fix indentation.Nathan Sidwell2-1/+5
From-SVN: r249925
2017-07-03re PR rtl-optimization/81290 (ICE in update_br_prob_note)Jan Hubicka6-5/+86
PR middle-end/81290 * predict.c (force_edge_cold): Be more careful about propagation backward. * profile-count.h (profile_probability::guessed, profile_probability::fdo, profile_count::guessed, profile_count::fdo): New. * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed. * gcc.c-torture/compile/pr81290.c: New. From-SVN: r249924
2017-07-03Andrew pointed out that I did not document the new architecture extension ↵James Greenhalgh2-0/+8
flag I added for the RcPc extension. Andrew pointed out that I did not document the new architecture extension flag I added for the RcPc extension. This was intentional, as enabling the rcpc extension does not change GCC code generation, and is just an assembler flag. But for completeness, here is documentation for the new option. gcc/ 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com> * doc/invoke.texi (rcpc architecture extension): Document it. From-SVN: r249923
2017-07-03configure.ac: Set srcdir when sourcing config-lang.in fragments.Nathan Sidwell5-8/+45
* configure.ac: Set srcdir when sourcing config-lang.in fragments. * configure: Rebuilt. gcc/objcp/ * config-lang.in: Source cp/config-lang.in, sort objc++ gtfiles list. From-SVN: r249922
2017-07-03Readd myself as c6x maintainer.Bernd Schmidt2-0/+5
From-SVN: r249920
2017-07-03re PR tree-optimization/60510 (SLP blocks loop vectorization (with reduction))Richard Biener5-70/+160
2017-07-03 Richard Biener <rguenther@suse.de> PR tree-optimization/60510 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in the scalar reduction PHI and use it. (vectorizable_reduction): Properly guard the single_defuse_cycle path for non-SLP reduction chains where we cannot use it. Rework reduc_def/index and vector type deduction. Rework vector operand gathering during reduction op code-gen. * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction chains dissolve the chain and leave it to non-SLP reduction handling. * gfortran.dg/vect/pr60510.f: New testcase. From-SVN: r249919
2017-07-03Fix secure_getenv.h include in plugin-hsa.cTom de Vries2-1/+5
2017-07-03 Tom de Vries <tom@codesourcery.com> * plugin/plugin-hsa.c: Fix secure_getenv.h include. From-SVN: r249918
2017-07-03Add a helper for getting the overall alignment of a DRRichard Sandiford6-19/+45
This combines the information from previous patches to give a guaranteed alignment for the DR as a whole. This should be a bit safer than using base_element_aligned, since that only really took the base into account (not the init or offset). 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (dr_alignment): Declare. * tree-data-ref.c (dr_alignment): New function. * tree-vectorizer.h (dataref_aux): Remove base_element_aligned. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't set it. * tree-vect-stmts.c (vectorizable_store): Use dr_alignment. From-SVN: r249917
2017-07-03Add DR_BASE_ALIGNMENT and DR_BASE_MISALIGNMENTRichard Sandiford5-145/+143
This patch records the base alignment and misalignment in innermost_loop_behavior, to avoid the second-guessing that was previously done in vect_compute_data_ref_alignment. It also makes vect_analyze_data_refs use dr_analyze_innermost, instead of having an almost-copy of the same code. I wasn't sure whether the alignments should be measured in bits (for consistency with most other interfaces) or in bytes (for consistency with DR_ALIGNED_TO, now DR_OFFSET_ALIGNMENT, and with *_ptr_info_alignment). I went for bytes because: - I think in practice most consumers are going to want bytes. E.g. using bytes avoids having to mix TYPE_ALIGN and TYPE_ALIGN_UNIT in vect_compute_data_ref_alignment. - It means that any bit-level paranoia is dealt with when building the innermost_loop_behavior and doesn't get pushed down to consumers. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (innermost_loop_behavior): Add base_alignment and base_misalignment fields. (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros. * tree-data-ref.c: Include builtins.h. (dr_analyze_innermost): Set up the new innmost_loop_behavior fields. * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro. (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise. * tree-vect-data-refs.c: Include tree-cfg.h. (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior fields instead of calculating an alignment here. (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new innermost_loop_behavior fields. From-SVN: r249916
2017-07-03Add DR_STEP_ALIGNMENTRichard Sandiford6-10/+36
A later patch adds base alignment information to innermost_loop_behavior. After that, the only remaining piece of alignment information that wasn't immediately obvious was the step alignment. Adding that allows a minor simplification to vect_compute_data_ref_alignment, and also potentially improves the handling of variable strides for outer loop vectorisation. A later patch will also use it to give the alignment of the DR as a whole. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment field. (DR_STEP_ALIGNMENT): New macro. * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise. * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment. (create_data_ref): Print it. * tree-vect-stmts.c (vectorizable_load): Use the step alignment to tell whether the step preserves vector (mis)alignment. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. Move the check for an integer step and generalise to all INTEGER_CST. (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP. Print the outer step alignment. From-SVN: r249915
2017-07-03Rename DR_ALIGNED_TO to DR_OFFSET_ALIGNMENTRichard Sandiford6-22/+34
This patch renames DR_ALIGNED_TO to DR_OFFSET_ALIGNMENT, to avoid confusion with the upcoming DR_BASE_ALIGNMENT. Nothing needed the value as a tree, and the value is clipped to BIGGEST_ALIGNMENT (maybe it should be MAX_OFILE_ALIGNMENT?) so we might as well use an unsigned int instead. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to with offset_alignment. (DR_ALIGNED_TO): Delete. (DR_OFFSET_ALIGNMENT): New macro. * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete. (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro. * tree-data-ref.c (dr_analyze_innermost): Update after above changes. (create_data_ref): Likewise. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. (vect_analyze_data_refs): Likewise. * tree-if-conv.c (if_convertible_loop_p_1): Use memset before creating dummy innermost behavior. From-SVN: r249914
2017-07-03Make dr_analyze_innermost operate on innermost_loop_behaviorRichard Sandiford4-13/+21
This means that callers to dr_analyze_innermost don't need a full data_reference and don't need to fill in any fields beforehand. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument with a "innermost_loop_behavior *" and refeence tree. * tree-data-ref.c (dr_analyze_innermost): Likewise. (create_data_ref): Update call accordingly. * tree-predcom.c (find_looparound_phi): Likewise. From-SVN: r249913
2017-07-03Require ifunc support in gcc.target/i386/mvc6.cRainer Orth2-0/+5
* gcc.target/i386/mvc6.c: Require ifunc support. From-SVN: r249912
2017-07-03Use innermost_loop_behavior for outer loop vectorisationRichard Sandiford6-115/+100
This patch replaces the individual stmt_vinfo dr_* fields with an innermost_loop_behavior, so that the changes in later patches get picked up automatically. It also adds a helper function for getting the behavior of a data reference wrt the vectorised loop. 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_* fields with dr_wrt_vec_loop. (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET) (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly. (STMT_VINFO_DR_WRT_VEC_LOOP): New macro. (vect_dr_behavior): New function. (vect_create_addr_base_for_vector_ref): Remove loop parameter. * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use vect_dr_behavior. Use a step_preserves_misalignment_p boolean to track whether the step preserves the misalignment. (vect_create_addr_base_for_vector_ref): Remove loop parameter. Use vect_dr_behavior. (vect_setup_realignment): Update call accordingly. (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior. * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update call to vect_create_addr_base_for_vector_ref. (vect_create_cond_for_align_checks): Likewise. * tree-vect-patterns.c (vect_recog_bool_pattern): Copy STMT_VINFO_DR_WRT_VEC_LOOP as a block. (vect_recog_mask_conversion_pattern): Likewise. * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior. (new_stmt_vec_info): Remove redundant zeroing. From-SVN: r249911
2017-07-03[arm] Clean up generation of BE8 format images.Richard Earnshaw7-84/+105
The existing code in arm/bpabi.h was quite fragile and relied on matching specific CPU and/or architecture names. The introduction of the option format for -mcpu and -march broke that in a way that would be non-trivial to fix by updating the list. The hook in that file was always a pain as it required every new CPU being added to be add an update here as well (easy to miss). I've fixed that problem once and for all by adding a new callback into the driver to select the correct BE8 behaviour. This uses features in the ISA capabilities list to select whether or not to use BE8 format during linking. I also noticed that if the user happened to pass both -mbig-endian and -mlittle-endian on the command line then the linker spec rules would get somewhat confused and potentially do the wrong thing. I've fixed that by marking these options as opposites in the option descriptions. The driver will now automatically suppress overridden options leading to the correct desired behavior. Whilst fixing this I noticed a couple of anomolus cases in the existing BE8 support: we were not generating BE8 format for ARMv6 or ARMv7-R targets. While the ARMv6 status was probably deliberate at the time, this is probably not a good idea in the long term as the alternative, BE32, has been deprecated by ARM. After discussion with a couple of colleagues I've decided to change this, but to then add an option to restore the existing behaviour at the user's option. So this patch introduces two new options (opposites) -mbe8 and -mbe32. This is a quiet behavior change, so I'll add a comment to the release notes shortly. * common/config/arm/arm-common.c (arm_be8_option): New function. * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8. (ISA_ARMv6): Add isa_bit_be8. * config/arm/arm.h (arm_be8_option): Add prototype. (BE8_SPEC_FUNCTION): New define. (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION. * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian. (mlittle-endian): Similarly. (mbe8, mbe32): New options. * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option. * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32. From-SVN: r249909
2017-07-03* tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.Jan Hubicka2-3/+12
From-SVN: r249908
2017-07-03tree-cfgcleanup.c (want_merge_blocks_p): New function.Jan Hubicka4-3/+49
* tree-cfgcleanup.c (want_merge_blocks_p): New function. (cleanup_tree_cfg_bb): Use it. * profile-count.h (profile_count::of_for_merging, profile_count::merge): New functions. * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge. From-SVN: r249907
2017-07-03re PR target/81285 (r249888 breaks bootstrap on ppc64le)Jan Hubicka2-5/+14
PR bootstrap/81285 * loop-doloop.c (add_test): Update profile. From-SVN: r249904
2017-07-03ASAN: handle addressable params (PR sanitize/81040).Martin Liska7-5/+244
2017-07-03 Martin Liska <mliska@suse.cz> PR sanitize/81040 * g++.dg/asan/function-argument-1.C: New test. * g++.dg/asan/function-argument-2.C: New test. * g++.dg/asan/function-argument-3.C: New test. 2017-07-03 Martin Liska <mliska@suse.cz> PR sanitize/81040 * sanopt.c (rewrite_usage_of_param): New function. (sanitize_rewrite_addressable_params): Likewise. (pass_sanopt::execute): Call rewrite_usage_of_param. From-SVN: r249903
2017-07-03tree-vect-loop.c (vect_create_epilog_for_reduction): Revert back to using ↵Richard Biener2-1/+7
VIEW_CONVERT_EXPR. 2017-07-03 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert back to using VIEW_CONVERT_EXPR. From-SVN: r249902
2017-07-03Make stack epilogue more efficientMartin Liska2-39/+47
2017-07-03 Martin Liska <mliska@suse.cz> * asan.c (asan_emit_stack_protection): Unpoison just red zones and shadow memory of auto variables which are subject of use-after-scope sanitization. (asan_expand_mark_ifn): Add do set only when is_poison. From-SVN: r249900
2017-07-03tree-vect-loop.c (vect_analyze_loop_operations): Also analyze reduction PHIs.Richard Biener5-87/+179
2016-07-03 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze reduction PHIs. (vect_force_simple_reduction): Record reduction def -> phi mapping. (vectorizable_reduction): Perform reduction PHI creation when visiting a reduction PHI and adjust and simplify code generation phase of the reduction op. Cache dts, use fold_binary, not fold_build2. (vect_transform_loop): Visit reduction PHIs. * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction defs into the SLP tree. (vect_build_slp_tree): Reduction defs terminate the recursion. * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup of reduction defs. (vect_get_vec_defs_for_stmt_copy): Export. (vect_get_vec_defs): Likewise. * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def purpose. (vect_get_vec_defs_for_stmt_copy): Declare. (vect_get_vec_defs): Likewise. From-SVN: r249897
2017-07-03Tweak BB analysis for dr_analyze_innermostRichard Sandiford4-38/+44
dr_analyze_innermost had a "struct loop *nest" parameter that acted like a boolean. This was added in r179161, with the idea that a null nest selected BB-level analysis rather than loop analysis. The handling seemed strange though. If the DR was part of a loop, we still tried to express the base and offset values as IVs, potentially giving a nonzero step. If that failed for any reason, we'd revert to using the original base and offset, just as we would if we hadn't asked for an IV in the first place. It seems more natural to use the !in_loop handling whenever nest is null and always set the step to zero. This actually enables one more SLP opportunity in bb-slp-pr65935.c. I checked out r179161 and tried the patch there. The test case added in that revision still passes, so I don't think there was any particular need to check simple_iv. 2017-06-28 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.c (dr_analyze_innermost): Replace the "nest" parameter with a "loop" parameter and use it instead of the loop containing DR_STMT. Don't check simple_iv when doing BB analysis. Describe the two analysis modes in the comment. gcc/testsuite/ * gcc.dg/vect/bb-slp-pr65935.c: Expect SLP to be used in main as well. From-SVN: r249896
2017-07-03Ignore EDGE_{DFS_BACK,EXECUTABLE} in tail-mergeTom de Vries4-2/+15
2017-07-03 Tom de Vries <tom@codesourcery.com> PR tree-optimization/69468 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant. (find_same_succ_bb): Handle ignore_edge_flags. * gcc.dg/pr81192.c: Update. From-SVN: r249895
2017-07-03Don't tail-merge blocks from different loopsTom de Vries4-10/+21
2017-07-03 Tom de Vries <tom@codesourcery.com> PR tree-optimization/81192 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in hash. (same_succ::equal): Don't find bbs to be equal if bb->loop_father differs. (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch. * gcc.dg/pr81192.c: Update. From-SVN: r249894
2017-07-03Fix sigsegv in find_same_succ_bbTom de Vries4-0/+36
2017-07-03 Tom de Vries <tom@codesourcery.com> PR tree-optimization/81192 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle BB_SAME_SUCC (bb) == NULL. * gcc.dg/pr81192.c: New test. From-SVN: r249893
2017-07-03Daily bump.GCC Administrator1-1/+1
From-SVN: r249892
2017-07-02cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability consistency.Jan Hubicka2-6/+9
* cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability consistency. From-SVN: r249888
2017-07-02dumpfile.c: Include profile-count.hJan Hubicka6-8/+33
* dumpfile.c: Include profile-count.h * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes; update profile. (insert_cond_bb): Update profile. * tree-cfg.h (insert_cond_bb): Update prototype. * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update. * tree-dump.c: Do not include tree-cfg. From-SVN: r249887
2017-07-02* bb-reorder.c (fix_up_crossing_landing_pad): Update profile.Jan Hubicka2-0/+6
From-SVN: r249886
2017-07-02expect.c (dw2_build_landing_pads): Update profile of the landing pad bb.Jan Hubicka2-0/+7
* expect.c (dw2_build_landing_pads): Update profile of the landing pad bb. From-SVN: r249885