aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-12-21re PR c/77767 (Side-effect from VLA array parameters lost)Jakub Jelinek4-2/+39
PR c/77767 * c-decl.c (grokdeclarator): If *expr is non-NULL, append expression to *expr instead of overwriting it. * gcc.c-torture/execute/pr77767.c: New test. From-SVN: r243832
2016-12-20Use the middle-end boolean_type_nodeJanne Blomqvist2-4/+4
Use the boolean_type_node setup by the middle-end instead of redefining it. boolean_type_node is not used in GFortran for any ABI-visible stuff, only internally as the type of boolean expressions. There appears to be one exception to this, namely the caf_get* and caf_send* calls which have boolean_type_node arguments. However, on the library side they seem to use C _Bool, so I suspect this might be a case of a argument mismatch that hasn't affected anything so far. The practical effect of this is that the size of such variables will be the same as a C _Bool or C++ bool, that is, on most targets a single byte. Previously we redefined boolean_type_node to be a Fortran default logical kind sized variable, that is 4 or 8 bytes depending on compile options. This might enable slightly more compact code, in case the optimizer determines that the result of such a generated comparison expression needs to be stored in some temporary location rather than being used immediately. Regression tested on x86_64-pc-linux-gnu. 2016-12-20 Janne Blomqvist <jb@gcc.gnu.org> * trans-types.c (gfc_init_types): Don't redefine boolean type node. From-SVN: r243830
2016-12-20sms-3.c: Add -fno-sched-pressure for powerpc.Pat Haugen3-1/+7
* gcc.dg/sms-3.c: Add -fno-sched-pressure for powerpc. * gcc.dg/sms-6.c: Likewise. From-SVN: r243829
2016-12-20* gcc.dg/pr70859-2.c: Define _ISOC99_SOURCE on AIX.David Edelsohn2-0/+4
From-SVN: r243828
2016-12-20* gcc.dg/tls/alias-1.c: dg-add-options tls.David Edelsohn2-0/+5
From-SVN: r243827
2016-12-20pr78255-2.c: Fix to work for targets that do not optimize for tailcall.Andre Vieira2-1/+6
2016-12-20 Andre Vieira <andre.simoesdiasvieira@arm.com> * gcc.target/arm/pr78255-2.c: Fix to work for targets that do not optimize for tailcall. From-SVN: r243826
2016-12-20pr78796.c: dg-add-options tls.David Edelsohn4-2/+10
* gcc.dg/tls/pr78796.c: dg-add-options tls. * gcc.target/powerpc/fold-vec-mult-int.c: power8-vector. * gcc.target/powerpc/fold-vec-mult-longlong.c: -maix64. From-SVN: r243825
2016-12-20[Patch] Turn -fexcess-precision=fast on when in -ffast-mathJames Greenhalgh4-6/+25
* common.opt (excess_precision): Tag as SetByCombined. * opts.c (set_fast_math_flags): Also set flag_excess_precision_cmdline. (fast_math_flags_set_p): Also check flag_excess_precision_cmdline. * doc/invoke.texi (-fexcess-precision): Drop text saying the option has no effect under -ffast-math, make it clear that -ffast-math will cause -fexcess-precision=fast by default even for standards compliant modes. (-ffast-math): Document that this sets -fexcess-precision=fast. From-SVN: r243824
2016-12-20gimple-parser.c (c_parser_gimple_compound_statement): Improve error recovery.Richard Biener2-9/+26
2016-12-20 Richard Biener <rguenther@suse.de> c/ * gimple-parser.c (c_parser_gimple_compound_statement): Improve error recovery. (c_parser_gimple_statement): Only build assigns for non-error stmts. (c_parser_gimple_postfix_expression_after): Improve error recovery. From-SVN: r243823
2016-12-20passes.c (execute_one_pass): Handle going out of SSA w/o hitting pass_startwith.Richard Biener4-1/+23
2016-12-20 Richard Biener <rguenther@suse.de> * passes.c (execute_one_pass): Handle going out of SSA w/o hitting pass_startwith. Handle skipping property providers. * gcc.dg/gimplefe-19.c: New testcase. From-SVN: r243822
2016-12-20[ARM] PR target/78694: Avoid invalid RTL sharing in minipool codeKyrylo Tkachov4-5/+136
PR target/78694 * config/arm/arm.c (dump_minipool): Copy mp->value before emitting it in the minipool to avoid invalid RTL sharing. * gcc.c-torture/compile/pr78694.c: New test. From-SVN: r243820
2016-12-20Fix PR testsuite/71232 entry.Eric Botcazou1-1/+1
From-SVN: r243819
2016-12-20re PR tree-optimization/71237 (scev tests failing after pass reorganization)Eric Botcazou7-6/+16
PR testsuite/71237 * gnat.dg/vect1.adb: Add -fno-vect-cost-model to dg-options. * gnat.dg/vect2.adb: Likewise. * gnat.dg/vect3.adb: Likewise. * gnat.dg/vect4.adb: Likewise. * gnat.dg/vect5.adb: Likewise. * gnat.dg/vect6.adb: Likewise. From-SVN: r243818
2016-12-20Daily bump.GCC Administrator1-1/+1
From-SVN: r243817
2016-12-19trans-decl.c (create_main_function): Remove unused elements to the ↵Francois-Xavier Coudert4-34/+21
set_options call. * trans-decl.c (create_main_function): Remove unused elements to the set_options call. * runtime/compile_options.c (set_options): Remove unused elements. From-SVN: r243814
2016-12-19rs6000-protos.h (expand_strn_compare): Declare.Aaron Sawdey5-4/+430
* config/rs6000/rs6000-protos.h (expand_strn_compare): Declare. * config/rs6000/rs6000.md (UNSPEC_CMPB): New unspec. (cmpb<mode>3): pattern for generating cmpb. (cmpstrnsi): pattern to expand strncmp (). * config/rs6000/rs6000.opt (mstring-compare-inline-limit): Add a new target option for controlling how much code inline expansion of strncmp() will be allowed to generate. * config/rs6000/rs6000.c (expand_strncmp_align_check): generate code for runtime page crossing check of strncmp () args. (expand_strn_compare): Function to do builtin expansion of strncmp (). From-SVN: r243813
2016-12-19print_rtx_function: update example in commentDavid Malcolm2-23/+26
The patch updates the example dump in the comment for print_rtx_function to reflect various changes: - r241593: addition of insn UIDs - r241908: removal of trailing "(nil)" and other default values - r242023: addition of "param" directives - r243798: change of format of regnos in non-virtual pseudos (from "$2" to "<2>") gcc/ChangeLog: * print-rtl-function.c (print_rtx_function): Update example in comment to reflect current format. From-SVN: r243812
2016-12-19i386.md (*popcounthi2_1): New insn_and_split pattern.Uros Bizjak4-15/+49
* config/i386/i386.md (*popcounthi2_1): New insn_and_split pattern. testsuite/ChangeLog: * gcc.target/i386/pr59874-3.c: New test. From-SVN: r243811
2016-12-19cpp.texi: Clean up anachronistic C99 references and remove discussion of ↵Sandra Loosemore2-219/+52
very old GCC... 2016-12-19 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/cpp.texi: Clean up anachronistic C99 references and remove discussion of very old GCC versions. (Differences from previous versions): Delete entire section. From-SVN: r243810
2016-12-19Fix formatting.David Edelsohn1-6/+1
From-SVN: r243809
2016-12-19Move my updates to the correct ChangeLog.Will Schmidt2-10/+10
2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com> Move my updates to the correct ChangeLog. (ChangeLog->gcc/ChangeLog) From-SVN: r243808
2016-12-19rs6000.c: Add handling for early expansion of vector multiply builtins.Will Schmidt12-12/+242
2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c: Add handling for early expansion of vector multiply builtins. [gcc/testsuite] 2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.dg/vmx/mult-even-odd-be-order.c : Mark variables as volatile. * gcc.target/powerpc/fold-vec-mult-char.c : New. * gcc.target/powerpc/fold-vec-mult-float.c : New. * gcc.target/powerpc/fold-vec-mult-floatdouble.c : New. * gcc.target/powerpc/fold-vec-mult-int.c : New. * gcc.target/powerpc/fold-vec-mult-int128-p8.c : New. * gcc.target/powerpc/fold-vec-mult-int128-p9.c : New. * gcc.target/powerpc/fold-vec-mult-longlong.c : New. * gcc.target/powerpc/fold-vec-mult-short.c : New. From-SVN: r243807
2016-12-19rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of ↵Will Schmidt10-0/+284
vector subtract builtins. 2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector subtract builtins. [gcc/testsuite] 2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-sub-char.c: New. * gcc.target/powerpc/fold-vec-sub-float.c: New. * gcc.target/powerpc/fold-vec-sub-floatdouble.c: New. * gcc.target/powerpc/fold-vec-sub-int.c: New. * gcc.target/powerpc/fold-vec-sub-int128.c: New. * gcc.target/powerpc/fold-vec-sub-longlong.c: New. * gcc.target/powerpc/fold-vec-sub-short.c: New. From-SVN: r243806
2016-12-19runtime: copy cgo support from Go 1.7 runtimeIan Lance Taylor18-634/+630
Remove support for _cgo_allocate. It was removed from the gc toolchain in Go 1.5, so it is unlikely that anybody is trying to use it. Reviewed-on: https://go-review.googlesource.com/34557 From-SVN: r243805
2016-12-19Remove unused functions, take 2.Janne Blomqvist45-3062/+4
2016-12-19 Janne Blomqvist <jb@gcc.gnu.org> * Actually remove files that should have been removed by r243799. This line, and those below, will be ignored-- M libgfortran/ChangeLog D libgfortran/generated/exponent_r10.c D libgfortran/generated/exponent_r16.c D libgfortran/generated/exponent_r4.c D libgfortran/generated/exponent_r8.c D libgfortran/generated/fraction_r10.c D libgfortran/generated/fraction_r16.c D libgfortran/generated/fraction_r4.c D libgfortran/generated/fraction_r8.c D libgfortran/generated/nearest_r10.c D libgfortran/generated/nearest_r16.c D libgfortran/generated/nearest_r4.c D libgfortran/generated/nearest_r8.c D libgfortran/generated/rrspacing_r10.c D libgfortran/generated/rrspacing_r16.c D libgfortran/generated/rrspacing_r4.c D libgfortran/generated/rrspacing_r8.c D libgfortran/generated/set_exponent_r10.c D libgfortran/generated/set_exponent_r16.c D libgfortran/generated/set_exponent_r4.c D libgfortran/generated/set_exponent_r8.c D libgfortran/generated/spacing_r10.c D libgfortran/generated/spacing_r16.c D libgfortran/generated/spacing_r4.c D libgfortran/generated/spacing_r8.c D libgfortran/generated/transpose_c10.c D libgfortran/generated/transpose_c16.c D libgfortran/generated/transpose_c4.c D libgfortran/generated/transpose_c8.c D libgfortran/generated/transpose_i16.c D libgfortran/generated/transpose_i4.c D libgfortran/generated/transpose_i8.c D libgfortran/generated/transpose_r10.c D libgfortran/generated/transpose_r16.c D libgfortran/generated/transpose_r4.c D libgfortran/generated/transpose_r8.c D libgfortran/intrinsics/malloc.c D libgfortran/intrinsics/transpose_generic.c D libgfortran/m4/exponent.m4 D libgfortran/m4/fraction.m4 D libgfortran/m4/nearest.m4 D libgfortran/m4/rrspacing.m4 D libgfortran/m4/set_exponent.m4 D libgfortran/m4/spacing.m4 D libgfortran/m4/transpose.m4 From-SVN: r243804
2016-12-19trans.h: Remove gfor_fndecl_stop_numeric_f08.Francois-Xavier Coudert7-28/+13
* trans.h: Remove gfor_fndecl_stop_numeric_f08. * trans-decl.c: Remove gfor_fndecl_stop_numeric_f08. * trans-stmt.c (gfc_trans_stop): Use gfor_fndecl_stop_numeric instead of gfor_fndecl_stop_numeric_f08. * gfortran.map: Remove _gfortran_stop_numeric_f08. * runtime/stop.c: Rename stop_numeric_f08 into stop_numeric. From-SVN: r243803
2016-12-19* Makefile.in: Regenerate.François-Xavier Coudert1-31/+13
From-SVN: r243802
2016-12-19Makefile.am: Remove ISO_C_BINDING runtime functions.Francois-Xavier Coudert6-733/+9
* Makefile.am: Remove ISO_C_BINDING runtime functions. * Makefile.in: Regenerate. * gfortran.map: Remove all __iso_c_binding_c_f_pointer_* symbols. * intrinsics/iso_c_binding.h: Remove. * intrinsics/iso_c_binding.c: Remove. * intrinsics/iso_c_generated_procs.c: Remove. From-SVN: r243801
2016-12-19Makefile.am: Remove intrinsics/bit_intrinsics.c.Francois-Xavier Coudert5-160/+17
* Makefile.am: Remove intrinsics/bit_intrinsics.c. * Makefile.in: Regenerate. * gfortran.map: Remove _gfortran_clz128 and _gfortran_ctz128. * intrinsics/bit_intrinsics.c: Remove. From-SVN: r243800
2016-12-19Remove unused libgfortran functionsJanne Blomqvist6-563/+104
Now that the libgfortran ABI major version has been bumped, we can remove functions for which the frontend nowadays generates inline code. This removes the malloc, free, exponent, fraction, nearest, rrspacing, spacing, set_exponent and transpose intrinsics. Also the unused store_exe_path function is removed. 2016-12-19 Janne Blomqvist <jb@gcc.gnu.org> * Makefile.am: Remove exponent, fraction, nearest, rrspacing, set_exponent, spacing, transpose, malloc, transpose_generic. * Makefile.in: Regenerate. * generated/exponent_r10.c: Remove. * generated/exponent_r16.c: Remove. * generated/exponent_r4.c: Remove. * generated/exponent_r8.c: Remove. * generated/fraction_r10.c: Remove. * generated/fraction_r16.c: Remove. * generated/fraction_r4.c: Remove. * generated/fraction_r8.c: Remove. * generated/nearest_r10.c: Remove. * generated/nearest_r16.c: Remove. * generated/nearest_r4.c: Remove. * generated/nearest_r8.c: Remove. * generated/rrspacing_r10.c: Remove. * generated/rrspacing_r16.c: Remove. * generated/rrspacing_r4.c: Remove. * generated/rrspacing_r8.c: Remove. * generated/set_exponent_r10.c: Remove. * generated/set_exponent_r16.c: Remove. * generated/set_exponent_r4.c: Remove. * generated/set_exponent_r8.c: Remove. * generated/spacing_r10.c: Remove. * generated/spacing_r16.c: Remove. * generated/spacing_r4.c: Remove. * generated/spacing_r8.c: Remove. * generated/transpose_c10.c: Remove. * generated/transpose_c16.c: Remove. * generated/transpose_c4.c: Remove. * generated/transpose_c8.c: Remove. * generated/transpose_i16.c: Remove. * generated/transpose_i4.c: Remove. * generated/transpose_i8.c: Remove. * generated/transpose_r10.c: Remove. * generated/transpose_r16.c: Remove. * generated/transpose_r4.c: Remove. * generated/transpose_r8.c: Remove. * gfortran.map: Remove exponent, fraction, nearest, rrspacing, set_exponent, spacing, transpose, malloc, free, transpose_generic, store_exe_path. * intrinsics/malloc.c: Remove. * intrinsics/transpose_generic.c: Remove. * libgfortran.h (store_exe_path): Remove. * m4/exponent.m4: Remove. * m4/fraction.m4: Remove. * m4/nearest.m4: Remove. * m4/rrspacing.m4: Remove. * m4/set_exponent.m4: Remove. * m4/spacing.m4: Remove. * m4/transpose.m4: Remove. * runtime/main.c (store_exe_path): Remove. From-SVN: r243799
2016-12-19print-rtl.c: use '<' and '>' rather than % for pseudos in compact modeDavid Malcolm3-6/+13
gcc/ChangeLog: * print-rtl.c (rtx_writer::print_rtx_operand_code_r): For non-virtual pseudos in compact mode, wrap the regno in '<' and '>' rather than using a '%' prefix. * rtl-tests.c (selftest::test_dumping_regs): Update for above change. From-SVN: r243798
2016-12-19chmod.c (chmod_internal): Fix case where mode_t is different from unsigned int.Francois-Xavier Coudert2-7/+6
* intrinsics/chmod.c (chmod_internal): Fix case where mode_t is different from unsigned int. From-SVN: r243796
2016-12-19Make the perfect-forwarding constructor of a two-element tuple sfinae away ↵Ville Voutilainen4-3/+57
when the first argument is an allocator_arg. Make the perfect-forwarding constructor of a two-element tuple sfinae away when the first argument is an allocator_arg. * include/std/tuple (tuple(_U1&&, _U2&&)): Constrain. * testsuite/20_util/tuple/cons/allocator_with_any.cc: New. * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust. From-SVN: r243795
2016-12-19re PR fortran/78545 (Possible correction to online LTIME documentation)Janus Weil2-11/+23
2016-12-19 Janus Weil <janus@gcc.gnu.org> PR fortran/78545 * intrinsic.texi: Minor documentation fixes for non-standard time-related intrinsics. Add references to standard intrinsics and linkify some existing references. From-SVN: r243794
2016-12-19PR target/78748: S/390: Fix ICE with ANDC splitter.Dominik Vogt4-1/+30
gcc/ChangeLog: 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> PR target/78748 * config/s390/s390.md ("*andc_split_<mode>"): Allow memory destination only if it coincides with operand 2. gcc/testsuite/ChangeLog: 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> PR target/78748 * gcc.c-torture/compile/pr78748.c: New test. From-SVN: r243793
2016-12-19combine: Omit redundant AND in change_zero_ext.Dominik Vogt2-2/+11
This is another micro-optimisation in change_zero_ext. If an (and (lshiftrt ... (N)) (M)) generated by change_zero_ext is equivalent to just (lshiftrt ... (N)) (because the AND constant selects the N rightmost bits of the result), strip off the AND. gcc/ChangeLog: 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> * combine.c (change_zero_ext): Skip generation of redundant AND. From-SVN: r243792
2016-12-19netbsd.h (LINK_EH_SPEC): Define.Krister Walfridsson2-0/+8
2016-12-19 Krister Walfridsson <krister.walfridsson@gmail.com> * config/netbsd.h (LINK_EH_SPEC): Define. From-SVN: r243791
2016-12-19config.host (*-*-netbsd*): Add t-eh-dw2-dip to tmake_file.Krister Walfridsson4-3/+10
2016-12-19 Krister Walfridsson <krister.walfridsson@gmail.com> * config.host (*-*-netbsd*): Add t-eh-dw2-dip to tmake_file. * crtstuff.c (BSD_DL_ITERATE_PHDR_AVAILABLE): Define for NetBSD. * unwind-dw2-fde-dip.c (USE_PT_GNU_EH_FRAME, ElfW): Likewise. From-SVN: r243790
2016-12-19Add myself under Write After Approval.Chenghua Xu2-0/+5
From-SVN: r243789
2016-12-19Daily bump.GCC Administrator1-1/+1
From-SVN: r243788
2016-12-18re PR fortran/78545 (Possible correction to online LTIME documentation)Dominique d'Humieres4-13/+43
2016-12-18 Dominique d'Humieres <dominiq@lps.ens.fr> PR fortran/78545 * intrinsic.texi: Fix documentation for GMTIME and LTIME. * intrinsics/date_and_time.c: Fix comments for GMTIME and LTIME. From-SVN: r243785
2016-12-18re PR fortran/78848 ([OOP] ICE on writing CLASS variable with non-typebound ↵Janus Weil4-26/+68
DTIO procedure) 2016-12-18 Janus Weil <janus@gcc.gnu.org> PR fortran/78848 * trans-io.c (get_dtio_proc): Generate non-typebound DTIO call for class variables, if no typebound DTIO procedure is available. 2016-12-18 Janus Weil <janus@gcc.gnu.org> PR fortran/78848 * gfortran.dg/dtio_22.f90: New test. From-SVN: r243784
2016-12-18re PR fortran/78592 (ICE in gfc_find_specific_dtio_proc, at ↵Janus Weil4-12/+53
fortran/interface.c:4939) 2016-12-18 Janus Weil <janus@gcc.gnu.org> PR fortran/78592 * interfac.c (gfc_find_specific_dtio_proc): Fixup for r243005, making sure that the generic list is followed through until the end. 2016-12-18 Janus Weil <janus@gcc.gnu.org> PR fortran/78592 * gfortran.dg/dtio_21.f90: New test. From-SVN: r243783
2016-12-18lra-constraints.c (process_address): Add forward declaration.Eric Botcazou2-13/+31
* lra-constraints.c (process_address): Add forward declaration. (simplify_operand_subreg): In the MEM case, if the adjusted memory reference is not sufficient aligned and the address was invalid, reload the address before reloading the original memory reference. Fix long lines and add a final return for the sake of clarity. From-SVN: r243782
2016-12-18Daily bump.GCC Administrator1-1/+1
From-SVN: r243781
2016-12-17re PR fortran/78746 (charlen_03, charlen_10 ICE)Steven G. Kargl3-18/+6
2016-12-17 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/78746 * charlen_03.f90: Remove test. * charlen_10.f90: Ditto. From-SVN: r243778
2016-12-17re PR sanitizer/78832 (-fcompare-debug failure (length) with -fsanitize=address)Jakub Jelinek4-9/+43
PR sanitizer/78832 * sanopt.c (sanitize_asan_mark_unpoison): Remove next variable, use continue if gsi_next should be skipped. (sanitize_asan_mark_poison): Remove prev variable, use continue if gsi_prev should be skipped. When removing ASAN_MARK, do gsi_prev first and gsi_remove on a previously made copy of the iterator. * gcc.dg/asan/pr78832.c: New test. From-SVN: r243777
2016-12-17re PR fortran/78239 (ICE in char_len_param_value, at fortran/decl.c:926, ↵Thomas Koenig2-2/+10
with -fimplicit-none) 2016-12-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78239 * decl.c (char_len_param_value): Actually commit previous change. From-SVN: r243776
2016-12-17gmon: Remove empty directory.Matthias Klose1-0/+4
2016-12-17 Matthias Klose <doko@ubuntu.com> * config/arc/gmon: Remove empty directory. From-SVN: r243775
2016-12-17avx512bwintrin.h: Add new k-mask intrinsics.Andrew Senkevich11-4/+113
* config/i386/avx512bwintrin.h: Add new k-mask intrinsics. * config/i386/avx512dqintrin.h: Ditto. * config/i386/avx512fintrin.h: Ditto. * config/i386/i386-builtin.def (__builtin_ia32_kaddqi, __builtin_ia32_kaddhi, __builtin_ia32_kaddsi, __builtin_ia32_kadddi): New. * config/i386/sse.md (kadd<mode>): New. testsuite/ChangeLog: * gcc.target/i386/avx512bw-kaddd-1.c: New test. * gcc.target/i386/avx512bw-kaddq-1.c: Ditto. * gcc.target/i386/avx512dq-kaddb-1.c: Ditto. * gcc.target/i386/avx512f-kaddw-1.c: Ditto. From-SVN: r243774