- 07 Aug, 2017 17 commits
-
-
2017-08-07 Tom de Vries <tom@codesourcery.com> PR middle-end/78266 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough. * testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail. From-SVN: r250925
Tom de Vries committed -
2017-08-07 Martin Liska <mliska@suse.cz> * config/mips/mips.c: Include attribs.h. From-SVN: r250924
Martin Liska committed -
2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68829 * doc/invoke.texi: Document change in behvaior for -Ofast for Fortran. 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68829 PR fortran/81701 * options.c: Make -Ofast honor -fmax-stack-var-size. * invoke.texi: Document change. 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68829 PR fortran/81701 * gfortran.dg/o_fast_stacksize.90: New test. From-SVN: r250923
Thomas Koenig committed -
From-SVN: r250921
Joseph Myers committed -
* c-ada-spec.c (has_nontrivial_methods): Test for FUNCTION_DECL. (print_ada_methods): Likewise. (print_ada_declaration): Likewise. From-SVN: r250920
Eric Botcazou committed -
The frame code uses a mixture of gen_rtx_MEM and gen_frame_mem for callee-saves. Callee-saves never alias with local variables, so using gen_frame_mem is best. gcc/ * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): Use gen_frame_mem. (aarch64_pop_regs): Likewise. (aarch64_gen_load_pair): Likewise. (aarch64_save_callee_saves): Likewise. (aarch64_restore_callee_saves): Likewise. From-SVN: r250919
Wilco Dijkstra committed -
Build only if pre-increment is supported. Given there is no config test, add a list of targets which have HAVE_PRE_INCREMENT set. testsuite/ PR middle-end/46932 * gcc.dg/pr46932.c: Compile on targets with pre-increment. From-SVN: r250918
Wilco Dijkstra committed -
From-SVN: r250917
H.J. Lu committed -
When there is no stack access, there is no need to use frame pointer even if -fno-omit-frame-pointer is used. gcc/ PR target/81736 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed to ... (ix86_finalize_stack_frame_flags): This. Also clear frame_pointer_needed if -fno-omit-frame-pointer is used without stack access. (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags with ix86_finalize_stack_frame_flags. (ix86_expand_epilogue): Likewise. (ix86_expand_split_stack_prologue): Likewise. gcc/testsuite/ PR target/81736 * gcc.target/i386/pr81736-1.c: New test. * gcc.target/i386/pr81736-2.c: Likewise. * gcc.target/i386/pr81736-3.c: Likewise. * gcc.target/i386/pr81736-4.c: Likewise. From-SVN: r250916
H.J. Lu committed -
The difference between Nehalem and Westmere is AES. We should set priority to P_AES for Westmere, not P_PROC_SSE4_2 which is for Nehalem. Otherwise, we will pick Nehalem implementation on Westmere. Tested on Westmere. PR target/81743 * config/i386/i386.c (get_builtin_code_for_version): Set priority to P_AES for Westmere. From-SVN: r250915
H.J. Lu committed -
This patch is in use by Cygwin for years, upstream to GCC. * gcc/config/i386/mingw.opt (fset-stack-executable): Removed. * gcc/config/i386/cygming.opt (fset-stack-executable): Moved from mingw.opt. * gcc/config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED. * ligcc/config.host (*-cygwin): Include file from mingw config/i386/enable-execute-stack-mingw32.c From-SVN: r250914
Jonathan Yong committed -
Slim RTL dumps print the RTL code NOT as !, but that is misleading: its semantics are like the C operator ~. This fixes it. * print-rtl.c (print_exp): Print NOT as "~" instead of as "!". From-SVN: r250913
Segher Boessenkool committed -
PR middle-end/81737 * fold-const.c (fold_indirect_ref_1): Check type_domain. * gcc.dg/pr81737.c: New test. From-SVN: r250912
Marek Polacek committed -
2017-08-07 Martin Liska <mliska@suse.cz> * attribs.h (canonicalize_attr_name): New function. (cmp_attribs): Move from c-format.c and adjusted. (is_attribute_p): Moved from tree.h. * tree-inline.c: Add new includes. * tree.c (cmp_attrib_identifiers): Use cmp_attribs. (private_is_attribute_p): Remove. (private_lookup_attribute): Likewise. (private_lookup_attribute_by_prefix): Simplify. (remove_attribute): Use is_attribute_p. * tree.h: Remove removed declarations. 2017-08-07 Martin Liska <mliska@suse.cz> * array-notation-common.c: Add new includes. * c-format.c( handle_format_attribute): Canonicalize a format function name. * c-lex.c (c_common_has_attribute): Canonicalize name of an attribute. * c-pretty-print.c: Add new include. 2017-08-07 Martin Liska <mliska@suse.cz> * parser.c (cp_parser_gnu_attribute_list): Canonicalize name of an attribute. (cp_parser_std_attribute): Likewise. * tree.c: Add new include. 2017-08-07 Martin Liska <mliska@suse.cz> * c-parser.c (c_parser_attributes): Canonicalize name of an attribute. 2017-08-07 Martin Liska <mliska@suse.cz> * go-gcc.cc (Gcc_backend::function): Look up for no_split_stack and not __no_split_stack__. 2017-08-07 Martin Liska <mliska@suse.cz> * g++.dg/cpp0x/pr65558.C: Update scanned pattern. * gcc.dg/parm-impl-decl-1.c: Likewise. * gcc.dg/parm-impl-decl-3.c: Likewise. * gcc.dg/Wattributes-5.c: New test. From-SVN: r250911
Martin Liska committed -
From-SVN: r250910
Jakub Jelinek committed -
PR middle-end/81698 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument, instead of computing it in the function. Formatting fix. (expand_case): Don't rely on default_edge being the first edge, clear it if removing it, pass default_edge to emit_case_dispatch_table. (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting fix. From-SVN: r250909
Jakub Jelinek committed -
From-SVN: r250908
GCC Administrator committed
-
- 06 Aug, 2017 10 commits
-
-
2017-08-06 Andrew Pinski <apinski@cavium.com> * gcc.target/aarch64/target_attr_10.c: Add -mcpu=generic. * gcc.target/aarch64/target_attr_13.c: LIkewise. * gcc.target/aarch64/target_attr_15.c: LIkewise. * gcc.target/aarch64/target_attr_4.c: Likewise. * gcc.target/aarch64/target_attr_1.c: Add -march=armv8-a. * gcc.target/aarch64/target_attr_2.c: Likewise. * gcc.target/aarch64/target_attr_7.c: Likewise. * gcc.target/aarch64/target_attr_crypto_ice_1.c: Likewise. * gcc.target/aarch64/target_attr_crypto_ice_2.c: Likewise. * gcc.target/aarch64/target_attr_3.c: Add -mcpu=generic -march=armv8-a. From-SVN: r250904
Andrew Pinski committed -
2017-08-06 Andrew Pinski <apinski@cavium.com> * gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c: Pass -march=armv8-a+nolse, skip if -mcpu= is passed. * gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c: Likewise. From-SVN: r250903
Andrew Pinski committed -
2017-08-06 Andrew Pinski <apinski@cavium.com> * gcc.target/aarch64/_Float16_1.c: Skip if supplied a -mcpu= option. * gcc.target/aarch64/_Float16_2.c: Likewise. * gcc.target/aarch64/_Float16_3.c: Likewise. From-SVN: r250902
Andrew Pinski committed -
* config/alpha/alpha.c (alpha_reorg): If trap is the last active insn in the function, emit NOP after the insn. From-SVN: r250901
Uros Bizjak committed -
;; 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. From-SVN: r250900
Tom de Vries committed -
;; 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. From-SVN: r250899
Tom de Vries committed -
2017-08-06 Tom de Vries <tom@codesourcery.com> * gcc.dg/pr78582.c: Require effective target nonlocal_goto. From-SVN: r250898
Tom de Vries committed -
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. From-SVN: r250897
Tom de Vries committed -
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. From-SVN: r250896
Tom de Vries committed -
From-SVN: r250894
GCC Administrator committed
-
- 05 Aug, 2017 2 commits
-
-
* c-ada-spec.c (has_static_fields): Look only into variables. (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. From-SVN: r250890
Eric Botcazou committed -
From-SVN: r250889
GCC Administrator committed
-
- 04 Aug, 2017 11 commits
-
-
gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. From-SVN: r250885
Joseph Myers committed -
/cp 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. From-SVN: r250883
Paolo Carlini committed -
/cp 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. From-SVN: r250882
Paolo Carlini committed -
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. From-SVN: r250877
Yury Gribov committed -
gcc/testsuite/ChangeLog: 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. From-SVN: r250876
Carl Love committed -
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. From-SVN: r250875
H.J. Lu committed -
Fix PR 81713 * 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. From-SVN: r250874
Henry Linjamäki committed -
Patch from Uros Bizjak. Reviewed-on: https://go-review.googlesource.com/53350 From-SVN: r250873
Ian Lance Taylor committed -
PR middle-end/81695 * 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. From-SVN: r250871
Marek Polacek committed -
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. From-SVN: r250870
Richard Sandiford committed -
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. From-SVN: r250869
Richard Sandiford committed
-