aboutsummaryrefslogtreecommitdiff
path: root/gcc
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 Coudert2-22/+12
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 Schmidt1-0/+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 Schmidt11-12/+237
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 Schmidt9-0/+279
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 Taylor1-1/+1
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-19trans.h: Remove gfor_fndecl_stop_numeric_f08.Francois-Xavier Coudert4-9/+8
* 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-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-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-19Daily bump.GCC Administrator1-1/+1
From-SVN: r243788
2016-12-18re PR fortran/78545 (Possible correction to online LTIME documentation)Dominique d'Humieres2-9/+34
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-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
2016-12-17re PR fortran/78239 (ICE in char_len_param_value, at fortran/decl.c:926, ↵Thomas Koenig4-0/+24
with -fimplicit-none) 2016-12-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78239 * decl.c(char_len_param_value): Also check for -fimplicit-none when determining if implicit none is in force. 2016-12-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78239 * gfortran.dg/fimplicit_none_1.f90: New test. * gfortran.dg/fimplicit_none_2.f90: New test. From-SVN: r243773
2016-12-17i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1 and *tzcnt<mode>_1 ↵Uros Bizjak2-151/+134
to define_insn_and_split pattern. * config/i386/i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1 and *tzcnt<mode>_1 to define_insn_and_split pattern. Adjust split condition to split after epilogue_completed. (ctz<mode>2): Remove expander. (ctz<mode>2): Merge *ctz<mode>2_falsedep_1 and *ctz<mode>2 to define_insn_and_split pattern. Adjust split condition to split after epilogue_completed. (clz<mode>2_lznct): Remove expander. (clz<mode>2_lzcnt): Merge *clz<mode>2_lzcnt_falsedep_1 and *clz<mode>2 to define_insn_and_split pattern. Adjust split condition to split after epilogue_completed. (<lt_zcnt>_<mode>): Remove expander. (<lt_zcnt>_<mode>): Merge *<lt_zcnt>_<mode>_falsedep_1 and *<lt_zcnt>_<mode> to define_insn_and_split pattern. Adjust split condition to split after epilogue_completed. (<lt_zcnt>_hi): New insn pattern. (popcount<mode>2): Remove expander. (popcount<mode>2): Merge *popcount<mode>2_falsedep_1 and *popcount<mode>2 to define_insn_and_split pattern. Adjust split condition to split after epilogue_completed. (popcounthi2): New insn pattern. From-SVN: r243772
2016-12-17byte-in-either-range-0.c: New test.Kelvin Nilsen13-17/+443
gcc/testsuite/ChangeLog: 2016-12-16 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/byte-in-either-range-0.c: New test. * gcc.target/powerpc/byte-in-either-range-1.c: New test. * gcc.target/powerpc/byte-in-range-0.c: New test. * gcc.target/powerpc/byte-in-range-1.c: New test. * gcc.target/powerpc/byte-in-set-0.c: New test. * gcc.target/powerpc/byte-in-set-1.c: New test. * gcc.target/powerpc/byte-in-set-2.c: New test. gcc/ChangeLog: 2016-12-16 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/altivec.md (UNSPEC_CMPRB): New unspec value. (UNSPEC_CMPRB2): New unspec value. (UNSPEC_CMPEQB): New unspec value. (cmprb): New expansion. (*cmprb_internal): New insn. (*setb_internal): New insn. (cmprb2): New expansion. (*cmprb2_internal): New insn. (cmpeqb): New expansion. (*cmpeqb_internal): New insn. * config/rs6000/rs6000-builtin.def (BU_P9_2): New macro. (BU_P9_64BIT_2): Likewise. (BU_P9_OVERLOAD_2): Likewise. (CMPRB): Add byte-in-range built-in function. (CMBRB2): Add byte-in-either-range built-in function. (CMPEQB): Add byte-in-set built-in function. (CMPRB): Add overload support for byte-in-range function. (CMPRB2): Add overload support for byte-in-either-range function. (CMPEQB): Add overload support for byte-in-set built-in function. * config/rs6000/rs6000-c.c (P9_BUILTIN_CMPRB): Macro expansion to define argument types for new builtin. (P9_BUILTIN_CMPRB2): Likewise. (P9_BUILTIN_CMPEQB): Likewise. * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rearrange the order of presentation for certain built-in functions (scalar_extract_exp, scalar_extract_sig, scalar_insert_exp) (scalar_cmp_exp_gt, scalar_cmp_exp_lt, scalar_cmp_exp_eq) (scalar_cmp_exp_unordered, scalar_test_data_class) (scalar_test_neg) to improve locality and flow. Document the new __builtin_scalar_byte_in_set, __builtin_scalar_byte_in_range, and __builtin_scalar_byte_in_either_range functions. From-SVN: r243770
2016-12-17Daily bump.GCC Administrator1-1/+1
From-SVN: r243769
2016-12-16compiler: add containing Bfunction to some backend interfaces.Than McIntosh8-68/+135
Change the interfaces for backend methods that create statements to always pass in the enclosing Bfunction for the statement. Having the function available simplifies things if a temporary variable has to be created during the construction of a statement. This also includes a change to the Mark_lvalue_varexprs helper class to handle indirections on the left hand side of assignments (e.g. "*x.y = ..."). Reviewed-on: https://go-review.googlesource.com/34471 * go-gcc.cc (Gcc_backend::expression_statement): Add Bfunction* parameter. (Gcc_backend::init_statement): Likewise. (Gcc_backend::assignment_statement): Likewise. (Gcc_backend::if_statement): Likewise. From-SVN: r243766
2016-12-16re PR fortran/78662 ([F03] Incorrect parsing of quotes in the ↵Jerry DeLisle4-1/+43
char-literal-constant of the DT data descriptor) 2016-12-16 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/78622 * io.c (format_lex): Continue of string delimiter seen. * io/transfer.c (get_dt_format): New static function to alloc and set the DT iotype string, handling doubled quotes. (formatted_transfer_scalar_read, formatted_transfer_scalar_write): Use new function. * gfortran.dg/dtio_20.f03: New test. From-SVN: r243765
2016-12-16re PR fortran/78757 (ICE with function returning a pointer to a character)Jakub Jelinek4-0/+40
PR fortran/78757 * trans-expr.c (gfc_conv_procedure_call): Emit DECL_EXPR for the type pstr var points to. * gfortran.dg/char_result_16.f90: New test. From-SVN: r243761
2016-12-16* fr.po: Update.Joseph Myers2-1050/+468
From-SVN: r243759
2016-12-16[AArch64] Split X-reg UBFIZ into W-reg LSL when possibleKyrylo Tkachov4-0/+39
* config/aarch64/aarch64.md: New define_split above bswap<mode>2. * gcc.target/aarch64/ubfiz_lsl_1.c: New test. From-SVN: r243756
2016-12-16[AArch64] Split X-reg UBFX into W-reg LSR when possibleKyrylo Tkachov4-0/+42
* config/aarch64/aarch64.md: New define_split above insv<mode>. * gcc.target/aarch64/ubfx_lsr_1.c: New test. From-SVN: r243755