| 2016-12-30 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cppopts.texi: Reorder table entries to put the most |
| commonly-used options first and debug options last. |
| |
| 2016-12-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*testqi_ext_3): Merge insn pattern and |
| corresponding splitter to define_insn_and_split. Use wi::shifted_mask |
| helper function to calculate mask. |
| |
| 2016-12-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (ext_register_operand): Do not reject |
| registers without upper parts here. |
| * config/i386/i386.md (extv<mode>): Copy registers without |
| upper parts in operand 1 to a pseudo. |
| (extzv<mode>): Ditto. |
| (insv<mode>): Ditto. |
| |
| 2016-12-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/standards.texi (Standards): Remove broken reference to |
| objc.toodarkpark.net and avoid list with now just one item. |
| |
| 2016-12-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78904 |
| * config/i386/i386.md (*extvqi): Remove insn pattern. |
| (divmodqi4): Update expander to generate QImode zero-extract from AH. |
| |
| 2016-12-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_expand_builtin): Fix typos in |
| error messages. |
| |
| 2016-12-29 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Cilk Plus Builtins): cilkplus.org now uses |
| https by default. |
| * doc/passes.texi (Cilk Plus Transformation): Ditto. |
| * doc/generic.texi (Statements for C++): Ditto, and use @uref. |
| |
| 2016-12-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78904 |
| * config/i386/constraints.md (Bn): New special memory constraint. |
| * config/i386/predicates.md (norex_memory_operand): New predicate. |
| * config/i386/i386.md (*extzvqi_mem_rex64): New insn pattern and |
| corresponding peephole2 pattern. |
| |
| 2016-12-27 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cppdiropts.texi, doc/cppwarnopts.texi: New files, split from... |
| * doc/cppopts.texi: .... here. |
| * doc/cpp.texi (Invocation): Adjust includes. |
| * doc/invoke.texi (Option Summary): Add missing preprocesor-related |
| options. Adjust sorting and formatting. |
| (Warning Options): Include cppwarnopts.texi. |
| (Preprocessor Options): Add pointers and list the specific |
| preprocessor options from cppopts.texi first instead of last. |
| (Directory Options): Move/merge documentation of -I, -iquote, and |
| -I- to cppdiropts.texi. Include that file here. |
| |
| 2016-12-27 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/predicates.md (const_0_to_12_operand): Rename |
| predicate and change test from 0..11 to 0..12 to match the |
| semantics of the word extract/insert instructions. Change all |
| callers. |
| (const_0_to_11_operand): Likewise. |
| * config/rs6000/rs6000.c (altivec_expand_builtin): Likewise. |
| * config/rs6000/vsx.md (vextract4b): Likewise. |
| (vextract4b_internal): Likewise. |
| (vinsert4b): Likewise. |
| (vinsert4b_internal): Likewise. |
| (vinsert4b_di): Likewise. |
| (vinsert4b_di_internal): Likewise. |
| * config/rs6000/rs6000.md (zero_extendsi<mode>2): Fix offset used |
| in xxextractuw to zero extend the word in the vector registers. |
| (lfiwzx): Likewise. |
| |
| 2016-12-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_secondary_reload): Require QImode |
| intermediate for QImode mask register spill only for !TARGET_AVX512DQ. |
| Always use true_regnum to determine operand regno. |
| |
| 2016-12-27 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cppopts.texi: Delete redundant documentation for -x. Move |
| -fno-show-column documentation to... |
| * doc/invoke.texi (Diagnostic Message Formatting Options): ...here. |
| Update the option summary. |
| |
| 2016-12-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (VI_512): Remove. |
| (vcond<V_512:mode><VI_AVX512BW:mode>): Use VI_AVX512BW |
| mode iterator instead of VI_512. |
| (vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto. |
| |
| 2016-12-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/78922 |
| * config/i386/stringop.opt: Remove. |
| |
| 2016-12-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78904 |
| * config/i386/constraints.md (Bc): New special memory constraint. |
| * config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use Bc |
| constraint with nonimmediate_operand to allow constant memory operands. |
| (*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1) |
| (*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use Bc constraint |
| with general_operand to allow constant memory operands. |
| |
| 2016-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| * c-family/c.opt (flag_chkp_flexible_struct_trailing_arrays): |
| Add new option. |
| (fchkp-narrow-to-innermost-array): Fix typo. |
| * doc/cpp.texi (flag_chkp_flexible_struct_trailing_arrays): Ditto. |
| * tree-chkp.c (chkp_may_narrow_to_field ): Forbid |
| narrowing when flag_chkp_flexible_struct_trailing_arrays is used |
| and the field is the last array field in the structure. |
| |
| 2016-12-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (andqi_ext_1): Use general_operand |
| predicate for operand 2. |
| |
| 2016-12-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78904 |
| * config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use |
| nonimmediate_operand instead of nonimmediate_x64nomem_operand. |
| (*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1) |
| (*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use general_operand |
| instead of general_x64nomem_operand. |
| * config/i386/predicates.md (nonimmediate_x64nomem_operand): Remove. |
| (general_x64nomem_operand): Ditto. |
| |
| 2016-12-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78904 |
| * config/i386/i386.md (addqi_ext_1): Canonicalize insn pattern w.r.t. |
| zero_extract RTXes. |
| (*addqi_ext_2): Ditto. |
| (testqi_ext_ccno_0): Canonicalize expander w.r.t. zero_extract RTXes. |
| (testqi_ext_1_ccno): Rename from testqi_ext_ccno_0. |
| (*testqi_ext_0): Merge with *testqi_ext_1. |
| (*testqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes. |
| Update corresponding splitter. |
| (*testqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes. |
| (*andqi_ext_0): Merge with *andqi_ext_1. |
| (andqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes. |
| Rename from *andqi_ext_1. Update corresponding splitter and |
| peephole2 patterns. |
| (*andqi_ext_1_cc): Rename from *andqi_ext_0_cc. |
| (*andqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes. |
| (*<any_or:code>qi_ext_0): Merge with *andqi_ext_1. |
| (*<any_or:code>qi_ext_1): Canonicalize insn pattern w.r.t. |
| zero_extract RTXes. Update corresponding splitter. |
| (*<any_or:code>qi_ext_2): Canonicalize insn pattern w.r.t. |
| zero_extract RTXes. |
| (xorqi_cc_ext_1): Canonicalize expander w.r.t. zero_extract RTXes. |
| (xorqi_ext_1_cc): Rename from xorqi_cc_ext_1. |
| (*xorqi_cc_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes. |
| Update corresponding splitter. |
| (*xorqi_ext_1_cc): Rename from *xorqi_cc_ext_1. |
| (isinfxf2): Update calls to renamed expanders. |
| (isinf<mode>2): Ditto. |
| * config/i386/i386.c (ix86_expand_fp_compare): Ditto. |
| (ix86_emit_fp_unordered_jump): Ditto. |
| (ix86_emit_i387_round): Ditto. |
| |
| 2016-12-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (SPARC options): Add missing documentation for -mlra. |
| |
| * doc/cpp.texi (Invocation): Remove space in command. |
| |
| 2016-12-25 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cpp.texi (Invocation): Revise to indicate that GCC driver |
| options are only documented in the GCC manual. |
| * doc/cppopts.texi: Delete documentation of GCC driver options |
| -o, -Wall, -Wtraditional, -Werror, -Wsystem-headers, -w, |
| -pedantic, -pedantic-errors, -std=, -ansi, --help, --target-help, |
| -v, -version. Update -Wcomment, -Wtrigraphs, -Wundef, |
| -Wexpansion-to-defined, -Wno-endif-labels, -traditional, |
| -traditional-cpp, -trigraphs to merge text previously in GCC manual. |
| * doc/invoke.texi (Option Summary): Move -trigraphs, -traditional, |
| and -traditional-cpp from C dialect options to preprocessor options. |
| (C Dialect Options): Likewise. |
| (Warning Options): Delete documentation of -Wcomment, -Wtrigraphs, |
| -Wexpansion-to-defined, -Wundef, and -Wno-endif-labels. |
| |
| 2016-12-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-core.h (tree_base): Document the meaning of public_flag |
| for SSA names. |
| * tree.h (SSA_NAME_IS_VIRTUAL_OPERAND): New macro. |
| (SET_SSA_NAME_VAR_OR_IDENTIFIER): Record whether the variable |
| is a virtual operand. |
| * gimple-expr.h (virtual_operand_p): Use SSA_NAME_IS_VIRTUAL_OPERAND. |
| |
| 2016-12-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * tree-pretty-print.c (dump_generic_node): Change dump format for |
| REALPART_EXPR and IMAGPART_EXPR with TDF_GIMPLE. |
| |
| 2016-12-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * varasm.c (build_constant_desc): Use the alignment of the var |
| decl instead of the original expression. |
| |
| 2016-12-22 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define |
| __S390_ARCH_LEVEL__. |
| |
| 2016-12-22 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/78886 |
| * tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS |
| is equal to NULL. |
| |
| 2016-12-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/78817 |
| * vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Revert |
| 2016-12-15 change. |
| |
| 2016-12-21 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/78580 |
| * ira-costs.c (find_costs_and_classes): Make regno_aclass |
| translated into an allocno class. |
| |
| 2016-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/78817 |
| * tree-pass.h (make_pass_post_ipa_warn): Declare. |
| * builtins.c (validate_arglist): Adjust get_nonnull_args call. |
| Check for NULL pointer argument to nonnull arg here. |
| (validate_arg): Revert 2016-12-14 changes. |
| * calls.h (get_nonnull_args): Remove declaration. |
| * tree-ssa-ccp.c: Include diagnostic-core.h. |
| (pass_data_post_ipa_warn): New variable. |
| (pass_post_ipa_warn): New class. |
| (pass_post_ipa_warn::execute): New method. |
| (make_pass_post_ipa_warn): New function. |
| * tree.h (get_nonnull_args): Declare. |
| * tree.c (get_nonnull_args): New function. |
| * calls.c (maybe_warn_null_arg): Removed. |
| (maybe_warn_null_arg): Removed. |
| (initialize_argument_information): Revert 2016-12-14 changes. |
| * passes.def: Add pass_post_ipa_warn after first ccp after IPA. |
| |
| 2016-12-21 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR rtl-optimization/11488 |
| * common/config/rs6000/rs6000-common.c |
| (rs6000_option_optimization_table): Enable -fsched-pressure. |
| * config/rs6000/rs6000.c (TARGET_COMPUTE_PRESSURE_CLASSES): Define |
| target hook. |
| (rs6000_option_override_internal): Set default -fsched-pressure |
| algorithm. |
| (rs6000_compute_pressure_classes): Implement target hook. |
| |
| 2016-12-21 Bill Seurer <seurer@linux.vnet.ibm.com> |
| |
| PR sanitizer/65479 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add |
| -fasynchronous-unwind-tables option when -fsanitize=address is |
| specified. |
| |
| 2016-12-21 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR target/71321 |
| * config/i386/i386.md (lea<mode>_general_2b, lea<mode>_general_3b): New |
| patterns. |
| * config/i386/predicates.md (const123_operand): New. |
| |
| 2016-12-21 Jakub Jelinek <jakub@redhat.com> |
| Martin Liska <mliska@suse.cz> |
| |
| PR driver/78863 |
| * gcc.c (driver::build_option_suggestions): Do not add |
| -fsanitize=all as a suggestion candidate. |
| |
| 2016-12-21 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR target/78831 |
| * config/nvptx/nvptx.c (init_softstack_frame): Remove assert. Compute |
| crtl->is_leaf only if unset. Adjust comment. |
| |
| 2016-12-21 Andrew Pinski <apinski@cavium.com> |
| |
| * match.pd (max:c @0 (plus@2 @0 INTEGER_CST@1)): New Pattern. |
| (min:c @0 (plus@2 @0 INTEGER_CST@1)) : New Pattern. |
| |
| 2016-12-20 James Greenhalgh <james.greenhalghj@arm.com> |
| |
| * 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. |
| |
| 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. |
| |
| 2016-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/78694 |
| * config/arm/arm.c (dump_minipool): Copy mp->value before emitting it |
| in the minipool to avoid invalid RTL sharing. |
| |
| 2016-12-19 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| * 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 (). |
| |
| 2016-12-19 David Malcolm <dmalcolm@redhat.com> |
| |
| * print-rtl-function.c (print_rtx_function): Update |
| example in comment to reflect current format. |
| |
| 2016-12-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*popcounthi2_1): New insn_and_split pattern. |
| |
| 2016-12-19 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cpp.texi: Clean up anachronistic C99 references and remove |
| discussion of very old GCC versions. |
| (Differences from previous versions): Delete entire section. |
| |
| 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 multiply and subtract builtins. |
| |
| 2016-12-19 David Malcolm <dmalcolm@redhat.com> |
| |
| * 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. |
| |
| 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. |
| |
| 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * combine.c (change_zero_ext): Skip generation of redundant AND. |
| |
| 2016-12-19 Krister Walfridsson <krister.walfridsson@gmail.com> |
| |
| * config/netbsd.h (LINK_EH_SPEC): Define. |
| |
| 2016-12-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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. |
| |
| 2016-12-17 Jakub Jelinek <jakub@redhat.com> |
| |
| 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. |
| |
| 2016-12-17 Andrew Senkevich <andrew.senkevich@intel.com> |
| |
| * 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. |
| |
| 2016-12-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * 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. |
| |
| 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. |
| |
| 2016-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md: New define_split above bswap<mode>2. |
| |
| 2016-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md: New define_split above insv<mode>. |
| |
| 2016-12-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/78408 |
| * tree-ssa-ccp.c: Include tree-dfa.h. |
| (optimize_memcpy): New function. |
| (pass_fold_builtins::execute): Use it. Remove useless conditional |
| break after BUILT_IN_VA_*. |
| |
| 2016-12-16 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/78819 |
| * tree-vrp.c (find_switch_asserts): Return if the insertion limit is 0. |
| Don't register an assertion if the default case shares a label with |
| another case. |
| |
| 2016-12-16 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.md (subsi3_carryin): Add Thumb-2 RSC #0. |
| (arm_negdi2) Rename to negdi2_insn, allow on Thumb-2. |
| * config/arm/thumb2.md (thumb2_negdi2): Remove pattern. |
| |
| 2016-12-16 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.c (thumb_core_reg_alloc_order): Swap R12 and R14. |
| |
| 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (call_prof): Remove. |
| (call_value_prof): Likewise. |
| (sibcall_prof): Likewise. |
| (sibcall_value_prof): Likewise. |
| |
| 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.h (LINK_SPEC): Tidy up. |
| (ENDFILE_SPEC): Likewise. |
| (LIB_SPEC): Likewise. |
| (STARTFILE_SPEC): Include gcrt0 when profiling. |
| (FUNCTION_PROFILER): Use __mcount. |
| * config/arc/arc.opt (mucb-mcount): Remove. |
| * doc/invoke.texi (ARC): Remove mucb-mcount doc. |
| * arc/arc-protos.h (arc_profile_call): Remove. |
| * config/arc/arc.c (write_profile_sections): Likewise. |
| (arc_profile_call): Likewise. |
| (unspec_prof_hash): Likewise. |
| (unspec_prof_htab_eq): Likewise. |
| (arc_legitimate_constant_p): Remove UNSPEC_PROF. |
| (arc_reorg): Remove call to write_profile_sections. |
| * config/arc/arc.md (call): Remove call to arc_profile_call. |
| (call_value): Likewise. |
| (sibcall): Likewise. |
| (sibcall_value): Likewise. |
| (define_constants): Remove UNSPEC_PROF. |
| |
| 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (mulsidi_600): Change to insn_and_split, |
| generate new mul64 insn for core multiplication work. |
| (umulsidi_600): Likewise, but use mulu64 insn. |
| (mul64): New pattern, content taken from old mulsidi_600 insn pattern. |
| (mulu64): Likewise, but using umulsidi_600. |
| (mulsidi3): Remove move to destination, this is now handled by |
| mulsidi_600 insn_and_split. |
| (umulsidi3): Likewise, but using umulsidi_600. |
| |
| 2016-12-16 Richard Biener <rguenther@suse.de> |
| |
| PR c++/71694 |
| * langhooks-def.h (lhd_unit_size_without_reusable_padding): Declare. |
| (LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Define. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Adjust. |
| * langhooks.h (struct lang_hooks_for_types): Add |
| unit_size_without_reusable_padding. |
| * langhooks.c (lhd_unit_size_without_reusable_padding): New. |
| * stor-layout.c (finish_bitfield_representative): Use |
| unit_size_without_reusable_padding langhook to decide on the |
| last representatives size. |
| |
| 2016-12-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/71632 |
| * expr.c (expand_cond_expr_using_cmove): Bail out early if |
| we end up recursing via TER. |
| |
| 2016-12-15 Martin Sebor <msebor@redhat.com> |
| |
| PR bootstrap/78817 |
| * vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Assert |
| a pointer is non-null. |
| |
| 2016-12-15 Andrew Senkevich <andrew.senkevich@intel.com> |
| |
| * 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_kmovb, |
| __builtin_ia32_kmovd, __builtin_ia32_kmovq): New. |
| (__builtin_ia32_kmov16): Rename to __builtin_ia32_kmovw. |
| * config/i386/sse.md (kmov<mskmodesuffix>): New. |
| |
| 2016-12-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (ffs<mode>2): Generate CCCmode flags register |
| for TARGET_BMI. |
| (ffssi2_no_cmove): Ditto. |
| (*tzcnt<mode>_1_falsedep_1): New insn_and_split pattern. |
| (*tzcnt<mode>_1_falsedep): New insn pattern. |
| |
| (LT_ZCNT): New mode iterator. |
| (lt_zcnt): New mode attribute. |
| (lt_zcnt_type): New mode attribute. |
| (<lt_zcnt>_<mode>): Macroize expander from bmi_tzcnt_<mode> and |
| lzcnt_<mode> using LT_ZCNT mode iterator. |
| (*<lt_zcnt>_<mode>_falsedep_1): Macroize insn from |
| *bmi_tzcnt_<mode>_falsedep_1 and *lzcnt_<mode>_falsedep_1 |
| using LT_ZCNT mode iterator. |
| (*<lt_zcnt>_<mode>_falsedep): Macroize insn from |
| *bmi_tzcnt_<mode>_falsedep and *lzcnt_<mode>_falsedep |
| using LT_ZCNT mode iterator. |
| (*<lt_zcnt>_<mode>): Macroize insn from *bmi_tzcnt_<mode> |
| and *lzcnt_<mode> using LT_ZCNT mode iterator. |
| * config/i386/i386-builtin.def (__builtin_ia32_tzcnt_u16) |
| (__builtin_ia32_tzcnt_u32, __builtin_ia32_tzcnt_u64, __builtin_ctzs): |
| Update for rename. |
| |
| 2016-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * ipa-cp.c (class ipcp_bits_lattice): Formatting fixes. |
| (print_ipcp_constant_value): Likewise. |
| (ipcp_cloning_candidate_p): Likewise. |
| (ipcp_bits_lattice::get_value_and_mask): Likewise. |
| (ipcp_bits_lattice::meet_with_1): Likewise. |
| (ipcp_bits_lattice::meet_with): Likewise. |
| (initialize_node_lattices): Likewise. |
| (ipcp_lattice::add_value): Likewise. |
| (propagate_vals_accross_pass_through): Renamed to ... |
| (propagate_vals_across_pass_through): ... this function. |
| (propagate_vals_accross_ancestor): Renamed to ... |
| (propagate_vals_across_ancestor): ... this. |
| (propagate_scalar_accross_jump_function): Renamed to ... |
| (propagate_scalar_across_jump_function): ... this. |
| Adjust calls to above functions. |
| (propagate_context_accross_jump_function): Renamed to ... |
| (propagate_context_across_jump_function): ... this. |
| (propagate_bits_accross_jump_function): Renamed to ... |
| (propagate_bits_accross_jump_function): ... this. Formatting fixes. |
| (propagate_vr_accross_jump_function): Renamed to ... |
| (propagate_vr_across_jump_function): ... this. |
| (merge_agg_lats_step): Formatting fixes. |
| (propagate_constants_accross_call): Renamed to ... |
| (propagate_constants_across_call): ... this. Adjust calls to above |
| functions. |
| (ipa_get_indirect_edge_target_1): Formatting fixes. |
| (gather_context_independent_values): Likewise. |
| (estimate_local_effects): Likewise. |
| (add_all_node_vals_to_toposort): Likewise. |
| (propagate_constants_topo): Adjust calls to above functions. |
| (get_replacement_map): Formatting fixes. |
| (dump_profile_updates): Likewise. |
| (update_profiling_info): Likewise. |
| (update_specialized_profile): Likewise. |
| (create_specialized_node): Likewise. |
| (find_more_contexts_for_caller_subset): Likewise. |
| (decide_whether_version_node): Likewise. |
| (identify_dead_nodes): Likewise. |
| (ipcp_decision_stage): Likewise. |
| (ipcp_store_bits_results): Likewise. |
| (ipcp_store_vr_results): Likewise. |
| (ipcp_driver): Likewise. |
| |
| 2016-12-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR preprocessor/78680 |
| PR preprocessor/78811 |
| * input.c (struct selftest::lexer_test): Add field |
| m_implicitly_expect_EOF. |
| (selftest::lexer_error_sink): New class. |
| (selftest::lexer_error_sink::s_singleton): New global. |
| (selftest::lexer_test::lexer_test): Initialize new field |
| "m_implicitly_expect_EOF". |
| (selftest::lexer_test::~lexer_test): Conditionalize the |
| check for the EOF token on the new field. |
| (selftest::test_lexer_string_locations_raw_string_unterminated): |
| New function. |
| (selftest::input_c_tests): Call the new test. |
| |
| 2016-12-15 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.h (TARGET_BACKTRACE): Use crtl->is_leaf. |
| * config/arm/arm.c (arm_option_check_internal): Improve comment. |
| (thumb_force_lr_save): Use crtl->is_leaf. |
| (arm_get_frame_offsets): Remove comment. Use crtl->is_leaf. |
| (thumb_far_jump_used_p): Remove comment. |
| (arm_frame_pointer_required): Use crtl->is_leaf. |
| |
| 2016-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/extend.texi: Clean up @xref{...} uses. |
| * doc/invoke.texi: Likewise. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-fpus.def: Add CNAME field to all FPU definitions. |
| * genopt.sh: Use explicit enumeration tags for FPU entries. |
| * arm-tables.opt: Regenerated. |
| * arm.opt (mfpu): Provide initial value. |
| * arm-opts.h (enum fpu_type): Build the enumeration from the list of |
| available FPUs. Add 'auto' entry on the end. |
| * arm.c (arm_configure_build_target): Only do explicit configuration |
| of the FPU features if the selected FPU is not 'auto'. |
| (arm_option_override): Adjust initialization of arm_fpu_index. |
| Emit an error if we have a hard float ABI request, but the processor |
| does not support floating-point. |
| (arm_option_print): Handle -mfpu=auto. |
| (arm_valid_target_attribute_rec): Don't permit fpu=auto in pragmas |
| or function attributes. |
| (arm_identify_fpu_from_isa): Handle effective soft-float when |
| the FPU is automatically detected. |
| * arm-cores.def (arm1136jf-s): Add feature ISA_FP_DBL. |
| (arm1176jzf-s): Likewise. |
| (mpcore): Likewise. |
| (arm1156t2f-s): Likewise. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-fpus.def (ARM_FPU): Remove features field from all definitions. |
| * arm.h (arm_fpu_feature_set): Delete typedef. |
| (FPU_FL_NONE): Delete. |
| (FPU_FL_NEON): Delete. |
| (FPU_FL_FP16): Delete. |
| (FPU_FL_CRYPTO): Delete. |
| (FPU_FL_DBL): Delete. |
| (FPU_FL_D32): Delete. |
| (FPU_FL_VFPv2): Delete. |
| (FPU_FL_VFPv3): Delete. |
| (FPU_FL_VFPv4): Delete. |
| (FPU_FL_VFPv5): Delete. |
| (FPU_FL_AMRv8): Delete. |
| (FPU_VFPv2): Delete. |
| (FPU_VFPv3): Delete. |
| (FPU_VFPv4): Delete. |
| (FPU_VFPv5): Delete. |
| (FPU_ARMv8): Delete. |
| (FPU_DBL): Delete. |
| (FPU_D32): Delete. |
| (FPU_NEON): Delete. |
| (FPU_CRYPTO): Delete. |
| (FPU_FP16): Delete. |
| (arm_fpu_desc): Delete features field. |
| * arm.c (all_fpus): Don't initialize feature field. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.c (arm_can_inline_p): Use ISA features for determining |
| inlinability. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-protos.h (arm_configure_build_target): Change second argument |
| to cl_target_options. |
| * arm.c (arm_configure_build_target): Likewise. |
| (arm_option_restore): Update accordingly. |
| (arm_option_override): Create the target_option_default_node before |
| calling arm_configure_build_target. Use it in call of latter. |
| Resynchronize after all other overrides have been calculated. |
| (arm_valid_target_attribute_tree): Use the target options for |
| reconfiguration. Resynchronize after performing override checks. |
| * arm-c.c (arm_pragma_target_parse): Use target optiosn from cur_tree |
| to reconfigure the build target. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.h (TARGET_VFPD32): Use arm_active_target. |
| (TARGET_VFP3): Likewise. |
| (TARGET_VFP5): Likewise. |
| (TARGET_VFP_SINGLE): Likewise. |
| (TARGET_VFP_DOUBLE): Likewise. |
| (TARGET_NEON_FP16): Likewise. |
| (TARGET_FP16): Likewise. |
| (TARGET_FMA): Likewise. |
| (TARGET_FPU_ARMV8): Likewise. |
| (TARGET_CRYPTO): Likewise. |
| (TARGET_NEON): Likewise. |
| (TARGET_FPU_FEATURES): Delete. |
| * arm.c (arm_option_check_internal): Check for iwmmxt conflict with |
| Neon using arm_active_target. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.h (TARGET_FPU_NAME): Delete. |
| * arm.c (arm_identify_fpu_from_isa): New function. |
| (arm_declare_function_name): Use it to get the name for the FPU. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-protos.h: Include sbitmap.h |
| (arm_configure_build_target): Make public. |
| * arm.c (arm_configure_build_target): Now not static. |
| (arm_valid_target_attribute_rec): Move internal option check to... |
| (arm_valid_target_attribute_tree0: ... here. Also reconfingure the |
| active target. |
| (arm_override_options_after_change): Call arm_configure_build_target. |
| (isa_all_fpubits): Renamed from isa_fpubits. |
| (arm_option_restore): New function. |
| (TARGET_OPTION_RESTORE): Register it. |
| (arm_configure_build_target): Initialize the FPU capability bits in |
| the isa. |
| (arm_option_override): Move the code that forces the setting of the |
| FPU option before the call to arm_configure_build_target. |
| * arm.opt (march): Mark as Save. |
| (mcpu, mtune): Likewise. |
| * arm-c.c (arm_pragma_target_parse): Reconfigure the build target |
| after pragmas change the target options. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-isa.h (isa_feature): Add bits for VFPv4, FPv5, fp16conv, |
| fP_dbl, fp_d32 and fp_crypto. |
| (ISA_ALL_FPU): Add all the new bits. |
| (ISA_VFPv2, ISA_VFPv3, ISA_VFPv4, ISA_FPv5): New macros. |
| (ISA_FP_ARMv8, ISA_FP_DBL, ISA_FP_D32, ISA_NEON, ISA_CRYPTO): Likewise. |
| * arm-fpus.def: Add ISA features to all FPUs. |
| * arm.h: (arm_fpu_desc): Add new field for ISA bits. |
| * arm.c (all_fpus): Initialize it. |
| * arm-tables.opt: Regenerated. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.h (FPU_FL_VFPv2) New feature bit. |
| (FPU_FL_VFPv3, FPU_FL_VFPv4, FPU_FL_VFPv5, FPU_FL_ARMv8): Likewise. |
| (FPU_VFPv2, FPU_VFPv3, FPU_VFPv4, FPU_VFPv5, FPU_ARMv8): New helper |
| macros. |
| (FPU_DBL, FPU_D32, FPU_NEON, FPU_CRYPTO, FPU_FP16): Likewise. |
| (TARGET_FPU_REV): Delete. |
| (TARGET_VFP3): Use feature bits. |
| (TARGET_VFP5): Likewise. |
| (TARGET_FMA): Likewise. |
| (TARGET_FPU_ARMV8): Likewise. |
| (struct arm_fpu_desc): Delete rev field. |
| * arm-fpus.def: Delete REV entry, use new feature bits and macros. |
| * arm.c (all_fpus): Delete rev field. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.h (vfp_reg_type): Delete. |
| (TARGET_FPU_REGS): Delete. |
| (arm_fpu_desc): Delete regs field. |
| (FPU_FL_NONE, FPU_FL_NEON, FPU_FL_FP16, FPU_FL_CRYPTO): Use unsigned |
| values. |
| (FPU_FL_DBL, FPU_FL_D32): Define. |
| (TARGET_VFPD32): Use feature test. |
| (TARGET_VFP_SINGLE): Likewise. |
| (TARGET_VFP_DOUBLE): Likewise. |
| * arm-fpus.def: Update all entries for new feature bits. |
| * arm.c (all_fpus): Update initializer macro. |
| (arm_can_inline_p): Remove test on fpu regs. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.h (arm_fp_model): Delete. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-cores.def: Remove FLAGS field from all core definitions. |
| * arm-arches.def: Likewise. |
| * arm-opts.h (enum processor_type): Remove FLAGS parameter from |
| ARM_CORES macro. |
| (arm_arch_core_flags): Likewise, plus ARM_ARCH macro. |
| * arm-protos.h (FL_*): Delete. |
| (arm_feature_set): Delete. |
| (ARM_FSET_*): Delete. |
| * arm.c (struct processors): Delete flags field. |
| (all_cores): Delete FLAGS parameter from macro, don't initialize flags. |
| (all architectures): Likewise. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-opts.h (struct arm_arch_core_flag): Add new field ISA. |
| Initialize it. |
| (arm_arch_core_flag): Delete flags field. |
| (arm_arch_core_flags): Don't initialize flags field. |
| * common/config/arm/arm-common.c (check_isa_bits_for): New function. |
| (arm_target_thumb_only): Use new isa bits arrays. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-protos.h (insn_flags): Delete declaration. |
| (arm_arch7ve): Declare. |
| * arm.c (insn_flags): Delete. |
| (arm_arch7ve): New variable. |
| (arm_selected_cpu): Delete. |
| (arm_option_check_internal): Use new ISA bitmap. |
| (arm_option_override_internal): Likewise. |
| (arm_configure_build_target): Declare arm_selected_cpu locally. |
| (arm_option_override): Use new ISA bitmap. Initialize arm_arch7ve. |
| Rearrange variable intialization by general function. |
| * arm.h (TARGET_HAVE_LPAE): Use arm_arch7ve. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-builtins.c: Include sbitmap.h. |
| (def_mbuiltin): Change first parameter to a flag bit. Use it to test |
| available features in the current target. |
| (struct builtin_description): Change type of feature field. |
| (IWMMXT_BUILTIN): Use the isa_features types. |
| (IWMMXT2_BUILTIN): Likewise. |
| (IWMMXT_BUILTIN2): Likewise. |
| (IWMMXT2_BUILTIN2): Likewise. |
| (CRC32_BUILTIN): Likewise. |
| (CRYPTO_BUILTIN): Likewise. |
| (iwmmx_builtin): Likewise. |
| (iwmmx2_builtin): Likewise. |
| (arm_iwmmxt_builtin): Check for specific feature bits. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-isa.h (enum isa_feature): Add isa_quirk_cm3_ldrd. |
| (ISA_ALL_QUIRKS): New macro. |
| * arm-cores.def (cortex-m3): Add isa_quirk_cm3_ldrd to isa feature list. |
| * arm.c (isa_quirkbits): New feature-list bitmap. |
| (arm_configure_build_target): Ignore quirk bits when comparing an |
| architecture feature list with a CPU feature list. |
| (arm_option_override): Initialize_isa_quirkbits. If the user has |
| not specified -m[no-]fix-cortex-m3-ldrd, automatically enable the |
| feature if isa_quirk_cm3_ldrd appears in the isa feature list. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.c (arm_option_override): Use arm_active_target as source of |
| information for arm_base_arch and arm_arch_name. |
| * (arm_file_start): Use arm_active_target for core name. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.c (arm_selected_tune): Delete static variable. |
| (arm_selected_arch): Likewise. |
| (arm_configure_build_target): Declare local versions of arm_selected |
| target and arm_selected_arch. Initialize more fields in target |
| data structure. |
| (arm_option_override): Use arm_active_target instead of |
| arm_selected_tune and arm_selected_arch. |
| (asm_file_start): Use arm_active_target. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-protos.h (arm_build_target): New structure. |
| (arm_active_target): Declare it. |
| * arm.c (arm_active_target): New variable. |
| (bitmap_popcount): New function. |
| (feature_count): Delete. |
| (arm_initialize_isa): New function. |
| isa_fpubits): New variable. |
| (arm_configure_build_target): New function. |
| (arm_option_override): Initialize isa_fpubits and arm_active_target.isa. |
| Use arm_configure_build_target. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-isa.h: New file. |
| * arm-protos.h: Include it. |
| * arm-arches.def: Add new ISA field to all entries. Drop bogus |
| armv8.1-a+crc architecture. |
| * arm-cores.def: Similarly. Group ARMv8 cores by profile. |
| * arm-opts.h (enum processor_type): Adjust for new field. |
| * arm.c (struct processors): New field 'isa_bits'. |
| (all_cores, all_architectures): Initialize new field. |
| * arm-tables.opt: Regenerated. |
| * arm-tune.md: Regenerated. |
| |
| 2016-12-15 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-arches.def (ARM_ARCH): Add extra field TUNE_FLAGS, move |
| tuning properties from architectural FLAGS field. |
| * arm-cores.def (ARM_CORE): Likewise. |
| * arm-protos.h (TF_LDSCHED, TF_WBUF, TF_CO_PROC): New macros. |
| (TF_SMALLMUL, TF_STRONG, TF_SCALE, TF_NOMODE32): New macros. |
| (FL_LDSCHED, FL_STRONG, FL_WBUF, FL_SMALLMUL): Delete. |
| (FL_TUNE): Remove deleted elements. |
| (tune_flags): Convert type to unsigned int. |
| * arm.c (struct processors): Add new field tune_flags. |
| (all_cores, all_arches): Initialize it. |
| (arm_option_override): Adapt uses of tune_flags. Use tune_flags |
| for deciding when we should have slow multiply operations. |
| |
| 2016-12-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78519 |
| * gimple-ssa-sprintf.c (format_string): Handle null pointers. |
| (format_directive): Diagnose null pointer arguments. |
| (pass_sprintf_length::handle_gimple_call): Diagnose null destination |
| pointers. Correct location of null format string in diagnostics. |
| |
| 2016-12-14 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (SELFTEST_FLAGS): Add path argument to -fself-test. |
| (s-selftest): Add dependency on the selftests data directory. |
| * common.opt (fself-test): Rename to... |
| (fself-test=): ...this, documenting the meaning of the argument. |
| * selftest-run-tests.c (along): Likewise. |
| * selftest-run-tests.c: Include "options.h". |
| (selftest::run_tests): Initialize selftest::path_to_selftest_files |
| from flag_self_test. |
| * selftest.c (selftest::path_to_selftest_files): New global. |
| (selftest::locate_file): New function. |
| (selftest::test_locate_file): New function. |
| (selftest_c_tests): Likewise. |
| (selftest::selftest_c_tests): Call test_locate_file. |
| * selftest.h (selftest::locate_file): New decl. |
| (selftest::path_to_selftest_files): New decl. |
| |
| 2016-12-14 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cores.def: Add -1 as the variant to all |
| of the cores. |
| (thunderx): Update to include LSE by default. |
| (thunderxt88p1): New core. |
| (thunderxt88): New core. |
| (thunderxt81): New core. |
| (thunderxt83): New core. |
| * config/aarch64/driver-aarch64.c (struct aarch64_core_data): |
| Add variant field. |
| (ALL_VARIANTS): New define. |
| (AARCH64_CORE): Support VARIANT operand. |
| (cpu_data): Likewise. |
| (host_detect_local_cpu): Parse variant field of /proc/cpuinfo. |
| Combine the arch and single core case and support variant searching. |
| * common/config/aarch64/aarch64-common.c (AARCH64_CORE): |
| Add VARIANT operand. |
| * config/aarch64/aarch64-opts.h (AARCH64_CORE): Likewise. |
| * config/aarch64/aarch64.c (AARCH64_CORE): Likewise. |
| * config/aarch64/aarch64.h (AARCH64_CORE): Likewise. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AARCH64/mtune): Document thunderxt88, |
| thunderxt88p1, thunderxt81, thunderxt83 as available options. |
| |
| 2016-12-14 Martin Jambor <mjambor@suse.cz> |
| |
| * omp-offload.c: Fix coding style. |
| * omp-expand.c: Likewise. |
| * omp-general.c: Likewise. |
| * omp-grid.c: Likewise. |
| * omp-low.c: Fix coding style of parts touched by the |
| previous splitting patch. |
| |
| 2016-12-14 Martin Jambor <mjambor@suse.cz> |
| |
| * omp-general.h: New file. |
| * omp-general.c: New file. |
| * omp-expand.h: Likewise. |
| * omp-expand.c: Likewise. |
| * omp-offload.h: Likewise. |
| * omp-offload.c: Likewise. |
| * omp-grid.c: Likewise. |
| * omp-grid.c: Likewise. |
| * omp-low.h: Include omp-general.h and omp-grid.h. Removed includes |
| of params.h, symbol-summary.h, lto-section-names.h, cilk.h, tree-eh.h, |
| ipa-prop.h, tree-cfgcleanup.h, cfgloop.h, except.h, expr.h, stmt.h, |
| varasm.h, calls.h, explow.h, dojump.h, flags.h, tree-into-ssa.h, |
| tree-cfg.h, cfganal.h, alias.h, emit-rtl.h, optabs.h, expmed.h, |
| alloc-pool.h, cfghooks.h, rtl.h and memmodel.h. |
| (omp_find_combined_for): Declare. |
| (find_omp_clause): Renamed to omp_find_clause and moved to |
| omp-general.h. |
| (free_omp_regions): Renamed to omp_free_regions and moved to |
| omp-expand.h. |
| (replace_oacc_fn_attrib): Renamed to oacc_replace_fn_attrib and moved |
| to omp-general.h. |
| (set_oacc_fn_attrib): Renamed to oacc_set_fn_attrib and moved to |
| omp-general.h. |
| (build_oacc_routine_dims): Renamed to oacc_build_routine_dims and |
| moved to omp-general.h. |
| (get_oacc_fn_attrib): Renamed to oacc_get_fn_attrib and moved to |
| omp-general.h. |
| (oacc_fn_attrib_kernels_p): Moved to omp-general.h. |
| (get_oacc_fn_dim_size): Renamed to oacc_get_fn_dim_size and moved to |
| omp-general.c. |
| (omp_expand_local): Moved to omp-expand.h. |
| (make_gimple_omp_edges): Renamed to omp_make_gimple_edges and moved to |
| omp-expand.h. |
| (omp_finish_file): Moved to omp-offload.h. |
| (default_goacc_validate_dims): Renamed to |
| oacc_default_goacc_validate_dims and moved to omp-offload.h. |
| (offload_funcs, offload_vars): Moved to omp-offload.h. |
| * omp-low.c: Include omp-general.h, omp-offload.h and omp-grid.h. |
| (omp_region): Moved to omp-expand.c. |
| (omp_for_data_loop): Moved to omp-general.h. |
| (omp_for_data): Likewise. |
| (oacc_loop): Moved to omp-offload.c. |
| (oacc_loop_flags): Moved to omp-general.h. |
| (offload_funcs, offload_vars): Moved to omp-offload.c. |
| (root_omp_region): Moved to omp-expand.c. |
| (omp_any_child_fn_dumped): Likewise. |
| (find_omp_clause): Renamed to omp_find_clause and moved to |
| omp-general.c. |
| (is_combined_parallel): Moved to omp-expand.c. |
| (is_reference): Renamed to omp_is_reference and and moved to |
| omp-general.c. |
| (adjust_for_condition): Renamed to omp_adjust_for_condition and moved |
| to omp-general.c. |
| (get_omp_for_step_from_incr): Renamed to omp_get_for_step_from_incr |
| and moved to omp-general.c. |
| (extract_omp_for_data): Renamed to omp_extract_for_data and moved to |
| omp-general.c. |
| (workshare_safe_to_combine_p): Moved to omp-expand.c. |
| (omp_adjust_chunk_size): Likewise. |
| (get_ws_args_for): Likewise. |
| (get_base_type): Removed. |
| (dump_omp_region): Moved to omp-expand.c. |
| (debug_omp_region): Likewise. |
| (debug_all_omp_regions): Likewise. |
| (new_omp_region): Likewise. |
| (free_omp_region_1): Likewise. |
| (free_omp_regions): Renamed to omp_free_regions and moved to |
| omp-expand.c. |
| (find_combined_for): Renamed to omp_find_combined_for, made global. |
| (build_omp_barrier): Renamed to omp_build_barrier and moved to |
| omp-general.c. |
| (omp_max_vf): Moved to omp-general.c. |
| (omp_max_simt_vf): Likewise. |
| (gimple_build_cond_empty): Moved to omp-expand.c. |
| (parallel_needs_hsa_kernel_p): Likewise. |
| (expand_omp_build_assign): Moved declaration to omp-expand.c. |
| (expand_parallel_call): Moved to omp-expand.c. |
| (expand_cilk_for_call): Likewise. |
| (expand_task_call): Likewise. |
| (vec2chain): Likewise. |
| (remove_exit_barrier): Likewise. |
| (remove_exit_barriers): Likewise. |
| (optimize_omp_library_calls): Likewise. |
| (expand_omp_regimplify_p): Likewise. |
| (expand_omp_build_assign): Likewise. |
| (expand_omp_taskreg): Likewise. |
| (oacc_collapse): Likewise. |
| (expand_oacc_collapse_init): Likewise. |
| (expand_oacc_collapse_vars): Likewise. |
| (expand_omp_for_init_counts): Likewise. |
| (expand_omp_for_init_vars): Likewise. |
| (extract_omp_for_update_vars): Likewise. |
| (expand_omp_ordered_source): Likewise. |
| (expand_omp_ordered_sink): Likewise. |
| (expand_omp_ordered_source_sink): Likewise. |
| (expand_omp_for_ordered_loops): Likewise. |
| (expand_omp_for_generic): Likewise. |
| (expand_omp_for_static_nochunk): Likewise. |
| (find_phi_with_arg_on_edge): Likewise. |
| (expand_omp_for_static_chunk): Likewise. |
| (expand_cilk_for): Likewise. |
| (expand_omp_simd): Likewise. |
| (expand_omp_taskloop_for_outer): Likewise. |
| (expand_omp_taskloop_for_inner): Likewise. |
| (expand_oacc_for): Likewise. |
| (expand_omp_for): Likewise. |
| (expand_omp_sections): Likewise. |
| (expand_omp_single): Likewise. |
| (expand_omp_synch): Likewise. |
| (expand_omp_atomic_load): Likewise. |
| (expand_omp_atomic_store): Likewise. |
| (expand_omp_atomic_fetch_op): Likewise. |
| (expand_omp_atomic_pipeline): Likewise. |
| (expand_omp_atomic_mutex): Likewise. |
| (expand_omp_atomic): Likewise. |
| (oacc_launch_pack): and moved to omp-general.c, made public. |
| (OACC_FN_ATTRIB): Likewise. |
| (replace_oacc_fn_attrib): Renamed to oacc_replace_fn_attrib and moved |
| to omp-general.c. |
| (set_oacc_fn_attrib): Renamed to oacc_set_fn_attrib and moved to |
| omp-general.c. |
| (build_oacc_routine_dims): Renamed to oacc_build_routine_dims and |
| moved to omp-general.c. |
| (get_oacc_fn_attrib): Renamed to oacc_get_fn_attrib and moved to |
| omp-general.c. |
| (oacc_fn_attrib_kernels_p): Moved to omp-general.c. |
| (oacc_fn_attrib_level): Moved to omp-offload.c. |
| (get_oacc_fn_dim_size): Renamed to oacc_get_fn_dim_size and moved to |
| omp-general.c. |
| (get_oacc_ifn_dim_arg): Renamed to oacc_get_ifn_dim_arg and moved to |
| omp-general.c. |
| (mark_loops_in_oacc_kernels_region): Moved to omp-expand.c. |
| (grid_launch_attributes_trees): Likewise. |
| (grid_attr_trees): Likewise. |
| (grid_create_kernel_launch_attr_types): Likewise. |
| (grid_insert_store_range_dim): Likewise. |
| (grid_get_kernel_launch_attributes): Likewise. |
| (get_target_argument_identifier_1): Likewise. |
| (get_target_argument_identifier): Likewise. |
| (get_target_argument_value): Likewise. |
| (push_target_argument_according_to_value): Likewise. |
| (get_target_arguments): Likewise. |
| (expand_omp_target): Likewise. |
| (grid_expand_omp_for_loop): Moved to omp-grid.c. |
| (grid_arg_decl_map): Likewise. |
| (grid_remap_kernel_arg_accesses): Likewise. |
| (grid_expand_target_grid_body): Likewise. |
| (expand_omp): Renamed to omp_expand and moved to omp-expand.c. |
| (build_omp_regions_1): Moved to omp-expand.c. |
| (build_omp_regions_root): Likewise. |
| (omp_expand_local): Likewise. |
| (build_omp_regions): Likewise. |
| (execute_expand_omp): Likewise. |
| (pass_data_expand_omp): Likewise. |
| (pass_expand_omp): Likewise. |
| (make_pass_expand_omp): Likewise. |
| (pass_data_expand_omp_ssa): Likewise. |
| (pass_expand_omp_ssa): Likewise. |
| (make_pass_expand_omp_ssa): Likewise. |
| (grid_lastprivate_predicate): Renamed to |
| omp_grid_lastprivate_predicate and moved to omp-grid.c, made public. |
| (grid_prop): Moved to omp-grid.c. |
| (GRID_MISSED_MSG_PREFIX): Likewise. |
| (grid_safe_assignment_p): Likewise. |
| (grid_seq_only_contains_local_assignments): Likewise. |
| (grid_find_single_omp_among_assignments_1): Likewise. |
| (grid_find_single_omp_among_assignments): Likewise. |
| (grid_find_ungridifiable_statement): Likewise. |
| (grid_parallel_clauses_gridifiable): Likewise. |
| (grid_inner_loop_gridifiable_p): Likewise. |
| (grid_dist_follows_simple_pattern): Likewise. |
| (grid_gfor_follows_tiling_pattern): Likewise. |
| (grid_call_permissible_in_distribute_p): Likewise. |
| (grid_handle_call_in_distribute): Likewise. |
| (grid_dist_follows_tiling_pattern): Likewise. |
| (grid_target_follows_gridifiable_pattern): Likewise. |
| (grid_remap_prebody_decls): Likewise. |
| (grid_var_segment): Likewise. |
| (grid_mark_variable_segment): Likewise. |
| (grid_copy_leading_local_assignments): Likewise. |
| (grid_process_grid_body): Likewise. |
| (grid_eliminate_combined_simd_part): Likewise. |
| (grid_mark_tiling_loops): Likewise. |
| (grid_mark_tiling_parallels_and_loops): Likewise. |
| (grid_process_kernel_body_copy): Likewise. |
| (grid_attempt_target_gridification): Likewise. |
| (grid_gridify_all_targets_stmt): Likewise. |
| (grid_gridify_all_targets): Renamed to omp_grid_gridify_all_targets |
| and moved to omp-grid.c, made public. |
| (make_gimple_omp_edges): Renamed to omp_make_gimple_edges and moved to |
| omp-expand.c. |
| (add_decls_addresses_to_decl_constructor): Moved to omp-offload.c. |
| (omp_finish_file): Likewise. |
| (oacc_thread_numbers): Likewise. |
| (oacc_xform_loop): Likewise. |
| (oacc_default_dims, oacc_min_dims): Likewise. |
| (oacc_parse_default_dims): Likewise. |
| (oacc_validate_dims): Likewise. |
| (new_oacc_loop_raw): Likewise. |
| (new_oacc_loop_outer): Likewise. |
| (new_oacc_loop): Likewise. |
| (new_oacc_loop_routine): Likewise. |
| (finish_oacc_loop): Likewise. |
| (free_oacc_loop): Likewise. |
| (dump_oacc_loop_part): Likewise. |
| (dump_oacc_loop): Likewise. |
| (debug_oacc_loop): Likewise. |
| (oacc_loop_discover_walk): Likewise. |
| (oacc_loop_sibling_nreverse): Likewise. |
| (oacc_loop_discovery): Likewise. |
| (oacc_loop_xform_head_tail): Likewise. |
| (oacc_loop_xform_loop): Likewise. |
| (oacc_loop_process): Likewise. |
| (oacc_loop_fixed_partitions): Likewise. |
| (oacc_loop_auto_partitions): Likewise. |
| (oacc_loop_partition): Likewise. |
| (default_goacc_fork_join): Likewise. |
| (default_goacc_reduction): Likewise. |
| (execute_oacc_device_lower): Likewise. |
| (default_goacc_validate_dims): Likewise. |
| (default_goacc_dim_limit): Likewise. |
| (pass_data_oacc_device_lower): Likewise. |
| (pass_oacc_device_lower): Likewise. |
| (make_pass_oacc_device_lower): Likewise. |
| (execute_omp_device_lower): Likewise. |
| (pass_data_omp_device_lower): Likewise. |
| (pass_omp_device_lower): Likewise. |
| (make_pass_omp_device_lower): Likewise. |
| (pass_data_omp_target_link): Likewise. |
| (pass_omp_target_link): Likewise. |
| (find_link_var_op): Likewise. |
| (pass_omp_target_link::execute): Likewise. |
| (make_pass_omp_target_link): Likewise. |
| * Makefile.in (OBJS): Added omp-offload.o, omp-expand.o, omp-general.o |
| and omp-grid.o. |
| (GTFILES): Added omp-offload.h, omp-offload.c and omp-expand.c, removed |
| omp-low.h. |
| * gimple-fold.c: Include omp-general.h instead of omp-low.h. |
| (fold_internal_goacc_dim): Adjusted calls to |
| get_oacc_ifn_dim_arg and get_oacc_fn_dim_size to use their new names. |
| * gimplify.c: Include omp-low.h. |
| (omp_notice_variable): Adjust the call to get_oacc_fn_attrib to use |
| its new name. |
| (gimplify_omp_task): Adjusted calls to find_omp_clause to use its new |
| name. |
| (gimplify_omp_for): Likewise. |
| * lto-cgraph.c: Include omp-offload.h instead of omp-low.h. |
| * toplev.c: Include omp-offload.h instead of omp-low.h. |
| * tree-cfg.c: Include omp-general.h instead of omp-low.h. Also |
| include omp-expand.h. |
| (make_edges_bb): Adjusted the call to make_gimple_omp_edges to use its |
| new name. |
| (make_edges): Adjust the call to free_omp_regions to use its new name. |
| * tree-parloops.c: Include omp-general.h. |
| (create_parallel_loop): Adjusted the call to set_oacc_fn_attrib to use |
| its new name. |
| (parallelize_loops): Adjusted the call to get_oacc_fn_attrib to use |
| its new name. |
| * tree-ssa-loop.c: Include omp-general.h instead of omp-low.h. |
| (gate_oacc_kernels): Adjusted the call to get_oacc_fn_attrib to use |
| its new name. |
| * tree-vrp.c: Include omp-general.h instead of omp-low.h. |
| (extract_range_basic): Adjusted calls to get_oacc_ifn_dim_arg and |
| get_oacc_fn_dim_size to use their new names. |
| * varpool.c: Include omp-offload.h instead of omp-low.h. |
| * gengtype.c (open_base_files): Replace omp-low.h with omp-offload.h in |
| ifiles. |
| * config/nvptx/nvptx.c: Include omp-general.c. |
| (nvptx_expand_call): Adjusted the call to get_oacc_fn_attrib to use |
| its new name. |
| (nvptx_reorg): Likewise. |
| (nvptx_record_offload_symbol): Likewise. |
| |
| 2016-12-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78786 |
| * gimple-ssa-sprintf.c (target_dir_max): New macro. |
| (get_mpfr_format_length): New function. |
| (format_integer): Use HOST_WIDE_INT instead of int. |
| (format_floating_max): Same. |
| (format_floating): Call get_mpfr_format_length. |
| (format_directive): Use target_dir_max. |
| |
| 2016-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/78791 |
| * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_STV_TEMP. |
| * config/i386/i386.c (dimode_scalar_chain::make_vector_copies, |
| dimode_scalar_chain::convert_reg): Use SLOT_STV_TEMP instead of |
| SLOT_TEMP. |
| |
| 2016-12-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/59874 |
| * config/i386/i386-builtin.def: Add __builtin_clzs and __builtin_ctzs. |
| (ix86_fold_builtin): Handle IX86_BUILTIN_CTZS and IX86_BUILTIN_CLZS. |
| * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. |
| (*clzhi2): Ditto. |
| |
| 2016-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/77844 |
| * valtrack.c: Include rtl-iter.h. |
| (struct rtx_subst_pair): Add insn field. |
| (propagate_for_debug_subst): If pair->to contains at least 2 |
| regs, create a DEBUG_INSN with a debug temp before pair->insn |
| and replace from with the debug temp instead of pair->to. |
| (propagate_for_debug): Initialize p.insn. |
| * combine.c (insn_uid_check): New inline function. |
| (INSN_COST, LOG_LINKS): Use it instead of INSN_UID. |
| (find_single_use, combine_instructions, |
| cant_combine_insn_p, try_combine): Use NONDEBUG_INSN_P instead of |
| INSN_P. |
| |
| 2016-12-14 Martin Sebor <msebor@redhat.com> |
| |
| PR c/17308 |
| * builtin-attrs.def (ATTR_NONNULL_1_1, ATTR_NONNULL_1_2): Defined. |
| (ATTR_NONNULL_1_3, ATTR_NONNULL_1_4, ATTR_NONNULL_1_5): Same. |
| (ATTR_NOTHROW_NONNULL_1_1, ATTR_NOTHROW_NONNULL_1_2): Same. |
| (ATTR_NOTHROW_NONNULL_1_3, ATTR_NOTHROW_NONNULL_1_4): Same. |
| (ATTR_NOTHROW_NONNULL_1_5): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_1_2): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_2_0): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_2_3): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_3_0): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_3_4): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_4_0): Same. |
| (ATTR_NONNULL_1_FORMAT_PRINTF_4_5): Same. |
| * builtins.c (validate_arg): Add argument. Treat null pointers |
| passed to nonnull arguments as invalid. |
| (validate_arglist): Same. |
| * builtins.def (fprintf, fprintf_unlocked): Add nonnull attribute. |
| (printf, printf_unlocked, sprintf. vfprintf, vsprintf): Same. |
| (__sprintf_chk, __vsprintf_chk, __fprintf_chk, __vfprintf_chk): Same. |
| * calls.c (get_nonnull_ags, maybe_warn_null_arg): New functions. |
| (initialize_argument_information): Diagnose null pointers passed to |
| arguments declared nonnull. |
| * calls.h (get_nonnull_args): Declared. |
| |
| 2016-12-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): On ISA |
| 3.0/power9, add support to use the VEXTU{B,H,W}{L,R}X extract |
| instructions. |
| * config/rs6000/vsx.md (VSr2): Add IEEE 128-bit floating point |
| type constraint registers. |
| (VSr3): Likewise. |
| (FL_CONV): New mode iterator for binary floating types that have a |
| direct conversion from 64-bit integer to floating point. |
| (vsx_extract_<mode>_p9): Add support for the ISA 3.0/power9 |
| VEXTU{B,H,W}{L,R}X extract instructions. |
| (vsx_extract_<mode>_p9 splitter): Add splitter to load up the |
| extract byte position into the GPR if we are using the |
| VEXTU{B,H,W}{L,R}X extract instructions. |
| (vsx_extract_<mode>_di_p9): Support extracts to GPRs. |
| (vsx_extract_<mode>_store_p9): Support extracting to GPRs so that |
| we can use reg+offset address instructions. |
| (vsx_extract_<mode>_var): Support extracts to GPRs. |
| (vsx_extract_<VSX_EXTRACT_I:mode>_<SDI:mode>_var): New combiner |
| insn to combine vector extracts with zero_extend. |
| (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Optimize |
| extracting a small integer vector element and converting it to a |
| floating point type. |
| (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise. |
| (UNSPEC_XXEXTRACTUW): New unspec. |
| (UNSPEC_XXINSERTW): Likewise. |
| (vextract4b): Add support for the vec_vextract4b built-in |
| function. |
| (vextract4b_internal): Likewise. |
| (vinsert4b): Add support for the vec_insert4b built-in function. |
| Include both a version that inserts element 1 from a V4SI object |
| and one that inserts a DI object. |
| (vinsert4b_internal): Likewise. |
| (vinsert4b_di): Likewise. |
| (vinsert4b_di_internal): Likewise. |
| * config/rs6000/predicates.md (const_0_to_11_operand): New |
| predicate, match 0..11. |
| * config/rs6000/rs6000-builtin.def (BU_P9V_VSX_3): Set built-in |
| type to ternary, not binary. |
| (BU_P9V_64BIT_VSX_3): Likewise. |
| (P9V_BUILTIN_VEXTRACT4B): Add support for vec_vinsert4b and |
| vec_extract4b non-overloaded built-in functions. |
| (P9V_BUILTIN_VINSERT4B): Likewise. |
| (P9V_BUILTIN_VINSERT4B_DI): Likewise. |
| (P9V_BUILTIN_VEC_VEXTULX): Move to section that adds 2 operand ISA |
| 3.0 built-in functions. |
| (P9V_BUILTIN_VEC_VEXTURX): Likewise. |
| (P9V_BUILTIN_VEC_VEXTRACT4B): Add support for overloaded |
| vec_insert4b and vec_extract4 built-in functions. |
| (P9V_BUILTIN_VEC_VINSERT4B): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| overloaded support for vec_vinsert4b and vec_extract4b. |
| * config/rs6000/rs6000.c (altivec_expand_builtin): Add checks for |
| the vec_insert4b and vec_extract4b byte number being a constant in |
| the range 0..11. |
| * config/rs6000/altivec.h (vec_vinsert4b): Support vec_vinsert4b |
| and vec_extract4b built-in functions. |
| * doc/extend.doc (PowerPC VSX built-in functions): Document |
| vec_insert4b and vec_extract4b. |
| |
| 2016-12-14 Martin Liska <mliska@suse.cz> |
| |
| * gimple-pretty-print.c (dump_probability): New function. |
| (dump_edge_probability): Use the function. |
| (dump_gimple_label): Likewise. |
| (dump_gimple_bb_header): Likewise. |
| |
| 2016-12-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-strlen.c (fold_strstr_to_memcmp): New function. |
| (strlen_optimize_stmt): Call fold_strstr_to_memcmp. |
| |
| 2016-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * lra-constraints.c (process_address_1): Do not attempt to decompose |
| addresses for MEMs that satisfy fixed-form constraints. |
| |
| 2016-12-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78788 |
| * tree-vrp.c (set_value_range): Allow [-INF(OVF), +INF(OVF)]. |
| (set_and_canonicalize_value_range): Do not drop the above to |
| VARYING. |
| |
| 2016-12-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs600.c (rs6000_builtin_vectorization_cost): |
| Adjust unaligned load cost. |
| |
| 2016-12-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78794 |
| * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain): |
| Calculate additional gain for andnot for targets without BMI. |
| |
| 2016-12-13 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add built-in support for |
| vector float vec_pack (vector double, vector double) |
| vector double vec_sld (vector double, vector double) |
| * config/rs6000/rs6000.c: Add icode check for vsldoi_v2df to allow |
| 4-bit unsigned literal. |
| * config/rs6000/rs6000-builtin.def: Add definition for VSLDOI_2DF |
| * doc/extend.texi: Update the built-in documentation file for the |
| new powerpc vec_pack and vec_sld built-ins. |
| |
| 2016-12-13 Martin Liska <mliska@suse.cz> |
| |
| * sanopt.c (sanopt_optimize_walker): Set contains_asan_mark. |
| (sanopt_optimize): Add new argument. |
| (sanitize_asan_mark_unpoison): New function. |
| (maybe_contains_asan_check): Likewise. |
| (sanitize_asan_mark_poison): Likewise. |
| (pass_sanopt::execute): Call the new functions. |
| |
| 2016-12-13 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/78428 |
| * expr.c (store_constructor_field): Add new arguments to the function. |
| (store_constructor): Set up bitregion_end and add gcc_unreachable to |
| fields that have either non-constant size or (and) offset. |
| |
| 2016-12-13 Marek Polacek <polacek@redhat.com> |
| |
| * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Change |
| parameters' type from int to HOST_WIDE_INT. |
| (compute_overlap_steps_for_affine_1_2): Change parameters' type from |
| int to HOST_WIDE_INT. |
| (build_classic_dist_vector_1): Likewise. |
| (add_multivariate_self_dist): Likewise. |
| |
| 2016-12-13 Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/78725 |
| * tree-ssa-loop-split.c (split_at_bb_p): Check for overflow and |
| at correct use point. |
| |
| 2016-12-13 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (asan_expand_mark_ifn): Use renamed |
| BUILT_IN_ASAN_{UN}CLOBBER_N to BUILT_IN_ASAN_{UN}POISON_STACK_MEMORY. |
| * sanitizer.def: Likewise. |
| |
| 2016-12-13 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/extend.texi (Half-Precision): Update to document current |
| compiler behaviour. |
| |
| 2016-12-13 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/extend.texi (Floating Types): Document availability of |
| _Float16 on ARM/AArch64. |
| |
| 2016-12-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78699 |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit |
| group size. |
| |
| 2016-12-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/78742 |
| * tree.c (cst_and_fits_in_hwi): Look if the actual value fits. |
| * tree-object-size.c (compute_builtin_object_size): Use |
| tree_fits_shwi_p. |
| * tree-data-ref.c (initialize_matrix_A): Remove excess assert. |
| |
| 2016-12-13 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (asan_mark_poison_p): Remove. |
| (asan_mark_p): New function. |
| (transform_statements): Use the function. |
| (asan_expand_mark_ifn): Do not use masked enum. |
| * asan.h (enum asan_mark_flags): Declare it via a macro. |
| * gimple-pretty-print.c (dump_gimple_call_args): Dump first |
| argument of ASAN_MARK. |
| * gimplify.c (build_asan_poison_call_expr): Use new enum values. |
| (asan_poison_variable): Likewise. |
| |
| 2016-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/77905 |
| * ipa-pure-const.c (cdtor_p): Return true for |
| DECL_STATIC_{CON,DE}STRUCTOR even when it is |
| DECL_LOOPING_CONST_OR_PURE_P. |
| |
| 2016-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78777 |
| * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge, |
| insert_initializers): Use stmt_ends_bb_p instead of is_ctrl_stmt. |
| |
| PR other/78766 |
| * opt-functions.awk (opt_args): Use [{] instead of { in regexps. |
| Formatting fix. |
| |
| 2016-12-12 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78622 |
| PR middle-end78606 |
| * gimple-ssa-sprintf.c (min_bytes_remaining): Use res.knownrange |
| rather than res.bounded. |
| (get_width_and_precision): Set precision to -1 when negative. |
| (adjust_range_for_overflow): New function. |
| (format_integer): Correct the handling of the space, plus, and pound |
| flags, and the special case of zero precision. |
| Always set res.bounded to true unless either precision or width |
| is specified and unknown. |
| Call adjust_range_for_overflow. |
| Avoid use zero as the shortest value when precision is specified |
| but unknown. |
| (format_directive): Remove vestigial quoting. Always inform of |
| argument value or range when it's available. |
| (add_bytes): Correct the computation of boundrange used to |
| decide whether a warning is of a "maybe" or "defnitely" kind. |
| |
| 2016-12-12 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * combine.c (change_zero_ext): Handle mode expanding zero_extracts. |
| |
| 2016-12-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78738 |
| * config/i386/i386.h (X87_ENABLE_ARITH): Also enable for |
| flag_unsafe_math_optimizations. |
| (X87_ENABLE_FLOAT): Ditto. |
| |
| 2016-12-12 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/78716 |
| * gimplify.c (gimplify_va_arg_expr): Don't require ADDR_EXPR for |
| Case 1; check POINTER_TYPE_P instead. |
| |
| 2016-12-12 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/78669 |
| * ira.c (combine_and_move_insns): When deleting an insn, clear the |
| replace flag for all used regs in that insn. |
| |
| 2016-12-12 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-opts.h: Move struct arm_arch_core_flag and |
| arm_arch_core_flags to ... |
| * common/config/arm/arm-common.c: There. |
| |
| 2016-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/constraints.md (T): Use special memory constraint. |
| (U): Minor tweak. |
| (W): Add TARGET_ARCH64 test. |
| * config/sparc/sparc.md (*movdi_insn_sp32): Replace 'W' with 'T'. |
| (*movdf_insn_sp32): Likewise. |
| (*mov<VM64:mode>_insn_sp32): Likewise. Replace 'e' with 'f' in |
| conjunction with offsettable memory references. |
| |
| 2016-12-11 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_emit_move_sequence): Call copy_rtx |
| to avoid shared structure error. |
| |
| 2016-12-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/78695 |
| * config/rs6000/rs6000.c (find_alignment_op): Discard from |
| consideration any artificial definition. |
| |
| 2016-12-11 Iain Sandoe <iain@codesourcery.com> |
| |
| * configure.ac (CROSS directory tests): Remove the assumption that |
| Darwin hosts contain suitable target sysroots in "/". |
| * configure: Regenerate. |
| |
| 2016-12-11 Iain Sandoe <iain@codesourcery.com> |
| |
| PR rtl-optimization/71496 |
| * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non- |
| copyable. (load_macho_picbase_di, reload_macho_picbase_si, |
| reload_macho_picbase_di): Likewise. |
| |
| 2012-12-11 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_callee_copies): New function. |
| * config/pa/pa.opt (mcaller-copies): New option. |
| * doc/invoke.texi (mcaller-copies): Document option. |
| |
| 2016-12-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/70799 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) |
| <case ASHIFT, case LSHIFTRT>: Consider all constant shifts. |
| Add FIXME comment. |
| (dimode_scalar_chain::compute_convert_gain): Reduce gain for |
| constant shifts larger or equal than 32. |
| |
| 2016-12-11 Roger Pau Monné <roger.pau@citrix.com> |
| |
| * config/i386/x86-64.h: Append --32 to the assembler options when |
| -m16 is used on non-glibc systems as well. |
| |
| 2016-12-10 Allan Sandfeld Jensen <allan.jensen@qt.io> |
| |
| PR target/70118 |
| * config/i386/mmintrin.h (__m64_u): New type |
| * config/i386/emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64): |
| Make the allowed unaligned memory access explicit. |
| |
| 2016-12-10 Krister Walfridsson <krister.walfridsson@gmail.com> |
| |
| * config.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD. |
| Generally use cpu generic. |
| |
| 2016-12-10 Jakub Jelinek <jakub@redhat.com> |
| Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/78720 |
| * match.pd (A < 0 ? C : 0): Only optimize for signed A. If shift |
| is negative, sign extend to @1's type and than AND with C. |
| |
| 2016-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/78758 |
| * tree-object-size.c (compute_object_offset) <case ARRAY_REF>: Handle |
| non-zero low bound or non-standard element sizes. |
| |
| PR sanitizer/78708 |
| * lto-streamer-in.c (input_function): In addition to debug stmts |
| without -g, remove IFN_*SAN_* calls if corresponding flag_sanitize |
| bit is not enabled. |
| |
| 2016-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-passes.def: New file. |
| * config/rs6000/rs6000-protos.h: Declare make_pass_analyze_swaps. |
| * config/rs6000/rs6000.c (rs6000_option_override): Remove |
| registration of machine-specific passes. |
| (pass_analyze_swaps::clone): New function. |
| * config/rs6000/t-rs6000: Define PASSES_EXTRA. |
| |
| 2016-12-09 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| PR ipa/78721 |
| * ipa-cp.c (propagate_vr_accross_jump_function): Call |
| drop_tree_overflow after fold_convert. |
| |
| 2016-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/72742 |
| * config/rs6000/rs6000.md (*and<mode>3_imm_mask_dot, |
| *and<mode>3_imm_mask_dot2): Add rs6000_is_valid_and_mask to insn |
| condition. |
| |
| 2016-12-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/78683 |
| * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Use |
| GET_MODE_BITSIZE. Return 2. |
| (CTZ_DEFINED_VALUE_AT_ZERO): Use GET_MODE_BITSIZE. Return 2. Handle |
| TARGET_POPCNTD the same as TARGET_CTZ. |
| * config/rs6000/rs6000.md (ctz<mode>2): Reimplement. |
| (ffs<mode>2): Reimplement. |
| |
| 2016-12-09 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR rtl-optimization/78255 |
| * gcc/postreload.c (reload_cse_simplify): Do not CSE a function if |
| NO_FUNCTION_CSE is true. |
| |
| 2016-12-09 Cesar Philippidis <cesar@codesourcery.com> |
| |
| PR ipa/78027 |
| * ipa-icf.c (sem_function::parse): Don't process functions with |
| oacc decl attributes, as they may be OpenACC routines. |
| |
| 2016-12-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * rtl.h (get_mem_attrs): Add "const" qualifier to returned |
| pointer. |
| |
| 2016-12-09 Nathan Sidwell <nathan@acm.org> |
| |
| PR C++/78550 |
| * convert.c (convert_to_integer_1): Maybe fold conversions to |
| integral types with fewer bits than its mode. |
| |
| 2016-12-09 Martin Liska <mliska@suse.cz> |
| |
| * tree-pretty-print.c (pretty_print_string): Escape non-printable |
| chars in strings. |
| |
| 2016-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78726 |
| * tree-ssa-reassoc.c (make_new_ssa_for_def): Add OPCODE and OP |
| argument. For lhs uses in debug stmts, don't replace lhs with |
| new_lhs, but with a debug temp set to new_lhs opcode op. |
| (make_new_ssa_for_all_defs): Add OPCODE argument, pass OPCODE and |
| OP down to make_new_ssa_for_def. |
| (zero_one_operation): Call make_new_ssa_for_all_defs even when |
| stmts_to_fix is empty, if *def has not changed yet. Pass |
| OPCODE to make_new_ssa_for_all_defs. |
| |
| 2016-12-08 Martin Sebor <msebor@redhat.com> |
| |
| PR c/78284 |
| * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New |
| identifier tree nodes. |
| (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list. |
| (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same. |
| (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same. |
| (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same. |
| (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same. |
| * builtins.c (expand_builtin_alloca): Call |
| maybe_warn_alloc_args_overflow. |
| * builtins.def (aligned_alloc, calloc, malloc, realloc): |
| Add attribute alloc_size. |
| (alloca): Add attribute alloc_size and returns_nonnull. |
| * calls.h (maybe_warn_alloc_args_overflow): Declare. |
| * calls.c (alloc_max_size, operand_signed_p): New functions. |
| (maybe_warn_alloc_args_overflow): Define. |
| (initialize_argument_information): Diagnose overflow in functions |
| declared with attaribute alloc_size. |
| * doc/invoke.texi (Warning Options): Document -Walloc-zero and |
| -Walloc-size-larger-than. |
| |
| 2016-12-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/78671 |
| * lra-assign.c (find_hard_regno_for_1): Check prohibited regs for an |
| allocno class. |
| |
| 2016-12-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P. |
| (HARD_REGNO_NREGS_HAS_PADDING): Ditto. Simplify macro. |
| |
| 2015-12-08 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/78733 |
| * config/aarch64/aarch64.c (aarch64_classify_address): |
| Set load_store_pair_p for TImode and TFmode. |
| |
| 2016-12-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * emit-rtl.c (gen_reg_rtx): Move regno_pointer_align and |
| regno_reg_rtx resizing logic to... |
| (emit_status::ensure_regno_capacity): ...this new method, |
| and ensure that the buffers are large enough. |
| (init_emit): Allocate regno_reg_rtx using ggc_cleared_vec_alloc |
| rather than ggc_vec_alloc. |
| * function.h (emit_status::ensure_regno_capacity): New method. |
| |
| 2016-12-08 Dmitry Vyukov <dvyukov@google.com> |
| |
| * opts.c (finish_options): Enable -fsanitize-address-use-after-scope |
| only if -fsanitize=address is enabled (not -fsanitize=kernel-address). |
| * doc/invoke.texi (-fsanitize=kernel-address): |
| Don't say that it enables -fsanitize-address-use-after-scope. |
| |
| 2016-12-08 Bin Cheng <bin.cheng@arm.com> |
| |
| PR middle-end/78684 |
| * tree-vect-loop-manip.c (create_intersect_range_checks_index): Check |
| sign bit for index step of data reference. |
| |
| 2016-12-08 Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): |
| Handle SYMBOL_SMALL_TLSGD for ILP32. |
| * config/aarch64/aarch64.md : tlsgd_small modified into |
| tlsgd_small_<mode> to support SImode and DImode. |
| *tlsgd_small modified into *tlsgd_small_<mode> to support SImode and |
| DImode. |
| |
| 2016-12-08 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): |
| Access the lower part of RTX appropriately. |
| |
| 2016-12-07 David Malcolm <dmalcolm@redhat.com> |
| |
| * genpreds.c (write_tm_constrs_h): Update for renaming of |
| rtx_reader_ptr to md_reader_ptr. |
| (write_tm_preds_h): Likewise. |
| (write_insn_preds_c): Likewise. |
| * read-md.c (rtx_reader_ptr): Rename to... |
| (md_reader_ptr): ...this, and convert from an |
| rtx_reader * to a md_reader *. |
| (rtx_reader::set_md_ptr_loc): Rename to... |
| (md_reader::set_md_ptr_loc): ...this. |
| (rtx_reader::get_md_ptr_loc): Rename to... |
| (md_reader::get_md_ptr_loc): ...this. |
| (rtx_reader::copy_md_ptr_loc): Rename to... |
| (md_reader::copy_md_ptr_loc): ...this. |
| (rtx_reader::fprint_md_ptr_loc): Rename to... |
| (md_reader::fprint_md_ptr_loc): ...this. |
| (rtx_reader::print_md_ptr_loc): Rename to... |
| (md_reader::print_md_ptr_loc): ...this. |
| (rtx_reader::join_c_conditions): Rename to... |
| (md_reader::join_c_conditions): ...this. |
| (rtx_reader::fprint_c_condition): ...this. |
| (rtx_reader::print_c_condition): Rename to... |
| (md_reader::print_c_condition): ...this. |
| (fatal_with_file_and_line): Update for renaming of |
| rtx_reader_ptr to md_reader_ptr. |
| (rtx_reader::require_char): Rename to... |
| (md_reader::require_char): ...this. |
| (rtx_reader::require_char_ws): Rename to... |
| (md_reader::require_char_ws): ...this. |
| (rtx_reader::require_word_ws): Rename to... |
| (md_reader::require_word_ws): ...this. |
| (rtx_reader::read_char): Rename to... |
| (md_reader::read_char): ...this. |
| (rtx_reader::unread_char): Rename to... |
| (md_reader::unread_char): ...this. |
| (rtx_reader::peek_char): Rename to... |
| (md_reader::peek_char): ...this. |
| (rtx_reader::read_name): Rename to... |
| (md_reader::read_name): ...this. |
| (rtx_reader::read_escape): Rename to... |
| (md_reader::read_escape): ...this. |
| (rtx_reader::read_quoted_string): Rename to... |
| (md_reader::read_quoted_string): ...this. |
| (rtx_reader::read_braced_string): Rename to... |
| (md_reader::read_braced_string): ...this. |
| (rtx_reader::read_string): Rename to... |
| (md_reader::read_string): ...this. |
| (rtx_reader::read_skip_construct): Rename to... |
| (md_reader::read_skip_construct): ...this. |
| (rtx_reader::handle_constants): Rename to... |
| (md_reader::handle_constants): ...this. |
| (rtx_reader::traverse_md_constants): Rename to... |
| (md_reader::traverse_md_constants): ...this. |
| (rtx_reader::handle_enum): Rename to... |
| (md_reader::handle_enum): ...this. |
| (rtx_reader::lookup_enum_type): Rename to... |
| (md_reader::lookup_enum_type): ...this. |
| (rtx_reader::traverse_enum_types): Rename to... |
| (md_reader::traverse_enum_types): ...this. |
| (rtx_reader::rtx_reader): Rename to... |
| (md_reader::md_reader): ...this, and update for renaming of |
| rtx_reader_ptr to md_reader_ptr. |
| (rtx_reader::~rtx_reader): Rename to... |
| (md_reader::~md_reader): ...this, and update for renaming of |
| rtx_reader_ptr to md_reader_ptr. |
| (rtx_reader::handle_include): Rename to... |
| (md_reader::handle_include): ...this. |
| (rtx_reader::handle_file): Rename to... |
| (md_reader::handle_file): ...this. |
| (rtx_reader::handle_toplevel_file): Rename to... |
| (md_reader::handle_toplevel_file): ...this. |
| (rtx_reader::get_current_location): Rename to... |
| (md_reader::get_current_location): ...this. |
| (rtx_reader::add_include_path): Rename to... |
| (md_reader::add_include_path): ...this. |
| (rtx_reader::read_md_files): Rename to... |
| (md_reader::read_md_files): ...this. |
| * read-md.h (class rtx_reader): Split into... |
| (class md_reader): ...new class. |
| (rtx_reader_ptr): Rename to... |
| (md_reader_ptr): ...this, and convert to a md_reader *. |
| (class noop_reader): Update base class to be md_reader. |
| (class rtx_reader): Reintroduce as a subclass of md_reader. |
| (rtx_reader_ptr): Reintroduce as a rtx_reader *. |
| (read_char): Update for renaming of rtx_reader_ptr to |
| md_reader_ptr. |
| (unread_char): Likewise. |
| * read-rtl.c (rtx_reader_ptr): New global. |
| (rtx_reader::apply_iterator_to_string): Rename to... |
| (md_reader::apply_iterator_to_string): ...this. |
| (rtx_reader::copy_rtx_for_iterators): Rename to... |
| (md_reader::copy_rtx_for_iterators): ...this. |
| (rtx_reader::read_conditions): Rename to... |
| (md_reader::read_conditions): ...this. |
| (rtx_reader::record_potential_iterator_use): Rename to... |
| (md_reader::record_potential_iterator_use): ...this. |
| (rtx_reader::read_mapping): Rename to... |
| (md_reader::read_mapping): ...this. |
| (rtx_reader::read_rtx): Use rtx_reader_ptr when calling |
| read_rtx_code. |
| (rtx_reader::read_rtx_operand): Use get_string_obstack rather |
| than directly accessing m_string_obstack. |
| (rtx_reader::rtx_reader): New ctor. |
| (rtx_reader::~rtx_reader): New dtor. |
| |
| 2016-12-07 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/77784 |
| PR middle-end/78149 |
| PR middle-end/78138 |
| |
| * builtins.c (expand_builtin_strcat, expand_builtin_strncat): New |
| functions. |
| (compute_dest_size, get_size_range, check_sizes, check_strncat_sizes) |
| (check_memop_sizes): Same. |
| (expand_builtin_memcpy): Call check memop_sizes. |
| (expand_builtin_mempcpy): Same. |
| (expand_builtin_memset): Same, |
| (expand_builtin_bzero): Same. |
| (expand_builtin_memory_chk): Call check_sizes. |
| (expand_builtin_strcpy): Same. |
| (expand_builtin_strncpy): Same. |
| (maybe_emit_sprintf_chk_warning): Same. |
| (expand_builtin): Handle strcat and strncat. |
| (fini_object_sizes): Reset pointers. |
| (compute_object_size): New function. |
| * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): |
| Avoid issuing warnings also issued during built-in expansion. |
| * doc/invoke.texi (Warning Options): Document -Wstringop-overflow. |
| |
| 2016-12-07 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/72717 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_init): If the |
| V2DImode elements are SUBREG's convert the result into DImode |
| rather than failing in emit_move_insn. |
| |
| 2016-12-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.c (fold_builtin_strstr): Removed. |
| (fold_builtin_2): Don't call fold_builtin_strstr. |
| * gimple-fold.c (gimple_fold_builtin_strchr): Check is_strrchr |
| earlier in the strrchr (x, 0) -> strchr (x, 0) optimization. |
| (gimple_fold_builtin_strstr): New function. |
| (gimple_fold_builtin): Call it. |
| * fold-const-call.c (fold_const_call): Handle CFN_BUILT_IN_STRSTR. |
| |
| PR c++/78692 |
| * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Set lhs |
| var to lhs of new_stmt right before noreturn handling rather than to |
| lhs of e->call_stmt early. |
| |
| 2016-12-07 David Malcolm <dmalcolm@redhat.com> |
| |
| * read-md.c (rtx_reader::require_char): New method. |
| (require_char_ws): Convert from function to... |
| (rtx_reader::require_char_ws): ...method. |
| (rtx_reader::require_word_ws): New method. |
| * read-md.h (rtx_reader::require_char): New method decl. |
| (require_char_ws): Remove global decl in favor of... |
| (rtx_reader::require_char_ws): ...new method decl. |
| (rtx_reader::require_word_ws): New method decl. |
| (rtx_reader::peek_char): New method decl. |
| |
| 2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR rtl-optimization/78617 |
| * lra-remat.c (do_remat): Initialize live_hard_regs from live in |
| registers, also setting hard registers mapped to pseudo registers. |
| |
| 2016-12-07 David Malcolm <dmalcolm@redhat.com> |
| |
| * cfgexpand.c (pass_expand::execute): Move stack initializations |
| to rtl_data::init_stack_alignment and call it. |
| * emit-rtl.c (rtl_data::init_stack_alignment): New method. |
| * emit-rtl.h (rtl_data::init_stack_alignment): New method. |
| |
| 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf. |
| (ira): Move initialization of crtl->is_leaf earlier. |
| |
| 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (movti_aarch64): Change Ump to m. |
| (movtf_aarch64): Likewise. |
| * config/aarch64/aarch64.c (aarch64_classify_address): |
| Use correct intersection of offsets. |
| (aarch64_legitimize_address_displacement): Use 9-bit signed offsets. |
| (aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode. |
| Use 7-bit signed scaled mode for modes > 16 bytes. |
| |
| 2016-12-07 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| PR rtl-optimization/78561 |
| * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Use |
| constant_pool_empty_p in place of get_pool_size_upper_bound. |
| (rs6000_stack_info): Likewise. |
| (rs6000_emit_prologue): Likewise. |
| (rs6000_elf_declare_function_name): Likewise. |
| (rs6000_set_up_by_prologue): Likewise. |
| (rs6000_can_eliminate): Likewise. |
| * output.h (get_pool_size_upper_bound): Delete. |
| (constant_pool_empty_p): New. |
| * varasm.c (get_pool_size_upper_bound): Delete |
| (constant_pool_empty_p): New. |
| |
| 2016-12-07 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/78691 |
| * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): |
| Require integral type for the outer expression. |
| |
| 2016-12-07 Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_builtin_support_vector_misalignment): New. |
| (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Define. |
| |
| 2016-12-06 David Malcolm <dmalcolm@redhat.com> |
| |
| PR bootstrap/78705 |
| * config/i386/i386.c (ix86_test_dumping_memory_blockage): |
| Conditionalize the string comparison on Pmode == DImode. |
| |
| 2016-12-06 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67955 |
| * tree-ssa-alias.c (same_addr_size_stores_p): New function. |
| (stmt_kills_ref_p): Use it. |
| |
| 2016-12-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/78700 |
| * calls.c (expand_call): Move back call to prepare_call_address. |
| |
| 2016-12-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78658 |
| * config/rs6000/rs6000.md (zero_extendqi<mode>2): Use ^ instead of |
| ?* constraints for the ISA 3.0 patterns, so the register allocator |
| is more likely to allocate QImode/HImode to vector registers for |
| conversion to floating point unless a reload is needed. |
| (zero_extendhi<mode>2): Likewise. |
| (float<QHI:mode><FP_ISA3:mode>2_internal): Properly deal with the |
| first alternative which is converting QImode/HImode to floating |
| point and the QImode/HImode value is in a vector register, and |
| does not allocate the second pseudo register. Remove zero |
| extending into traditional floating point registers, since the |
| instruction used only works on traditional altivec registers. |
| (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise. |
| |
| 2016-12-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * config/i386/i386.c: Include print-rtl.h. |
| (selftest::ix86_test_dumping_memory_blockage): New function. |
| (selftest::ix86_run_selftests): Call it. |
| * print-rtl-function.c (print_rtx_function): Create an |
| rtx_reuse_manager and use it. |
| * print-rtl.c: Include "rtl-iter.h". |
| (rtx_writer::rtx_writer): Add reuse_manager param. |
| (rtx_reuse_manager::rtx_reuse_manager): New ctor. |
| (uses_rtx_reuse_p): New function. |
| (rtx_reuse_manager::preprocess): New function. |
| (rtx_reuse_manager::has_reuse_id): New function. |
| (rtx_reuse_manager::seen_def_p): New function. |
| (rtx_reuse_manager::set_seen_def): New function. |
| (rtx_writer::print_rtx): If "in_rtx" has a reuse ID, print it as a |
| prefix the first time in_rtx is seen, and print reuse_rtx |
| subsequently. |
| (print_inline_rtx): Supply NULL for new reuse_manager param. |
| (debug_rtx): Likewise. |
| (print_rtl): Likewise. |
| (print_rtl_single): Likewise. |
| (rtx_writer::print_rtl_single_with_indent): Likewise. |
| * print-rtl.h: Include bitmap.h when building for host. |
| (rtx_writer::rtx_writer): Add reuse_manager param. |
| (rtx_writer::m_rtx_reuse_manager): New field. |
| (class rtx_reuse_manager): New class. |
| * rtl-tests.c (selftest::assert_rtl_dump_eq): Add reuse_manager |
| param and use it when constructing rtx_writer. |
| (selftest::test_dumping_rtx_reuse): New function. |
| (selftest::rtl_tests_c_tests): Call it. |
| * selftest-rtl.h (class rtx_reuse_manager): New forward decl. |
| (selftest::assert_rtl_dump_eq): Add reuse_manager param. |
| (ASSERT_RTL_DUMP_EQ): Supply NULL for reuse_manager param. |
| (ASSERT_RTL_DUMP_EQ_WITH_REUSE): New macro. |
| |
| 2016-12-06 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/77761 |
| * lra-lives.c (process_bb_lives): Update biggest mode for |
| implicitly used hard reg. |
| |
| 2016-12-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (general_gr_operand): New predicate. |
| * config/i386/i386.md (TImode and DImode push_operand splitter): |
| Use general_gr_operand. Macroize using DWI mode macro. |
| (TImode and DImode nonimmediate_operand splitter): Use |
| nonimmediate_gr_operand and general_gr_operand. Macroize using |
| DWI mode macro. |
| (TF/XF/DFmode push_operand splitter): Use general_gr_operand. |
| (TFmode nonimmediate_operand splitter): Use nonimmediate_gr_operand |
| and general_gr_operand. |
| (XFmode nonimmediate_operand splitter): Ditto. |
| (DFmode nonimmediate_operand splitter): Ditto. |
| * config/i386/mmx.md (MMXMODE nonimmediate_operand splitter): Ditto. |
| |
| 2016-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm-cores.def (cortex-m23, cortex-m33): Move into |
| alphabetical order with respect to other ARMv8 processors. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Likewise. |
| |
| 2016-12-06 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * config/mips/mips.c (mips_expand_builtin_insn): Check input |
| ranges of literal integer arguments. |
| |
| 2016-12-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/78548 |
| * tree-ssa-uninit.c (simplify_preds_4): Call release() instead of |
| destroy_predicate_vecs. |
| (uninit_uses_cannot_happen): Make uninit_preds a scalar. |
| |
| 2016-12-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/78566 |
| * tree-ssa-uninit.c (can_one_predicate_be_invalidated_p): Change |
| argument type to a pred_chain. |
| (can_chain_union_be_invalidated_p): Use pred_chain instead of a |
| worklist. |
| (flatten_out_predicate_chains): Remove. |
| (uninit_uses_cannot_happen): Rename from |
| uninit_ops_invalidate_phi_use. |
| Change logic so that we are checking that the PHI use will |
| invalidate _ALL_ possibly uninitialized operands. |
| (is_use_properly_guarded): Rename call to |
| uninit_ops_invalidate_phi_use into uninit_uses_cannot_happen. |
| |
| 2016-12-06 Tamar Christina <tamar.christina@arm.com> |
| |
| * gcc/config/aarch64/arm_neon.h |
| (vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added. |
| (vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise. |
| (vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise. |
| (vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise. |
| (vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise. |
| (vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise. |
| (vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise. |
| (vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise. |
| (vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise. |
| (vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise. |
| (vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise. |
| (vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise. |
| (vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise. |
| (vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise. |
| |
| 2016-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/71537 |
| * fold-const.c (fold_comparison): Assume CONSTANT_CLASS_P (base0) |
| plus offset is non-zero. For maybe_nonzero_address decl base0, |
| require indirect_base0. |
| |
| PR c++/71537 |
| * fold-const-call.c (fold_const_call_1): Remove memchr handling here. |
| (fold_const_call) <case CFN_BUILT_IN_STRNCMP, |
| case CFN_BUILT_IN_STRNCASECMP>: Formatting improvements. |
| (fold_const_call) <case CFN_BUILT_IN_MEMCMP>: Likewise. If s2 is 0 |
| and arguments have no side-effects, return 0. |
| (fold_const_call): Handle CFN_BUILT_IN_MEMCHR. |
| |
| PR c++/71537 |
| * fold-const-call.c (fold_const_call): Handle |
| CFN_BUILT_IN_{INDEX,STRCHR,RINDEX,STRRCHR}. |
| |
| PR tree-optimization/78675 |
| * tree-vect-loop.c (vectorizable_live_operation): For |
| VECTOR_BOOLEAN_TYPE_P vectype use integral type with bitsize precision |
| instead of TREE_TYPE (vectype) for the BIT_FIELD_REF. |
| |
| 2016-12-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/78642 |
| * emit-rtl.c (verify_rtx_sharing) <CLOBBER>: Relax condition. |
| (copy_rtx_if_shared_1) <CLOBBER>: Likewise. |
| (copy_insn_1) <CLOBBER>: Likewise. |
| |
| 2016-12-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78688 |
| * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Use IN_RANGE |
| instead of ((N) >= (X) && (N) <= (Y-X)) to silence warnings about |
| comparing signed to unsigned values. |
| (FUNCTION_ARG_REGNO_P): Likewise. |
| |
| 2016-12-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| Stefan Freudenberger <stefan@reservoir.com> |
| |
| PR tree-optimization/78646 |
| * gimple-ssa-strength-reduction.c (replace_ref): The pointer |
| addition used for the memory base expression should have the type |
| of the candidate. |
| |
| 2016-12-05 Waldemar Brodkorb <wbx@openadk.org> |
| |
| PR target/71721 |
| * config.gcc (*-*-uclinux*): Enable posix threads. |
| |
| 2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com> |
| |
| * config/i386/avx512bwintrin.h: Add new k-mask intrinsics. |
| * config/i386/avx512dqintrin.h: Ditto. |
| * config/i386/avx512fintrin.h: Ditto. |
| * config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR, |
| UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR, |
| UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI, |
| UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT, |
| UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT, |
| UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New |
| function types. |
| * config/i386/i386-builtin.def (__builtin_ia32_knotqi, |
| __builtin_ia32_knotsi, __builtin_ia32_knotdi, |
| __builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi, |
| __builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi, |
| __builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi, |
| __builtin_ia32_kxordi, __builtin_ia32_kandqi, |
| __builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi, |
| __builtin_ia32_kandnsi, __builtin_ia32_kandndi): New. |
| * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. |
| |
| 2016-12-05 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c: Revert r243162. |
| |
| 2016-12-05 Paolo Bonzini <bonzini@gnu.org> |
| |
| * match.pd: Simplify X ? C : 0 where C is a power of 2 and |
| X tests a single bit. |
| |
| 2016-12-05 Nathan Sidwell <nathan@acm.org> |
| |
| * diagnostic.c (diagnostic_check_max_errors): New, broken out of ... |
| (diagnostic_action_after_output): ... here. |
| (diagnostic_report_diagnostic): Call it for non-notes. |
| * diagnostic.h (struct diagnostic_context): Make max_errors signed int. |
| (diagnostic_check_max_errors): Declare. |
| |
| 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com> |
| |
| * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs. |
| (ENDFILE_SPEC): Likewise. |
| |
| 2016-12-05 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove. |
| * config/arc/arc.c (arc_unspec_offset): New function. |
| (arc_finalize_pic): Change. |
| (arc_emit_call_tls_get_addr): Likewise. |
| (arc_legitimize_tls_address): Likewise. |
| (arc_legitimize_pic_address): Likewise. |
| (insn_is_tls_gd_dispatch): Remove. |
| * config/arc/arc.h (INSN_REFERENCES_ARE_DELAYED): Change. |
| * config/arc/arc.md (ls_gd_load): Remove unused pattern. |
| (tls_gd_dispatch): Likewise. |
| |
| 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef |
| location. |
| |
| 2016-12-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc-protos.h (sparc_splitdi_legitimate): Rename to... |
| (sparc_split_reg_mem_legitimate): ...this. |
| (sparc_split_reg_mem): Declare. |
| (sparc_split_mem_reg): Likewise. |
| (sparc_split_regreg_legitimate): Rename to... |
| (sparc_split_reg_reg_legitimate): ...this. |
| * config/sparc/sparc.c (sparc_splitdi_legitimate): Rename to... |
| (sparc_split_reg_mem_legitimate): ...this. |
| (sparc_split_reg_mem): New function. |
| (sparc_split_mem_reg): Likewise. |
| (sparc_split_regreg_legitimate): Rename to... |
| (sparc_split_reg_reg_legitimate): ...this. |
| (sparc_split_reg_reg): New function. |
| * config/sparc/sparc.md (lra): Remove "none" value. |
| (enabled): Adjust to above change. |
| (*movdi_insn_sp32): Remove new (r,T) alternative and reorder others. |
| (DImode splitters): Adjust to above renamings and use new functions. |
| (*movdf_insn_sp32): Remove new (r,T) alternative and reorder others. |
| (DFmode splitters): Adjust to above renamings and use new functions. |
| (*mov<VM64:mode>_insn_sp64): Replace C with Z constraint and use W |
| constraint in conjunction with e. |
| (*mov<VM64:mode>_insn_sp32): Remove new (r,T) alternative, add (o,Y) |
| alternative and reorder others. |
| (VM64:mode splitters): Adjust to above renamings and use new functions. |
| |
| 2016-12-04 Martin Sebor <msebor@redhat.com> |
| |
| PR c/78668 |
| * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New |
| identifier tree nodes. |
| (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list. |
| (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same. |
| (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same. |
| (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same. |
| (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same. |
| * builtins.def (aligned_alloc, calloc, malloc, realloc): |
| Add attribute alloc_size. |
| (alloca): Add attribute alloc_size and returns_nonnull. |
| |
| 2016-12-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/70322 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NEG. |
| (dimode_scalar_chain::compute_convert_gain): Ditto. |
| (dimode_scalar_chain::convert_insn): Ditto. |
| |
| 2016-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all |
| cases to build a lowpart SUBREG. |
| |
| 2016-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/constraints.md (U): Adjust comment. |
| * config/sparc/sparc.md (lra): New attribute. |
| (enabled): For base instructions, if the lra attribute is set, |
| return 1 if it is in keeping with TARGET_LRA. |
| (*movdi_insn_sp32): Add lra attribute for alternatives mentioning U |
| constraint and duplicate them with U replaced by r. |
| (*movdf_insn_sp32): Likewise. |
| (*mov<VM64:mode>_insn_sp32): Likewise. |
| (*movtf_insn_sp32): Remove alternatives mentioning U constraint. |
| |
| 2016-12-02 Jeff Law <law@redhat.com> |
| |
| * config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused |
| variable main_variant. |
| |
| 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by |
| default on PowerPC linux systems. |
| |
| 2016-12-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78638 |
| * simplify-rtx.c (simplify_truncation): M2 is not mode, it is |
| GET_MODE (op). Fix this. |
| |
| 2016-12-02 David Malcolm <dmalcolm@redhat.com> |
| |
| PR bootstrap/78616 |
| * selftest.c (selftest::assert_strndup_eq): Rename to... |
| (selftest::assert_xstrndup_eq): ...this, and remove call to |
| strndup. |
| (selftest::test_strndup): Rename to... |
| (selftest::test_xstrndup): ...this, updating for above renaming. |
| (selftest::test_libiberty): Update for renaming. |
| |
| 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78639 |
| * config/rs6000/rs6000.md (movdi_internal64): Fix typo in |
| subversion id 242679 that causes the wrong store instruction to be |
| generated if a DImode is in an Altivec register using REG+REG |
| addressing. |
| |
| 2016-12-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/70322 |
| * config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative |
| and corresponding post-reload splitter. |
| |
| 2016-12-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (machine_function): Add |
| reg_is_wrapped_separately field. |
| * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Define new constant. |
| * config/aarch64/aarch64.c (emit_set_insn): Change return type to |
| rtx_insn *. |
| (aarch64_save_callee_saves): Don't save registers that are wrapped |
| separately. |
| (aarch64_restore_callee_saves): Don't restore registers that are |
| wrapped separately. |
| (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p, |
| aarch64_offset_7bit_signed_scaled_p): Move earlier in the file. |
| (aarch64_get_separate_components): New function. |
| (aarch64_get_next_set_bit): Likewise. |
| (aarch64_components_for_bb): Likewise. |
| (aarch64_disqualify_components): Likewise. |
| (aarch64_emit_prologue_components): Likewise. |
| (aarch64_emit_epilogue_components): Likewise. |
| (aarch64_set_handled_components): Likewise. |
| (aarch64_process_components): Likewise. |
| (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS, |
| TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB, |
| TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS, |
| TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS, |
| TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS, |
| TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define. |
| |
| 2016-12-02 Martin Jambor <mjambor@suse.cz> |
| |
| * passes.def: Move pass_rebuild_cgraph_edges to the end of |
| pass_build_ssa_passes. |
| |
| 2016-12-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (exception_receiver): Copy |
| alpha_gp_ave_rtx return value. |
| |
| 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com> |
| |
| * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection |
| for several include directories that may be relative to sysroot. |
| * config/i386/x-mingw32 (gplus_includedir): Define. |
| (gplus_tool_includedir, gplus_backward_include_dir): Likewise. |
| (native_system_includedir): Likewise. |
| * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not |
| override if TARGET_SYSTEM_ROOT is defined. |
| (NATIVE_SYSTEM_HEADER_DIR): Likewise. |
| |
| 2016-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/70322 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NOT. |
| (dimode_scalar_chain::compute_convert_gain): Likewise. |
| (dimode_scalar_chain::convert_insn): Likewise. |
| * config/i386/i386.md (*one_cmpldi2_doubleword): New |
| define_insn_and_split. |
| (one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM. |
| |
| PR target/78614 |
| * rtl.c (copy_rtx): Don't clear used flag here. |
| (shallow_copy_rtx_stat): Clear used flag here unless code the rtx |
| is shareable. |
| * simplify-rtx.c (simplify_replace_fn_rtx): When copying rtx with |
| 'E' in format, copy all vectors. |
| * emit-rtl.c (copy_insn_1): Don't clear used flag here. |
| * valtrack.c (cleanup_auto_inc_dec): Likewise. |
| * config/rs6000/rs6000.c (rs6000_frame_related): Likewise. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_builtins): Define |
| ARM_BUILTIN_CMSE_NONSECURE_CALLER. |
| (bdesc_2arg): Add line for cmse_nonsecure_caller. |
| (arm_init_builtins): Handle cmse_nonsecure_caller. |
| (arm_expand_builtin): Likewise. |
| * config/arm/arm_cmse.h (cmse_nonsecure_caller): New. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (detect_cmse_nonsecure_call): New. |
| (cmse_nonsecure_call_clear_caller_saved): New. |
| (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved. |
| (arm_function_ok_for_sibcall): Disable sibcalls for |
| cmse_nonsecure_call. |
| * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New. |
| * config/arm/arm.md (call): Handle cmse_nonsecure_entry. |
| (call_value): Likewise. |
| (nonsecure_call_internal): New. |
| (nonsecure_call_value_internal): New. |
| * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New. |
| (*nonsecure_call_value_reg_thumb1_v5): New. |
| * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New. |
| (*nonsecure_call_value_reg_thumb2): New. |
| * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (gimplify.h): New include. |
| (arm_handle_cmse_nonsecure_call): New. |
| (arm_attribute_table): Added cmse_nonsecure_call. |
| (arm_comp_type_attributes): Deny compatibility of function types |
| with without the cmse_nonsecure_call attribute. |
| * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (output_return_instruction): Clear |
| registers. |
| (thumb2_expand_return): Likewise. |
| (thumb1_expand_epilogue): Likewise. |
| (thumb_exit): Likewise. |
| (arm_expand_epilogue): Likewise. |
| (cmse_nonsecure_entry_clear_before_return): New. |
| (comp_not_to_clear_mask_str_un): New. |
| (compute_not_to_clear_mask): New. |
| * config/arm/thumb1.md (*epilogue_insns): Change length attribute. |
| * config/arm/thumb2.md (*thumb2_return): Disable for |
| cmse_nonsecure_entry functions. |
| (*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for |
| cmse_nonsecure_entry functions. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (use_return_insn): Change to return with bxns |
| when cmse_nonsecure_entry. |
| (output_return_instruction): Likewise. |
| (arm_output_function_prologue): Likewise. |
| (thumb_pop): Likewise. |
| (thumb_exit): Likewise. |
| (thumb2_expand_return): Assert that entry functions always have simple |
| returns. |
| (arm_expand_epilogue): Handle entry functions. |
| (arm_function_ok_for_sibcall): Disable sibcall for entry functions. |
| (arm_asm_declare_function_name): New. |
| * config/arm/arm-protos.h (arm_asm_declare_function_name): New. |
| * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to |
| use arm_asm_declare_function_name. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New. |
| (arm_attribute_table): Added cmse_nonsecure_entry |
| (arm_compute_func_type): Handle cmse_nonsecure_entry. |
| (cmse_func_args_or_return_in_stack): New. |
| (arm_handle_cmse_nonsecure_entry): New. |
| * config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define. |
| (IS_CMSE_ENTRY): Likewise. |
| * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute. |
| |
| 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config.gcc (extra_headers): Added arm_cmse.h. |
| * config/arm/arm-arches.def (ARM_ARCH): |
| (armv8-m): Add FL2_CMSE. |
| (armv8-m.main): Likewise. |
| (armv8-m.main+dsp): Likewise. |
| * config/arm/arm-c.c |
| (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro. |
| * config/arm/arm-flags.h: Define FL2_CMSE. |
| * config/arm.c (arm_arch_cmse): New. |
| (arm_option_override): New error for unsupported cmse target. |
| * config/arm/arm.h (arm_arch_cmse): New. |
| * config/arm/arm.opt (mcmse): New. |
| * config/arm/arm_cmse.h: New file. |
| * doc/invoke.texi (ARM Options): Add -mcmse. |
| * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target. |
| * doc/extend.texi: Add ARMv8-M Security Extensions entry. |
| |
| 2016-12-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c: Fix coding rule glitches. |
| |
| 2016-12-02 Martin Jambor <mjambor@suse.cz> |
| |
| * hsa.c (hsa_callable_function_p): Return false for artificial |
| functions. |
| |
| 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| PR rtl-optimization/78561 |
| * varasm.c (recompute_pool_offsets): New. |
| (output_constant_pool): Call it. |
| |
| 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| PR rtl-optimization/78561 |
| * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename |
| get_pool_size to get_pool_size_upper_bound. |
| (rs6000_stack_info): Likewise. |
| (rs6000_emit_prologue): Likewise. |
| (rs6000_elf_declare_function_name): Likewise. |
| (rs6000_set_up_by_prologue): Likewise. |
| (rs6000_can_eliminate): Likewise, reformat spaces to tabs. |
| * output.h (get_pool_size): Rename to... |
| (get_pool_size_upper_bound): ...This. |
| * varasm.c (get_pool_size): Rename to... |
| (get_pool_size_upper_bound): ...This. |
| |
| 2016-12-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * match.pd: Add new pattern: |
| (cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2). |
| |
| 2016-12-02 Nathan Sidwell <nathan@acm.org> |
| |
| * diagnostic.c (diagnostic_report_diagnostic): Remove extraneous |
| braces. |
| |
| 2016-12-02 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/78328 |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Handle |
| VR_ANTI_RANGE. |
| |
| 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing |
| problem. |
| |
| 2016-12-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field. |
| * config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument. |
| * config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash. |
| * config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use |
| avr_mcu_types.flash_size to compute default value. |
| * config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use |
| mcu->flash_size to compute value for spec. |
| |
| 2016-12-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata. |
| * doc/extend.texi (AVR Variable Attributes) [progmem]: Hint |
| about linker description to avoid progmem altogether. |
| [absdata]: Point to -mabsdata option. |
| |
| 2016-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/78547 |
| * emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and |
| DECL_INCOMING_RTL is not shared. |
| * config/i386/i386.c (convert_scalars_to_vectors): If any |
| insns have been converted, adjust all parameter's DEC_RTL and |
| DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have |
| TImode. |
| |
| PR rtl-optimization/78575 |
| * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use |
| DF infrastructure to wrap all V1TImode reg uses into TImode subreg |
| if not already wrapped in a subreg. Make sure df_insn_rescan does not |
| affect further iterations. |
| |
| 2016-12-02 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/78555 |
| * sreal.c (sreal::to_int): Make absolute value before shifting. |
| (sreal::operator/): Likewise. |
| (sreal_verify_negative_division): New test. |
| (void sreal_c_tests): Call the new test. |
| * sreal.h (sreal::normalize_up): Use new SREAL_ABS and |
| SREAL_SIGN macros. |
| (sreal::normalize_down): Likewise. |
| |
| 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * combine.c (combine_simplify_rtx): Suppress replacement of |
| "(and (reg) (const_int bit))" with "if_then_else". |
| |
| 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/77822 |
| * config/s390/s390.md ("extzv") |
| ("*extzv<mode><clobbercc_or_nocc>") |
| ("*extzvdi<clobbercc_or_nocc>_lshiftrt") |
| ("*<risbg_n>_ior_and_sr_ze") |
| ("*extract1bitdi<clobbercc_or_nocc>") |
| ("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift") |
| ("*insv_rnsbg_srl", "*insv<mode>_mem_reg") |
| ("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE |
| to validate the arguments of zero_extract and sign_extract. |
| |
| 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/77822 |
| * rtl.h (EXTRACT_ARGS_IN_RANGE): New. |
| |
| 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New |
| function. |
| (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target |
| macro. |
| |
| 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md (vec_halfhalf): New mode iterator. |
| ("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>") |
| ("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi") |
| ("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi") |
| ("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi") |
| ("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi") |
| ("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si") |
| ("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si") |
| ("vec_unpacku_lo_v4si"): New pattern definitions. |
| * config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to |
| vector.md. |
| |
| 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-protos.h (s390_reverse_condition): New |
| prototype. |
| * config/s390/s390.c (s390_canonicalize_comparison): Fold compares |
| of CC mode values. |
| (s390_reverse_condition): New function. |
| * config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define |
| target macros. |
| |
| 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU) |
| (CCVHUANY): Remove modes. |
| (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and |
| documentation. |
| * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes. |
| (s390_expand_vec_compare_scalar): Pick one of the cc consumer |
| modes. |
| (s390_branch_condition_mask): Adjust to use the new cc consumer |
| modes. The new modes allow for proper reversal in the middle-end. |
| (s390_expand_vec_compare_cc): Determine the proper cc producer and |
| consumer modes for a comparison. |
| * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU |
| throughout the file. |
| * config/s390/vx-builtins.md: Likewise. |
| |
| 2016-12-02 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| * asan.c (asan_global_struct): Refactor. |
| (create_odr_indicator): New function. |
| (asan_needs_odr_indicator_p): Likewise. |
| (is_odr_indicator): Likewise. |
| (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's |
| constructor. |
| (asan_protect_global): Do not protect odr indicators. |
| |
| 2016-12-01 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadedge.c |
| (record_temporary_equivalences_from_stmts_at_dest): Avoid temporary |
| propagation of operands if there are no operands. |
| |
| 2016-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78586 |
| * gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR, |
| CONVERT_EXPR or COMPONENT_REF here. Formatting fix. For |
| SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's |
| type is INTEGER_TYPE or POINTER_TYPE. |
| |
| 2016-12-01 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/78577 |
| * config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2. |
| (vextuhrx): Likewise. |
| (vextuwlx): Likewise. |
| (vextuwrx): Likewise. |
| |
| 2016-12-01 David Malcolm <dmalcolm@redhat.com> |
| |
| * dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and |
| early_dwarf_finished. |
| |
| 2016-12-01 Eric Botcazou <ebotcazou@adacore.com> |
| David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.opt (mlra): New target option. |
| * config/sparc/sparc.c (TARGET_LRA_P): Define to... |
| (sparc_lra_p): ...this. New function. |
| (D_MODES, DF_MODES): Add missing cast. |
| * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not |
| provide these insns when flag_pic. |
| (sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh, |
| setlm, sethm, setlo, embmedany_sethi, embmedany_losum, |
| embmedany_brsum, embmedany_textuhi, embmedany_texthi, |
| embmedany_textulo, embmedany_textlo): Likewise. |
| (sethi_di_medlow_embmedany_pic): Provide it only with flag_pic. |
| |
| 2016-12-01 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR debug/66419 |
| PR c++/78235 |
| * dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs. |
| |
| 2016-12-01 Richard Biener <rguenther@suse.de> |
| Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to |
| memset if len-oldlen != 0. |
| (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise. |
| |
| 2016-12-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2. |
| |
| 2016-12-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c: Fix coding rule glitches. |
| |
| 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR tree-optimization/78598 |
| * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid |
| overflows. |
| |
| 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR rtl-optimization/78596 |
| * combine.c (simplify_comparison): Cast to unsigned to avoid |
| left shifting of negative value. |
| |
| 2016-12-01 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/install.texi: Don't use pkg-config to check for bdw-gc. |
| |
| 2016-12-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not |
| treat arrays with same type as objects that cannot overlap. |
| |
| 2016-12-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible. |
| (avr_handle_addr_attribute, avr_asm_output_aligned_decl_common) |
| (avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito. |
| |
| 2016-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/78587 |
| * dwarf2out.c (loc_descr_plus_const): For negative offset use |
| uint_loc_descriptor instead of int_loc_descriptor and perform negation |
| in unsigned HOST_WIDE_INT type. |
| (scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL. |
| |
| PR target/78614 |
| * config/rs6000/rs6000.c (rs6000_frame_related): Call |
| set_used_flags (pat) before any simplifications. Clear used flag on |
| PARALLEL copy. Don't guard add_reg_note call. Call |
| copy_rtx_if_shared on pat before storing it into |
| REG_FRAME_RELATED_EXPR. |
| |
| 2016-12-01 Alan Modra <amodra@gmail.com> |
| |
| * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly |
| look inside UNSPEC_VSX_XXSPLTW vec. |
| |
| 2016-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78607 |
| * combine.c (try_combine): Emit a barrier after a unconditional trap. |
| |
| 2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78602 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the |
| element is not a constant or in a register, force it to a |
| register. |
| |
| PR target/78560 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value |
| that will be set to a vector element to be in a register. |
| * config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used |
| the wrong multiplier to convert the element number to a byte |
| offset. |
| |
| 2016-11-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR tree-optimization/77856 |
| * lra-constraints.c (inherit_in_ebb): Check original regno for |
| invalid invariant regs too. Set only clobbered hard regs for the |
| invalid invariant regs. |
| |
| 2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com> |
| |
| Commit files forgotten in r242966. |
| |
| * config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member. |
| * config/avr/avr-devices.c (avr_mcu_types): Add flash size info. |
| * config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded |
| prefix check to find wrap-around value, instead use MCU flash size. |
| For 8k flash devices, update link_pmem_wrap spec string to |
| add --pmem-wrap-around=8k. |
| * config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from |
| here... |
| (LINK_SPEC): ...to here. |
| |
| 2016-11-30 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/78498 |
| * selftest.c (selftest::assert_strndup_eq): New function. |
| (selftest::test_strndup): New function. |
| (selftest::test_libiberty): New function. |
| (selftest::selftest_c_tests): Call test_libiberty. |
| |
| 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78610 |
| * ira.c (combine_and_move_insns): Don't substitute into TRAP_IF |
| instructions. |
| |
| 2016-11-30 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/78574 |
| * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop |
| header PHI that doesn't define biv. |
| |
| 2016-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of |
| reset_used_flags. |
| |
| * config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid |
| sharing the SUBREG rtx between move and following insn. |
| |
| * ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx |
| for REG_EQUIV argument. |
| |
| 2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33. |
| |
| 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR ipa/78555 |
| * real.c (real_hash): Add cast to avoid left |
| shifting of negative values. |
| |
| 2016-11-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/78362 |
| * config/aarch64/aarch64.md (add<mode>3): Extract inner expression |
| from a subreg in operands[1] and don't call REGNO on a non-reg |
| expression when deciding to force operands[2] into a reg. |
| |
| 2016-11-30 Claudiu Zissulescu <claziss@synopsys.com> |
| Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare. |
| * config/arc/arc.c (arc_store_addr_hazard_p): New function. |
| (workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700. |
| * config/arc/arc700.md: Add define_bypass for store/load. |
| |
| 2016-11-30 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (symbol_table::initialize): Initialize |
| ipa_clones_dump_file. |
| (cgraph_node::remove): Report to ipa_clones_dump_file. |
| * cgraph.h: Add new argument (suffix) to cloning methods. |
| * cgraphclones.c (dump_callgraph_transformation): New function. |
| (cgraph_node::create_clone): New argument. |
| (cgraph_node::create_virtual_clone): Likewise. |
| (cgraph_node::create_version_clone): Likewise. |
| * dumpfile.c: Add .ipa-clones dump file. |
| * dumpfile.h (enum tree_dump_index): Add TDI_clones |
| * ipa-inline-transform.c (clone_inlined_nodes): Report operation |
| to dump_callgraph_transformation. |
| |
| 2016-11-30 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/78541 |
| * asan.c (asan_expand_mark_ifn): Properly |
| select a VAR_DECL from FRAME.* component reference. |
| |
| 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78583 |
| * simplify-rtx.c (simplify_truncation): Add check missing from the |
| previous commit. |
| |
| 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78590 |
| * combine.c (change_zero_ext): Transform zero_extend of subregs only |
| if the subreg_reg is a scalar integer mode. |
| |
| 2016-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78586 |
| * gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or |
| TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR. |
| Don't build_int_cst min/max twice. Formatting fix. |
| |
| 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR rtl-optimization/78588 |
| * combine.c (if_then_else_cond): Also guard against BLKmode. |
| * rtlanal.c (num_sign_bit_copies1): Add assert. |
| |
| 2016-11-29 Jeff Law <law@redhat.com> |
| |
| * common/config/arc/arc-common.c (arc_handle_option): Remove unused |
| variables. |
| |
| * lra-constraints.c (check_and_process_move): Constrain the |
| range of DCLASS and SCLASS to avoid false positive out of bounds |
| array index warning. |
| |
| 2016-11-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/install.texi (--with-target-bdw-gc): Remove stray '@'. |
| |
| 2016-11-29 David Malcolm <dmalcolm@redhat.com> |
| |
| PR preprocessor/78569 |
| * input.c (get_substring_ranges_for_loc): Fail gracefully if |
| line directives were present. |
| |
| 2016-11-30 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/install.texi: Document configure options --enable-objc-gc |
| and --with-target-bdw-gc. |
| |
| 2016-11-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78594 |
| * config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add |
| 'x' to stxsi<wd>x print pattern, so that QImode and HImode values |
| residing in traditional altivec registers can be stored |
| correctly. |
| |
| 2016-11-29 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/78603 |
| * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero |
| overhead loop start between a call and its CALL_ARG_LOCATION |
| note. |
| |
| 2016-11-29 Waldemar Brodkorb <wbx@openadk.org> |
| |
| * config/bfin/linux.h (CPP_SPEC): Define. |
| |
| 2016-11-29 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78512 |
| * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove. |
| * config/rs6000/linux.h: Same. |
| * config/rs6000/linux64.h: Same. |
| * config/sol2.h: Same. |
| * config/sol2.c (solaris_printf_pointer_format): Remove. |
| * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove. |
| * doc/tm.texi: Regenerate. |
| * gimple-ssa-sprintf.c (format_pointer): Rempove. |
| (pass_sprintf_length::compute_format_length): Return bool. |
| (pass_sprintf_length::handle_gimple_call): Adjust. |
| * target.def (printf_pointer_format): Remove. |
| * targhooks.c (default_printf_pointer_format): Remove. |
| (linux_printf_pointer_format): Same. |
| * targhooks.h (default_printf_pointer_format): Remove. |
| (linux_printf_pointer_format, solaris_printf_pointer_format): Same. |
| |
| 2016-11-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md. |
| (mshift): Ditto. |
| (SWI1248_AVX512BWDQ): Ditto. |
| (SWI1248_AVX512BW): Ditto. |
| (k<any_logic:code><mode>): Ditto. |
| (kandn<mode>): Ditto. |
| (kxnor<mode>): Ditto. |
| (knot<mode>): Ditto. |
| (*k<any_lshift:code><mode>): Ditto. |
| (kortestzhi, kortestchi): Ditto. |
| (kunpckhi, kunpcksi, kunpckdi): Ditto. |
| |
| 2016-11-29 Andrew Pinski <apinski@cavium.com> |
| |
| * tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node |
| for the EQ_EXPR. |
| |
| 2016-11-29 Chen Gang <gang.chen.5i5j@gmail.com> |
| |
| PR target/71331 |
| * config/tilegx/tilegx.c (tilegx_function_profiler): Save r10 |
| to stack before call mcount. |
| (tilegx_can_use_return_insn_p): Clean up code. |
| |
| 2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com> |
| |
| * config/avr/avr-mcu.def: (avr_mcu_types): Add flash size info. |
| |
| 2016-11-29 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/72774 |
| PR c++/72786 |
| PR c++/77922 |
| PR c++/78313 |
| * spellcheck.c (selftest::test_find_closest_string): Verify that |
| we don't offer the goal string as a suggestion. |
| * spellcheck.h (best_match::get_best_meaningful_candidate): Don't |
| offer the goal string as a suggestion. |
| |
| |
| 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_override_options): Avoid selection of |
| compact casesi for ARCv2. |
| |
| 2016-11-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (lower_phi_internal_fn): Do not look for further |
| PHIs after a regular stmt. |
| (stmt_starts_bb_p): PHIs not preceeded by a PHI or a label |
| start a new BB. |
| |
| 2016-11-29 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/78582 |
| * tree-profile.c (gimple_gen_time_profiler): Make one extra BB |
| to prevent PHI argument clash. |
| |
| 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.opt (marclinux): Fix typo. |
| (marclinux_prof): Likewise. |
| |
| 2016-11-29 Jiong Wang <jiong.wang@arm.com> |
| |
| * target.def (stack_protect_runtime_enabled_p): New. |
| * function.c (expand_function_end): Guard stack_protect_epilogue with |
| targetm.stack_protect_runtime_enabled_p. |
| * cfgexpand.c (pass_expand::execute): Likewise. |
| * calls.c (expand_call): Likewise. |
| * doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it. |
| * doc/tm.texi: Regenerate. |
| |
| 2016-11-29 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/78546 |
| * match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case. |
| |
| 2016-11-29 Janus Weil <janus@gcc.gnu.org> |
| |
| * doc/contrib.texi: Add a few missing gfortran contributors. |
| |
| 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (change_zero_ext): Also handle extends from a subreg |
| to a mode bigger than that of the operand of the subreg. |
| |
| 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/77687 |
| * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the |
| stack_restore_tie insn instead of stack_tie, for the SVR4 and |
| SPE ABIs. |
| * config/rs6000/rs6000.md (stack_restore_tie): New define_insn. |
| |
| 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * shrink-wrap.c (init_separate_shrink_wrap): Do not clear |
| head_components and tail_components. |
| (spread_components): New algorithm. |
| (emit_common_tails_for_components): Clear head_components and |
| tail_components. |
| (insert_prologue_epilogue_for_components): Write extra output to the |
| dump file for sibcalls and abnormal exits. |
| |
| 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78342 |
| * combine.c: Include "cfghooks.h". |
| (try_combine): If we create an unconditional trap, break the basic |
| block in two just after it, and remove the edge between; also, set |
| the *new_direct_jump_p flag so that cleanup_cfg is run. |
| |
| 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract |
| and sign_extract. |
| |
| 2016-11-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*and<mode>_1): Merge insn pattern from |
| *andsi_1 and *andhi_1 using SWI24 mode iterator. Use multi-line |
| output template string. |
| (*anddi_1): Use multi-line output template string. |
| (*andqi_1): Ditto. |
| |
| 2016-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/78540 |
| * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void. |
| * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any |
| note has been removed. |
| * postreload.c (reload_combine_recognize_pattern): If |
| remove_reg_equal_equiv_notes returns true, call df_notes_rescan. |
| |
| 2016-11-28 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78520 |
| * gimple-ssa-sprintf.c (target_max_value): Remove. |
| (target_int_max, target_size_max): Use TYPE_MAX_VALUE. |
| (get_width_and_precision): New function. |
| (format_integer, format_floating, get_string_length, format_string): |
| Correct handling of width and precision with unknown value. |
| (format_directive): Add warning. |
| (pass_sprintf_length::compute_format_length): Allow for precision |
| to consist of a sole period with no asterisk or digits after it. |
| |
| 2016-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/78546 |
| * simplify-rtx.c (neg_const_int): When negating most negative |
| number in mode wider than HOST_BITS_PER_WIDE_INT, use |
| simplify_const_unary_operation to produce CONST_DOUBLE or |
| CONST_WIDE_INT. |
| (simplify_plus_minus): Handle the case where neg_const_int |
| doesn't return a CONST_INT. |
| |
| 2016-11-28 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR target/78556 |
| * config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid |
| left shifting of negative values. |
| |
| 2016-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/78298 |
| * tree-nested.c (convert_local_reference_stmt): After adding |
| shared (FRAME.NN) clause to omp parallel, task or target, |
| add it also to all outer omp parallel, task or target constructs. |
| |
| 2016-11-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (UNSPEC_KMASKOP): New. |
| (UNSPEC_KMOV): Remove. |
| (kmovw): Expand to plain HImode move. |
| (k<any_logic:code><mode>): Rename from *k<logic><mode>. Use |
| register_operand predicates. Tag pattern with UNSPEC_KMASKOP. |
| Remove corresponding clobber-removing splitter. |
| (*anddi_1): Remove mask register alternatives. |
| (*andsi_1): Ditto. |
| (*andhi_1): Ditto. |
| (*andqi_1): Ditto. |
| (*<any_or:code><mode>_1): Ditto. |
| (*<any_or:code>qi_1): Ditto. |
| (kandn<mode>): Use SWI1248_AVX512BW mode iterator. Remove |
| general register alternatives. Tag pattern with UNSPEC_KMASKOP. |
| Remove corresponding splitter to operation with general registers. |
| (*andn<SWI38:mode>): Rename from *bmi_andn_<mode>. |
| (*andn<SWI12:mode>): New pattern. |
| (*kxnor<mode>): Remove general register alternatives. Tag pattern |
| with UNSPEC_KMASKOP. Remove corresponding splitter to operation |
| with general registers. |
| (knot<mode>): New insn pattern. |
| (*one_cmpl<mode>2_1): Remove mask register alternatives. |
| (one_cmplqi2_1): Ditto. |
| (*k<any_lshift:code><mode>): Rename from *k<mshift><mode>3. |
| Tag pattern with UNSPEC_KMASKOP. Add mode attribute. |
| * config/i386/predicates.md (mask_reg_operand): Remove predicate. |
| * config/i386/sse.md (vec_unpacks_hi_hi): Update pattern |
| to generate kmaskop shift. |
| (vec_unpacks_hi_<mode>): Ditto. |
| * config/i386/i386-builtin.def (__builtin_ia32_kandhi): |
| Use CODE_FOR_kandhi. |
| (__builtin_ia32_knothi): Use CODE_FOR_knothi. |
| (__builtin_ia32_korhi): Use CODE_FOR_kiorhi. |
| (__builtin_ia32_kxorhi): Use CODE_FOR_kxorhi. |
| |
| 2016-11-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications |
| to SSA names via extract_range_from_ssa_name if allowed. |
| |
| 2016-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78542 |
| * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification |
| if allowed. |
| |
| 2016-11-28 Paolo Bonzini <bonzini@gnu.org> |
| |
| * combine.c (simplify_if_then_else): Simplify IF_THEN_ELSE that |
| isolates a single bit, even if the condition involves subregs. |
| |
| 2016-11-28 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def |
| (BSL_P): Added di and v2di mode. |
| * config/aarch64/arm_neon.h |
| (vsriq_n_p64, vsri_n_p64): Added poly type. |
| (vextq_p64, vext_p64): Likewise. |
| (vceq_p64, vbslq_p64, vbsl_p64): Likewise. |
| |
| 2016-11-28 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type. |
| (TYPES_GETREGP): Likewise. |
| (TYPES_SHIFTINSERTP): Likewise. |
| (TYPES_COMBINEP): Likewise. |
| (TYPES_STORE1P): Likewise. |
| * config/aarch64/aarch64-simd-builtins.def |
| (combine): Added poly generator. |
| (get_dregoi): Likewise. |
| (get_dregci): Likewise. |
| (get_dregxi): Likewise. |
| (ssli_n): Likewise. |
| (ld1): Likewise. |
| (st1): Likewise. |
| * config/aarch64/arm_neon.h |
| (poly64x1x2_t, poly64x1x3_t): New. |
| (poly64x1x4_t, poly64x2x2_t): Likewise. |
| (poly64x2x3_t, poly64x2x4_t): Likewise. |
| (poly64x1_t): Likewise. |
| (vcreate_p64, vcombine_p64): Likewise. |
| (vdup_n_p64, vdupq_n_p64): Likewise. |
| (vld2_p64, vld2q_p64): Likewise. |
| (vld3_p64, vld3q_p64): Likewise. |
| (vld4_p64, vld4q_p64): Likewise. |
| (vld2_dup_p64, vld3_dup_p64): Likewise. |
| (vld4_dup_p64, vsli_n_p64): Likewise. |
| (vsliq_n_p64, vst1_p64): Likewise. |
| (vst1q_p64, vst2_p64): Likewise. |
| (vst3_p64, vst4_p64): Likewise. |
| (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise. |
| (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise. |
| (vget_lane_p64, vgetq_lane_p64): Likewise. |
| (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise. |
| (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise. |
| (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise. |
| (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise. |
| (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise. |
| (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise. |
| (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise. |
| (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise. |
| (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise. |
| (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise. |
| (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise. |
| (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise. |
| (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise. |
| (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise. |
| (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise. |
| (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise. |
| (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise. |
| (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise. |
| (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise. |
| (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise. |
| (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise. |
| (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise. |
| (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise. |
| (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise. |
| (vset_lane_p64, vsetq_lane_p64): Likewise. |
| (vget_low_p64, vget_high_p64): Likewise. |
| (vcombine_p64, vst2_lane_p64): Likewise. |
| (vst3_lane_p64, vst4_lane_p64): Likewise. |
| (vst2q_lane_p64, vst3q_lane_p64): Likewise. |
| (vst4q_lane_p64, vget_lane_p64): Likewise. |
| (vget_laneq_p64, vset_lane_p64): Likewise. |
| (vset_laneq_p64, vcopy_lane_p64): Likewise. |
| (vcopy_laneq_p64, vdup_n_p64): Likewise. |
| (vdupq_n_p64, vdup_lane_p64): Likewise. |
| (vdup_laneq_p64, vld1_p64): Likewise. |
| (vld1q_p64, vld1_dup_p64): Likewise. |
| (vld1q_dup_p64, vld1q_dup_p64): Likewise. |
| (vmov_n_p64, vmovq_n_p64): Likewise. |
| (vst3q_p64, vst4q_p64): Likewise. |
| (vld1_lane_p64, vld1q_lane_p64): Likewise. |
| (vst1_lane_p64, vst1q_lane_p64): Likewise. |
| (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise. |
| (vdupq_laneq_p64): Likewise. |
| |
| 2016-11-28 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm_neon.h (vget_lane_p64): New. |
| |
| 2016-11-28 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/71767 |
| * configure.ac (with_ld64): Use portable method to extract the |
| major part of the version number. |
| * configure: Regenerated. |
| |
| 2016-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-sprintf.c (build_intmax_type_nodes): Look at |
| UINTMAX_TYPE rather than SIZE_TYPE. Add gcc_unreachable if |
| intmax_t couldn't be determined. |
| (format_integer): Make {,u}intmax_type_node no longer static, |
| initialize them only when needed. For z and t use |
| signed_or_unsigned_type_for instead of assuming size_t and |
| ptrdiff_t have the same precision. |
| |
| PR lto/78211 |
| * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member. |
| * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it. |
| (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec |
| vector instead of traversing m_classes hash table. Release |
| m_classes_vec. |
| (sem_item_optimizer::read_section, sem_item_optimizer::add_class): |
| Formatting fixes. |
| (sem_item_optimizer::get_group_by_hash): When inserting a new group, |
| add it also to m_classes_vec vector. |
| (sem_item_optimizer::remove_symtab_node, |
| sem_item_optimizer::build_hash_based_classes, |
| sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes. |
| (sem_item_optimizer::subdivide_classes_by_equality, |
| sem_item_optimizer::subdivide_classes_by_sensitive_refs, |
| sem_item_optimizer::verify_classes): Traverse m_classes_vec vector |
| instead of traversing m_classes hash table. Formatting fixes. |
| (sem_item_optimizer::traverse_congruence_split, |
| sem_item_optimizer::do_congruence_step_for_index, |
| sem_item_optimizer::do_congruence_step): Formatting fixes. |
| (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec |
| vector instead of traversing m_classes hash table. |
| (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes. |
| (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector |
| instead of traversing m_classes hash table. |
| |
| 2016-11-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (out_movhi_r_mr) [REG_X + PLUS]: Only SBIW if |
| X is not unused after. |
| |
| 2016-11-28 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/78120 |
| * rtlanal.c (insn_rtx_cost): Revert previous change. |
| |
| 2016-11-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR 41076 |
| * config/avr/avr.md (SPLIT34): New mode iterator. |
| (bitop): New code iterator. |
| (*iorhi3.ashift8-*). New insn-and-split patterns. |
| (*movhi): Post-reload split reg = 0. |
| [!MOVW]: Post-reload split reg = reg. |
| (*mov<mode>) [SI,SF,PSI,SQ,USQ,SA,USA]: Post-reload split reg = reg. |
| (andhi3, andpsi3, andsi3): Post-reload split reg-reg operations. |
| (iorhi3, iorpsi3, iorsi3): Same. |
| (xorhi3, xorpsi3, xorsi3): Same. |
| * config/avr/avr.c (avr_rtx_costs_1) [IOR && HImode]: Adjust rtx |
| costs to *iorhi3.ashift8-* patterns. |
| |
| 2016-11-27 Iain Sandoe <iain@codesourcery.com> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/67710 |
| * config.in: Regenerate |
| * config/darwin-driver.c (darwin_driver_init): Emit a version string |
| for the assembler. |
| * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests. |
| * config/darwin.opt(asm_macosx_version_min): New. |
| * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC. |
| * configure: Regenerate |
| * configure.ac: Check for mmacosx-version-min handling. |
| |
| 2016-11-27 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/57438 |
| * config/i386/i386.c (ix86_code_end): Note that we emitted code |
| where the function might otherwise appear empty for picbase thunks. |
| (ix86_output_function_epilogue): If we find a zero-sized function |
| assume that reaching it is UB and trap. If we find a trailing label |
| append a nop. |
| * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we |
| find a zero-sized function assume that reaching it is UB and trap. |
| If we find a trailing label, append a nop. |
| |
| 2016-11-27 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/71767 |
| * config/darwin-sections.def (picbase_thunk_section): New. |
| * config/darwin.c (darwin_init_sections): Set up picbase thunk |
| section. (darwin_rodata_section, darwin_objc2_section, |
| machopic_select_section, darwin_asm_declare_constant_name, |
| darwin_emit_weak_or_comdat, darwin_function_section): Don’t use |
| coalesced with newer linkers. |
| (darwin_override_options): Decide on usage of coalesed sections |
| on the basis of the target linker version. |
| * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New. |
| * config/darwin.opt (mtarget-linker): New. |
| * config/i386/i386.c (ix86_code_end): Do not force the thunks into |
| a coalesced section, instead use a thunks section. |
| |
| 2016-11-27 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/71767 |
| * configure.ac (with-ld64): New var, set for Darwin, set on |
| detection of ld64, gcc_cv_ld64_export_dynamic: New, New test. |
| * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New, define. |
| * config/darwin10.h(DEF_LD64): Update for this target version. |
| * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic test. |
| (DEF_LD64): Update for this target version. |
| * configure: Regenerated. |
| * config.in: Regenerated. |
| |
| 2016-11-27 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/71767 |
| * config/darwin.c (imachopic_indirection_name): Make data |
| section indirections linker-visible. |
| * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local |
| constant labels linker-visible. |
| |
| 2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node. |
| (free_lang_data): Remove assignment to ptrdiff_type_node. |
| |
| 2016-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/78526 |
| * simplify-rtx.c (simplify_immed_subreg): Don't use wi::extract_uhwi |
| beyond val's precision. |
| |
| PR rtl-optimization/78527 |
| * combine.c (make_compound_operation_int): Ignore LSHIFTRT with |
| out of bounds shift count. |
| |
| 2016-11-25 Martin Liska <mliska@suse.cz> |
| |
| PR web/71666 |
| * doc/invoke.texi (-fprofile-use): Fix reference to a section |
| where -fprofile-generate is documented. |
| |
| 2016-11-25 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/78086 |
| * coverage.c (build_init_ctor): Don't use priority {cd}tors if |
| not supported by a target. Set priority to 100 if possible. |
| (build_gcov_exit_decl): Likewise. |
| |
| 2016-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/78515 |
| * ipa-prop.c (compute_complex_assign_jump_func): Properly identify |
| unary, binary and single RHSs. |
| * tree.def (BIT_INSERT_EXPR): Adjust tree code name. |
| |
| 2016-11-25 Bin Cheng <bin.cheng@arm.com> |
| |
| PR middle-end/78507 |
| PR middle-end/78510 |
| PR middle-end/78517 |
| * match.pd ((cond (cmp (convert1? @1) @3) (convert2? @1) @2)): Use |
| cmp directly, rather than cmp_code. Initialize code to ERROR_MARK |
| and set it to result code if transformation is valid. Use code EQ |
| directly in last simplification case. |
| |
| 2016-11-25 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (fold_stmt_1): Check may_propagate_copy |
| before valueizing return stmts. |
| |
| 2016-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78343 |
| * passes.def: Add CD-DCE pass after loop splitting. |
| * tree-ssa-dce.c (find_obviously_necessary_stmts): Move |
| SCEV init/finalize ... |
| (perform_tree_ssa_dce): ... here. Deal with being |
| executed inside the loop pipeline in aggressive mode. |
| |
| 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * tree-ssa-math-opts.c (struct symbolic_number): Improve comment. |
| |
| 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/77673 |
| * tree-ssa-math-opts.c (struct symbolic_number): Add new src field. |
| (init_symbolic_number): Initialize src field from src parameter. |
| (perform_symbolic_merge): Select most dominated statement as the |
| source statement. Set src field of resulting n structure from the |
| input src with the lowest address. |
| (find_bswap_or_nop): Rename source_stmt into ins_stmt. |
| (bswap_replace): Rename src_stmt into ins_stmt. Initially get source |
| of load from src field rather than insertion statement. Cancel |
| optimization if statement analyzed is not dominated by the insertion |
| statement. |
| (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt. Compute |
| dominance information. |
| |
| 2016-11-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/67205 |
| * config/mips/mips.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. |
| |
| 2016-11-25 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/70965 |
| * passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges. |
| |
| 2016-11-24 James Greenahlgh <james.greenhalgh@arm.com> |
| |
| PR target/78509 |
| * config/i386/i386.c (i386_excess_precision): Do not return |
| FLT_EVAL_METHOD_UNPREDICTABLE when "type" is |
| EXCESS_PRECISION_TYPE_STANDARD. |
| * target.def (excess_precision): Document that targets should |
| not return FLT_EVAL_METHOD_UNPREDICTABLE when "type" is |
| EXCESS_PRECISION_TYPE_STANDARD or EXCESS_PRECISION_TYPE_FAST. |
| Fix typo in first sentence. |
| * doc/tm.texi: Regenerate. |
| |
| 2016-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78396 |
| * tree-vectorizer.c (vectorize_loops): When the if-converted |
| body contains masked loads or stores do not attempt to |
| basic-block-vectorize it. |
| |
| 2016-11-25 Richard Sandiford <richard.sandiford@arm.com> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * function.h (spill_slot_alignment): Declare. |
| * function.c (spill_slot_alignment): New function. |
| * lra-spills.c (slot): Add align and size fields. |
| (assign_mem_slot): Use them in the call to assign_stack_local. |
| (add_pseudo_to_slot): Update the fields. |
| (assign_stack_slot_num_and_sort_pseudos): Initialise the fields. |
| |
| 2016-11-25 Richard Sandiford <richard.sandiford@arm.com> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * stor-layout.c (layout_type): Allow the caller to set the mode of |
| a float type. Only choose one here if the mode is still VOIDmode. |
| * tree.c (build_common_tree_nodes): Set the type mode of decimal |
| floats before calling layout_type. |
| * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise. |
| |
| 2016-11-25 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-tailcall.c (find_tail_calls): Allow calls to reference |
| local variables if all references are known to be direct. |
| |
| 2016-11-25 Jakub Jelinek <jakub@redhat.com> |
| Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR middle-end/78501 |
| * tree-vrp.c (extract_range_basic): Check for ptrdiff_type_node to be |
| non null and it's precision matches precision of lhs's type. |
| |
| 2016-11-24 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78476 |
| * gimple-ssa-sprintf.c (struct pass_sprintf_length::call_info): |
| Add a member. |
| (handle_gimple_call): Adjust signature. |
| (try_substitute_return_value): Remove calls to bounded functions |
| with zero buffer size whose result is known. |
| (pass_sprintf_length::execute): Adjust call to handle_gimple_call. |
| |
| 2016-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * varasm.c (assemble_start_function): Wrap align_log definition in |
| ASM_OUTPUT_MAX_SKIP_ALIGN. |
| |
| 2016-11-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (wide AND insn to QImode splitter): Use |
| explicit mode macros. |
| (wide OR insn to QImode splitter): Ditto. |
| |
| 2016-11-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/77541 |
| * lra-constraints.c (struct input_reload): Add field match_p. |
| (get_reload_reg): Check modes of input reloads to generate unique |
| value reload pseudo. |
| (match_reload): Add input reload pseudo for the current insn. |
| |
| 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Update |
| __FLT_EVAL_METHOD__ and __FLT_EVAL_METHOD_C99__ when we switch |
| architecture levels. |
| * config/aarch64/aarch64.c (aarch64_promoted_type): Only promote |
| the aarch64_fp16_type_node, not all HFmode types. |
| (aarch64_libgcc_floating_mode_supported_p): Support HFmode. |
| (aarch64_scalar_mode_supported_p): Likewise. |
| (aarch64_excess_precision): New. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. |
| (TARGET_SCALAR_MODE_SUPPORTED_P): Likewise. |
| (TARGET_C_EXCESS_PRECISION): Likewise. |
| |
| 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New. |
| (TARGET_SCALAR_MODE_SUPPORTED_P): Define. |
| |
| 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (<optab>sihf2): Convert to expand. |
| (<optab>dihf2): Likewise. |
| (aarch64_fp16_<optab><mode>hf2): New. |
| |
| 2016-11-24 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR target/67822 |
| * config/nvptx/mkoffload.c (main): Allow -fopenmp. |
| |
| 2016-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * common/config/sparc/sparc-common.c (sparc_option_optimization_table): |
| Enable REE at -O2 and higher. |
| * config/sparc/sparc.c (sparc_option_override): Disable it by default |
| in 32-bit mode. |
| |
| 2016-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/48863 |
| PR inline-asm/70184 |
| * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field. |
| (new_temp_expr_table): Initialise reg_vars_cnt. |
| (free_temp_expr_table): Release reg_vars_cnt. |
| (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt |
| field of TAB. |
| (find_replaceable_in_bb): Use the above to record register variable |
| write occurrences and cancel replacement across them. |
| |
| 2016-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/78437 |
| * ree.c (get_uses): New function. |
| (combine_reaching_defs): When a copy is needed, return false if any |
| reaching use of the source register reads it in a mode larger than |
| the mode it is set in and WORD_REGISTER_OPERATIONS is true. |
| |
| 2016-11-24 Martin Liska <mliska@suse.cz> |
| |
| * gimple-pretty-print.c (dump_edge_probability): New function. |
| (dump_gimple_switch): Dump label edge probabilities. |
| (dump_gimple_cond): Likewise. |
| (dump_gimple_label): Dump |
| (dump_gimple_bb_header): Dump basic block frequency. |
| (pp_cfg_jump): Replace e->dest argument with e. |
| (dump_implicit_edges): Likewise. |
| * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): |
| Use gimple_bb (at) instead of at->bb. |
| |
| 2016-11-24 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * common.opt (flimit-function-alignment): New. |
| * doc/invoke.texi (-flimit-function-alignment): Document. |
| * emit-rtl.h (struct rtl_data): Add max_insn_address field. |
| * final.c (shorten_branches): Set it. |
| * varasm.c (assemble_start_function): Limit alignment if |
| requested. |
| |
| 2016-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/71595 |
| * cfgloopmanip.h (remove_path): Add irred_invalidated and |
| loop_closed_ssa_invalidated parameters, defaulted to NULL. |
| * cfgloopmanip.c (remove_path): Likewise, pass them along to |
| called functions. Only fix irred flags if the caller didn't |
| request state. |
| * tree-ssa-loop-ivcanon.c (unloop_loops): Use add_bb_to_loop. |
| (unloop_loops): Pass irred_invalidated and loop_closed_ssa_invalidated |
| to remove_path. |
| |
| 2016-11-24 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/78120 |
| * ifcvt.c (noce_conversion_profitable_p): Check original cost in all |
| cases, and additionally test against max_seq_cost for speed |
| optimization. |
| (noce_process_if_block): Compute an estimate for the original cost when |
| optimizing for speed, using the minimum of then and else block costs. |
| |
| PR rtl-optimization/78120 |
| * rtlanal.c (insn_rtx_cost): Use set_rtx_cost. |
| |
| PR rtl-optimization/78120 |
| * config/i386/i386.c (ix86_rtx_costs): Fully handle SETs. |
| |
| 2016-11-24 Bin Cheng <bin.cheng@arm.com> |
| |
| * match.pd: Refine type conversion in result expr for below pattern: |
| (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)). |
| |
| 2016-11-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/78429 |
| * tree.h (wi::fits_to_boolean_p): New predicate. |
| (wi::fits_to_tree_p): Use it for boolean types. |
| * tree.c (int_fits_type_p): Likewise. |
| |
| 2016-11-24 Martin Liska <mliska@suse.cz> |
| |
| * print-tree.c (struct bucket): Remove. |
| (print_node): Add new argument which drives whether a tree node |
| is printed briefly or not. |
| (debug_tree): Replace a custom hash table with hash_set<T>. |
| * print-tree.h (print_node): Add the argument. |
| |
| 2016-11-24 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_init_libfuncs): Add ATTRIBUTE_UNUSED. |
| |
| 2016-11-23 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/78458 |
| * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE |
| if it is at least NREGS wide. |
| |
| 2016-11-23 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): For |
| TARGET_E500_DOUBLE. handle TDmode, TImode and PTImode the same as |
| TFmode, IFmode and KFmode. |
| |
| 2016-11-23 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/spe.md (*frob_<SPE64:mode>_ti_8): New insn |
| pattern. |
| |
| 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (change_zero_ext): Only change the mode of a hard register |
| destination if can_change_dest_mode holds for that. |
| |
| 2016-11-23 Jeff Law <law@redhat.com> |
| |
| * varasm.c (assemble_name): Increase buffer size for name. |
| |
| * config/spu/spu.md (floatunsdidf2): Remove unused local variable. |
| |
| 2016-11-23 Jakub Kicinski <jakub.kicinski@netronome.com> |
| |
| * doc/extend.texi: Constify first argument to __builtin_object_size. |
| |
| 2016-11-23 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits |
| to be used. Add brackets around macro argument. |
| |
| 2016-11-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints. |
| |
| 2016-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/69278 |
| * opts.c (parse_sanitizer_options): For -fsanitize=undefined, |
| restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN. |
| |
| 2016-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/69183 |
| * omp-low.c (build_outer_var_ref): Change lastprivate argument |
| to code, pass it recursively, adjust uses. For OMP_CLAUSE_PRIVATE |
| on worksharing constructs, treat it like clauses on simd construct. |
| Formatting fix. |
| (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass |
| OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref. |
| (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead |
| of true as last argument to build_outer_var_ref. |
| |
| 2016-11-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movqi_internal): Calculate mode |
| attribute of alternatives 7,8,9 depending on TARGET_AVX512DQ. |
| <TYPE_MSKMOV>: Emit kmovw for MODE_HI insn mode attribute. |
| (*k<logic><mode>): Calculate mode attribute depending on |
| TARGET_AVX512DQ. Emit k<logic>w for MODE_HI insn mode attribute. |
| (*andqi_1): Calculate mode attribute of alternative 3 depending |
| on TARGET_AVX512DQ. Emit kandw for MODE_HI insn mode attribute. |
| (kandn<mode>): Calculate mode attribute of alternative 2 depending |
| on TARGET_AVX512DQ. Emit kandnw for MODE_HI insn mode attribute. |
| (kxnor<mode>): Merge insn patterns using SWI1248_AVX512BW mode |
| iterator. Calculate mode attribute of alternative 1 depending |
| on TARGET_AVX512DQ. Emit kxnorw for MODE_HI insn mode attribute. |
| (*one_cmplqi2_1): Calculate mode attribute of alternative 2 depending |
| on TARGET_AVX512DQ. Emit knotw for MODE_HI insn mode attribute. |
| |
| 2016-11-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR middle-end/78153 |
| * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN. |
| * tree-vrp.c (extract_range_basic): Handle case for |
| CFN_BUILT_IN_STRLEN. |
| |
| 2016-11-23 Jeff Law <law@redhat.com> |
| |
| * config/mcore/mcore.c (emit_new_cond_insn): Fix prototype. |
| |
| * config/iq2000/iq2000.c (iq2000_rtx_costs): Avoid multiplication |
| in boolean context warning. |
| |
| * config/ia64/ia64.c (ia64_emit_insn_before): Fix prototype. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| PR target/63250 |
| * config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to... |
| (arm_fp16_type_node): ...This, make visibile. |
| (arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to |
| arm_fp16_type_node. |
| (arm_init_simd_builtin_types): Likewise. |
| (arm_init_fp16_builtins): Likewise. |
| * config/arm/arm.c (arm_excess_precision): New. |
| (arm_floatn_mode): Likewise. |
| (TARGET_C_EXCESS_PRECISION): Likewise. |
| (TARGET_FLOATN_MODE): Likewise. |
| (arm_promoted_type): Only promote arm_fp16_type_node. |
| * config/arm/arm.h (arm_fp16_type_node): Declare. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm.c (arm_convert_to_type): Delete. |
| (TARGET_CONVERT_TO_TYPE): Delete. |
| (arm_init_libfuncs): Enable trunc_optab from DFmode to HFmode. |
| (arm_libcall_uses_aapcs_base): Add trunc_optab from DF- to HFmode. |
| * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): New. |
| * config/arm/arm.md (truncdfhf2): Only convert through SFmode if we |
| are in fast math mode, and have no single step hardware instruction. |
| (extendhfdf2): Only expand through SFmode if we don't have a |
| single-step hardware instruction. |
| * config/arm/vfp.md (*truncdfhf2): New. |
| (extendhfdf2): Likewise. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * targhooks.c (default_floatn_mode): Enable _Float16 if a target |
| provides HFmode. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Delete. |
| * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): Delete. |
| * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Delete. |
| * defaults.h (TARGET_FLT_EVAL_METHOD): Delete. |
| * doc/tm.texi.in (TARGET_FLT_EVAL_METHOD): Delete. |
| * doc/tm.texi: Regenerate. |
| * system.h (TARGET_FLT_EVAL_METHOD): Poison. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * toplev.c (init_excess_precision): Delete most logic. |
| * tree.c (excess_precision_type): Rewrite to use |
| TARGET_EXCESS_PRECISION. |
| * doc/invoke.texi (-fexcess-precision): Document behaviour in a |
| more generic fashion. |
| * ginclude/float.h: Wrap definition of FLT_EVAL_METHOD in |
| __STDC_WANT_IEC_60559_TYPES_EXT__. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * common.opt (fpermitted-flt-eval-methods): New. |
| * doc/invoke.texi (-fpermitted-flt-eval-methods): Document it. |
| * flag_types.h (permitted_flt_eval_methods): New. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/m68k/m68k.c (m68k_excess_precision): New. |
| (TARGET_C_EXCESS_PRECISION): Define. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/s390/s390.c (s390_excess_precision): New. |
| (TARGET_C_EXCESS_PRECISION): Define. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/i386/i386.c (ix86_excess_precision): New. |
| (TARGET_C_EXCESS_PRECISION): Define. |
| |
| 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * target.def (excess_precision): New hook. |
| * target.h (flt_eval_method): New. |
| (excess_precision_type): Likewise. |
| * targhooks.c (default_excess_precision): New. |
| * targhooks.h (default_excess_precision): New. |
| * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New. |
| * doc/tm.texi: Regenerate. |
| |
| 2016-11-23 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78461 |
| * gimple-ssa-sprintf.c (format_string): Correct the maxima and |
| set the minimum number of bytes for an unknown string to zero. |
| |
| 2016-11-23 Martin Jambor <mjambor@suse.cz> |
| Martin Liska <mliska@suse.cz> |
| |
| * hsa-builtins.def: New file. |
| * Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency. |
| * builtins.def: Include hsa-builtins.def. |
| (DEF_HSA_BUILTIN): New macro. |
| * dumpfile.h (OPTGROUP_OPENMP): Define. |
| * dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP. |
| * gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and |
| GF_OMP_FOR_GRID_GROUP_ITER. |
| (gimple_omp_for_grid_phony): Added checking assert. |
| (gimple_omp_for_set_grid_phony): Likewise. |
| (gimple_omp_for_grid_intra_group): New function. |
| (gimple_omp_for_set_grid_intra_group): Likewise. |
| (gimple_omp_for_grid_group_iter): Likewise. |
| (gimple_omp_for_set_grid_group_iter): Likewise. |
| * omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where |
| previosuly only distribute loop was permitted. |
| (lower_lastprivate_clauses): Allow non tcc_comparison predicates. |
| (grid_get_kernel_launch_attributes): Support multiple HSA grid |
| dimensions. |
| (grid_expand_omp_for_loop): Likewise and also support standalone |
| distribute constructs. New parameter INTRA_GROUP, updated both users. |
| (grid_expand_target_grid_body): Support standalone distribute |
| constructs. |
| (pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP. |
| (pass_data_expand_omp_ssa): Likewise. |
| (pass_data_omp_device_lower): Likewsie. |
| (pass_data_lower_omp): Likewise. |
| (pass_data_diagnose_omp_blocks): Likewise. |
| (pass_data_oacc_device_lower): Likewise. |
| (pass_data_omp_target_link): Likewise. |
| (grid_lastprivate_predicate): New function. |
| (lower_omp_for_lastprivate): Call grid_lastprivate_predicate for |
| gridified loops. |
| (lower_omp_for): Support standalone distribute constructs. |
| (grid_prop): New type. |
| (grid_safe_assignment_p): Check for assignments to group_sizes, new |
| parameter GRID. |
| (grid_seq_only_contains_local_assignments): New parameter GRID, pass |
| it to callee. |
| (grid_find_single_omp_among_assignments_1): Likewise, improve missed |
| optimization info messages. |
| (grid_find_single_omp_among_assignments): Likewise. |
| (grid_find_ungridifiable_statement): Do not bail out for SIMDs. |
| (grid_parallel_clauses_gridifiable): New function. |
| (grid_inner_loop_gridifiable_p): Likewise. |
| (grid_dist_follows_simple_pattern): Likewise. |
| (grid_gfor_follows_tiling_pattern): Likewise. |
| (grid_call_permissible_in_distribute_p): Likewise. |
| (grid_handle_call_in_distribute): Likewise. |
| (grid_dist_follows_tiling_pattern): Likewise. |
| (grid_target_follows_gridifiable_pattern): Support standalone |
| distribute constructs. |
| (grid_var_segment): New enum. |
| (grid_mark_variable_segment): New function. |
| (grid_copy_leading_local_assignments): Call grid_mark_variable_segment |
| if a new argument says so. |
| (grid_process_grid_body): New function. |
| (grid_eliminate_combined_simd_part): Likewise. |
| (grid_mark_tiling_loops): Likewise. |
| (grid_mark_tiling_parallels_and_loops): Likewise. |
| (grid_process_kernel_body_copy): Support standalone distribute |
| constructs. |
| (grid_attempt_target_gridification): New grid variable holding overall |
| gridification state. Support standalone distribute constructs and |
| collapse clauses. |
| * doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP. |
| * hsa.h (hsa_bb): Add method method append_phi. |
| (hsa_insn_br): Renamed to hsa_insn_cbr, renamed all |
| occurences in all files too. |
| (hsa_insn_br): New class, now the ancestor of hsa_incn_cbr. |
| (is_a_helper <hsa_insn_br *>::test): New function. |
| (is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional |
| branch instructions. |
| (hsa_insn_signal): Make a direct descendant of |
| hsa_insn_basic. Add memorder constructor parameter and |
| m_memory_order and m_signalop member variables. |
| (hsa_insn_queue): Changed constructor parameters to common form. |
| Added m_segment and m_memory_order member variables. |
| (hsa_summary_t): Add private member function |
| process_gpu_implementation_attributes. |
| (hsa_function_summary): Rename m_binded_function to |
| m_bound_function. |
| (hsa_insn_basic_p): Remove typedef. |
| (hsa_op_with_type): Change hsa_insn_basic_p into plain pointers. |
| (hsa_op_reg_p): Remove typedef. |
| (hsa_function_representation): Change hsa_op_reg_p into plain |
| pointers. |
| (hsa_insn_phi): Removed new and delete operators. |
| (hsa_insn_br): Likewise. |
| (hsa_insn_cbr): Likewise. |
| (hsa_insn_sbr): Likewise. |
| (hsa_insn_cmp): Likewise. |
| (hsa_insn_mem): Likewise. |
| (hsa_insn_atomic): Likewise. |
| (hsa_insn_signal): Likewise. |
| (hsa_insn_seg): Likewise. |
| (hsa_insn_call): Likewise. |
| (hsa_insn_arg_block): Likewise. |
| (hsa_insn_comment): Likewise. |
| (hsa_insn_srctype): Likewise. |
| (hsa_insn_packed): Likewise. |
| (hsa_insn_cvt): Likewise. |
| (hsa_insn_alloca): Likewise. |
| * hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br. |
| (process_gpu_implementation_attributes): New function. |
| (link_functions): Move some functionality into it. Adjust after |
| renaming m_binded_functions to m_bound_functions. |
| (hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP |
| to the list of instructions with no output registers. |
| (get_in_type): Return this if it is a register of |
| matching size. |
| (hsa_get_declaration_name): Moved to... |
| * hsa-gen.c (hsa_get_declaration_name): ...here. Allocate |
| temporary string on an obstack instead from ggc. |
| (query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut |
| down to two overloads. |
| (hsa_allocp_operand_address): Removed. |
| (hsa_allocp_operand_immed): Likewise. |
| (hsa_allocp_operand_reg): Likewise. |
| (hsa_allocp_operand_code_list): Likewise. |
| (hsa_allocp_operand_operand_list): Likewise. |
| (hsa_allocp_inst_basic): Likewise. |
| (hsa_allocp_inst_phi): Likewise. |
| (hsa_allocp_inst_mem): Likewise. |
| (hsa_allocp_inst_atomic): Likewise. |
| (hsa_allocp_inst_signal): Likewise. |
| (hsa_allocp_inst_seg): Likewise. |
| (hsa_allocp_inst_cmp): Likewise. |
| (hsa_allocp_inst_br): Likewise. |
| (hsa_allocp_inst_sbr): Likewise. |
| (hsa_allocp_inst_call): Likewise. |
| (hsa_allocp_inst_arg_block): Likewise. |
| (hsa_allocp_inst_comment): Likewise. |
| (hsa_allocp_inst_queue): Likewise. |
| (hsa_allocp_inst_srctype): Likewise. |
| (hsa_allocp_inst_packed): Likewise. |
| (hsa_allocp_inst_cvt): Likewise. |
| (hsa_allocp_inst_alloca): Likewise. |
| (hsa_allocp_bb): Likewise. |
| (hsa_obstack): New. |
| (hsa_init_data_for_cfun): Initialize obstack. |
| (hsa_deinit_data_for_cfun): Release memory of the obstack. |
| (hsa_op_immed::operator new): Use obstack instead of object_allocator. |
| (hsa_op_reg::operator new): Likewise. |
| (hsa_op_address::operator new): Likewise. |
| (hsa_op_code_list::operator new): Likewise. |
| (hsa_op_operand_list::operator new): Likewise. |
| (hsa_insn_basic::operator new): Likewise. |
| (hsa_insn_phi::operator new): Likewise. |
| (hsa_insn_br::operator new): Likewise. |
| (hsa_insn_sbr::operator new): Likewise. |
| (hsa_insn_cmp::operator new): Likewise. |
| (hsa_insn_mem::operator new): Likewise. |
| (hsa_insn_atomic::operator new): Likewise. |
| (hsa_insn_signal::operator new): Likewise. |
| (hsa_insn_seg::operator new): Likewise. |
| (hsa_insn_call::operator new): Likewise. |
| (hsa_insn_arg_block::operator new): Likewise. |
| (hsa_insn_comment::operator new): Likewise. |
| (hsa_insn_srctype::operator new): Likewise. |
| (hsa_insn_packed::operator new): Likewise. |
| (hsa_insn_cvt::operator new): Likewise. |
| (hsa_insn_alloca::operator new): Likewise. |
| (hsa_init_new_bb): Likewise. |
| (hsa_bb::append_phi): New function. |
| (gen_hsa_phi_from_gimple_phi): Use it. |
| (get_symbol_for_decl): Fix dinstinguishing between |
| global and local functions. Put local variables into a segment |
| according to their attribute or static flag, if there is one. |
| (hsa_insn_br::hsa_insn_br): New. |
| (hsa_insn_br::operator new): Likewise. |
| (hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor. |
| (query_hsa_grid_nodim): New function. |
| (multiply_grid_dim_characteristics): Likewise. |
| (gen_get_num_threads): Likewise. |
| (gen_get_num_teams): Reimplemented. |
| (gen_get_team_num): Likewise. |
| (gen_hsa_insns_for_known_library_call): Updated calls to the above |
| helper functions. |
| (get_memory_order_name): Removed. |
| (get_memory_order): Likewise. |
| (hsa_memorder_from_tree): New function. |
| (gen_hsa_ternary_atomic_for_builtin): Renamed to |
| gen_hsa_atomic_for_builtin, can also create signals. |
| (gen_hsa_insns_for_call): Handle many new builtins. Adjust to use |
| hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin. |
| (hsa_insn_atomic): Fix function comment. |
| (hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to |
| ancestor constructor and initialization of new member variables. |
| (hsa_insn_queue::hsa_insn_queue): Added initialization of new |
| member variables. |
| (hsa_get_host_function): Handle functions with no bound CPU |
| implementation. Fix binded to bound. |
| (get_brig_function_name): Likewise. |
| (HSA_SORRY_ATV): Remove semicolon after macro. |
| (HSA_SORRY_AT): Likewise. |
| (omp_simple_builtin::generate): Add missing semicolons. |
| (hsa_insn_phi::operator new): Removed. |
| (hsa_insn_br::operator new): Likewise. |
| (hsa_insn_cbr::operator new): Likewise. |
| (hsa_insn_sbr::operator new): Likewise. |
| (hsa_insn_cmp::operator new): Likewise. |
| (hsa_insn_mem::operator new): Likewise. |
| (hsa_insn_atomic::operator new): Likewise. |
| (hsa_insn_signal::operator new): Likewise. |
| (hsa_insn_seg::operator new): Likewise. |
| (hsa_insn_call::operator new): Likewise. |
| (hsa_insn_arg_block::operator new): Likewise. |
| (hsa_insn_comment::operator new): Likewise. |
| (hsa_insn_srctype::operator new): Likewise. |
| (hsa_insn_packed::operator new): Likewise. |
| (hsa_insn_cvt::operator new): Likewise. |
| (hsa_insn_alloca::operator new): Likewise. |
| (get_symbol_for_decl): Accept CONST_DECLs, put them to |
| readonly segment. |
| (gen_hsa_addr): Also process CONST_DECLs. |
| (gen_hsa_addr_insns): Process CONST_DECLs by creating private |
| |