1. 24 Jun, 2016 10 commits
    • Dump profile-based number of iterations · 199b1891
      	* analyze_brprob.py: Parse and display average number
      	of loop iterations.
      	* cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
      	* cfgloop.h: Change 'struct loop' to 'const struct loop' for a
      	few functions.
      	* cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
      	argument to true if the expected number of iterations is
      	loop-based.
      
      From-SVN: r237762
      Martin Liska committed
    • vect-nb-iter-ub-1.c: Remove default vector testsuite compile flags. · 04619cb8
      2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
      
      	* gcc.dg/vect/vect-nb-iter-ub-1.c: Remove default vector
      	testsuite compile flags.
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto.
      
      2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
      
      	* g++dg/vect/pr36684.cc: Add dg-do compile.
      	* gcc.dg/vect/O3-pr70130.c: Remove dg-do run.
      	* gcc.dg/vect/pr70021.c: Ditto.
      	* gcc.dg/vect/pr70138-1.c: Ditto.
      	* gcc.dg/vect/pr70138-2.c: Ditto.
      	* gcc.dg/vect/pr70354-1.c: Ditto.
      	* gcc.dg/vect/pr70354-2.c: Ditto.
      	* gcc.dg/vect/pr71259.c: Ditto.
      	* gcc.dg/vect/pr71416-1.c: Ditto.
      	* gcc.dg/vect/slp-43.c: Ditto.
      	* gcc.dg/vect/slp-45.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-1.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto.
      	* gfortran.dg/vect/pr69980.f90: Ditto.
      
      2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
      
      	* gcc.dg/vect/O3-pr70130.c: Include tree-vect.h and call check_vect.
      	* gcc.dg/vect/bb-slp-30.c: Ditto.
      	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Ditto.
      	* gcc.dg/vect/fast-math-bb-slp-call-3.c: Ditto.
      	* gcc.dg/vect/pr45902.c: Ditto.
      	* gcc.dg/vect/pr48172.c: Ditto.
      	* gcc.dg/vect/pr48377.c: Ditto.
      	* gcc.dg/vect/pr49038.c: Ditto.
      	* gcc.dg/vect/pr49771.c: Ditto.
      	* gcc.dg/vect/pr52091.c: Ditto.
      	* gcc.dg/vect/pr53185-2.c: Ditto.
      	* gcc.dg/vect/pr56826.c: Ditto.
      	* gcc.dg/vect/pr60276.c: Ditto.
      	* gcc.dg/vect/pr62021.c: Ditto.
      	* gcc.dg/vect/pr63530.c: Ditto.
      	* gcc.dg/vect/pr65518.c: Ditto.
      	* gcc.dg/vect/pr65947-1.c: Ditto.
      	* gcc.dg/vect/pr65947-10.c: Ditto.
      	* gcc.dg/vect/pr65947-11.c: Ditto.
      	* gcc.dg/vect/pr65947-12.c: Ditto.
      	* gcc.dg/vect/pr65947-13.c: Ditto.
      	* gcc.dg/vect/pr65947-2.c: Ditto.
      	* gcc.dg/vect/pr65947-3.c: Ditto.
      	* gcc.dg/vect/pr65947-4.c: Ditto.
      	* gcc.dg/vect/pr65947-5.c: Ditto.
      	* gcc.dg/vect/pr65947-6.c: Ditto.
      	* gcc.dg/vect/pr65947-7.c: Ditto.
      	* gcc.dg/vect/pr65947-8.c: Ditto.
      	* gcc.dg/vect/pr65947-9.c: Ditto.
      	* gcc.dg/vect/pr71416-1.c: Ditto.
      	* gcc.dg/vect/pr71439.c: Ditto.
      	* gcc.dg/vect/slp-widen-mult-half.c: Ditto.
      	* gcc.dg/vect/vect-bswap16.c: Ditto.
      	* gcc.dg/vect/vect-bswap32.c: Ditto.
      	* gcc.dg/vect/vect-bswap64.c: Ditto.
      	* gcc.dg/vect/vect-live-1.c: Ditto.
      	* gcc.dg/vect/vect-live-2.c: Ditto.
      	* gcc.dg/vect/vect-live-3.c: Ditto.
      	* gcc.dg/vect/vect-live-4.c: Ditto.
      	* gcc.dg/vect/vect-live-5.c: Ditto.
      	* gcc.dg/vect/vect-live-slp-1.c: Ditto.
      	* gcc.dg/vect/vect-live-slp-2.c: Ditto.
      	* gcc.dg/vect/vect-live-slp-3.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-1.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Ditto.
      	* gcc.dg/vect/vect-nb-iter-ub-3.c: Ditto.
      	* gcc.dg/vect/vect-neg-store-1.c: Ditto.
      	* gcc.dg/vect/vect-neg-store-2.c: Ditto.
      	* gcc.dg/vect/vect-outer-pr69720.c: Ditto.
      	* gcc.dg/vect/vect-reduc-mul_1.c: Ditto.
      	* gcc.dg/vect/vect-reduc-mul_2.c: Ditto.
      	* gcc.dg/vect/vect-reduc-or_1.c: Ditto.
      	* gcc.dg/vect/vect-reduc-or_2.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-const-s16.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-const-u16.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-half-u8.c: Ditto.
      	* gcc.dg/vect/vect-widen-mult-half.c: Ditto.
      
      From-SVN: r237761
      Uros Bizjak committed
    • float128-cmp-invalid.c (main): Use __builtin_nanq. · da224bcb
      	* gcc.dg/torture/float128-cmp-invalid.c (main): Use __builtin_nanq.
      
      From-SVN: r237760
      Uros Bizjak committed
    • tree-vect.h (check_vect): Handle __SSE4_2__. · 936ff030
      	* gcc.dg/vect/tree-vect.h (check_vect): Handle __SSE4_2__.
      
      From-SVN: r237759
      Uros Bizjak committed
    • configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to assemble for 32bit target. · e1ebd31d
      	* configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
      	assemble for 32bit target.
      	(HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
      	and $ld_ix86_gld_32_opt to link for 32bit target.
      	(HAVE_AS_IX86_TLSLDMPLT): Ditto.
      	* configure: Regenerate.
      
      From-SVN: r237758
      Uros Bizjak committed
    • [ARM][1/4] Replace uses of int_log2 by exact_log2 · 68a86323
      	* config/arm/arm.c (int_log2): Delete definition and prototype.
      	(shift_op): Use exact_log2 instead of int_log2.
      	(vfp3_const_double_for_fract_bits): Likewise.
      
      From-SVN: r237757
      Kyrylo Tkachov committed
    • Enable non-PIC noplt tests on 32-bit x86 target · dfee2870
      Since non-PIC noplt works on 32-bit x86 target now with assembler/linker
      support, enable non-PIC noplt tests on 32-bit x86 target.  main in
      noplt-2.c and noplt-4.c are renamed to bar to avoid stack re-alignment
      in main for 32-bit target, which disables tailcall optimization.
      
      	* gcc.target/i386/noplt-1.c: Don't disable for ia32.  Scan for
      	ia32 if R_386_GOT32X relocation is supported.
      	* gcc.target/i386/noplt-3.c: Likewise.
      	* gcc.target/i386/noplt-2.c: Likewise.
      	(main): Renamed to ...
      	(bar): This.
      	* gcc.target/i386/noplt-4.c: Likewise.
      	(main): Renamed to ...
      	(bar): This.
      	* gcc.target/i386/pr67400-3.c: Don't disable for ia32.
      	* gcc.target/i386/pr67400-5.c: Likewise.
      
      From-SVN: r237756
      H.J. Lu committed
    • call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p. · 00085092
      	* call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p.
      	(build_over_call): For magic == 3, do no conversion only on 3rd
      	argument.
      
      	* c-c++-common/torture/builtin-arith-overflow-p-19.c: Run for C++ too.
      	* g++.dg/ext/builtin-arith-overflow-2.C: New test.
      
      From-SVN: r237755
      Jakub Jelinek committed
    • internal-fn.c (expand_arith_set_overflow): New function. · a86451b9
      	* internal-fn.c (expand_arith_set_overflow): New function.
      	(expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
      	Use it.
      	(expand_arith_overflow_result_store): Likewise.  Handle precision
      	smaller than mode precision.
      	* tree-vrp.c (extract_range_basic): For imag part, handle
      	properly signed 1-bit precision result.
      	* doc/extend.texi (__builtin_add_overflow): Document that last
      	argument can't be pointer to enumerated or boolean type.
      	(__builtin_add_overflow_p): Document that last argument can't
      	have enumerated or boolean type.
      
      	* c-common.c (check_builtin_function_arguments): Require last
      	argument of BUILT_IN_*_OVERFLOW_P to have INTEGER_TYPE type.
      	Adjust wording of diagnostics for BUILT_IN_*_OVERLFLOW
      	if the last argument is pointer to enumerated or boolean type.
      
      	* c-c++-common/builtin-arith-overflow-1.c (generic_wrong_type, f3,
      	f4): Adjust expected diagnostics.
      	* c-c++-common/torture/builtin-arith-overflow.h (TP): New macro.
      	(T): If OVFP is defined, redefine to TP.
      	* c-c++-common/torture/builtin-arith-overflow-12.c: Adjust comment.
      	* c-c++-common/torture/builtin-arith-overflow-p-1.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-2.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-3.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-4.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-5.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-6.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-7.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-8.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-9.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-10.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-11.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-12.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-13.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-14.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-15.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-16.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-17.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-18.c: New test.
      	* c-c++-common/torture/builtin-arith-overflow-p-19.c: New test.
      	* g++.dg/ext/builtin-arith-overflow-1.C: Pass 0 instead of C
      	as last argument to __builtin_add_overflow_p.
      
      From-SVN: r237754
      Jakub Jelinek committed
    • Daily bump. · 43535362
      From-SVN: r237753
      GCC Administrator committed
  2. 23 Jun, 2016 17 commits
    • array (array<>::swap): Fix noexcept qualificaton for zero-size array. · e615c24c
      2016-06-23  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/array (array<>::swap): Fix noexcept qualificaton for
      	zero-size array.
      
      From-SVN: r237747
      François Dumont committed
    • pr33834_2.cc: Use dg-additional-options instead of dg-options and remove default vector... · 7bb5d5f4
      	* g++.dg/vect/pr33834_2.cc: Use dg-additional-options instead of
      	dg-options and remove default vector testsuite compile flags.
      	* g++.dg/vect/pr33860a.cc: Ditto.
      	* g++.dg/vect/pr45470-a.cc: Ditto.
      	* g++.dg/vect/pr45470-b.cc: Ditto.
      	* g++.dg/vect/pr60896.cc: Ditto.
      	* gcc.dg/vect/no-tree-pre-pr45241.c: Ditto.
      	* gcc.dg/vect/pr18308.c: Ditto.
      	* gcc.dg/vect/pr24049.c: Ditto.
      	* gcc.dg/vect/pr33373.c: Ditto.
      	* gcc.dg/vect/pr36228.c: Ditto.
      	* gcc.dg/vect/pr42395.c: Ditto.
      	* gcc.dg/vect/pr42604.c: Ditto.
      	* gcc.dg/vect/pr46663.c: Ditto.
      	* gcc.dg/vect/pr48765.c: Ditto.
      	* gcc.dg/vect/pr49093.c: Ditto.
      	* gcc.dg/vect/pr49352.c: Ditto.
      	* gcc.dg/vect/pr52298.c: Ditto.
      	* gcc.dg/vect/pr52870.c: Ditto.
      	* gcc.dg/vect/pr53185.c: Ditto.
      	* gcc.dg/vect/pr53773.c: Ditto.
      	* gcc.dg/vect/pr56695.c: Ditto.
      	* gcc.dg/vect/pr62171.c: Ditto.
      	* gcc.dg/vect/pr63530.c: Ditto.
      	* gcc.dg/vect/pr68339.c: Ditto.
      	* gcc.dg/vect/pr71259.c: Ditto.
      	* gcc.dg/vect/vect-82_64.c: Ditto.
      	* gcc.dg/vect/vect-83_64.c: Ditto.
      	* gcc.dg/vect/vect-debug-pr41926.c: Ditto.
      	* gcc.dg/vect/vect-shift-2-big-array.c: Ditto.
      	* gcc.dg/vect/vect-shift-2.c: Ditto.
      	* gfortran.dg/vect/fast-math-mgrid-resid.f: Ditto.
      	* gfortran.dg/vect/pr39318.f90: Ditto.
      	* gfortran.dg/vect/pr45714-a.f: Ditto.
      	* gfortran.dg/vect/pr45714-b.f: Ditto.
      	* gfortran.dg/vect/pr46213.f90: Ditto.
      
      From-SVN: r237745
      Uros Bizjak committed
    • predicates.md (splat_input_operand): Rework. · 2d4bb02f
      [gcc]
      2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/predicates.md (splat_input_operand): Rework.
      	Don't allow constants, since the insns that use this predicate
      	don't support constants.  Constants are handled by other insns
      	that are created via combine.  During and after register
      	allocation, only allow indexed or indirect addresses, and not
      	general addresses.  Only allow modes supported by the hardware.
      	* config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
      	comment.  Move check for using VSPLTIS<x> to a common location,
      	instead of doing it in two different places.
      
      [gcc/testsuite]
      2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-splat-5.c: New test.
      
      
      Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
      
      From-SVN: r237743
      Michael Meissner committed
    • driver-i386.c (host_detect_local_cpu): Set PROCESSOR_PENTIUMPRO for… · a239d460
      driver-i386.c (host_detect_local_cpu): Set PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
      
      	* config/i386/driver-i386.c (host_detect_local_cpu): Set
      	PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
      	<case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
      	signature_CENTAUR_ebx.
      
      From-SVN: r237741
      Jocelyn Mayer committed
    • re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge… · f6d1b868
      re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge and westmere targets)
      
      	PR tree-optimization/71488
      	* gcc.target/i386/i386.exp (check_effective_target_sse4): Move to ...
      	* lib/target-supports.exp: ... here.
      	(check_sse4_hw_available): New procedure.
      	(check_effective_target_sse4_runtime): Ditto.
      	* g++.dg/pr71488.C (dg-additional-options): Use -msse4 instead of
      	-march=westmere for sse4_runtime targets.
      	* gcc.dg/vect/vect-bool-cmp.c: Include "tree-vect.h".
      	(dg-additional-options): Use for sse4_runtime targets.
      	(main): Call check_vect ().
      	(dg-final): Perform scan only for sse4_runtime targets.
      
      From-SVN: r237738
      Uros Bizjak committed
    • Apply missing changes · 49677530
      From-SVN: r237737
      H.J. Lu committed
    • i386: Access external function via GOT slot for -fno-plt · c0597759
      i386 psABI has been updated to clarify that R_386_GOT32X and R_386_GOT32
      relocations can be used to access GOT without base register when PIC is
      disabled:
      
      https://groups.google.com/forum/#!topic/ia32-abi/awsRSvJOJfs
      
      32-bit x86 assembler and linker from binutils 2.26.1 and 2.27 support
      
      call/jmp *_start@GOT
      cmpl $0, bar@GOT
      
      for both normal and IFUNC functions.  We check if 32-bit x86 assembler
      and linker have the fix for:
      
      https://sourceware.org/bugzilla/show_bug.cgi?id=20244
      
      before accessing external function via GOT slot for -fno-plt in both PIC
      and non-PIC modes.
      
      	PR target/66232
      	PR target/67400
      	* configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
      	(as_ix86_gas_32_opt): This.
      	(ld_ix86_tls_ldm_opt): Renamed to ...
      	(ld_ix86_gld_32_opt): This.
      	(R_386_TLS_LDM reloc): Updated.
      	(R_386_GOT32X reloc): New assembler/linker check.
      	(HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
      	linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
      	defined to 0.
      	* config.in: Regenerated.
      	* configure: Likewise.
      	* config/i386/i386.c (ix86_force_load_from_GOT_p): Return
      	true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
      	(ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
      	if ix86_force_load_from_GOT_p returns true.
      	(ix86_print_operand_address_as): Also support UNSPEC_GOT if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
      	the external function address via the GOT slot.
      	(ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
      	HAVE_AS_IX86_GOT32X before returning false.
      	(ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
      	32-bit mode if ix86_nopic_noplt_attribute_p returns true.
      
      gcc/testsuite/
      
      	PR target/66232
      	PR target/67400
      	* gcc.target/i386/pr66232-14.c: New file.
      	* gcc.target/i386/pr66232-15.c: Likewise.
      	* gcc.target/i386/pr66232-16.c: Likewise.
      	* gcc.target/i386/pr66232-17.c: Likewise.
      	* gcc.target/i386/pr67400-1.c: Don't disable for ia32.  Scan for
      	ia32 if R_386_GOT32X relocation is supported.
      	* gcc.target/i386/pr67400-2.c: Likewise.
      	* gcc.target/i386/pr67400-3.c: Likewise.
      	* gcc.target/i386/pr67400-4.c: Likewise.
      	* gcc.target/i386/pr67400-6.c: Likewise.
      	* gcc.target/i386/pr67400-7.c: Likewise.
      	* lib/target-supports.exp (check_effective_target_got32x_reloc):
      	New.
      
      From-SVN: r237736
      H.J. Lu committed
    • re PR libfortran/48852 (Invalid spaces in list-directed output of complex constants) · 5b0e27a7
      2016-06-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/48852
      	* io/write.c: Cleaned up whitespace.
      	(write_d, write_e, write_f, write_es, write_en): Use new helper function
      	write_float_0. (write_float_0): New helper function.
      	(get_precision, select_buffer, select_string, write_float_string): New
      	helper functions used in remaining float writing functions. Helper function
      	write_float_string now contains code for writing to kind=4 character
      	internal units.
      	(write_real): Modified to establish working buffers at this level and to
      	use new helper functions.
      	(write_real_g0): Likewise modified.
      	(write_complex): Likewise modified. Gets both float strings before
      	output so that final lengths can be determined which allows right
      	justifying the complex number with no intervening spaces.
      	* io/write_float.def (build_float_string): Renamed from previosly
      	output_float, modified to use buffers passed in from higher functions,
      	builds a null terminated string of the floating point value. Character
      	kind=4 code eliminated.
      	(write_infnan): Likewise modified to use incoming buffers and eliminate
      	kind=4 related code.
      	(OUTPUT_FLOAT_FMT_G): Deleted, functionality moved into FORMAT_FLOAT.
      	(FORMAT_FLOAT): Renamed macro from WRITE_FLOAT. Use build_float_string.
      	(get_float_string): Renamed from write_float, uses FORMAT_FLOAT macro.
      	Buffer allocation removed, now at higher level.
      
      	PR libgfortran/48852
      	* gfortran.dg/char4_iunit_1.f03: Update test.
      	* gfortran.dg/f2003_io_5.f03: Update test.
      	* gfortran.dg/real_const_3.f90: Update test.
      
      From-SVN: r237735
      Jerry DeLisle committed
    • Add make autoprofiledbootstrap · 277d7ee0
      Add support for profiledbootstrap with autofdo. Will be useful
      to get better testing coverage of autofdo.
      
      This requires Linux perf and autofdo to be installed, only
      really for x86_64 linux on Intel so far.
      
      Profile the whole build process with perf, then convert the file,
      and pass it back to the compiler in the feedback stage.
      
      The conversion has to be done per language, as only that knows
      the name of the binary. Currently we only do it for C and C++,
      as the other languages don't have enough coverage during a normal
      bootstrap.
      
      For lto1 it is also disabled, because it would only be useful during a LTO
      bootstrap, but right now autofdo and LTO are not working together due to
      PR66229
      
      For common backend files always the profile output of the C++ compiler
      is used. In theory multiple inputs could be merged here, but so far
      that is not implemented.
      
      The method is not friendly to partial rebuilds, as only the profile
      information from the current rebuild is used. So if an error
      occurs it is best to clean and restart, otherwise the code
      quality may be worse.
      
      This patch is fairly large, but most of it is auto generated from
      autogen in Makefile.in. for the new stage targets.
      
      Passes profiledbootstrap and normal bootstrap on x86_64-linux.
      autoprofiledbootstrap is currently not working due to
      PR70427 (but it finishes with that worked around)
      
      The autofdo'ed compiler is ~7% faster on insn-recog.i (vs ~11% for
      profiledfeedback), and ~4% faster for tramp3d-v4 (vs 10% for
      profiledfeedback) on a Sandy Bridge system.
      
      gcc/lto/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo (disabled for now)
      
      gcc/cp/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo.
      
      gcc/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.in: Regenerate.
      	* doc/install.texi: Document autoprofiledbootstrap.
      
      /:
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.def: Add autoprofiledbootstrap.
      	* Makefile.tpl: Dito.
      	* Makefile.in: Regenerate.
      
      gcc/c/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* Make-lang.in: Add support for autofdo.
      
      From-SVN: r237733
      Andi Kleen committed
    • Run profile feedback tests with autofdo · 7f586d90
      Extend the existing bprob and tree-prof tests to also run with autofdo.
      The test runtimes are really a bit too short for autofdo, but it's
      a reasonable sanity check.
      
      This only works natively for now.
      
      dejagnu doesn't seem to support a wrapper for unix tests, so I had
      to open code running these tests.  That should be ok due to the
      native run restrictions.
      
      gcc/testsuite/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* g++.dg/bprob/bprob.exp: Support autofdo.
      	* g++.dg/tree-prof/tree-prof.exp: dito.
      	* gcc.dg/tree-prof/tree-prof.exp: dito.
      	* gcc.misc-tests/bprob.exp: dito.
      	* gfortran.dg/prof/prof.exp: dito.
      	* lib/profopt.exp: dito.
      	* lib/target-supports.exp: Check for autofdo.
      
      From-SVN: r237732
      Andi Kleen committed
    • Add gcc-auto-profile script · 7b72d14a
      Using autofdo is currently something difficult. It requires using the
      model specific branches taken event, which differs on different CPUs.
      The example shown in the manual requires a special patched version of
      perf that is non standard, and also will likely not work everywhere.
      
      This patch adds a new gcc-auto-profile script that figures out the
      correct event and runs perf.
      
      This is needed to actually make use of autofdo in a generic way
      in the build system and in the test suite.
      
      Since maintaining the script would be somewhat tedious (needs changes
      every time a new CPU comes out) I auto generated it from the online
      Intel event database. The script to do that is in contrib and can be
      rerun.
      
      Right now there is no test if perf works in configure. This
      would vary depending on the build and target system, and since
      it currently doesn't work in virtualization and needs uptodate
      kernel it may often fail in common distribution build setups.
      
      So far the script is not installed.
      
      gcc/:
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* config/i386/gcc-auto-profile: New file.
      
      contrib/:
      
      2016-06-23  Andi Kleen  <ak@linux.intel.com>
      
      	* gen_autofdo_event.py: New file to regenerate
      	gcc-auto-profile.
      
      From-SVN: r237731
      Andi Kleen committed
    • re PR middle-end/71619 (ICE: in predict_loops, at predict.c:1772 with… · 60fa7862
      re PR middle-end/71619 (ICE: in predict_loops, at predict.c:1772 with --param=max-predicted-iterations=0)
      
      Fix PR middle-end/71619
      
      	PR middle-end/71619
      	* predict.c (predict_loops): Revert the hunk that was removed
      	in r237103.
      	* gcc.dg/pr71619.c: New test.
      
      From-SVN: r237730
      Martin Liska committed
    • config.host: Add suport for arm*-*-phoenix* targets. · a34c0db5
      2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
      
         * config.host: Add suport for arm*-*-phoenix* targets.
      
      From-SVN: r237729
      Jakub Sejdak committed
    • config.gcc: Add support for arm*-*-phoenix* targets. · bfdd80d4
      2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
      
      	* config.gcc: Add support for arm*-*-phoenix* targets.
      	* config/arm/t-phoenix: New.
      	* config/phoenix.h: New.
      
      From-SVN: r237728
      Jakub Sejdak committed
    • configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets. · fd6487af
      2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
      
          * configure.ac: Disable libgcj and libgloss for Phoenix-RTOS targets.
          * configure: Regenerate.
      
      From-SVN: r237727
      Jakub Sejdak committed
    • Daily bump. · cc425e3d
      From-SVN: r237726
      GCC Administrator committed
  3. 22 Jun, 2016 13 commits
    • * testsuite/ChangeLog: Whitespace fixes. · cc901875
      From-SVN: r237721
      Uros Bizjak committed
    • re PR target/67400 (-fno-plt doesn't work with function pointers) · e3d62871
      	PR target/67400
      	* config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
      	* config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
      	(ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
      	ix86_force_load_from_GOT_p returns true.
      	(ix86_expand_move): Load the external function address via the
      	GOT slot if ix86_force_load_from_GOT_p returns true.
      	* config/i386/predicates.md (x86_64_immediate_operand): Return
      	false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
      	(x86_64_zext_immediate_operand): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/67400
              * gcc.target/i386/pr67400-1.c: New test.
              * gcc.target/i386/pr67400-2.c: Likewise.
              * gcc.target/i386/pr67400-3.c: Likewise.
              * gcc.target/i386/pr67400-4.c: Likewise.
              * gcc.target/i386/pr67400-5.c: Likewise.
              * gcc.target/i386/pr67400-6.c: Likewise.
              * gcc.target/i386/pr67400-7.c: Likewise.
      
      From-SVN: r237720
      Uros Bizjak committed
    • i386.c (ix86_expand_move): Simplify SYMBOL_REF handling. · 37c467c0
      	* config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
      
      From-SVN: r237716
      Uros Bizjak committed
    • libcpp: Tweak to missing #include source location · ac81cf0b
      This patch tweaks the error message location for missing header files.
      
      Previously these read:
      
      test.c:1:17: fatal error: 404.h: No such file or directory
       #include "404.h"
                       ^
      compilation terminated.
      
      With this patch, the pertinent string is underlined:
      
      test.c:1:10: fatal error: 404.h: No such file or directory
       #include "404.h"
                ^~~~~~~
      compilation terminated.
      
      gcc/testsuite/ChangeLog:
      	* c-c++-common/missing-header-1.c: New test case.
      	* c-c++-common/missing-header-2.c: New test case.
      	* c-c++-common/missing-header-3.c: New test case.
      	* c-c++-common/missing-header-4.c: New test case.
      
      libcpp/ChangeLog:
      	* directives.c (do_include_common): Pass on "location" to
      	_cpp_stack_include.
      	* errors.c (cpp_diagnostic): Reimplement in terms of...
      	(cpp_diagnostic_at): New function.
      	(cpp_error_at): New function.
      	(cpp_errno_filename): Add "loc" param and use it by using
      	cpp_error_at rather than cpp_error.
      	* files.c (find_file_in_dir): Add "loc" param and pass it to
      	open_file_failed.
      	(_cpp_find_file): Add "loc" param.  Use it to convert calls to
      	cpp_error to cpp_error_at, and pass it to find_file_in_dir and
      	open_file_failed.
      	(read_file_guts): Add "loc" param.  Use it to convert calls to
      	cpp_error to cpp_error_at.  Pass it to cpp_errno_filename.
      	(read_file): Add "loc" param.  Pass it to open_file_failed and
      	read_file_guts.
      	(should_stack_file): Add "loc" param.  Pass it to read_file.
      	(_cpp_stack_file): Add "loc" param.  Pass it to should_stack_file.
      	(_cpp_stack_include): Add "loc" param.  Pass it to
      	_cpp_find_file and _cpp_stack_file.
      	(open_file_failed): Add "loc" param.  Pass it to
      	cpp_errno_filename.
      	(_cpp_fake_include): Add 0 as a source_location in call to
      	_cpp_find_file.
      	(_cpp_compare_file_date): Likewise.
      	(cpp_push_include): Likewise for call to _cpp_stack_include.
      	(cpp_push_default_include): Likewise.
      	(_cpp_save_file_entries): Likewise for call to open_file_failed.
      	(_cpp_has_header): Likewise for call to _cpp_find_file.
      	* include/cpplib.h (cpp_errno_filename): Add source_location
      	param.
      	(cpp_error_at): New declaration.
      	* init.c (cpp_read_main_file): Add 0 as a source_location in calls
      	to _cpp_find_file and _cpp_stack_file.
      	* internal.h (_cpp_find_file): Add source_location param.
      	(_cpp_stack_file): Likewise.
      	(_cpp_stack_include): Likewise.
      
      From-SVN: r237715
      David Malcolm committed
    • C FE: suggest corrections for misspelled identifiers and type names · 1a4f11c8
      gcc/c-family/ChangeLog:
      	PR c/70339
      	* c-common.h (enum lookup_name_fuzzy_kind): New enum.
      	(lookup_name_fuzzy): New prototype.
      
      gcc/c/ChangeLog:
      	PR c/70339
      	* c-decl.c: Include spellcheck-tree.h and gcc-rich-location.h.
      	(implicit_decl_warning): When issuing warnings for implicit
      	declarations, attempt to provide a suggestion via
      	lookup_name_fuzzy.
      	(undeclared_variable): Likewise when issuing errors.
      	(lookup_name_in_scope): Likewise.
      	(struct edit_distance_traits<cpp_hashnode *>): New struct.
      	(best_macro_match): New typedef.
      	(find_closest_macro_cpp_cb): New function.
      	(lookup_name_fuzzy): New function.
      	* c-parser.c: Include gcc-rich-location.h.
      	(c_token_starts_typename): Split out case CPP_KEYWORD into...
      	(c_keyword_starts_typename): ...this new function.
      	(c_parser_declaration_or_fndef): When issuing errors about
      	missing "struct" etc, add a fixit.  For other kinds of errors,
      	attempt to provide a suggestion via lookup_name_fuzzy.
      	(c_parser_parms_declarator): When looking ahead to detect typos in
      	type names, also reject CPP_KEYWORD.
      	(c_parser_parameter_declaration): When issuing errors about
      	unknown type names, attempt to provide a suggestion via
      	lookup_name_fuzzy.
      	* c-tree.h (c_keyword_starts_typename): New prototype.
      
      gcc/ChangeLog:
      	PR c/70339
      	* diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
      	* diagnostic.c (pedwarn_at_rich_loc): New function.
      	* spellcheck.h (best_match::best_match): Add a
      	"best_distance_so_far" optional parameter.
      	(best_match::set_best_so_far): New method.
      	(best_match::get_best_distance): New accessor.
      	(best_match::get_best_candidate_length): New accessor.
      
      gcc/testsuite/ChangeLog:
      	PR c/70339
      	* c-c++-common/attributes-1.c: Update dg-prune-output to include
      	hint.
      	* gcc.dg/diagnostic-token-ranges.c (undeclared_identifier): Update
      	expected results due to builtin "nanl" now being suggested for
      	"name".
      	* gcc.dg/pr67580.c: Update expected messages.
      	* gcc.dg/spellcheck-identifiers.c: New testcase.
      	* gcc.dg/spellcheck-typenames.c: New testcase.
      
      From-SVN: r237714
      David Malcolm committed
    • dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in place of… · 6f99ef82
      dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in place of GET_MODE_CLASS() == MODE_INT...
      
      	* dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
      	place of GET_MODE_CLASS() == MODE_INT, so that partial integer
      	modes are accepted as well.
      	(ucompare_loc_descriptor): Likewise.
      	(minmax_loc_descriptor): Likewise.
      	(clz_loc_descriptor): Likewise.
      	(popcount_loc_descriptor): Likewise.
      	(bswap_loc_descriptor): Likewise.
      	(rotate_loc_descriptor): Likewise.
      	(mem_loc_descriptor): Likewise.
      	(loc_descriptor): Likewise.
      
      From-SVN: r237713
      Nick Clifton committed
    • Implement -fdiagnostics-parseable-fixits · a93eac6a
      gcc/ChangeLog:
      	* common.opt (fdiagnostics-parseable-fixits): New option.
      	* diagnostic.c: Include "selftest.h".
      	(print_escaped_string): New function.
      	(print_parseable_fixits): New function.
      	(diagnostic_report_diagnostic): Call print_parseable_fixits.
      	(selftest::assert_print_escaped_string): New function.
      	(ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
      	(selftest::test_print_escaped_string): New function.
      	(selftest::test_print_parseable_fixits_none): New function.
      	(selftest::test_print_parseable_fixits_insert): New function.
      	(selftest::test_print_parseable_fixits_remove): New function.
      	(selftest::test_print_parseable_fixits_replace): New function.
      	(selftest::diagnostic_c_tests): New function.
      	* diagnostic.h (struct diagnostic_context): Add field
      	"parseable_fixits_p".
      	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
      	-fdiagnostics-parseable-fixits.
      	(-fdiagnostics-parseable-fixits): New option.
      	* opts.c (common_handle_option): Handle
      	-fdiagnostics-parseable-fixits.
      	* selftest-run-tests.c (selftest::run_tests): Call
      	selftest::diagnostic_c_tests.
      	* selftest.h (selftest::diagnostic_c_tests): New prototype.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c: New
      	file.
      	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add
      	diagnostic-test-show-locus-parseable-fixits.c to sources for
      	diagnostic_plugin_test_show_locus.c.
      	* lib/gcc-defs.exp (freeform_regexps): New global.
      	(dg-regexp): New function.
      	(handle-dg-regexps): New function.
      	* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Reset
      	freeform_regexps to the empty list.
      	* lib/prune.exp (prune_gcc_output): Call handle-dg-regexps.
      
      libcpp/ChangeLog:
      	* include/line-map.h (fixit_hint::get_start_loc): New pure virtual
      	function.
      	(fixit_hint::maybe_get_end_loc): Likewise.
      	(fixit_insert::get_start_loc): New function, implementing
      	fixit_hint::get_start_loc.
      	(fixit_insert::maybe_get_end_loc): New function, implementing
      	fixit_hint::maybe_get_end_loc.
      	(fixit_remove::get_start_loc): New function, implementing
      	fixit_hint::get_start_loc.
      	(fixit_remove::maybe_get_end_loc): New function, implementing
      	fixit_hint::maybe_get_end_loc.
      	(fixit_replace::get_start_loc): New function, implementing
      	fixit_hint::get_start_loc.
      	(fixit_replace::maybe_get_end_loc): New function, implementing
      	fixit_hint::maybe_get_end_loc.
      
      From-SVN: r237712
      David Malcolm committed
    • * gcc.dg/guality/param-5.c (clear_stack): Tweak. · d53c0398
      From-SVN: r237710
      Eric Botcazou committed
    • re PR target/71151 ([avr] -fmerge-constants and… · e0277d6b
      re PR target/71151 ([avr] -fmerge-constants and -fdata-sections/-ffunction-sections results in string constants in .progmem.gcc_sw section)
      
      	* gcc/ChangeLog: Add pointer to PR71151 for r237536.
      	* gcc/testsuite/ChangeLog: Same.
      
      From-SVN: r237709
      Georg-Johann Lay committed
    • * gcc.dg/guality/param-5.c (clear_stack): Tweak. · e193b105
      From-SVN: r237707
      Eric Botcazou committed
    • re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge… · 49e76ff1
      re PR tree-optimization/71488 (Wrong code for vector comparisons with ivybridge and westmere targets)
      
      gcc/
      
      	PR middle-end/71488
      	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
      	comparison of boolean vectors.
      	* tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
      	of boolean vectors using bitwise operations.
      
      gcc/testsuite/
      
      	PR middle-end/71488
      	* g++.dg/pr71488.C: New test.
      	* gcc.dg/vect/vect-bool-cmp.c: New test.
      
      From-SVN: r237706
      Ilya Enkovich committed
    • aarch64-protos.h (aarch64_elf_asm_named_section): Remove declaration. · 79c94ff7
      * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
      Remove declaration.
      
      From-SVN: r237705
      Andreas Schwab committed