aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-01-11re PR rtl-optimization/68920 (Undesirable if-conversion for a rarely taken ↵Yuri Rumyantsev10-5/+73
branch) gcc/ 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com> PR rtl-optimization/68920 * config/i386/i386.c (ix86_option_override_internal): Restrict number of conditional moves for RTL if-conversion to 1 for TARGET_ONE_IF_CONV_INSN. * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros. * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros. * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new parameter to restirct number of conditional moves for RTL if-conversion. * doc/invoke.texi (max-rtl-if-conversion-insns): Document it. * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of conditionl moves. gcc/testsuite/ 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com> PR rtl-optimization/68920 * gcc.dg/ifcvt-4.c: Add "--param max-rtl-if-conversion-insns=3" option for ix86 targets. * gcc.dg/ifcvt-5.c: New test. From-SVN: r232220
2016-01-11[PR69123] fix handling of MEMs in VTA to avoid dataflow oscillationAlexandre Oliva4-6/+112
The problem arises because we used to drop overwritten MEMs from loc lists of VALUEs, but not of other onepart variables, and it just so happens that, by doing so, block 6 in the testcase has no D#5 in its output in the first pass, because the MEM holding its (previous) value was correctly dropped from value 88:88, but gains it in the second pass because D#5 has the MEM location incoming directly in its loc list, rather than indirectly in a VALUE. This incorrect binding enables other blocks to believe they have a tentative binding for D#5 in some cycles, but others, still operating on the early conclusion, believe there isn't, and they oscillate from that. Since we check for escaping MEMs in clobbers, we won't lose anything relevant by dropping call-clobbered or overwritten MEMs in all onepart variables, and this ensures the loc intersection operation in onepart vars won't let a MEM through that wasn't present in earlier iterations. for gcc/ChangeLog PR bootstrap/69123 * var-tracking.c (drop_overlapping_mem_locs): Operate on all onepart vars. Fix typo in comment. Fix reversed condition in unshare test. (dataflow_set_remove_mem_locs): Operate on all onepart vars. for gcc/testsuite/ChangeLog PR bootstrap/69123 * g++.dg/pr69123.C: New. From-SVN: r232218
2016-01-11[PR69123] make dataflow_set_different details more verboseAlexandre Oliva2-10/+111
for gcc/ChangeLog PR bootstrap/69123 * var-tracking.c (dump_onepart_variable_differences): New. (dataflow_set_different): If a detailed dump is requested, delay early returns and dump differences between onepart variables present before and after, and added variables. From-SVN: r232217
2016-01-11re PR target/69010 (Boolean vector constant with a scalar mode is expanded ↵Ilya Enkovich5-4/+97
incorrectly) gcc/ PR target/69010 * expr.c (expand_expr_real_1): For boolean vector constants with a scalar mode use const_scalar_mask_from_tree. (const_scalar_mask_from_tree): New. * optabs.c (expand_vec_cond_mask_expr): Use mask mode assigned to a mask type to handle constants. gcc/testsuite/ PR target/69010 * gcc.target/i386/pr69010.c: New test. From-SVN: r232216
2016-01-11[PR ipa/69044] Do not clone for param removal when not possibleMartin Jambor4-1/+24
2016-01-11 Martin Jambor <mjambor@suse.cz> PR ipa/69044 * ipa-cp.c (estimate_local_effects): Do not clone for removal of useless parameters if we cannot change function signature. testsuite/ * gcc.target/i386/chkp-pr69044.c: New test. From-SVN: r232215
2016-01-11[PR ipa/66616] Copy can_change_signature flag to artificial thunksMartin Jambor2-0/+7
2016-01-11 Martin Jambor <mjambor@suse.cz> PR ipa/66616 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature flag. From-SVN: r232214
2016-01-11Don't allow latch with phi in try_transform_to_exit_first_loop_altTom de Vries5-0/+24
2016-01-11 Tom de Vries <tom@codesourcery.com> PR tree-optimization/69109 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow latch with phi. * gcc.dg/autopar/pr69109-2.c: New test. * gcc.dg/autopar/pr69109.c: New test. From-SVN: r232212
2016-01-11Handle case that outer phi res is not used in a phi in gather_scalar_reductionsTom de Vries4-0/+17
2016-01-11 Tom de Vries <tom@codesourcery.com> PR tree-optimization/69108 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi res is not used in a phi. * gcc.dg/autopar/pr69108.c: New test. From-SVN: r232211
2016-01-11Fix docs for -frandom-seed.Yury Gribov3-4/+14
2016-01-11 Yury Gribov <y.gribov@samsung.com> PR 67425 * common.opt (frandom-seed): Fix parameter name. * doc/invoke.texi (frandom-seed): Ditto and describe parameter. From-SVN: r232209
2016-01-11Don't parallelize loops if libgomp not supportedTom de Vries2-0/+10
2016-01-11 Tom de Vries <tom@codesourcery.com> PR tree-optimization/69058 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp not supported. From-SVN: r232208
2016-01-11arc.opt (mdiv-rem): Add period to the end.Andrew Burgess2-2/+7
2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com> * config/arc/arc.opt (mdiv-rem): Add period to the end. (mcode-density): Likewise. From-SVN: r232207
2016-01-11Daily bump.GCC Administrator1-1/+1
From-SVN: r232206
2016-01-10Fix -Wmisleading indentation false-positive for do-while statementPatrick Palka4-1/+19
gcc/c-family/ChangeLog: PR c++/69029 * c-indentation.c (should_warn_for_misleading_indentation): Don't warn about do-while statements. gcc/testsuite/ChangeLog: PR c++/69029 * c-c++-common/Wisleading-indentation.c: Augment test. From-SVN: r232202
2016-01-10re PR fortran/69154 (ICE in gfc_trans_where_2, at fortran/trans-stmt.c:5005 ↵Thomas Koenig4-0/+49
on *-linux) 2016-01-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/69154 * frontend-passes.c (in_where): New variable. (inline_matmul_assign): Don't try this if we are within a WHERE statement. (gfc_code_walker): Keep track of in_where. 2016-01-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/69154 * gfortran.dg/inline_matmul_12.f90: New test. From-SVN: r232201
2016-01-10re PR fortran/67779 (Strange ordering with strings in extended object)Paul Thomas4-1/+179
2016-01-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/67779 * trans_array.c (gfc_conv_scalarized_array_ref): Add missing se->use_offset from condition for calculation of 'base'. 2016-01-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/67779 * gfortran.dg/actual_array_offset_1: New test. From-SVN: r232200
2016-01-10Don't parallelize loops containing phis with addr_exprsTom de Vries4-0/+135
2016-01-10 Tom de Vries <tom@codesourcery.com> PR tree-optimization/69062 * tree-parloops.c (loop_has_phi_with_address_arg): New function. (parallelize_loops): Don't paralelize loop that has phi with address arg. * gcc.dg/autopar/pr69062.c: New test. From-SVN: r232199
2016-01-10Fix scan-tree-dump syntaxThomas Schwinge8-7/+17
gcc/testsuite/ * gcc.dg/vect/slp-perm-1.c: Fix scan-tree-dump syntax. * gcc.dg/vect/slp-perm-2.c: Likewise. * gcc.dg/vect/slp-perm-3.c: Likewise. * gcc.dg/vect/slp-perm-5.c: Likewise. * gcc.dg/vect/slp-perm-6.c: Likewise. * gcc.dg/vect/slp-perm-7.c: Likewise. * gcc.dg/vect/slp-perm-8.c: Likewise. From-SVN: r232197
2016-01-10Only allow single exit phi for reduction in try_create_reduction_listTom de Vries4-0/+34
2016-01-10 Tom de Vries <tom@codesourcery.com> PR tree-optimization/69039 * tree-parloops.c (try_create_reduction_list): Only allow single exit phi for reduction. * gcc.dg/autopar/pr69039.c: New test. From-SVN: r232196
2016-01-10Daily bump.GCC Administrator1-1/+1
From-SVN: r232194
2016-01-09re PR middle-end/68743 (FAIL: gfortran.dg/aint_anint_1.f90 -O0 execution ↵John David Anglin2-1/+8
test) PR middle-end/68743 * match.pd: Require target has function_c99_misc before doing truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc. From-SVN: r232191
2016-01-09configure.ac (isl_options_set_schedule_serialize_sccs): Also use GMPINC.Gerald Pfeifer3-2/+8
* configure.ac (isl_options_set_schedule_serialize_sccs): Also use GMPINC. * configure: Regenerate. From-SVN: r232190
2016-01-09re PR c++/69113 (ICE: in vague_linkage_p, at cp/decl2.c:1875 with -fno-weak)Marek Polacek4-1/+29
PR c++/69113 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set. * g++.dg/pr69113.C: New test. From-SVN: r232189
2016-01-09re PR middle-end/50865 (Invalid code generation for INT64_MIN % 1 on x86_64)Jakub Jelinek11-17/+447
PR middle-end/50865 PR tree-optimization/69097 * fold-const.h (expr_not_equal_to): New prototype. * fold-const.c: Include stringpool.h and tree-ssanames.h. (expr_not_equal_to): New function. * match.pd (X % -Y is the same as X % Y): Don't optimize unless X is known not to be equal to minimum or Y is known not to be equal to -1. * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument. fold TRUNC_MOD_EXPR if the second argument is not a power of two. (simplify_stmt_using_ranges): Adjust caller. (vrp_finalize): Call set_value_range on SSA_NAMEs before calling substitute_and_fold. * gcc.c-torture/execute/pr50865.c: New test. * gcc.c-torture/execute/pr69097-1.c: New test. * gcc.c-torture/execute/pr69097-2.c: New test. * gcc.dg/pr69097-1.c: New test. * gcc.dg/pr69097-2.c: New test. From-SVN: r232188
2016-01-09re PR tree-optimization/69164 (ICE in create_tmp_var, at gimple-expr.c:468)Jakub Jelinek4-9/+42
PR c++/69164 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs. * g++.dg/opt/pr69164.C: New test. From-SVN: r232187
2016-01-09re PR c++/69158 (ICE in in cxx_eval_indirect_ref, at cp/constexpr.c:2598)Jason Merrill3-1/+17
PR c++/69158 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing in completion. From-SVN: r232186
2016-01-09Daily bump.GCC Administrator1-1/+1
From-SVN: r232184
2016-01-08ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL w/o ↵Jan Hubicka2-1/+7
DECL_NAME. * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL w/o DECL_NAME. From-SVN: r232179
2016-01-08re PR tree-optimization/69167 (internal compiler error: SSA corruption)Jakub Jelinek5-5/+53
PR tree-optimization/69167 * gimple-fold.c (replace_stmt_with_simplification): Also punt if new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of ops[0] comparison. * gimple-match-head.c (maybe_push_res_to_seq): Likewise. * gcc.dg/pr69167.c: New test. From-SVN: r232178
2016-01-08re PR c++/68449 (ICE in cxx_eval_constant_expression on atomic_load in C++)Marek Polacek4-1/+21
PR c++/68449 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer. * g++.dg/pr68449.C: New. From-SVN: r232176
2016-01-08[PATCH] Fix PR68707Alan Lawrence11-14/+105
gcc/: * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP instances that can be handled via vect_load_lanes. gcc/testsuite/: * lib/target-supports.exp (check_effective_target_vect_load_lanes): New. * gcc.dg/vect/slp-perm-1.c: Look for vect_load_lanes instead of SLP on platforms supporting it. * gcc.dg/vect/slp-perm-2.c: Likewise. * gcc.dg/vect/slp-perm-3.c: Likewise. * gcc.dg/vect/slp-perm-5.c: Likewise. * gcc.dg/vect/slp-perm-7.c: Likewise. * gcc.dg/vect/slp-perm-8.c: Likewise. * gcc.dg/vect/slp-perm-6.c: Look for vect_load_lanes in addition to SLP on platforms supporting it. Co-Authored-By: Richard Biener <rguenther@suse.de> From-SVN: r232174
2016-01-08symtab.c (symtab_node::equal_address_to): Return -1 instead of 2 if we can't ↵Uros Bizjak3-6/+11
determine address equivalence. * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2 if we can't determine address equivalence. * alias.c (compare_base_decl): Update for changed return value of symtab_node::equal_address_to. From-SVN: r232172
2016-01-08constexpr.c (cxx_eval_call_expression): Remove convert_to_void workaround.Jason Merrill2-10/+3
* constexpr.c (cxx_eval_call_expression): Remove convert_to_void workaround. From-SVN: r232168
2016-01-08PR c++/68983 (BE)Jason Merrill8-8/+42
PR c++/67557 gcc/ * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here. * expr.c (store_field): Not here. * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a call with TREE_ADDRESSABLE type. * tree-cfg.c (verify_gimple_call): Adjust. gcc/cp/ * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of TREE_ADDRESSABLE type. From-SVN: r232167
2016-01-08PR c++/68983 (FE)Jason Merrill3-0/+22
PR c++/67557 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR. From-SVN: r232166
2016-01-08Use -std option in test for C99 macros in <cmath>Jonathan Wakely3-1/+10
* testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++.cc: Rename to ... * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++98.cc: Here and add -std=gnu++98. * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++0x.cc: Rename to ... * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++11.cc: Here. From-SVN: r232165
2016-01-08vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with libc_internal.Olivier Hainque2-5/+10
* config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with libc_internal. From-SVN: r232164
2016-01-08Fix PR number in previous commitJonathan Wakely1-1/+1
From-SVN: r232163
2016-01-08Add missing include for std::__addressofJonathan Wakely2-0/+6
PR libstdc++/69160 * include/bits/uses_allocator.h: Add missing include. From-SVN: r232162
2016-01-08[PATCH][RS6000] Migrate reduction optabs in paired.mdAlan Lawrence2-11/+37
* gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to... (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element. (reduc_smin_v2sf): Rename to... (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element. (reduc_splus_v2sf): Rename to... (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element. From-SVN: r232158
2016-01-08re PR tree-optimization/69162 (ICE in create_tmp_var, at gimple-expr.c:468)Jakub Jelinek5-8/+37
PR tree-optimization/69162 * gimplify.c (gimplify_va_arg_expr): Encode original type of valist argument in another argument. (gimplify_modify_expr): Adjust for the above change. Cleanup. * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument to determine the va_list type, build a MEM_REF instead of build_fold_indirect_ref. * gcc.dg/pr69162.c: New test. From-SVN: r232156
2016-01-08re PR tree-optimization/69172 (ICE in make_ssa_name_fn, at tree-ssanames.c:266)Jakub Jelinek4-1/+58
PR tree-optimization/69172 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to gimple_build. * gcc.dg/pr69172.c: New test. From-SVN: r232155
2016-01-08re PR tree-optimization/67781 (wrong code generated on big-endian with -O1 ↵Thomas Preud'homme4-10/+73
-fexpensive-optimizations) 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ PR tree-optimization/67781 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg and cmpnop in two steps: first the ones not accessed in original gimple expression in a endian independent way and then the ones not accessed in the final result in an endian-specific way. gcc/testsuite/ PR tree-optimization/67781 * gcc.c-torture/execute/pr67781.c: New file. From-SVN: r232154
2016-01-08re PR tree-optimization/69083 (ICE at -O3 in 64-bit mode on x86_64-linux-gnu ↵Jakub Jelinek4-3/+49
(verify_gimple failed)) PR tree-optimization/69083 * tree-vect-slp.c (vect_get_constant_vectors): For VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's element type. If op is fold_convertible_p to vector_type's element type, use NOP_EXPR instead of VCE. * gcc.dg/vect/pr69083.c: New test. From-SVN: r232153
2016-01-08Restrict to linux and gnu targets as not all math.h implementations support ↵Sujoy Saraswati2-2/+11
the issignaling macro. Restrict to linux and gnu targets as not all math.h implementations support the issignaling macro. Use -fexcess-precision=standard for compiler options. Use fabs() only when __FLT_EVAL_METHOD__ == 0. gcc/testsuite/ * gcc.dg/pr61441.c: Restrict to linux and gnu targets. Use -fexcess-precision=standard for compiler options. Use fabs() only when __FLT_EVAL_METHOD__ == 0. From-SVN: r232152
2016-01-08re PR fortran/69128 (OpenMP workshare problem with SUM())Jakub Jelinek8-7/+66
PR fortran/69128 * trans.h (OMPWS_SCALARIZER_BODY): Define. (OMPWS_NOWAIT): Renumber. * trans-stmt.c (gfc_trans_where_3): Only set OMPWS_SCALARIZER_WS if OMPWS_SCALARIZER_BODY is not set already, and set also OMPWS_SCALARIZER_BODY until the final loop creation. * trans-expr.c (gfc_trans_assignment_1): Likewise. * trans-openmp.c (gfc_trans_omp_workshare): Also clear OMPWS_SCALARIZER_BODY. * trans-array.c (gfc_trans_scalarized_loop_end): Don't create OMP_FOR if OMPWS_SCALARIZER_BODY is set. * gfortran.dg/gomp/pr69128.f90: New test. From-SVN: r232151
2016-01-08re PR c++/69145 (Bogus 'warning: #pragma implementation for ‘...’ ↵Jakub Jelinek6-3/+28
appears after file is included') PR c++/69145 * files.c (cpp_included_before): If IS_ADHOC_LOC (location), lookup real location from the line_table. * g++.dg/ext/pr69145-1.C: New test. * g++.dg/ext/pr69145-2-very-long-filename.cc: New file. * g++.dg/ext/pr69145-2.h: New file. From-SVN: r232150
2016-01-08shrink-wrap: Once more PRs 67778, 68634, and now 68909Segher Boessenkool2-7/+25
If a candidate PRE cannot get the prologue because a block BB is reachable from it, but PRE does not dominate BB, we try again with the dominators of PRE. That "try again" needs to again consider BB though, we aren't done with it. PR rtl-optimization/67778 PR rtl-optimization/68634 PR rtl-optimization/68909 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop block from the stack until done with it. Remove a superfluous bitmap set. Remove a superfluous bitmap test. From-SVN: r232148
2016-01-07PR c/68966 - atomic_fetch_* on atomic_bool not diagnosedMartin Sebor7-8/+180
gcc/ChangeLog: * doc/extend.texi (__atomic Builtins, __sync Builtins): Document constraint on the type of arguments. gcc/c-family/ChangeLog: * c-common.c (sync_resolve_size): Reject first argument when it's a pointer to _Bool. gcc/testsuite/ChangeLog: * gcc.dg/atomic-fetch-bool.c: New test. * gcc.dg/sync-fetch-bool.c: New test. From-SVN: r232147
2016-01-08Daily bump.GCC Administrator1-1/+1
From-SVN: r232146
2016-01-07longlong: fix sh -Wundef buildsMike Frysinger2-2/+8
This file fails when building for SuperH as it assumes __SHMEDIA__ is always defined. Update the code to check if it's defined. From-SVN: r232143