1. 12 Dec, 2017 3 commits
    • [SFN] adjust RTL insn-walking API · f40dd646
      This patch removes unused RTL functions, introduces alternate ones for
      use in a later SFN patch, and regroups other related functions so that
      they appear in a more consistent order.
      
      for  gcc/ChangeLog
      
      	* emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
      	(next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
      	(next_nonnote_nondebug_insn_bb): New.
      	(prev_nonnote_nondebug_insn_bb): New.
      	(prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
      	* rtl.h	(prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
      	(prev_nonnote_nondebug_insn_bb): Declare.
      	(next_nonnote_nondebug_insn_bb): Declare.
      	* cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
      	* cfgrtl.c (get_last_bb_insn): Likewise.
      	* lra.c (push_insns): Likewise.
      
      From-SVN: r255564
      Alexandre Oliva committed
    • Expensive selftests: torture testing for fix-it boundary conditions (PR c/82050) · 421b29d6
      This patch adds selftest coverage for the fix for PR c/82050.
      
      The selftest iterates over various "interesting" column and line-width
      values to try to shake out bugs in the fix-it printing routines, a kind
      of "torture" selftest.
      
      Unfortunately this selftest is noticably slower than the other selftests;
      adding it to diagnostic-show-locus.c led to:
        -fself-test: 40218 pass(es) in 0.172000 seconds
      slowing down to:
        -fself-test: 97315 pass(es) in 6.109000 seconds
      for an unoptimized build (e.g. when hacking with --disable-bootstrap).
      
      Given that this affects the compile-edit-test cycle of the "gcc"
      subdirectory, this felt like an unacceptable amount of overhead to add.
      
      I attempted to optimize the test by reducing the amount of coverage, but
      the test seems useful, and there seems to be a valid role for "torture"
      selftests.
      
      Hence this patch adds a:
        gcc.dg/plugin/expensive_selftests_plugin.c
      with the responsibility for running "expensive" selftests, and adds the
      expensive test there.  The patch moves a small amount of code from
      selftest::run_tests into a helper class so that the plugin can print
      a useful summary line (to reassure us that the tests are actually being
      run).
      
      With that, the compile-edit-test cycle of the "gcc" subdir is unaffected;
      the plugin takes:
        expensive_selftests_plugin: 26641 pass(es) in 3.127000 seconds
      which seems reasonable within the much longer time taken by "make check"
      (I optimized some of the overhead away, hence the reduction from 6 seconds
      above down to 3 seconds).
      
      gcc/ChangeLog:
      	PR c/82050
      	* selftest-run-tests.c (selftest::run_tests): Move start/finish code
      	to...
      	* selftest.c (selftest::test_runner::test_runner): New ctor.
      	(selftest::test_runner::~test_runner): New dtor.
      	* selftest.h (class selftest::test_runner): New class.
      
      gcc/testsuite/ChangeLog:
      	PR c/82050
      	* gcc.dg/plugin/expensive-selftests-1.c: New file.
      	* gcc.dg/plugin/expensive_selftests_plugin.c: New file.
      	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.
      
      From-SVN: r255563
      David Malcolm committed
    • Daily bump. · cd147a26
      From-SVN: r255562
      GCC Administrator committed
  2. 11 Dec, 2017 16 commits
    • Fix the new pr83361.c testcase · 0473f725
      
      gcc/testsuite/
      	* gcc.dg/pr83361.c: Add -Wno-div-by-zero to dg-options.
      
      From-SVN: r255559
      Segher Boessenkool committed
    • Remove a stray line. · b50829fe
      From-SVN: r255558
      Martin Sebor committed
    • PR c/81544 - attribute noreturn and warn_unused_result on the same function · eedff701
      PR c/81544 - attribute noreturn and warn_unused_result on the same function
      accepted 
      
      Add tests missed in r255469.
      
      From-SVN: r255557
      Martin Sebor committed
    • altivec-12.c (main): Add tests for vec_avg. · 0242c7f0
      gcc/testsuite/ChangeLog:
      
      2017-12-07  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/altivec-12.c (main):  Add tests for vec_avg.
      	* gcc.target/powerpc/builtins-1.c: Renamed builtins-1.h.
      	* gcc.target/powerpc/builtins-1.h: Add tests for vec_and,
      	vec_andc, vec_cpsgn, vec_mergeh,vec_mergel, vec_nor, vec_or,
      	vec_sel, vec_xor, vec_all_eq, vec_all_ge, vec_all_gt, vec_all_le,
      	vec_all_lt, vec_all_ne,	vec_any_eq,vec_any_ge, vec_any_gt,vec_any_le,
      	vec_any_lt, vec_any_ne, vec_cntlz, vec_round, vec_rsqrt, vec_rsqrte,
      	vec_splat, vec_div, vec_mul,vec_ctf, vec_cts, vec_ctu.
      	* gcc.target/powerpc/builtins-1-be.c: New file, big endian
      	test file for tests in builtins-1.h.
      	* gcc.target/powerpc/builtins-1-le.c: New file, little endian
      	test file for tests in builtins-1.h.
      	* gcc.target/powerpc/builtins-2.c (main): Add tests for vec_ctf,
      	vec_cts, vec_ctu.
      	* gcc.target/powerpc/builtins-3-runnable.c (test_result_sp): Fix printf
      	conversion character.
       	* gcc.target/powerpc/fold-vec-minmax-char.c (test1_min, test2_min,
      	test4_min, test1_max, test2_max): Add tests for vec_max and vec_min.
       	* gcc.target/powerpc/fold-vec-minmax-int.c (test4_min, test5_min,
      	test7_min, test8_min): Add tests for vec_min.
       	* gcc.target/powerpc/fold-vec-minmax-longlong.c (test7_max, test8_max,
      	test9_max, test10_max): Add tests for and vec_max.
       	* gcc.target/powerpc/fold-vec-minmax-short.c (test4_min, test5_min,
      	tes7_min, test8_min): Add tests for and vec_min.
       	* gcc.target/powerpc/p8vector-builtin-8.c (foo): Add test for vec_adds,
      	vec_subs, vec_sum2s, vec_sum4s.
       	* gcc.target/powerpc/vsx-splats-p8.c: New file to test vec_splats.
      	* gcc.target/vsx-vector-5.c (arg1_tests_d, arg1_tests_d): Add
      	tests for vec_ceil, vec_floor, vec_nearbyint, vec_sqrt.
      	* gcc.target/vsx-vector-7.c (foo): Add tests for vec_sel.
      	* gcc.target/vsx-vector-abss.c: New file to test vec_abss.
      
      From-SVN: r255556
      Carl Love committed
    • altivec.h (vec_extract_fp32_from_shorth, [...]): Add #defines. · 4ded4b23
      gcc/ChangeLog:
      
      2017-12-11  Carl Love  <cel@us.ibm.com>
      
      	* config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
      	vec_extract_fp32_from_shortl]): Add #defines.
      	* config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
      	* config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
      	ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
      	ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
      	ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
      	ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
      	* doc/extend.texi: Add documentation for the added builtins.
      
      gcc/testsuite/ChangeLog:
      
      2017-12-11  Carl Love  <cel@us.ibm.com>
      	* gcc.target/powerpc/altivec-7.c: Renamed altivec-7.h.
      	* gcc.target/powerpc/altivec-7.h (main): Add testcases for vec_unpackl.
      	Add dg-final tests for the instructions generated.
      	* gcc.target/powerpc/altivec-7-be.c: New file to test on big endian.
      	* gcc.target/powerpc/altivec-7-le.c: New file to test on little endian.
      	* gcc.target/powerpc/altivec-13.c (foo): Add vec_sld, vec_srl,
      	 vec_sro testcases. Add dg-final tests for the instructions generated.
      	* gcc.target/powerpc/builtins-3-p8.c (test_vsi_packs_vui,
      	test_vsi_packs_vsi, test_vsi_packs_vssi, test_vsi_packs_vusi,
      	test_vsi_packsu-vssi, test_vsi_packsu-vusi, test_vsi_packsu-vsll,
      	test_vsi_packsu-vull, test_vsi_packsu-vsi, test_vsi_packsu-vui): Add
      	testcases. Add dg-final tests for new instructions.
      	* gcc.target/powerpc/p8vector-builtin-2.c (vbschar_eq, vbchar_eq,
      	vuchar_eq, vbint_eq, vsint_eq, viint_eq, vuint_eq, vbool_eq, vbint_ne,
      	vsint_ne, vuint_ne, vbool_ne, vsign_ne, vuns_ne, vbshort_ne): Add
      	tests.
      	Add dg-final instruction tests.
      	* gcc.target/powerpc/vsx-vector-6.c: Renamed vsx-vector-6.h.
      	* gcc.target/powerpc/vsx-vector-6.h (vec_andc,vec_nmsub, vec_nmadd,
      	vec_or, vec_nor, vec_andc, vec_or, vec_andc, vec_msums): Add tests.
      	Add dg-final tests for the generated instructions.
      	* gcc.target/powerpc/builtins-3.c (test_sll_vsc_vsc_vsuc,
      	test_sll_vuc_vuc, test_sll_vsi_vsi_vuc, test_sll_vui_vui_vuc,
      	test_sll_vbll_vull, test_sll_vbll_vbll_vus, test_sll_vp_vp_vuc,
      	test_sll_vssi_vssi_vuc, test_sll_vusi_vusi_vuc, test_slo_vsc_vsc_vsc,
      	test_slo_vuc_vuc_vsc, test_slo_vsi_vsi_vsc, test_slo_vsi_vsi_vuc,
      	test_slo_vui_vui_vsc, test_slo_vui_vui_vuc, test_slo_vsll_slo_vsll_vsc,
      	test_slo_vsll_slo_vsll_vuc, test_slo_vull_slo_vull_vsc,
      	test_slo_vull_slo_vull_vuc, test_slo_vp_vp_vsc, test_slo_vp_vp_vuc,
      	test_slo_vssi_vssi_vsc, test_slo_vssi_vssi_vuc, test_slo_vusi_vusi_vsc,
      	test_slo_vusi_vusi_vuc, test_slo_vusi_vusi_vuc, test_slo_vf_vf_vsc,
      	test_slo_vf_vf_vuc, test_cmpb_float): Add tests.
      
      From-SVN: r255555
      Carl Love committed
    • [PR80693] drop value of parallel SETs dropped by combine · b92977ee
      When combine drops a REG_UNUSED SET in a parallel, we have to clear
      cached values, so that, even if the REGs remain used (e.g. because
      they were referenced in the used SET_SRC), we will not use properties
      of the dropped modified value as if they applied to the preserved
      original one.
      
      We fail to adjust REG_N_SETS.
      
      for  gcc/ChangeLog
      
      	PR rtl-optimization/80693
      	PR rtl-optimization/81019
      	PR rtl-optimization/81020
      	* combine.c (distribute_notes): Reset any REG_UNUSED REGs that
      	are not mentioned in i3.  Place the REG_UNUSED note on i2,
      	possibly modified to REG_DEAD, if it did not originate in i3.
      
      for  gcc/testsuite/ChangeLog
      
      	PR rtl-optimization/80693
      	PR rtl-optimization/81019
      	PR rtl-optimization/81020
      	* gcc.dg/pr80693.c: New.
      	* gcc.dg/pr81019.c: New.
      
      From-SVN: r255554
      Alexandre Oliva committed
    • recog.c (store_data_bypass_p_1): New function. · 0a2c5149
      	* recog.c (store_data_bypass_p_1): New function.
      	(store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
      	store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
      
      From-SVN: r255553
      Jakub Jelinek committed
    • ifcvt: Call fixup_partitions (PR83361) · 9221f990
      After converting a conditional branch to an unconditional trap to a
      conditional trap, if the original trap is still reachable from another
      path, it may be that it is in a hot basic block  and only reachable from
      cold blocks.  Fix that up.
      
      
      	PR rtl-optimization/83361
      	* ifcvt.c (if_convert): Call fixup_partitions.
      
      gcc/testsuite/
      	PR rtl-optimization/83361
      	* gcc.dg/pr83361.c: New testcase.
      
      From-SVN: r255550
      Segher Boessenkool committed
    • rs6000.c (rs6000_gimple_fold_builtin): Add support for early folding of splat_u{8,16,32}. · a5648717
      [gcc]
      
      2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
      	early folding of splat_u{8,16,32}.
      
      [testsuite]
      
      2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-splat-misc-invalid.c: New.
      
      From-SVN: r255549
      Will Schmidt committed
    • intrinsic.texi (MAXLOC): Update documentation for character arrays and KIND argument. · 243501b7
      2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* intrinsic.texi (MAXLOC): Update documentation for
      	character arrays and KIND argument.
      	(MINLOC): Likewise.
      
      From-SVN: r255546
      Thomas Koenig committed
    • aarch64.c (aarch64_print_operand): Don't start output_operand_lossage first… · ee61f880
      aarch64.c (aarch64_print_operand): Don't start output_operand_lossage first argument with capital letter.
      
      	* config/aarch64/aarch64.c (aarch64_print_operand): Don't start
      	output_operand_lossage first argument with capital letter.
      	(aarch64_override_options): Don't start error and sorry first argument
      	with capital letter.
      
      From-SVN: r255544
      Jakub Jelinek committed
    • re PR fortran/83379 (Intermittent failure of min/maxval_char*.f90 test cases) · 5e20aef8
      2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/83379
      	* gfortran.dg/minval_char_1.f90: Correct logic for mask
      	calculation.
      	* gfortran.dg/minval_char_2.f90: Likewise.
      	* gfortran.dg/maxval_char_1.f90: Likewise.
      	* gfortran.dg/maxval_char_2.f90: Likewise.
      
      From-SVN: r255543
      Thomas Koenig committed
    • re PR fortran/45689 ([F03] Missing transformational intrinsic in the trans_func_f2003 list) · 317fa064
      2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/45689
      	* simplify.c (min_max_choose): Add prototype.
      	(gfc_count): Format correctly.
      	(simplify_transformation): Pass array argument to init_result_expr.
      	(gfc_simplify_minval_maxval): Remove.
      	(gfc_min): New function.
      	(gfc_simplify_minval): Call simplify_transformation.
      	(gfc_max): New function.
      	(gfc_simplify_maxval): Call simplify_transformation.
      
      2017-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/45689
      	* gfortran.dg/minval_parameter_1.f90: New test.
      	* gfortran.dg/maxval_parameter_1.f90: New test.
      
      From-SVN: r255542
      Thomas Koenig committed
    • Fix stack overflow with autofdo (PR83355) · ad3f54ab
      g++.dg/bprob* is failing currently with autofdo.
      
      Running in gdb shows that there is a very deep recursion in get_index_by_decl until it
      overflows the stack.
      
      gcc/:
      2017-12-11  Andi Kleen  <ak@linux.intel.com>
      
      	PR gcov-profile/83355
      	* auto-profile.c (string_table::get_index_by_decl): Don't
      	recurse when abstract origin points to itself.
      
      From-SVN: r255540
      Andi Kleen committed
    • re PR tree-optimization/83320 (Mismatched free() / delete / delete [] in… · 46bb9d29
      re PR tree-optimization/83320 (Mismatched free() / delete / delete []  in gimple-loop-interchange.cc:948)
      
      	PR tree-optimization/83320
      	* gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
      	(prune_datarefs_not_in_loop): Ditto.
      
      From-SVN: r255539
      Bin Cheng committed
    • Daily bump. · 138d2a81
      From-SVN: r255537
      GCC Administrator committed
  3. 10 Dec, 2017 6 commits
  4. 09 Dec, 2017 5 commits
  5. 08 Dec, 2017 10 commits