- 24 Jun, 2016 10 commits
-
-
* 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 -
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 -
* gcc.dg/torture/float128-cmp-invalid.c (main): Use __builtin_nanq. From-SVN: r237760
Uros Bizjak committed -
* 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. (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 -
* 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 -
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. (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. (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 -
From-SVN: r237753
GCC Administrator committed
-
- 23 Jun, 2016 17 commits
-
-
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 -
* 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 -
[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 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 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 -
From-SVN: r237737
H.J. Lu committed -
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 -
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 -
From-SVN: r237734
Eric Botcazou committed -
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 -
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 -
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 --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 -
2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com> * config.host: Add suport for arm*-*-phoenix* targets. From-SVN: r237729
Jakub Sejdak committed -
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 -
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 -
From-SVN: r237726
GCC Administrator committed
-
- 22 Jun, 2016 13 commits
-
-
From-SVN: r237721
Uros Bizjak committed -
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 -
* config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling. From-SVN: r237716
Uros Bizjak committed -
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 -
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 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 -
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 -
From-SVN: r237710
Eric Botcazou committed -
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 -
From-SVN: r237707
Eric Botcazou committed -
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 -
* config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section): Remove declaration. From-SVN: r237705
Andreas Schwab committed -
From-SVN: r237703
Eric Botcazou committed
-