- 20 Jul, 2017 5 commits
-
-
2017-07-20 Richard Biener <rguenther@suse.de> PR tree-optimization/61171 * tree-vectorizer.h (slp_instance): Add reduc_phis member. (vect_analyze_stmt): Add slp instance parameter. (vectorizable_reduction): Likewise. * tree-vect-loop.c (vect_analyze_loop_operations): Adjust. (vect_is_simple_reduction): Deal with chains not detected as SLP reduction chain, specifically not properly associated chains containing a mix of plus/minus. (get_reduction_op): Remove. (get_initial_defs_for_reduction): Simplify, pass in whether this is a reduction chain, pass in the SLP node for the PHIs. (vect_create_epilog_for_reduction): Get the SLP instance as arg and adjust. (vectorizable_reduction): Get the SLP instance as arg. During analysis remember the SLP node with the PHIs in the instance. Simplify getting at the vectorized reduction PHIs. * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass through SLP instance. (vect_slp_analyze_operations): Likewise. * tree-vect-stms.c (vect_analyze_stmt): Likewise. (vect_transform_stmt): Likewise. * g++.dg/vect/pr61171.cc: New testcase. * gfortran.dg/vect/pr61171.f: Likewise. * gcc.dg/vect/vect-reduc-11.c: Likewise. From-SVN: r250382
Richard Biener committed -
2017-07-20 Richard Biener <rguenther@suse.de> * gcc.dg/vect/slp-43.c: Increase loop count to enable vectorization with V64QImode. * gcc.dg/vect/slp-45.c: Likewise. From-SVN: r250380
Richard Biener committed -
2017-07-20 Tom de Vries <tom@codesourcery.com> PR tree-optimization/81489 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move read of phi arg location to before loop that modifies phi. From-SVN: r250378
Tom de Vries committed -
gcc * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): New pattern. gcc/testsuite * gcc.dg/tree-ssa/vrp116.c: New Test. From-SVN: r250377
Naveen H.S committed -
From-SVN: r250376
GCC Administrator committed
-
- 19 Jul, 2017 31 commits
-
-
PR middle-end/81331 * except.c (execute): Fix ordering issue. From-SVN: r250370
Jan Hubicka committed -
From-SVN: r250367
Gerald Pfeifer committed -
PR libstdc++/81476 * include/bits/vector.tcc (vector::_M_range_insert<_InputIterator>): Only insert elements one-by-one when inserting at the end. * testsuite/performance/23_containers/insert/81476.cc: New. From-SVN: r250366
Jonathan Wakely committed -
We here have an AND of a SUBREG of an LSHIFTRT. If that SUBREG is paradoxical, the extraction we form is the length of the size of the inner mode, which includes some bits that should not be in the result. Just give up in that case. PR rtl-optimization/81423 * combine.c (make_compound_operation_int): Don't try to optimize the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical. From-SVN: r250365
Segher Boessenkool committed -
2017-07-19 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/cpu-builtin-1.c: Change test to use #ifdef __BUILTIN_CPU_SUPPORTS to see if the GLIBC is new enough that __builtin_cpu_is and __builtin_cpu_supports are supported. From-SVN: r250364
Michael Meissner committed -
... if it is an IOR with a constant with all bits set in the mode that is truncated to, for example. Handle that case. PR rtl-optimization/81423 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR with a constant that is -1 in the truncated to mode. From-SVN: r250363
Segher Boessenkool committed -
Fix up plafform testes in check headers. After a resent GCC change the previously submitted BMI/BMI2 intrinsic test started to fail with a warning/error. [gcc/testsuite] 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org> * gcc.target/powerpc/bmi-check.h (main): Skip unless __BUILTIN_CPU_SUPPORTS__ defined. * gcc.target/powerpc/bmi2-check.h (main): Skip unless __BUILTIN_CPU_SUPPORTS__ defined. From-SVN: r250362
Steven Munroe committed -
* predict.c (propagate_unlikely_bbs_forward): Break out from ... (determine_unlikely_bbs): ... here. * predict.h (propagate_unlikely_bbs_forward): Declare. * cfgexpand.c (pass_expand::execute): Use it. * bb-reorder.c (sanitize_hot_paths): Do not consider known to be unlikely edges. (find_rarely_executed_basic_blocks_and_crossing_edges): Use propagate_unlikely_bbs_forward. From-SVN: r250360
Jan Hubicka committed -
* predict.c (propagate_unlikely_bbs_forward): Break out from ... (determine_unlikely_bbs): ... here. * predict.h (propagate_unlikely_bbs_forward): Declare. * cfgexpand.c (pass_expand::execute): Use it. * bb-reorder.c (sanitize_hot_paths): Do not consider known to be unlikely edges. (find_rarely_executed_basic_blocks_and_crossing_edges): Use propagate_unlikely_bbs_forward. From-SVN: r250359
Jan Hubicka committed -
PR middle-end/81331 * except.c (maybe_add_nop_after_section_switch): New function. (execute): Use it. From-SVN: r250358
Jan Hubicka committed -
* libsupc++/new (bad_array_new_length): Remove redundant semicolon after in-class member function definition. * include/bits/locale_facets.h (ctype_byname, num_put): Likewise. * include/bits/locale_facets_nonio.h (time_put_byname): Likewise. * include/bits/random.h (mersenne_twister_engine): Likewise. * include/tr1/random.h (mersenne_twister): Likewise * include/ext/random (simd_fast_mersenne_twister_engine): Likewise. * include/ext/rope (char_producer, _Rope_char_consumer, _Rope_self_destruct_ptr, _Rope_const_iterator, _Rope_iterator): Likewise. * include/ext/ropeimpl.h (_Rope_flatten_char_consumer, _Rope_insert_char_consumer): Likewise. From-SVN: r250357
Volker Reichelt committed -
* gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE, TYPE_GCC_MIN_VALUE): Use TYPE_MIN_VALUE_RAW instead of TYPE_MINVAL. (TYPE_GCC_MAX_VALUE): Use TYPE_MAX_VALUE_RAW instead of TYPE_MAXVAL. From-SVN: r250355
Jakub Jelinek committed -
2017-07-19 John Marino <gnugcc@marino.st> * config/i386/dragonfly-unwind.h: Handle sigtramp relocation. From-SVN: r250354
John Marino committed -
* include/bits/fstream.tcc (basic_filebuf::xsgetn) (basic_filebuf::xsputn, basic_filebuf::seekoff): Fix indentation. From-SVN: r250353
Jonathan Wakely committed -
2017-07-19 Tom de Vries <tom@codesourcery.com> * gimple.h (gimple_phi_set_arg): Make assert more strict. From-SVN: r250352
Tom de Vries committed -
2017-07-19 Tom de Vries <tom@codesourcery.com> * gimple.h (gimple_phi_arg): Make assert more strict. From-SVN: r250351
Tom de Vries committed -
2017-07-19 Steven Munroe <munroesj@gcc.gnu.org> * config.gcc (powerpc*-*-*): Add mmintrin.h. * config/rs6000/mmintrin.h: New file. * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h. From-SVN: r250350
Steven Munroe committed -
* testsuite/util/testsuite_iterators.h: Fix indentation. From-SVN: r250349
Jonathan Wakely committed -
* class.c (add_implicitly_declared_members): Use classtype_has_move_assign_or_move_ctor_p. (classtype_has_move_assign_or_move_ctor, classtype_has_user_move_assign_or_move_ctor_p): Merge into ... (classtype_has_move_assign_or_move_ctor_p): ... this new function. * cp-tree.h (classtype_has_user_move_assign_or_move_ctor_p): Replace with ... (classtype_has_move_assign_or_move_ctor_p): ... this. * method.c (maybe_explain_implicit_delete, lazily_declare_fn): Adjust. * tree.c (type_has_nontrivial_copy_init): Adjust. From-SVN: r250344
Nathan Sidwell committed -
PR libquadmath/65757 * quadmath-imp.h (math_opt_barrier, math_force_eval, math_narrow_eval, math_check_force_underflow, math_check_force_underflow_nonneg): Define. * math/ceilq.c: Backport changes from upstream glibc between 2012-11-01 and 2017-07-13. * math/remquoq.c: Likewise. * math/expq.c: Likewise. * math/llroundq.c: Likewise. * math/logq.c: Likewise. * math/atanq.c: Likewise. * math/nearbyintq.c: Likewise. * math/scalblnq.c: Likewise. * math/finiteq.c: Likewise. * math/atanhq.c: Likewise. * math/expm1q.c: Likewise. * math/sinhq.c: Likewise. * math/log10q.c: Likewise. * math/rintq.c: Likewise. * math/roundq.c: Likewise. * math/fmaq.c: Likewise. * math/erfq.c: Likewise. * math/log2q.c: Likewise. * math/lroundq.c: Likewise. * math/j1q.c: Likewise. * math/scalbnq.c: Likewise. * math/truncq.c: Likewise. * math/frexpq.c: Likewise. * math/sincosq.c: Likewise. * math/tanhq.c: Likewise. * math/asinq.c: Likewise. * math/coshq.c: Likewise. * math/j0q.c: Likewise. * math/asinhq.c: Likewise. * math/floorq.c: Likewise. * math/sinq_kernel.c: Likewise. * math/powq.c: Likewise. * math/hypotq.c: Likewise. * math/sincos_table.c: Likewise. * math/rem_pio2q.c: Likewise. * math/nextafterq.c: Likewise. * math/log1pq.c: Likewise. * math/sincosq_kernel.c: Likewise. * math/tanq.c: Likewise. * math/acosq.c: Likewise. * math/lrintq.c: Likewise. * math/llrintq.c: Likewise. From-SVN: r250343
Jakub Jelinek committed -
PR tree-optimization/81346 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0. * gcc.dg/tree-ssa/pr81346-5.c: New test. From-SVN: r250342
Jakub Jelinek committed -
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: Add V2DImode. * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. (nvptx_output_mov_insn): Handle lack of mov.b128. (nvptx_print_operand): Handle 'H' and 'L' codes. (nvptx_vector_mode_supported): Allow V2DImode. (nvptx_preferred_simd_mode): New function. (nvptx_data_alignment): New function. (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to nvptx_preferred_simd_mode. * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from 64 to 128 bits. (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. * config/nvptx/nvptx.md (VECIM): Add V2DI. * gcc.target/nvptx/decl-init.c: Update alignment. * gcc.target/nvptx/slp-2-run.c: New test. * gcc.target/nvptx/slp-2.c: New test. * gcc.target/nvptx/v2di.c: New test. * testsuite/libgomp.oacc-c/vec.c: New test. From-SVN: r250341
Tom de Vries committed -
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx-modes.def: New file. Add V2SImode. * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode. (nvptx_vector_mode_supported): New function. Allow V2SImode. (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported. * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI. (mov<VECIM>_insn): New define_insn. (define_expand "mov<VECIM>): New define_expand. * gcc.target/nvptx/slp-run.c: New test. * gcc.target/nvptx/slp.c: New test. * gcc.target/nvptx/v2si-cvt.c: New test. * gcc.target/nvptx/v2si-run.c: New test. * gcc.target/nvptx/v2si.c: New test. * gcc.target/nvptx/vec.inc: New test. From-SVN: r250340
Tom de Vries committed -
2017-07-19 Tom de Vries <tom@codesourcery.com> * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode. From-SVN: r250339
Tom de Vries committed -
PR tree-optimization/81346 * fold-const.h (fold_div_compare, range_check_type): Declare. * fold-const.c (range_check_type): New function. (build_range_check): Use range_check_type. (fold_div_compare): No longer static, rewritten into a match.pd helper function. (fold_comparison): Don't call fold_div_compare here. * match.pd (X / C1 op C2): New optimization using fold_div_compare as helper function. * gcc.dg/tree-ssa/pr81346-1.c: New test. * gcc.dg/tree-ssa/pr81346-2.c: New test. * gcc.dg/tree-ssa/pr81346-3.c: New test. * gcc.dg/tree-ssa/pr81346-4.c: New test. * gcc.target/i386/umod-3.c: Hide comparison against 1 from the compiler to avoid X / C1 op C2 optimization to trigger. From-SVN: r250338
Jakub Jelinek committed -
gcc/ * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ... (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these. * tree.c (find_decls_types_r, verify_type): Use TYPE_{MIN,MAX}_VALUE_RAW. * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise. (hash_tree): Likewise. * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): Likewise. * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): Likewise. gcc/cp/ * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS, PACK_EXPANSION_EXTRA_ARGS): Use TYPE_{MIN,MAX}_VALUE_RAW. gcc/lto/ * lto.c (mentions_vars_p_type): Use TYPE_{MIN,MAX}_VALUE_RAW. (compare_tree_sccs_1, lto_fixup_prevailing_decls): Likewise. gcc/objc/ * objc-act.h (CLASS_NST_METHODS, CLASS_CLS_METHODS): Use TYPE_{MIN,MAX}_VALUE_RAW. From-SVN: r250337
Nathan Sidwell committed -
2017-07-19 Martin Liska <mliska@suse.cz> PR sanitizer/63361 * c-c++-common/ubsan/float-cast-overflow-1.c: Add either -ffloat-store or -mieee for targets that need it. From-SVN: r250336
Martin Liska committed -
2017-07-18 Tom de Vries <tom@codesourcery.com> PR middle-end/81464 * omp-expand.c (expand_omp_for_static_chunk): Handle equal-argument loop exit phi. * gfortran.dg/pr81464.f90: New test. From-SVN: r250335
Tom de Vries committed -
From-SVN: r250334
Yury Gribov committed -
* testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: Add dg-require. From-SVN: r250333
Jonathan Wakely committed -
From-SVN: r250332
GCC Administrator committed
-
- 18 Jul, 2017 4 commits
-
-
PR libstdc++/81395 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer pointers for write mode after reading. * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New. From-SVN: r250328
Jonathan Wakely committed -
In Func_expression::do_get_backend when creating the backend representation for a closure, create a backend type conversion to account for potential differences between the closure struct type (where the number of fields is dependent on the number of values referenced in the closure) and the generic function descriptor type (struct with single function pointer field). Reviewed-on: https://go-review.googlesource.com/49255 From-SVN: r250327
Ian Lance Taylor committed -
re PR go/81451 (missing futex check - libgo/runtime/thread-linux.c:12:0 futex.h:13:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘long’) PR go/81451 runtime: inline runtime_osinit We had two identical copies of runtime_osinit. They set runtime_ncpu, a variable that is no longer used. Removing that leaves us with two lines. Inline those two lines in the two places the function was called. This fixes GCC PR 81451. Reviewed-on: https://go-review.googlesource.com/48862 From-SVN: r250326
Ian Lance Taylor committed -
The code in Named_type::do_get_backend was not passing the correct flag value for circular function types to Backend::circular_pointer_type (it was always setting this flag to false). Pass a true value if the type being converted is a function type. Reviewed-on: https://go-review.googlesource.com/49330 From-SVN: r250325
Ian Lance Taylor committed
-