summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* i386: Avoid stack realignment if possiblehjl/pr81313/masterH.J. Lu2017-08-062-30/+56
| | | | | | | | | | | | | | | | | | | | Since DRAP isn't used with -maccumulate-outgoing-args, pr59501-4a.c was xfailed due to stack frame access via frame pointer instead of DARP. This patch finds the maximum stack alignment from the stack frame access instructions and avoids stack realignment if stack alignment needed is less than or equal to incoming stack boundary. gcc/ PR target/59501 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Don't realign stack if stack alignment needed is less than incoming stack boundary. gcc/testsuite/ PR target/59501 * gcc.target/i386/pr59501-4a.c: Remove xfail.
* Add missing edge probabilities in expand_oacc_for, tile casevries2017-08-062-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ;; basic block 11, loop depth 2, freq 0, maybe hot ;; prev block 22, next block 23, flags: (NEW, REACHABLE) ;; pred: 22 (TRUE_VALUE) ;; 24 (TRUE_VALUE) ... if (.e_offset.15D.1971 < .e_bound.14D.1972) - goto <bb 23>; [100.00%] [count: INV] + goto <bb 23>; [80.01%] [count: INV] else - goto <bb 24>; [INV] [count: INV] + goto <bb 24>; [19.99%] [count: INV] ;; basic block 23, loop depth 3, freq 0, maybe hot ;; prev block 11, next block 24, flags: (NEW) ;; pred: 11 [always] (TRUE_VALUE) ;; 23 (TRUE_VALUE) ixD.1974 = .outer.4D.1967 + .e_offset.15D.1971; .e_offset.15D.1971 = .e_offset.15D.1971 + .e_step.16D.1973; if (.e_offset.15D.1971 < .e_bound.14D.1972) - goto <bb 23>; [INV] [count: INV] + goto <bb 23>; [80.01%] [count: INV] else - goto <bb 24>; [100.00%] [count: INV] + goto <bb 24>; [19.99%] [count: INV] 2017-08-06 Tom de Vries <tom@codesourcery.com> * omp-expand.c (expand_oacc_for): Add missing edge probability for tile and element loops. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250900 138bc75d-0d04-0410-961f-82ee72b054a4
* Add missing edge probability in expand_oacc_forvries2017-08-062-1/+8
| | | | | | | | | | | | | | | | | | | | | | ;; basic block 10, loop depth 1, freq 0, maybe hot ;; prev block 9, next block 19, flags: (NEW, REACHABLE) ;; pred: 18 (FALSE_VALUE) ;; 9 (FALSE_VALUE) GIMPLE_NOP .chunk_no.7D.1948 = .chunk_no.7D.1948 + 1; if (.chunk_no.7D.1948 < .chunk_max.6D.1949) - goto <bb 18>; [INV] [count: INV] + goto <bb 18>; [80.01%] [count: INV] else - goto <bb 19>; [100.00%] [count: INV] + goto <bb 19>; [19.99%] [count: INV] 2017-08-06 Tom de Vries <tom@codesourcery.com> * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250899 138bc75d-0d04-0410-961f-82ee72b054a4
* Require nonlocal_goto for gcc.dg/pr78582.cvries2017-08-062-0/+5
| | | | | | | | 2017-08-06 Tom de Vries <tom@codesourcery.com> * gcc.dg/pr78582.c: Require effective target nonlocal_goto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250898 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix my_memmove in gcc.c-torture/execute/builtins/memops-asm-lib.cvries2017-08-062-1/+8
| | | | | | | | | 2017-08-06 Tom de Vries <tom@codesourcery.com> * gcc.c-torture/execute/builtins/memops-asm-lib.c (my_memmove): Fix return type. Add missing return. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250897 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix call arguments mismatch in gcc.dg/torture/pr78218.cvries2017-08-062-4/+16
| | | | | | | | | | | | | 2017-08-06 Tom de Vries <tom@codesourcery.com> PR testsuite/81731 * gcc.dg/torture/pr78218.c (struct v): New type, factored type out of variable 'a' definition. (b): Remove unused variable. (gp): New variable. (check): Add parameter corresponding to call in main, and handle. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250896 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250894 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-ada-spec.c (has_static_fields): Look only into variables.ebotcazou2017-08-052-15/+24
| | | | | | | | | | | | (print_constructor): Add TYPE parameter and use it for the name. (print_destructor): Likewise. (print_ada_declaration): Adjust to new constructor/destructor names. Adjust calls to print_constructor and print_destructor. (print_ada_struct_decl): Do not test TREE_STATIC on FIELD_DECL. Look only into variables in the final loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250890 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-051-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250889 138bc75d-0d04-0410-961f-82ee72b054a4
* Regenerate .pot files.jsm282017-08-044-9325/+10250
| | | | | | | | | | | gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250885 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2017-08-042-1/+11
| | | | | | | | | | | | | | | | | | 2017-08-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79790 * pt.c (do_class_deduction): Handle the case of no viable implicit deduction guides; simplify the code generating implicit deduction guides. /testsuite 2017-08-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79790 * g++.dg/cpp1z/class-deduction42.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250883 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2017-08-043-5/+19
| | | | | | | | | | | | | | | | | | 2017-08-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79790 * pt.c (do_class_deduction): Handle the case of no viable implicit deduction guides; simplify the code generating implicit deduction guides. /testsuite 2017-08-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79790 * g++.dg/cpp1z/class-deduction42.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250882 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove useless floating point casts in comparisons.ygribov2017-08-048-0/+541
| | | | | | | | | | | | | | | | | | | | 2017-08-04 Yury Gribov <tetra2005@gmail.com> PR tree-optimization/57371 gcc/ * match.pd: New pattern. gcc/testsuite/ * c-c++-common/pr57371-1.c: New test. * c-c++-common/pr57371-2.c: New test. * c-c++-common/pr57371-3.c: New test. * c-c++-common/pr57371-4.c: New test. * gcc.dg/pr57371-5.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250877 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/ChangeLog:carll2017-08-043-33/+41
| | | | | | | | | | | | 2017-08-04 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-3.c: Remove ISA 3.0 word variant builtin test cases for vec_mule, and vec_mulo. * gcc.target/powerpc/builtins-3-p8.c: Add ISA 3.0 word variant builtin test cases for vec_mule, and vec_mulo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250876 138bc75d-0d04-0410-961f-82ee72b054a4
* i386: Rewrite check for AVX512 featureshjl2017-08-0415-576/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new file, avx512-check.h, to check all AVX512 features. The test is skipped if any requested AVX512 features are unavailable. PR target/81590 * gcc.target/i386/avx512-check.h: New file. * gcc.target/i386/avx5124fmaps-check.h: Removed. * gcc.target/i386/avx5124vnniw-check.h: Likewise. * gcc.target/i386/avx512cd-check.h: Likewise. * gcc.target/i386/avx512ifma-check.h: Likewise. * gcc.target/i386/avx512vbmi-check.h: Likewise. * gcc.target/i386/avx512vpopcntdq-check.h: Likewise. * gcc.target/i386/avx512bw-check.h: Rewrite. * gcc.target/i386/avx512dq-check.h: Likewise. * gcc.target/i386/avx512er-check.h: Likewise. * gcc.target/i386/avx512f-check.h: Likewise. * gcc.target/i386/avx512vl-check.h: Likewise. * gcc.target/i386/avx512f-helper.h: Include "avx512-check.h" only. (test_512): Removed. (avx512*_test): Likewise. * gcc.target/i386/avx512f-pr71559.c (TEST): Undef. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250875 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix PR 81713visit0r2017-08-043-17/+19
| | | | | | | | | | * brigfrontend/brig-basic-inst-handler.cc: replace build_int_cst with bitsize_int in building BIT_FIELD_REF. * brigfrontend/brig-code-entry-handler.cc: likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250874 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: dump registers for Alphaian2017-08-042-1/+42
| | | | | | | | | Patch from Uros Bizjak. Reviewed-on: https://go-review.googlesource.com/53350 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250873 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/81695mpolacek2017-08-044-8/+37
| | | | | | | | | | * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1], perform the computation in offset_int. * gcc.dg/pr81695.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250871 138bc75d-0d04-0410-961f-82ee72b054a4
* Pool alignment information for common basesrsandifo2017-08-049-14/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a follow-on to the fix for PR81136. The testcase for that PR shows that we can (correctly) calculate different base alignments for two data_references but still tell that their misalignments wrt the vector size are equal. This is because we calculate the base alignments for each dr individually, without looking at the other drs, and in general the alignment we calculate is only guaranteed if the dr's DR_REF actually occurs. This is working as designed, but it does expose a missed opportunity. We know that if a vectorised loop is reached, all statements in that loop execute at least once, so it should be safe to pool the alignment information for all the statements we're vectorising. The only catch is that DR_REFs for masked loads and stores only occur if the mask value is nonzero. For example, in: struct s __attribute__((aligned(32))) { int misaligner; int array[N]; }; int *ptr; for (int i = 0; i < n; ++i) ptr[i] = c[i] ? ((struct s *) (ptr - 1))->array[i] : 0; we can only guarantee that ptr points to a "struct s" if at least one c[i] is true. This patch adds a DR_IS_CONDITIONAL_IN_STMT flag to record whether the DR_REF is guaranteed to occur every time that the statement executes to completion. It then pools the alignment information for references that aren't conditional in this sense. 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/81136 * tree-vectorizer.h: Include tree-hash-traits.h. (vec_base_alignments): New typedef. (vec_info): Add a base_alignments field. (vect_record_base_alignments): Declare. * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt field. (DR_IS_CONDITIONAL_IN_STMT): New macro. (create_data_ref): Add an is_conditional_in_stmt argument. * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize the is_conditional_in_stmt field. (data_ref_loc): Add an is_conditional_in_stmt field. (get_references_in_stmt): Set the is_conditional_in_stmt field. (find_data_references_in_stmt): Update call to create_data_ref. (graphite_find_data_references_in_stmt): Likewise. * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. (vect_record_base_alignment): New function. (vect_record_base_alignments): Likewise. (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to for nested statements even if we fail to compute a misalignment. Use pooled base alignments for unconditional references. (vect_find_same_alignment_drs): Compare base addresses instead of base objects. (vect_analyze_data_refs_alignment): Call vect_record_base_alignments. * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise. gcc/testsuite/ PR tree-optimization/81136 * gcc.dg/vect/pr81136.c: Add scan test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250870 138bc75d-0d04-0410-961f-82ee72b054a4
* C++-ify vec_info structuresrsandifo2017-08-046-178/+154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch uses new, delete, constructors and desctructors to manage vec_info. This includes making ~vec_info free all the data shared by bb_vec_info and loop_vec_info, whereas previously the code was duplicated in destroy_bb_vec_info and destroy_loop_vec_info. This in turn meant changing the order of: FOR_EACH_VEC_ELT (slp_instances, i, instance) vect_free_slp_instance (instance); and: gimple_set_uid (stmt, -1); in destroy_bb_vec_info/~_bb_vec_info, so that now vect_free_slp_instance could see a uid of -1 as well as 0. The patch updates vinfo_for_stmt so that it returns NULL for a uid of -1. 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vectorizer.h (vec_info): Add a constructor and destructor. Add an explicit name for the enum. Use auto_vec for slp_instances and grouped_stores. (_loop_vec_info): Add a constructor and destructor. Use auto_vec for all vectors. (_bb_vec_info): Add a constructor and destructor. (vinfo_for_stmt): Return NULL for uids of -1 as well. (destroy_loop_vec_info): Delete. (vect_destroy_datarefs): Likewise. * tree-vectorizer.c (vect_destroy_datarefs): Delete. (vec_info::vec_info): New function. (vec_info::~vec_info): Likewise. (vectorize_loops): Use delete instead of destroy_loop_vec_info. * tree-parloops.c (gather_scalar_reductions): Use delete instead of destroy_loop_vec_info. * tree-vect-loop.c (new_loop_vec_info): Replace with... (_loop_vec_info::_loop_vec_info): ...this. (destroy_loop_vec_info): Replace with... (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete the stmt_vec_infos. Leave handling of vec_info information to its destructor. Remove explicit vector releases. (vect_analyze_loop_form): Use new instead of new_loop_vec_info. (vect_analyze_loop): Use delete instead of destroy_loop_vec_info. * tree-vect-slp.c (new_bb_vec_info): Replace with... (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES. (destroy_bb_vec_info): Replace with... (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info information to its destructor. (vect_slp_analyze_bb_1): Use new and delete instead of new_bb_vec_info and destroy_bb_vec_info. (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a single delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250869 138bc75d-0d04-0410-961f-82ee72b054a4
* Use base inequality for some vector alias checksrsandifo2017-08-048-14/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch checks whether two data references x and y cannot partially overlap and so are independent whenever &x != &y. We can then use this in the vectoriser to optimise alias checks. gcc/ 2016-08-04 Richard Sandiford <richard.sandiford@linaro.org> * hash-traits.h (pair_hash): New struct. * tree-data-ref.h (data_dependence_relation): Add object_a and object_b fields. (DDR_OBJECT_A, DDR_OBJECT_B): New macros. * tree-data-ref.c (initialize_data_dependence_relation): Initialize DDR_OBJECT_A and DDR_OBJECT_B. * tree-vectorizer.h (vec_object_pair): New type. (_loop_vec_info): Add a check_unequal_addrs field. (LOOP_VINFO_CHECK_UNEQUAL_ADDRS): New macro. (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Return true if there is an entry in check_unequal_addrs. Check comp_alias_ddrs instead of may_alias_ddrs. * tree-vect-loop.c (destroy_loop_vec_info): Release LOOP_VINFO_CHECK_UNEQUAL_ADDRS. (vect_analyze_loop_2): Likewise, when restarting. (vect_estimate_min_profitable_iters): Estimate the cost of LOOP_VINFO_CHECK_UNEQUAL_ADDRS. * tree-vect-data-refs.c: Include tree-hash-traits.h. (vect_prune_runtime_alias_test_list): Try to handle conflicts using LOOP_VINFO_CHECK_UNEQUAL_ADDRS, if the data dependence allows. Count such tests in the final summary. * tree-vect-loop-manip.c (chain_cond_expr): New function. (vect_create_cond_for_align_checks): Use it. (vect_create_cond_for_unequal_addrs): New function. (vect_loop_versioning): Call it. gcc/testsuite/ * gcc.dg/vect/vect-alias-check-6.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250868 138bc75d-0d04-0410-961f-82ee72b054a4
* Handle data dependence relations with different basesrsandifo2017-08-0410-108/+726
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch tries to calculate conservatively-correct distance vectors for two references whose base addresses are not the same. It sets a new flag DDR_COULD_BE_INDEPENDENT_P if the dependence isn't guaranteed to occur. The motivating example is: struct s { int x[8]; }; void f (struct s *a, struct s *b) { for (int i = 0; i < 8; ++i) a->x[i] += b->x[i]; } in which the "a" and "b" accesses are either independent or have a dependence distance of 0 (assuming -fstrict-aliasing). Neither case prevents vectorisation, so we can vectorise without an alias check. I'd originally wanted to do the same thing for arrays as well, e.g.: void f (int a[][8], struct b[][8]) { for (int i = 0; i < 8; ++i) a[0][i] += b[0][i]; } I think this is valid because C11 6.7.6.2/6 says: For two array types to be compatible, both shall have compatible element types, and if both size specifiers are present, and are integer constant expressions, then both size specifiers shall have the same constant value. So if we access an array through an int (*)[8], it must have type X[8] or X[], where X is compatible with int. It doesn't seem possible in either case for "a[0]" and "b[0]" to overlap when "a != b". However, as the comment above "if (same_base_p)" explains, GCC is more forgiving: it supports arbitrary overlap of arrays and allows arrays to be accessed with different dimensionality. There are examples of this in PR50067. The patch therefore only handles references that end in a structure field access. There are two ways of handling these dependences in the vectoriser: use them to limit VF, or check at runtime as before. I've gone for the approach of checking at runtime if we can, to avoid limiting VF unnecessarily, but falling back to a VF cap when runtime checks aren't allowed. The patch tests whether we queued an alias check with a dependence distance of X and then picked a VF <= X, in which case it's safe to drop the alias check. Since vect_prune_runtime_alias_check_list can be called twice with different VF for the same loop, it's no longer safe to clear may_alias_ddrs on exit. Instead we should use comp_alias_ddrs to check whether versioning is necessary. 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-data-ref.h (subscript): Add access_fn field. (data_dependence_relation): Add could_be_independent_p. (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros. (same_access_functions): Move to tree-data-ref.c. * tree-data-ref.c (ref_contains_union_access_p): New function. (access_fn_component_p): Likewise. (access_fn_components_comparable_p): Likewise. (dr_analyze_indices): Add a reference to access_fn_component_p. (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of DR_ACCESS_FN. (constant_access_functions): Likewise. (add_other_self_distances): Likewise. (same_access_functions): Likewise. (Moved from tree-data-ref.h.) (initialize_data_dependence_relation): Use XCNEW and remove explicit zeroing of DDR_REVERSED_P. Look for a subsequence of access functions that have the same type. Allow the subsequence to end with different bases in some circumstances. Record the chosen access functions in SUB_ACCESS_FN. (build_classic_dist_vector_1): Replace ddr_a and ddr_b with a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN. (subscript_dependence_tester_1): Likewise dra and drb. (build_classic_dist_vector): Update calls accordingly. (subscript_dependence_tester): Likewise. * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check DDR_COULD_BE_INDEPENDENT_P. * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test comp_alias_ddrs instead of may_alias_ddrs. * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): New function. (vect_analyze_data_ref_dependence): Use it if DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded distance vectors if that fails. (dependence_distance_ge_vf): New function. (vect_prune_runtime_alias_test_list): Use it. Don't clear LOOP_VINFO_MAY_ALIAS_DDRS. gcc/testsuite/ * gcc.dg/vect/vect-alias-check-3.c: New test. * gcc.dg/vect/vect-alias-check-4.c: Likewise. * gcc.dg/vect/vect-alias-check-5.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250867 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-04 Richard Biener <rguenther@suse.de>rguenth2017-08-044-4/+29
| | | | | | | | | | | | PR middle-end/81705 * fold-const.c (fold_binary_loc): Properly restrict minus_var0 && minus_var1 case when associating undefined overflow entities. * c-c++-common/ubsan/pr81705.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250866 138bc75d-0d04-0410-961f-82ee72b054a4
* Add missing edge probability in simd_clone_adjustvries2017-08-042-2/+9
| | | | | | | | | | | | | | | | | | | | | | Currently we generate an if with probability set on only one of the two edges: <bb 5> [0.00%] [count: INV]: _5 = mask.3[iter.6_3]; if (_5 == 0) goto <bb 6>; [INV] [count: INV] else goto <bb 2>; [100.00%] [count: INV] Add the missing edge probability, and set the split to unlikely/likely: if (_5 == 0) goto <bb 6>; [19.99%] [count: INV] else goto <bb 2>; [80.01%] [count: INV] 2017-08-04 Tom de Vries <tom@codesourcery.com> * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250865 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-041-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250864 138bc75d-0d04-0410-961f-82ee72b054a4
* [gcc]wschmidt2017-08-0361-82/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Don't start diagnostic messages with a capital letter. * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. (rs6000_invalid_builtin): Likewise. (rs6000_trampoline_init): Likewise. [gcc/testsuite] 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: Adjust for error messages that used to start with a capital letter. * gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: Likewise. * gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: Likewise. * gcc.target/powerpc/bfp/scalar-cmp-unordered-2.c: Likewise. * gcc.target/powerpc/bfp/scalar-extract-exp-1.c: Likewise. * gcc.target/powerpc/bfp/scalar-extract-exp-4.c: Likewise. * gcc.target/powerpc/bfp/scalar-extract-sig-1.c: Likewise. * gcc.target/powerpc/bfp/scalar-extract-sig-4.c: Likewise. * gcc.target/powerpc/bfp/scalar-insert-exp-1.c: Likewise. * gcc.target/powerpc/bfp/scalar-insert-exp-10.c: Likewise. * gcc.target/powerpc/bfp/scalar-insert-exp-4.c: Likewise. * gcc.target/powerpc/bfp/scalar-insert-exp-7.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-11.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise. * gcc.target/powerpc/bfp/scalar-test-neg-5.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise. * gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise. * gcc.target/powerpc/bfp/vec-insert-exp-2.c: Likewise. * gcc.target/powerpc/bfp/vec-insert-exp-3.c: Likewise. * gcc.target/powerpc/bfp/vec-insert-exp-6.c: Likewise. * gcc.target/powerpc/bfp/vec-insert-exp-7.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise. * gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise. * gcc.target/powerpc/byte-in-either-range-1.c: Likewise. * gcc.target/powerpc/byte-in-range-1.c: Likewise. * gcc.target/powerpc/byte-in-set-1.c: Likewise. * gcc.target/powerpc/crypto-builtin-2.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-1.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-11.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-16.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-21.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-26.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-31.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-36.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-41.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-46.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-51.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-56.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-6.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-61.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-66.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-71.c: Likewise. * gcc.target/powerpc/dfp/dtstsfi-76.c: Likewise. * gcc.target/powerpc/vsu/vec-all-nez-7.c: Likewise. * gcc.target/powerpc/vsu/vec-any-eqz-7.c: Likewise. * gcc.target/powerpc/vsu/vec-cmpnez-7.c: Likewise. * gcc.target/powerpc/vsu/vec-cntlz-lsbb-2.c: Likewise. * gcc.target/powerpc/vsu/vec-cnttz-lsbb-2.c: Likewise. * gcc.target/powerpc/vsu/vec-xl-len-12.c: Likewise. * gcc.target/powerpc/vsu/vec-xlx-7.c: Likewise. * gcc.target/powerpc/vsu/vec-xrx-7.c: Likewise. * gcc.target/powerpc/vsu/vec-xst-len-12.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250860 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/81617ian2017-08-032-1/+14
| | | | | | | | | | | | libgo: change mksigtab to recognize glibc 2.26 NSIG expression Fixes golang/go#21147 Fixes GCC PR 81617 Reviewed-on: https://go-review.googlesource.com/52611 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250858 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/81621jakub2017-08-034-5/+23
| | | | | | | | | | * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish after setting changeable df flags. * gcc.dg/pr81621.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250857 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-03 Richard Biener <rguenther@suse.de>rguenth2017-08-032-4/+11
| | | | | | | | | | * lto-symtab.h (lto_symtab_prevail_decl): Do not use DECL_ABSTRACT_ORIGIN as flag we can end up using that. Instead use DECL_LANG_FLAG_0. (lto_symtab_prevail_decl): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250856 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-03 Richard Biener <rguenther@suse.de>rguenth2017-08-034-4/+17
| | | | | | | | | | | * tree-ssa-reassoc.c (should_break_up_subtract): Also break up if the use is in USE - X. * gcc.dg/tree-ssa/reassoc-23.c: Adjust to fool early folding and CSE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250855 138bc75d-0d04-0410-961f-82ee72b054a4
* toplev: avoid recursive emergency_dump_functionamonakov2017-08-032-0/+18
| | | | | | | | | * toplev.c (dumpfile.h): New include. (internal_error_reentered): New static function. Use it... (internal_error_function): ...here to handle reentered internal_error. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250854 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-03 Richard Biener <rguenther@suse.de>rguenth2017-08-034-52/+112
| | | | | | | | | | | | | | | | PR middle-end/81148 * fold-const.c (split_tree): Add minus_var and minus_con arguments, remove unused loc arg. Never generate NEGATE_EXPRs here but always use minus_*. (associate_trees): Assert we never associate with MINUS_EXPR and NULL first operand. Do not recurse for PLUS_EXPR operands when associating as MINUS_EXPR either. (fold_binary_loc): Track minus_var and minus_con. * c-c++-common/ubsan/pr81148.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250853 138bc75d-0d04-0410-961f-82ee72b054a4
* Apply finish_options on DECL_FUNCTION_SPECIFIC_OPTIMIZATION for ACCEL_COMPILERvries2017-08-032-0/+23
| | | | | | | | | | | 2017-08-03 Tom de Vries <tom@codesourcery.com> PR lto/81430 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If ACCEL_COMPILER, apply finish_options on DECL_FUNCTION_SPECIFIC_OPTIMIZATION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250852 138bc75d-0d04-0410-961f-82ee72b054a4
* Error out on nvptx for fpatchable-function-entryvries2017-08-034-0/+30
| | | | | | | | | | | | 2017-08-03 Tom de Vries <tom@codesourcery.com> PR target/81662 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if function_entry_patch_area_size > 0. * gcc.target/nvptx/patchable_function_entry-default.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250851 138bc75d-0d04-0410-961f-82ee72b054a4
* PR driver/81650jakub2017-08-034-12/+38
| | | | | | | | | | | | * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??) instead of 10??LU, perform unit multiplication in wide_int, don't change alloc_object_size_limit if the limit is larger than SSIZE_MAX. * gcc.dg/pr81650.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250850 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/81655jakub2017-08-032-4/+21
| | | | | | | | | | PR tree-optimization/81588 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also the case when ranges[i].low and high are 1 for unsigned type with precision 1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250849 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2017-08-034-3/+36
| | | | | | | | | | | | | | | | | 2017-08-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71440 * typeck.c (build_x_unary_op): Avoid pretty-printing constructor / destructor as expressions. /testsuite 2017-08-03 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71440 * g++.dg/template/crash127.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250848 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/81052jakub2017-08-034-2/+41
| | | | | | | | | | * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp. (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd. * c-c++-common/pr81052.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250847 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>prathamesh34922017-08-032-0/+8
| | | | | | | * tree-vrp.h: Add include guard. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250846 138bc75d-0d04-0410-961f-82ee72b054a4
* Require alias for gcc.dg/pr56727-2.cvries2017-08-032-0/+5
| | | | | | | | 2017-08-03 Tom de Vries <tom@codesourcery.com> * gcc.dg/pr56727-2.c: Require alias. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250845 138bc75d-0d04-0410-961f-82ee72b054a4
* Require alloca for gcc.dg/attr-noipa.cvries2017-08-032-0/+5
| | | | | | | | 2017-08-03 Tom de Vries <tom@codesourcery.com> * gcc.dg/attr-noipa.c: Require alloca. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250844 138bc75d-0d04-0410-961f-82ee72b054a4
* Require label_values for gcc.dg/torture/pr80163.cvries2017-08-032-0/+5
| | | | | | | | 2017-08-03 Tom de Vries <tom@codesourcery.com> * gcc.dg/torture/pr80163.c: Require label_values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250843 138bc75d-0d04-0410-961f-82ee72b054a4
* Skip fpatchable-function-entry tests for nvptxvries2017-08-034-3/+10
| | | | | | | | | | | 2017-08-03 Tom de Vries <tom@codesourcery.com> PR target/81662 * c-c++-common/patchable_function_entry-decl.c: Skip for nvptx. * c-c++-common/patchable_function_entry-default.c: Same. * c-c++-common/patchable_function_entry-definition.c: Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250842 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250841 138bc75d-0d04-0410-961f-82ee72b054a4
* Added Python implementation of mklog.ygribov2017-08-022-0/+474
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250836 138bc75d-0d04-0410-961f-82ee72b054a4
* Renamed original mklog to mklog.pl.ygribov2017-08-022-0/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250835 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: only finalize embedded fields before finalizing methodsian2017-08-022-8/+35
| | | | | | | | | | | | | | When finalizing the methods of a named struct type, we used to finalize all the field types first. That can fail if the field types refer indirectly to the named type. Change it to just finalize the embedded field types first, and the rest of the fields later. Fixes golang/go#21253 Reviewed-on: https://go-review.googlesource.com/52570 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250832 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog: Fix my last entry.uros2017-08-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250831 138bc75d-0d04-0410-961f-82ee72b054a4
* PR target/81644uros2017-08-025-1/+42
| | | | | | | | | | | | | | | | * config/i386/i386.md (unspecv): Add UNSPECV_UD2. (ud2): New insn pattern. * config/i386/i386.c (ix86_expand_epilogue): Generate ud2 instead of trap insn. testsuite/ChangeLog: PR target/81644 * gcc.target/i386/pr81644.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250830 138bc75d-0d04-0410-961f-82ee72b054a4
* PR other/81667mpolacek2017-08-022-2/+8
| | | | | | | * alloc-pool.h (base_pool_allocator): Initialize m_elt_size. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@250829 138bc75d-0d04-0410-961f-82ee72b054a4