| 2015-12-30 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Check |
| it's not a constant pool object. |
| |
| 2015-12-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (init_float128_ieee): Remove IEEE 128-bit |
| comparison functions in cmp_optab and ucmp_optab. |
| (rs6000_generate_compare): Rewrite IEEE 128-bit floating point |
| software emulation comparisons to only use __eqkf2, __gekf2, |
| __lekf2, and __unordkf2 functions. |
| (rs6000_invalid_binary_op): Add support for -mfloat128-convert. |
| |
| * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define |
| __FLOAT128_HARDWARE__ if hardware IEEE 128-bit support is |
| available. |
| |
| * config/rs6000/rs6000.opt (-mfloat128-convert): Add debug switch |
| to allow IBM extended double and IEEE 128-bit floating point to be |
| converted with default conversions. |
| |
| * config/rs6000/rs6000.md (extendkftf2): Add converters between |
| KFmode and TFmode if -mabi=ieeelongdouble. |
| (trunctfkf2): Likewise. |
| (ieee128_mfvsrd): Split 64-bit integer conversions into 32-bit and |
| 64-bit insns. |
| (ieee128_mfvsrd_64bit): Likewise. |
| (ieee128_mfvsrd_32bit): Likewise. |
| (ieee128_mtvsrd): Likewise. |
| (ieee128_mtvsrd_64bit): Likewise. |
| (ieee128_mtvsrd_32bit): Likewise. |
| |
| * doc/extend.texi (Floating Types): Document that complex |
| __float128 does not work currently. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document that |
| -mfloat128 is only supported on PowerPC 64-bit Linux systems. |
| |
| 2015-12-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Verify that |
| this is never called when lxvx/stxvx are available. |
| (pass_analyze_swaps::gate): Don't perform swap optimization when |
| lxvx/stxvx are available. |
| * config/rs6000/vector.md (mov<mode>): Don't call |
| rs6000_emit_le_vsx_move when lxvx/stxvx are available. |
| * config/rs6000/vsx.md (*p9_vecload_<mode>): New define_insn. |
| (*p9_vecstore_<mode>): Likewise. |
| (*vsx_le_perm_load_<mode>:VSX_LE): Disable when lxvx/stxvx are |
| available. |
| (*vsx_le_perm_load_<mode>:VSX_W): Likewise. |
| (*vsx_le_perm_load_v8hi): Likewise. |
| (*vsx_le_perm_load_v16qi): Likewise. |
| (*vsx_le_perm_store_<mode>:VSX_LE): Likewise. |
| ([related define_splits]): Likewise. |
| (*vsx_le_perm_store_<mode>:VSX_W): Likewise. |
| ([related define_splits]): Likewise. |
| (*vsx_le_perm_store_v8hi): Likewise. |
| ([related define_splits]): Likewise. |
| (*vsx_le_perm_store_v16qi): Likewise. |
| ([related define_splits]): Likewise. |
| (*vsx_lxvd2x2_le_<mode>): Likewise. |
| (*vsx_lxvd2x4_le_<mode>): Likewise. |
| (*vsx_lxvd2x8_le_V8HI): Likewise. |
| (*vsx_lvxd2x16_le_V16QI): Likewise. |
| (*vsx_stxvd2x2_le_<mode>): Likewise. |
| (*vsx_stxvd2x4_le_<mode>): Likewise. |
| (*vsx_stxvd2x8_le_V8HI): Likewise. |
| (*vsx_stxvdx16_le_V16QI): Likewise. |
| ([define_peepholes for vector load fusion]): Likewise. |
| |
| 2015-12-28 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_output_call_insn): Expect hard regs. |
| * config/nvptx/nvptx.md (nvptx_reg_or_mem_operand): Rename to ... |
| (nvptx_nonimmediate_operand): ... here. Update all uses. |
| (call_insn_operand): Use REG_P. |
| (call_operation): Allow hard regs. |
| |
| 2015-12-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-visibility.c (function_and_variable_visibility): Do not |
| dissolve comdat groups when in LTO mode. |
| |
| 2015-12-25 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/rs6000/freebsd64.h: Delete FREEBSD_DYNAMIC_LINKER32/64 |
| defines. Use FBSD_DYNAMIC_LINKER instead. |
| Rename and simplify LINK_OS_FREEBSD_SPEC_DEF32/64 to |
| LINK_OS_FREEBSD_SPEC_DEF. |
| |
| 2015-12-24 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-sese-to-poly.c (build_loop_iteration_domains): Use ref instead of value. |
| * sese.c (invariant_in_sese_p_rec): Use const ref instead of value. |
| (scalar_evolution_in_region): Same |
| * sese.h (bb_in_region): Same |
| (bb_in_sese_p): Same. |
| (stmt_in_sese_p): Same. |
| (defined_in_sese_p): Same. |
| (loop_in_sese_p): Same. |
| |
| 2015-12-24 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-scop-detection.c |
| (scop_detection::get_nearest_dom_with_single_entry): Check l == l2. |
| (scop_detection::get_nearest_pdom_with_single_exit): Same. |
| (scop_detection::merge_sese): Whitespace. |
| (scop_detection::add_scop): Comment. |
| (build_scops): Whitespace. |
| |
| 2015-12-24 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_PKU_SET): New. |
| (OPTION_MASK_ISA_PKU_UNSET): Ditto. |
| (ix86_handle_option): Handle OPT_mpku. |
| * config.gcc: Add pkuintrin.h to i[34567]86-*-* and x86_64-*-* |
| targets. |
| * config/i386/cpuid.h (host_detect_local_cpu): Detect PKU feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Handle PKU ISA |
| flag. |
| * config/i386/i386.c (ix86_target_string): Add "-mpku" to |
| ix86_target_opts. |
| (ix86_option_override_internal): Define PTA_PKU, mention new key |
| in skylake-avx512. Handle new ISA bits. |
| (ix86_valid_target_attribute_inner_p): Add "pku". |
| (enum ix86_builtins): Add IX86_BUILTIN_RDPKRU and IX86_BUILTIN_WRPKRU. |
| (builtin_description bdesc_special_args[]): Add new built-ins. |
| * config/i386/i386.h (define TARGET_PKU): New. |
| (define TARGET_PKU_P): Ditto. |
| * config/i386/i386.md (define_c_enum "unspecv"): Add UNSPEC_PKU. |
| (define_expand "rdpkru"): New. |
| (define_insn "*rdpkru"): Ditto. |
| (define_expand "wrpkru"): Ditto. |
| (define_insn "*wrpkru"): Ditto. |
| * config/i386/i386.opt (mpku): Ditto. |
| * config/i386/pkuintrin.h: New file. |
| * config/i386/x86intrin.h: Include pkuintrin.h |
| * doc/extend.texi: Describe new built-ins. |
| * doc/invoke.texi: Describe new switches. |
| |
| 2015-12-23 Richard Henderson <rth@redhat.com> |
| |
| PR ipa/67811 |
| * tree-cfg.c (make_edges_bb): Add abort edge for outer transactions. |
| |
| 2015-12-23 Nathan Sidwell <nathan@acm.org> |
| |
| * cgraph.h (decl_in_symtab_p): Revert check DECL_IN_CONSTANT_POOL. |
| |
| 2015-12-23 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h |
| (nvptx_maybe_convert_symbolic_operand): Delete prototype. |
| * config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand): Delete. |
| (nvptx_output_mov_insn): Record fnsym here. |
| (nvptx_wpropagate): Don't create UNSPEC_TO_GENERIC unspec. |
| * config/nvptx/nvptx.md (UNSPEC_TO_GENERIC): Delete. |
| (symbolic_operand): Delete predicate. |
| (nvptx_nonimmediate_operand): Delete predicate. |
| (mov<mode>): Hard regs are perfectly ok here. |
| (convaddr_<mode>): Delete. |
| |
| 2015-12-23 Nathan Sidwell <nathan@acm.org> |
| |
| * alias.c (compare_base_decls): Simplify in-symtab check. |
| * cgraph.h (decl_in_symtab_p): Check DECL_IN_CONSTANT_POOL. |
| |
| 2015-12-23 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md ("larl_operand"): Remove now superfluous |
| const_int and const_double. |
| * genrecog.c (safe_predicate_mode): Return false for VOIDmode |
| LABEL_REFs even if the predicate does not handle const_int, |
| const_double or const_wide_int. |
| * genpreds.c (add_mode_tests): Treat LABEL_REF like CONST_INT. |
| |
| 2015-12-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree-core.h (enum omp_clause_code): Merge OMP_CLAUSE_USE_DEVICE |
| into OMP_CLAUSE_USE_DEVICE_PTR. Adjust all users. |
| |
| 2015-12-23 David Sherwood <david.sherwood@arm.com> |
| |
| * config/arm/iterators.md (VMAXMINFNM): New int iterator. |
| (fmaxmin): New int attribute. |
| (fmaxmin_op): Likewise. |
| * config/arm/unspecs.md (UNSPEC_VMAXNM): New unspec. |
| (UNSPEC_VMINNM): Likewise. |
| * config/arm/neon.md (fmaxmin): New pattern. |
| * config/arm/vfp.md (fmaxmin): Likewise. |
| |
| 2015-12-23 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/66232 |
| * config/i386/constraints.md (Bs): Allow GOT slot for x32 with |
| 64-bit Pmode. |
| (Bw): Likewise. |
| (Bz): Likewise. |
| * config/i386/predicates.md (call_insn_operand): Likewise. |
| (sibcall_insn_operand): Likewise. |
| |
| 2015-12-22 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/68473 |
| * diagnostic-show-locus.c (layout::layout): Make loc_range const. |
| Sanitize the layout_range against ranges that finish before they |
| start. |
| |
| 2015-12-22 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block |
| copying. |
| |
| 2015-12-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/67376 |
| * fold-const.c (size_low_cst): Removed. |
| (fold_comparison): For POINTER_PLUS_EXPR where base is ADDR_EXPR |
| call get_inner_reference and handle INDIRECT_REF base of it. Use |
| offset_int for computation of the bitpos. |
| (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Formatting |
| fixes for X +- Y CMP X and C - X CMP X folding. Add X CMP X +- Y |
| and X CMP C - X folding. |
| |
| 2015-12-22 Richard Henderson <rth@redhat.com> |
| |
| PR ipa/67811 |
| * gimple.h (struct gtransaction): Add label_norm, label_uninst; |
| replace label with label_over. |
| (gimple_build_transaction): Remove label parameter. |
| (gimple_transaction_label_norm): New. |
| (gimple_transaction_label_uninst): New. |
| (gimple_transaction_label_over): Rename from gimple_transaction_label. |
| (gimple_transaction_label_norm_ptr): New. |
| (gimple_transaction_label_uninst_ptr): New. |
| (gimple_transaction_label_over_ptr): Rename from |
| gimple_transaction_label_ptr. |
| (gimple_transaction_set_label_norm): New. |
| (gimple_transaction_set_label_uninst): New. |
| (gimple_transaction_set_label_over): Rename from |
| gimple_transaction_set_label. |
| * gimple-pretty-print.c (dump_gimple_transaction): Update. |
| * gimple-streamer-in.c (input_gimple_stmt) [GIMPLE_TRANSACTION]: Same. |
| * gimple-streamer-out.c (output_gimple_stmt) [GIMPLE_TRANSACTION]: Same. |
| * gimple-walk.c (walk_gimple_op) [GIMPLE_TRANSACTION]: Same. |
| * tree-cfg.c (make_edges_bb) [GIMPLE_TRANSACTION]: Same. |
| (cleanup_dead_labels) [GIMPLE_TRANSACTION]: Same. |
| (verify_gimple_transaction): Same. |
| (gimple_redirect_edge_and_branch) [GIMPLE_TRANSACTION]: Same. |
| * tree-inline.c (remap_gimple_stmt) [GIMPLE_TRANSACTION]: Same. |
| * gimple.c (gimple_build_transaction): Remove label parameter; |
| initialize all three label memebers. |
| * gimplify.c (gimplify_transaction): Update call |
| to gimple_build_transaction. |
| * trans-mem.c (make_tm_uninst): New. |
| (lower_transaction): Create uninstrumented code path here... |
| (ipa_tm_scan_calls_transaction): ... not here. |
| (ipa_uninstrument_transaction): Remove. |
| |
| * tree-eh.c (honor_protect_cleanup_actions): Do not wrap eh_else |
| in a must-not-throw; set ehp_region for it too. |
| |
| 2015-12-22 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/68872 |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): For -mcpu=powerpc64le, |
| pass %(asm_cpu_power8). |
| |
| 2015-12-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/68937 |
| * config/i386/i386.c (ix86_function_ok_for_sibcall): Count |
| call to global function via GOT slot as indirect call. |
| * config/i386/i386.md (*sibcall_GOT_32): New pattern. |
| (*sibcall_value_GOT_32): Likewise. |
| * config/i386/predicates.md (sibcall_memory_operand): Rewrite. |
| Allow 32-bit GOT slot only with pseudo register as GOT base. |
| (GOT32_symbol_operand): New predicate. |
| |
| 2015-12-22 Sujoy Saraswati <sujoy.saraswati@hpe.com> |
| |
| * fold-const.c (const_binop): Convert sNaN to qNaN when |
| flag_signaling_nans is off. |
| (const_unop): Avoid the operation, other than NEGATE and |
| ABS, if flag_signaling_nans is on and the operand is an sNaN. |
| (fold_convert_const_real_from_real): Avoid the operation if |
| flag_signaling_nans is on and the operand is an sNaN. |
| (integer_valued_real_unary_p): Update comment stating it |
| returns false for sNaN values. |
| (integer_valued_real_binary_p, integer_valued_real_call_p): Same. |
| (integer_valued_real_single_p): Same. |
| (integer_valued_real_invalid_p, integer_valued_real_p): Same. |
| * fold-const-call.c (fold_const_pow): Avoid the operation |
| if flag_signaling_nans is on and the operand is an sNaN. |
| (fold_const_builtin_load_exponent) Same. |
| (fold_const_call_sss): Same for CASE_CFN_POWI. |
| * gimple-fold.c (gimple_assign_integer_valued_real_p): Same. |
| (gimple_call_integer_valued_real_p): Same. |
| (gimple_phi_integer_valued_real_p): Same. |
| (gimple_stmt_integer_valued_real_p): Same. |
| * simplify-rtx.c (simplify_const_unary_operation): Avoid the |
| operation if flag_signaling_nans is on and the operand is an sNaN. |
| (simplify_const_binary_operation): Same. |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Avoid the |
| operation if flag_signaling_nans is on and the operand is an sNaN. |
| |
| 2015-12-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * combine.c (simplify_comparison): Convert preprocessor check of |
| WORD_REGISTER_OPERATIONS into runtime check. |
| |
| 2015-12-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/60756 |
| * var-tracking.c (tracked_record_parameter_p): New predicate. |
| (track_expr_p): Invoke it. |
| (add_stores): Likewise. |
| |
| 2015-12-21 Jeff Law <law@redhat.com> |
| |
| * dbgcnt.def (dom_unreachable_edges): New debug counter. |
| * tree-ssa-dom.c: Include dbgcnt.h |
| (dom_opt_dom_walker::before_dom_children): Handle the new counter. |
| |
| 2015-12-21 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (LSE): Change |
| FEAT_STRING to "atomics". |
| |
| 2015-12-21 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (add_data_member_location_attribute): Do not |
| disable dynamic data member offsets descriptions for TREE_BINFO |
| members. |
| |
| 2015-12-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/65337 |
| * tree-ssa-pre.c (eliminate): Also clean up abnormal edges if need be. |
| |
| 2015-12-21 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_emit_prologue): Fix base reg condition. |
| |
| 2015-12-21 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/builtins.def: New file. |
| * config/arc/arc.c (arc_init_simd_builtins): Remove. |
| (arc_builtins): Likewise. |
| (TARGET_BUILTIN_DECL): Define. |
| (arc_builtin_id): New enum. |
| (arc_builtin_description): New structure. |
| (arc_bdesc): New variable. |
| (arc_tolower): New function. |
| (def_mbuiltin): Remove. |
| (arc_builtin_decl): New function. |
| (arc_expand_builtin_aligned ): Likewise. |
| (apply_GEN_FCN): Likewise. |
| (arc_init_builtins): Refurbish. |
| (arc_expand_builtin): Likewise. |
| (simd_insn_args_type): Remove. |
| (builtin_description): Likewise |
| (arc_simd_builtin_desc_list): Likewise. |
| (arc_expand_simd_builtin): Likewise. |
| (arc_process_double_reg_moves): Use the new builtin name format. |
| * config/arc/arc.md (unspec): New builtin function UNSPEC codes. |
| (vunspec): New builtin function VUNSPEC codes. |
| (UNSPEC_SWAP, UNSPEC_MUL64, UNSPEC_MULU64, UNSPEC_DIVAW) |
| (UNSPEC_DIRECT, UNSPEC_LP, UNSPEC_CASESI, VUNSPEC_RTIE) |
| (VUNSPEC_SYNC, VUNSPEC_BRK, VUNSPEC_FLAG, VUNSPEC_SLEEP) |
| (VUNSPEC_SWI, VUNSPEC_CORE_READ, VUNSPEC_CORE_WRITE, VUNSPEC_LR) |
| (VUNSPEC_SR, VUNSPEC_TRAP_S, VUNSPEC_UNIMP_S, VUNSPEC_NOP) |
| (UNSPEC_ARC_MEMBAR,VUNSPEC_ARC_CAS, VUNSPEC_ARC_LL) |
| (VUNSPEC_ARC_SC, VUNSPEC_ARC_EX, VUNSPEC_DEXCL) |
| (VUNSPEC_DEXCL_NORES, VUNSPEC_LR_HIGH): Remove. |
| (mul64, mulu64): Remove patterns. |
| (store_direct, *movdf_insn_nolrsr, casesi, casesi_load) |
| (casesi_compact_jump, nopv, swap, divaw, flag, brk, rtie, sync) |
| (swi, sleep, core_read, core_write, lr, sr, trap_s, unimp_s) |
| (doloop_begin_i): Use new builtin function code naming. |
| (kflag, clri, ffs, ffs_f, ffssi2, fls, seti): New patterns. |
| * config/arc/builtins.def: New file. |
| * config/arc/fpx.md: Use new builtin function code naming. |
| * config/arc/simdext.md: New SIMD builtin function UNSPEC |
| codes. Use them in the SIMD patterns. |
| |
| 2015-12-21 Sujoy Saraswati <sujoy.saraswati@hpe.com> |
| |
| PR tree-optimization/61441 |
| * real.c (do_add): Make resulting NaN value to be qNaN. |
| (do_multiply, do_divide, do_fix_trunc): Same. |
| (real_arithmetic, real_ldexp, real_convert): Same. |
| (real_isinteger): Updated comment stating it returns false for sNaN. |
| |
| 2015-12-20 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/64910 |
| * config/i386/i386.md (testqi_ext_3): Allow HImode. |
| |
| 2015-12-20 Andrew Pinsi <apinski@cavium.com> |
| |
| * config/aarch64/atomics.md |
| (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): Add early clobber |
| to the scratch register. |
| |
| 2015-12-20 Sujoy Saraswati <sujoy.saraswati@hpe.com> |
| |
| PR tree-optimization/61441 |
| * match.pd (f(x) -> x): Removed flag_errno_math check for RINT. |
| |
| 2015-12-20 Sujoy Saraswati <sujoy.saraswati@hpe.com> |
| |
| PR tree-optimization/61441 |
| * fold-const.c (const_binop): Use REAL_VALUE_ISSIGNALING_NAN instead |
| of REAL_VALUE_ISNAN to avoid the operation for sNaN operands. |
| * simplify-rtx.c (simplify_const_binary_operation): Same. |
| |
| 2015-12-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/65337 |
| * tree-ssa-dce.c (bb_postorder): New static var. |
| (mark_stmt_necessary): Add guard for setting bb_contains_live_stmts. |
| (forward_edge_to_pdom): Remove. |
| (remove_dead_stmt): Instead of redirecting edges only keep an edge |
| on a path to nearest live BB. |
| (eliminate_unnecessary_stmts): Free bb_postorder. |
| * cfganal.c (dfs_find_deadend): Add START_POINTES. |
| * cfganal.h (inverted_post_order_compute): Update prototype. |
| |
| 2015-12-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/68910 |
| * emit-rtl.c (set_unique_reg_note) <REG_EQUAL>: Add bypass for USEs. |
| * config/sparc/sparc.md (anddi3): Enable only in 64-bit mode. |
| (iordi3): Likewise. |
| (xordi3): Likewise. |
| (one_cmpldi2): Likewise. |
| (*anddi3_sp32): Delete. |
| (*and_not_di_sp32): Likewise. |
| (*iordi3_sp32): Likewise. |
| (*or_not_di_sp32): Likewise. |
| (*xordi3_sp32): Likewise. |
| (*xor_not_di_sp32): Likewise. |
| (32-bit DImode logical operations splitter): Likewise. |
| (*one_cmpldi2_sp32): Likewise. |
| |
| 2015-12-19 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc.md (*storeqi_update): Use 'any_mem_operand' and |
| fix RTL pattern to include the plus. |
| (*storehi_update): Likewise. |
| (*storesi_update): Likewise. |
| (*storesf_update): Likewise. |
| * config/arc/predicates.md (store_update_operand): Delete. |
| |
| 2015-12-19 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc.md (*loadqi_update): Use new 'any_mem_operand' |
| and fix RTL pattern to include the plus. |
| (*load_zeroextendqisi_update): Likewise. |
| (*load_signextendqisi_update): Likewise. |
| (*loadhi_update): Likewise. |
| (*load_zeroextendhisi_update): Likewise. |
| (*load_signextendhisi_update): Likewise. |
| (*loadsi_update): Likewise. |
| (*loadsf_update): Likewise. |
| * config/arc/predicates.md (load_update_operand): Delete. |
| (any_mem_operand): New predicate. |
| |
| 2015-12-19 Sujoy Saraswati <sujoy.saraswati@hpe.com> |
| |
| PR tree-optimization/61441 |
| * real.c (real_issignaling_nan): New. |
| * real.h (real_issignaling_nan, REAL_VALUE_ISSIGNALING_NAN): New. |
| |
| 2015-13-18 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/68729 |
| * config/pa/pa.c (pa_emit_move_sequence): Reorganize handling of |
| floating-point reloads. Only reload operands that are not valid |
| floating-point memory operands. |
| |
| 2015-12-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/68860 |
| * ipa-split.c (split_function): Only perform caller side |
| modifications for decl_debug_args here. |
| * cgraph.c: Include gimplify.h. |
| (cgraph_edge::redirect_call_stmt_to_callee): Add caller side |
| debug stmts for decl_debug_args. Spelling fix in a comment. |
| * tree-inline.c (tree_function_versioning): Populate decl_debug_args |
| for args_to_skip arguments and add callee side debug stmts. |
| Formatting fixes. Avoid shadowing i variable. |
| |
| 2015-12-18 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand): |
| Remove UNSPEC_TO_GENERIC generation. |
| (nvptx_output_mov_insn): Generate cvta for symbolic src. |
| * config/nvptx/nvptx.md (nvptx_register_operand): Allow hard reg. |
| (nvptx_reg_or_mem_operand): Likewise. |
| (nvptx_nonmemory_operand): Likewise. |
| (nvptx_general_operand): Delete. |
| (*mov<mode>_insn): Use nonimmediate_operand, permit hardregs. |
| (oacc_fork, oacc_join): Use general_operand. |
| |
| 2015-12-18 Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
| |
| * dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map. |
| |
| 2015-12-18 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry for |
| stabs debug. |
| (nvptx_assemble_undefined_decl): Use nvptx_assemble_decl_end. |
| |
| 2015-12-18 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/49847 |
| * cse.c (record_jump_equiv): Handle fold_rtx returning NULL_RTX. |
| |
| 2015-12-18 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (worker_bcast_name, worker_red_name): Delete. |
| (nvptx_option_override): Adjust worker symbol creation. |
| (nvptx_gen_wcast): Wrap worker address in UNSPEC_TO_GENERIC. |
| (write_worker_buffer): New. |
| (nvptx_file_end): Call write_worker_buffer. |
| * config/nvptx/nvptx.md (UNSPEC_SHARED_DATA): Delete. |
| (worker_load<mode>, worker_store<mode>): Delete. |
| |
| 2015-12-18 Richard Biener <rguenther@suse.de> |
| |
| PR testsuite/68776 |
| * tree-vect-patterns.c (struct vect_recog_func): New. |
| (vect_vect_recog_func_ptrs): Make an array of function name pairs. |
| (vect_pattern_recog_1): Print the recognized pattern name. Return |
| true if a pattern was recognized. |
| (vect_pattern_recog): Adjust. Stop iterating over pattern recognition |
| functions on a stmt if a pattern was recognized. |
| |
| 2015-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * ira.c (ira_setup_alts): Move the scan for commutative modifier |
| to the first loop to make it work even with disabled alternatives. |
| |
| 2015-12-18 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_init_frame_layout): Try r4 to r2 for the |
| literal pool pointer. |
| |
| 2015-12-18 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| PR tree-optimization/68906 |
| * tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Add check |
| that an exit block belongs to LOOP. |
| |
| 2015-12-18 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR tree-optimization/68956 |
| * tree-vect-stmts.c (vect_init_vector): Fix constants |
| used for boolean vectors. |
| |
| 2015-12-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68796 |
| * config/aarch64/aarch64.md (*and<mode>3nr_compare0_zextract): |
| New pattern. |
| * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle |
| ZERO_EXTRACT comparison with zero. |
| (aarch64_mask_from_zextract_ops): New function. |
| * config/aarch64/aarch64-protos.h (aarch64_mask_from_zextract_ops): |
| New prototype. |
| |
| 2015-12-18 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md: Change and rename |
| constm1_operand to all_ones_operand |
| * config/s390/s390.c (s390_expand_vcond): Use all_ones_operand |
| * config/s390/vector.md: Likewise |
| |
| 2015-12-18 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_vcond): Convert vector |
| conditional into shift. |
| * config/s390/vector.md: Change operand predicate. |
| |
| 2015-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick |
| z900 -march -mtune even on g5 and g6 machines. |
| * config/s390/s390.c (s390_option_override_internal): New argument |
| to distingiush between options and target attributes. Emit |
| deprecation warning for g5 and g6 arch/tune options. |
| (s390_option_override): Set new s390_option_override_internal |
| argument to true. |
| (s390_valid_target_attribute_tree): Set new |
| s390_option_override_internal argument to false. |
| * config/s390/s390.h: Default to z900 in the driver. |
| * doc/invoke.texi: Document the deprecation of g5 and g6. |
| |
| 2015-12-18 Andris Pavenis <andris.pavenis@iki.fi> |
| |
| * config/i386/djgpp-stdint.h: update typedefs for integer types |
| |
| 2015-12-17 Jeff Law <law@redhat.com> |
| |
| * passes.def: Put the split-paths pass immediately before the |
| tracer pass. |
| |
| * doc/invoke.texi (-O2 options): Remove -fsplit-paths. |
| (-O3 options): Add -fsplit-paths. |
| * gimple-ssa-split-paths.c: Include predict.h |
| (split_paths): Only split paths in a loop that should be |
| optimized for speed. |
| * opts.c (default_options_table): Move -fsplit-paths from -O2 to |
| -O3. |
| |
| 2015-12-17 Nathan Sidwell <nathan@acm.org> |
| |
| * ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the |
| source function. |
| |
| 2015-12-17 Sebastian Pop <s.pop@samsung.com> |
| |
| * Makefile.in: Replace ISL with isl. |
| * common.opt: Same. |
| * configure: Regenerate. |
| * configure.ac: Same. |
| * doc/install.texi: Same. |
| * doc/invoke.texi: Same. |
| * graphite-isl-ast-to-gimple.c: Same. |
| * graphite-scop-detection.c: Same. |
| * graphite-sese-to-poly.c: Same. |
| * graphite.c: Same. |
| * graphite.h: Same. |
| * params.def: Same. |
| * testsuite/gcc.dg/graphite/fuse-1.c: Same. |
| * testsuite/gcc.dg/graphite/fuse-2.c: Same. |
| * testsuite/gcc.dg/graphite/interchange-1.c: Same. |
| * testsuite/gcc.dg/graphite/pr35356-1.c: Same. |
| * toplev.c: Same. |
| |
| 2015-12-17 Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c: Move all isl include files to... |
| * graphite-isl-ast-to-gimple.c: Same. |
| * graphite-optimize-isl.c: Same. |
| * graphite-poly.c: Same. |
| * graphite-scop-detection.c: Same. |
| * graphite.c: Same. |
| * graphite.h: ... here. |
| |
| 2015-12-17 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> |
| |
| * config/avr/avr.h (MOVE_MAX): Set value to 1. |
| (MOVE_MAX_PIECES): Define. |
| (MOVE_RATIO): Define. |
| * config/avr/avr.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): |
| Provide target hook. |
| (avr_use_by_pieces_infrastructure_p): New function. |
| |
| 2015-12-17 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * config.gcc: mark *-interix* as obsolete. |
| |
| 2015-12-17 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * config.gcc: Mark openbsd 2.0 and 3.X as obsolete. |
| |
| 2015-12-17 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * config.gcc: Mark knetbsd targets as obsolete. |
| |
| 2015-12-17 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM, |
| ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Renumber. |
| (REGISTER_NAMES): Update and rename. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS): Update. |
| (enum_reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Reformat. |
| |
| 2015-12-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68946 |
| * tree-vect-slp.c (vect_slp_analyze_node_operations): Push |
| SLP def type to stmt operands one stmt at a time. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * langhooks.h (struct lang_hooks_for_types): New get_bias_field. |
| * langhooks-def.h (LANG_HOOKS_GET_TYPE_BIAS): New. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the |
| get_bias_field. |
| * dwarf2out.c |
| (base_type_die): In non-strict DWARF mode, invoke the |
| get_type_bias language hook for INTEGER_TYPE nodes. If it |
| returns a bias, emit an attribute for it. |
| (subrange_type_die): Change signature to handle bias. If |
| non-strict DWARF mode, emit an attribute for it, if one passed. |
| (modified_type_die): For subrange types, invoke the |
| get_type_bias langage hook and pass the bias to |
| subrange_type_die. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.h (DWARF2OUT_ARRAY_DESCR_INFO_MAX_DIMEN): New macro. |
| (struct array_descr_info): Use it for the dimensions array's |
| size. |
| * dwarf2out.c (gen_type_die_with_usage): Check that the array |
| descr. language hook does not return an array with more |
| dimensions that it should. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * langhooks.h (struct lang_hooks_for_types): Add a |
| get_fixed_point_type_info field. |
| * langhooks-def.h (LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO): New |
| macro. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the |
| get_fixed_point_type_info field. |
| * dwarf2out.h (enum fixed_point_scale_factor): New. |
| (struct fixed_point_type_info): New. |
| * dwarf2out.c (base_type_die): In DWARFv3 or non-strict DWARF |
| mode, get fixed-point type information using the debugging hook |
| and describe it in DWARF, if any. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * langhooks.h (struct lang_hooks_for_types): Add a |
| get_debug_type field. |
| * langhooks-def.h (LANG_HOOKS_GET_DEBUG_TYPE): New macro. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the |
| get_debug_type field. |
| * dwarf2out.h (struct array_descr_info): Add an array-wide |
| stride field. |
| * dwarf2out.c (modified_type_die): Invoke the get_debug_type |
| language hook, process its result instead, if any. |
| (gen_descr_array_type_die): Add array-wide stride processing. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * debug.h (struct gcc_debug_hooks): Add a new size_function |
| hook. |
| * debug.c (do_nothing_debug_hooks): Set the size_function field |
| to no-op. |
| * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. |
| * sdbout.c (sdb_debug_hooks): Likewise. |
| * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. |
| * stor-layout.c (finalize_size_functions): Let the debug info |
| back-end know about the implementation of size functions. |
| * dwarf2out.h (dw_discr_list_ref): New typedef. |
| (enum dw_val_class): Add value classes for discriminant values |
| and discriminant lists. |
| (struct dw_discr_value): New structure. |
| (struct dw_val_node): Add discriminant values and discriminant |
| lists to the union. |
| (struct dw_loc_descr_node): Add frame_offset_rel and |
| dw_loc_frame_offset (only for checking) fields to handle DWARF |
| procedures generation. |
| (struct dw_discr_list_node): New structure. |
| * dwarf2out.c (dwarf2out_size_function): New. |
| (dwarf2_debug_hooks): Set the size_function field to |
| dwarf2out_size_function. |
| (dwarf2_lineno_debug_hooks): Set the size_function field to |
| no-op. |
| (new_loc_descr): Initialize the |
| dw_loc_frame_offset field. |
| (dwarf_proc_stack_usage_map): New. |
| (dw_val_equal_p): Handle discriminants. |
| (size_of_discr_value): New. |
| (size_of_discr_list): New. |
| (size_of_die): Handle discriminants. |
| (add_loc_descr_to_each): New. |
| (add_loc_list): New. |
| (print_discr_value): New. |
| (print_dw_val): Handle discriminants. |
| (value_format): Handle discriminants. |
| (output_discr_value): New. |
| (output_die): Handle discriminants. |
| (output_loc_operands): Handle DW_OP_call2 and DW_OP_call4. |
| (uint_loc_descriptor): New. |
| (uint_comparison_loc_list): New. |
| (loc_list_from_uint_comparison): New. |
| (add_discr_value): New. |
| (add_discr_list): New. |
| (AT_discr_list): New. |
| (loc_descr_to_next_no_op): New. |
| (free_loc_descr): New. |
| (loc_descr_without_nops): New. |
| (struct loc_descr_context): Add a dpi field. |
| (struct dwarf_procedure_info): New helper structure. |
| (new_dwarf_proc_die): New. |
| (is_handled_procedure_type): New. |
| (resolve_args_picking_1): New. |
| (resolve_args_picking): New. |
| (function_to_dwarf_procedure): New. |
| (copy_dwarf_procedure): New. |
| (copy_dwarf_procs_ref_in_attrs): New. |
| (copy_dwarf_procs_ref_in_dies): New. |
| (break_out_comdat_types): Copy DWARF procedures along with the |
| types that reference them. |
| (loc_list_from_tree): Rename into loc_list_from_tree_1. Handle |
| CALL_EXPR in the cases suitable for DWARF procedures. Handle |
| for PARM_DECL when generating a location description for a DWARF |
| procedure. Handle big unsigned INTEGER_CST nodes. Handle |
| NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison |
| operators. Add a wrapper for loc_list_from_tree that strips |
| DW_OP_nop operations from the result. |
| (type_byte_size): New. |
| (struct vlr_context): New helper structure. |
| (field_byte_offset): Change signature to return either a |
| constant offset or a location description for dynamic ones. |
| Handle dynamic byte offsets with constant bit offsets and handle |
| fields in variant parts. |
| (add_data_member_location): Change signature to handle dynamic |
| member offsets and fields in variant parts. Update call to |
| field_byte_offset. Handle location lists. Emit a variable data |
| member location only when -fgnat-encodings=minimal. |
| (add_bound_info): Emit self-referential bounds only when |
| -fgnat-encodings=minimal. |
| (add_byte_size_attribute): Use type_byte_size in order to handle |
| dynamic type sizes. Emit variable byte size only when |
| -fgnat-encodings=minimal and when the target DWARF version |
| allows them. |
| (add_bit_offset_attribute): Change signature to handle |
| variable-length records. Update call to field_byte_offset. |
| (gen_descr_array_type_die): Update call to gen_field_die. |
| Update loc_descr_context literal. |
| (gen_type_die_for_member): Likewise. |
| (gen_subprogram_die): Update calls to get_decl_die. |
| (gen_field_die): Change signature to handle variable-length |
| records. Update calls to add_bit_offset_attribute and |
| add_data_member_location_attribute. |
| (gen_inheritance_die): Update call to |
| add_data_member_location_attribute. |
| (gen_decl_die): Change signature to handle variable-length |
| records. Update call to gen_field_die. |
| (gen_inheritance_die): Change signature to handle |
| variable-length records. Update call to |
| add_data_member_location_attribute. |
| (is_variant_part): New. |
| (analyze_discr_in_predicate): New. |
| (get_discr_value): New. |
| (analyze_variants_discr): New. |
| (gen_variant_part): New. |
| (gen_member_die): Update calls to gen_decl_die. Call instead |
| gen_variant_part for variant parts. |
| (gen_type_die_with_usage): Update calls to gen_decl_die. |
| (process_scope_var): Likewise. |
| (force_decl_die): Likewise. |
| (declare_in_namespace): Likewise. |
| (dwarf2out_decl): Likewise. |
| (prune_unused_types_walk_loc_descr): New. |
| (prune_unused_types_walk_attribs): Mark DIEs referenced by |
| location descriptions and loc. descr. lists. |
| (prune_unused_types_walk): Don't mark DWARF procedures by |
| default. Mark variant parts since nothing is supposed to |
| reference them. |
| (dwarf2out_init): Allocate dwarf_proc_stack_usage_map. |
| (dwarf2out_c_finalize): Deallocate and reset |
| dwarf_proc_stack_usage_map. |
| |
| 2015-12-17 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * common.opt (gnat_encodings): New variable |
| (dwarf_gnat_encodings): New enum type. |
| (fgnat_encodings): New option. |
| * flag-types.h (enum dwarf_gnat_encodings): New. |
| |
| 2015-12-17 Christian Bruel <christian.bruel@st.com> |
| |
| * tree.h (TYPE_MODE_RAW): New macro. |
| * tree-streamer-out.c (pack_ts_type_common_value_fields): |
| Replace TYPE_MODE by TYPE_MODE_RAW. |
| |
| 2015-12-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68835 |
| * tree.c (get_int_cst_ext_nunits): Return |
| cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1 |
| for all unsigned wi::neg_p (cst) constants. |
| (build_new_int_cst): If cst.get_precision is not a multiple |
| of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision |
| % HOST_BITS_PER_WIDE_INT. |
| |
| 2015-12-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68951 |
| * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): |
| Ignore strided non-group accesses. |
| |
| 2015-12-17 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc.c (arc_loop_hazard): Don't convert the jump label |
| rtx to an rtx_insn until we confirm it's not a return rtx. |
| |
| 2015-12-17 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls |
| field. |
| * tree-ssa.c (delete_tree_ssa): Do not zero it. |
| |
| 2015-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/67973 |
| * configure.ac (gcc_cv_as_stabs_directive): New test. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/darwin.h (DBX_DEBUGGING_INFO): Wrap in |
| HAVE_AS_STABS_DIRECTIVE. |
| (PREFERRED_DEBUGGING_TYPE): Likewise. |
| * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include |
| DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE. |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Environment |
| attributes): Document stabs. |
| |
| 2015-12-16 Martin Sebor <msebor@redhat.com> |
| |
| PR c/68868 |
| * ginclude/stdatomic.h (atomic_init): Use atomic_store instead |
| of plain assignment. |
| |
| 2015-12-15 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/68805 |
| * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE |
| instead of VEC_SELECT for TImode. |
| |
| * config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to |
| VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead |
| of using VEC_SELECT. |
| (VSX_LE_128): Likewise. |
| (define_peephole2): Add peephole to eliminate double xxpermdi when |
| copying TImode. |
| |
| 2015-12-16 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/68779 |
| * config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs. |
| (atomic_loaddi_1): Likewise. |
| (atomic_storedi): Likewise. |
| (atomic_storedi_1): Likewise. |
| (atomic_loaddf): Likewise. |
| (atomic_loaddf_1): Likewise. |
| (atomic_storedf): Likewise. |
| (atomic_storedf_1): Likewise. |
| Move all atomic patterns to end of file. |
| |
| 2015-12-16 Abderrazek Zaafrani <a.zaafrani@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c: Include isl/schedule_node.h. |
| (set_separate_option): New. |
| (translate_isl_ast_to_gimple::set_options_for_schedule_tree): New. |
| (translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->schedule. |
| * graphite-optimize-isl.c (optimize_isl): Set scop->schedule, do not |
| free the computed schedule tree. |
| * graphite-poly.c (new_scop): Initialize scop->schedule. |
| * graphite.h: Include isl/schedule.h. |
| (struct scop): Add field schedule. |
| |
| 2015-12-16 Nathan Sidwell <nathan@acm.org> |
| |
| * ipa-visibility.c (can_replace_by_local_alias): Make static, |
| check ASM_OUTPUT_DEF. |
| (can_replace_by_local_alias_in_vtable): Make static. |
| (function_and_variable_visibility): Reformat overlong comment. |
| |
| 2015-12-16 Jeff Law <law@redhat.com> |
| |
| * ree.c (add_removable_extension): Use reg_overlap_mentioned_p |
| rather than testing hard register #s. |
| |
| 2015-12-16 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove. |
| (REGISTER_NAMES): Adjust. |
| * config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line. |
| (nvptx_static_hain): Delete. |
| (write_arg_mode): Don't emit initializer if argno < 0. |
| (write_arg_type): Fix whitespace. |
| (init_frame): Initialize reg to zero if frame is zero-sized. |
| (nvptx_declare_function_name): Use write_arg_type to emit chain |
| decl. |
| (nvptx_output_call_insn): Adjust static chain emission. |
| (nvptx_goacc_reduction): Make static. |
| (TARGET_STATIC_CHAIN): Don't override. |
| |
| 2015-12-16 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-dependences.c (scop_get_dependences): Use local pointers. |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->dependence. |
| * graphite-optimize-isl.c (optimize_isl): Same. |
| * graphite-poly.c (new_scop): Remove initialization of removed |
| members. |
| (free_scop): Same. |
| * graphite.h (struct scop): Remove individial dependence pointers and |
| add a scop::dependence to contain all the dependence. |
| |
| 2015-12-16 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-sese-to-poly.c (build_poly_sr): Use refs. |
| |
| 2015-12-16 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Remove checks for functions that exist in isl 0.13 |
| or later. |
| * graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12. |
| * graphite-optimize-isl.c: Same. |
| * graphite-poly.c: Same. |
| * graphite-sese-to-poly.c: Same. |
| * graphite.h: Add comment for isl 0.14. |
| * toplev.c (print_version): Print isl version. |
| |
| 2015-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not |
| speculate to impossible targets. |
| * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. |
| |
| 2015-12-16 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c (scop_get_reads): Add more dumps. |
| (scop_get_must_writes): Same. |
| (scop_get_may_writes): Same. |
| * graphite-poly.c (new_poly_dr): Same. |
| * graphite-scop-detection.c (build_cross_bb_scalars_def): Same. |
| (gather_bbs::before_dom_children): Same. |
| |
| 2015-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p): |
| New function. |
| (aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above |
| to handle extend+shift rtxes. |
| |
| 2015-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68696 |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt): |
| New pattern. |
| (aarch64_simd_bsl<mode>_internal): Update comment to reflect |
| the above. |
| |
| 2015-12-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68870 |
| * tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p |
| parameter, if set only perform trivial constant folding. |
| Queue other blocks with conditions for later processing. |
| (cleanup_control_flow_bb): Add first_p parameter and pass it through. |
| (cleanup_tree_cfg_1): Pass true for the first iteration |
| cleanup_control_expr_graph. |
| |
| 2015-12-16 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete. |
| * config/nvptx/nvptx.h (struct machine_function): |
| Reimplement. Adjust all users. |
| * config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack |
| and frame array generation earlier. |
| (nvptx_call_args): Reimplement. |
| (nvptx_expand_call): Adjust. |
| (nvptx_hard_reno_mode_ok): Delete. |
| (nvptx_reorg): Revert scan of hard regs. |
| |
| 2015-12-16 Tom de Vries <tom@codesourcery.com> |
| |
| * opts.c (default_options_optimization): Set fipa-pta on by |
| default for fopenacc. |
| * passes.def: Move kernels pass group to pass_ipa_oacc. |
| * tree-pass.h (make_pass_oacc_kernels2): Remove. |
| (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare. |
| * tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2): |
| Remove. |
| (pass_ipa_oacc, pass_ipa_oacc_kernels): New pass. |
| (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function. |
| * tree-ssa-structalias.c (pass_ipa_pta::clone): New function. |
| |
| 2015-12-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68861 |
| * tree-vect-slp.c (vect_build_slp_tree): Properly handle |
| duplicate stmts when applying swapping to stmts. |
| |
| 2015-12-16 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386-c.c (ix86_target_macros_internal): Remove |
| duplicate check (__CLZERO__). |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm_neon.h (vqrdmlahq_lane_s16): New. |
| (vqrdmlahq_lane_s32): New. |
| (vqrdmlah_lane_s16): New. |
| (vqrdmlah_lane_s32): New. |
| (vqrdmlshq_lane_s16): New. |
| (vqrdmlshq_lane_s32): New. |
| (vqrdmlsh_lane_s16): New. |
| (vqrdmlsh_lane_s32): New. |
| * config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and |
| "vqrdmlsh_lane". |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New. |
| (vqrdmlahq_s16, vqrdmlahq_s32): New. |
| (vqrdmlsh_s16, vqrdmlsh_s32): New. |
| (vqrdmlahq_s16, vqrdmlshq_s32): New. |
| * config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh". |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * doc/sourcebuild.texi (ARM-specific attributes): Add |
| "arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw". |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-c.c (arm_cpu_builtins): Define |
| __ARM_FEATURE_QRDMX. Clean up some trailing whitespace. |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/iterators.md (VQRDMLH_AS): New. |
| (neon_rdma_as): New. |
| * config/arm/neon.md |
| (neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h<mode>): New. |
| (neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h_lane<mode>): New. |
| * config/arm/unspecs.md (UNSPEC_VQRDMLAH): New. |
| (UNSPEC_VQRDMLSH): New. |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/t-aprofile: Make "armv8.1-a" and "armv8.1-a+crc" |
| matches for "armv8-a". |
| |
| 2015-12-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-arches.def: Add "armv8.1-a" and "armv8.1-a+crc". |
| * config/arm/arm-protos.h (FL2_ARCH8_1): New. |
| (FL2_FOR_ARCH8_1A): New. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm.c (arm_arch8_1): New. |
| (arm_option_override): Set arm_arch8_1. |
| * config/arm/arm.h (TARGET_NEON_RDMA): New. |
| (arm_arch8_1): Declare. |
| * doc/invoke.texi (ARM Options, -march): Add "armv8.1-a" and |
| "armv8.1-a+crc". |
| (ARM Options, -mfpu): Fix a typo. |
| |
| 2015-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68648 |
| * config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify |
| the complement of operands[3] during splitting. |
| |
| 2015-12-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68892 |
| * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly compute |
| cost for permuted loads. |
| |
| 2015-12-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/65980 |
| * jump.c (rtx_renumbered_equal_p) <case LABEL_REF>: Use |
| next_nonnote_nondebug_insn instead of next_real_insn and |
| skip over CODE_LABELs too. |
| |
| 2015-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * symtab.c (symtab_node::fixup_same_cpp_alias_visibility): |
| Do not copy DECL_VIRTUAL_P. |
| |
| 2015-12-15 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/42121 |
| * tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array |
| members. |
| * tree.c (type_contains_placeholder_1): Avoid assuming type has |
| a non-null domain or an upper bound to handle flexible array |
| members. |
| * varasm.c (output_constructor_regular_field): Same. |
| (output_constructor): Set min_index to integer_zero_node rather |
| than null when a type has no domain to avoid crashing later. |
| |
| 2015-12-15 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (write_one_arg): Rename to ... |
| (write_arg_mode): ... here. Update callers. |
| (write_arg): Rename to ... |
| (write__arg_type): ... here. Update callers. |
| (write_return_mode): New fn, broken out of ... |
| (write_return): ... here. Rename to ... |
| (write_return_type): ... here. Call it. Update callers. |
| (write_fn_proto_from_insn): Use write_arg_mode and |
| write_return_mode. |
| (init_frame): New fn. |
| (nvptx_declare_function_name): Call it for frame and varargs. Only |
| emit outgoing static chain, if it's live. |
| (nvptx_output_return): Use reg_names for return reg name. |
| (nvptx_output_call_insn): Likewise. |
| (nvptx_reorg): Mark unused hard regs too. |
| |
| 2015-12-15 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (nvptx_register_operand): Don't accept and |
| then reject subregs. |
| (nvptx_reg_or_mem_operand): Likewise. |
| (nvptx_nonmemory_operand): Likewise. |
| (call_insn_operand): A regular predicate, check SYMBOL_REF_FUNCTION_P. |
| (call_insn, call_value_insn): Address is not SImode. |
| * config/nvptx/nvptx.h (FIXED_REGISTERS): Make return reg fixed. |
| (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove |
| RETURN_REG class. |
| (REGNO_REG_CLASS): Alwaus ALL_REGS. |
| (PROMOTE_MODE): QI and HI are the only smaller than SI int modes. |
| (HARD_FRAME_POINTER_REGNUM): Delete. |
| (REGISTER_NAMES): Move earlier. |
| (struct nvptx_args): Remove 'off'. |
| (INIT_CUMULATIVE_ARGS): Don't initialize 'off'. |
| (ELIMINABLE_REGS): Remove HARD_FRAME_POINTER_REGNUM. |
| * config/nvptx/nvptx.c (arg_promotion): Delete. |
| (nvptx_expand_call): Remove check for funtype being an fntype. |
| |
| 2015-12-15 Jason Merrill <jason@redhat.com> |
| |
| * hash-map.h, hash-table.h: Make copy constructors explicit. |
| |
| 2015-12-15 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * cgraphunit.c (output_in_order): Do not assemble "omp declare target |
| link" variables in ACCEL_COMPILER. |
| * gimplify.c (gimplify_adjust_omp_clauses): Do not remove mapping of |
| "omp declare target link" variables. |
| * omp-low.c (scan_sharing_clauses): Do not remove mapping of "omp |
| declare target link" variables. |
| (add_decls_addresses_to_decl_constructor): For "omp declare target |
| link" variables output address of the artificial pointer instead |
| of address of the variable. Set most significant bit of the size |
| to mark them. |
| (pass_data_omp_target_link): New pass_data. |
| (pass_omp_target_link): New class. |
| (find_link_var_op): New static function. |
| (make_pass_omp_target_link): New function. |
| * passes.def: Add pass_omp_target_link. |
| * tree-pass.h (make_pass_omp_target_link): Declare. |
| * varpool.c (symbol_table::output_variables): Do not assemble "omp |
| declare target link" variables in ACCEL_COMPILER. |
| |
| 2015-12-15 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR middle-end/21273 |
| * gensupport.c (collect_insn_data): Look for number of alternatives |
| in MATCH_SCRATCH. |
| |
| 2015-12-15 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat. |
| (CANNOT_CHANGE_MODE_CLASS): Always return true. |
| (HARD_REGNO_MODE_OK): Reformat. |
| * config/nvptx/nvptx.md (define_expand mov<mode>): No |
| RETURN_REGNUM handling here. |
| * config/nvptx/nvptx.c (nvptx_function_value): Set ret_reg_mode |
| here. |
| (write_one_arg): No QI or HI mode args. |
| (write_fn_proto_from_insn): No argument promotion here. |
| (nvptx_output_return_insn): No return promotion here. |
| (nvptx_output_mov_insn): No RETURN_REGNUM handling needed. |
| (nvptx_output_call_insn): No return promotion here. |
| |
| 2015-12-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/68851 |
| * cgraph.c (collect_callers_of_node_1): Do not collect thunks. |
| * cgraph.h (cgraph_node): Change comment of collect_callers. |
| |
| 2015-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/66688 |
| * tree-cfgcleanup.c (cleanup_control_flow_bb): Handle |
| noreturn call followed only by debug stmts by removing |
| the debug stmts and handling it the same as if the noreturn |
| call is the last stmt. |
| |
| 2015-12-14 Steve Ellcey <sellcey@imgtec.com> |
| |
| * config/mips/mips.c (mips_promote_function_mode): New function. |
| (TARGET_PROMOTE_FUNCTION_MODE): Define as above function. |
| (TARGET_PROMOTE_PROTOTYPES): Remove. |
| |
| 2015-12-14 Jason Merrill <jason@redhat.com> |
| |
| PR c++/68309 |
| * hash-table.h: Add copy constructor. |
| * hash-map.h: Add copy constructor. |
| |
| 2015-12-14 Tom de Vries <tom@codesourcery.com> |
| |
| PR other/68882 |
| * gimple-pretty-print.c (dump_ssaname_info_to_file): New function. |
| * gimple-pretty-print.h (dump_ssaname_info_to_file): Declare. |
| * tree-cfg.c (dump_default_def): New function. |
| (dump_function_to_file): Dump default defs for arguments, static chain, |
| and decl-by-reference. |
| |
| 2015-12-14 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (PARM_BOUNDARY): Set to 32. |
| * config/nvptx/nvptx.c (PASS_IN_REG_P, RETURN_IN_REG_P): Delete. |
| (pass_in_memory, promote_arg, promote_return): New. |
| (nvptx_function_arg_boundary): Delete. |
| (nvptx_function_value): Use promote_return. |
| (nvptx_pass_by_reference): Use pass_in_memory. |
| (nvptx_return_in_memory): Use pass_in_memory. |
| (nvptx_promote_function_mode): Use promote_arg. |
| (write_arg): Adjust arg splitting logic. |
| (write_return): Check and clear ret_reg_mode, if needed. |
| (write_fn_proto, nvptx_declare_function_name): Adust write_return |
| calls. |
| (TARGET_RUNCTION_ARG_BOUNDARY, |
| TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Don't override. |
| |
| 2015-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/68833 |
| * common.opt (Wmissing-noreturn): Add Warning option. |
| * opts-common.c (control_warning_option): If opt is |
| alias_target with alias_arg, set arg to it. |
| |
| 2015-12-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/68865 |
| PR target/68879 |
| * config/rs6000/rs6000.md (cstore_si_as_di): Force all operands |
| into registers. |
| |
| 2015-12-14 Richard Biener <rguenther@suse.de> |
| |
| Revert accidentially applied |
| PR tree-optimization/68707 |
| PR tree-optimization/67323 |
| * tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances |
| if they can be vectorized using load/store-lane instructions. |
| |
| 2015-12-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68852 |
| * tree-vectorizer.h (struct _slp_tree): Add def_type member. |
| (SLP_TREE_DEF_TYPE): New accessor. |
| * tree-vect-stmts.c (vect_is_simple_use): Remove BB vectorization |
| hack. |
| * tree-vect-slp.c (vect_create_new_slp_node): Initialize |
| SLP_TREE_DEF_TYPE. |
| (vect_build_slp_tree): When a node is to be built up from scalars |
| do not push a NULL as child but instead set its def_type to |
| vect_external_def. |
| (vect_analyze_slp_cost_1): Check for child def-type instead |
| of NULL. |
| (vect_detect_hybrid_slp_stmts): Likewise. |
| (vect_bb_slp_scalar_cost): Likewise. |
| (vect_get_slp_defs): Likewise. |
| (vect_slp_analyze_node_operations): Likewise. Before |
| processing node push the children def-types to the underlying |
| stmts vinfo and restore it afterwards. |
| (vect_schedule_slp_instance): Likewise. |
| (vect_slp_analyze_bb_1): Do not mark stmts not in SLP instances |
| as not vectorizable. |
| |
| 2015-12-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68775 |
| * tree-vect-slp.c (vect_build_slp_tree): Make sure to apply |
| a operand swapping even if replacing the op with scalars. |
| |
| 2015-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * combine.c (change_zero_ext): Do not create a shift of zero length. |
| |
| 2015-12-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): |
| Provide target hook. |
| (arc_no_speculation_in_delay_slots_p): New function. |
| |
| 2015-12-14 Claudiu Zissulescu <claziss@synopsys.com> |
| Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc.c (frame_move): Set frame related flag. |
| (arc_save_restore): Emit epilogue related DWARF2 information. |
| (arc_expand_epilogue): Likewise. |
| * config/arc/arc.opt (mno-epilogue-cfi): Remove. |
| (mepilogue-cfi): Likewise. |
| * doc/invoke.texi: Remove -m[no]-epilogue-cfi documentation. |
| |
| 2015-12-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/66616 |
| * ipa-cp.c (propagate_constants_accross_call): Move thuk check... |
| (call_passes_through_thunk_p): ...here. |
| (find_more_scalar_values_for_callers_subset): Perform thunk checks |
| like propagate_constants_accross_call does. |
| |
| 2015-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/68730 |
| * cfgrtl.c (cfg_layout_finalize): Free dominators. |
| |
| 2015-12-13 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/67355 |
| * var-tracking.c (reverse_op): Don't add dummy zero to reverse |
| ops that simplify back to the original value. |
| * alias.c (refs_newer_value_p): Cut off recursion for |
| expressions containing the original value. |
| |
| 2015-12-13 Kazu Kirata <kazu@gcc.gnu.org> |
| |
| * config/m68k/m68k.md (load feeding clear byte): New peephole2. |
| |
| 2015-12-13 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds |
| parameters of GOACC_paralllel. |
| |
| 2015-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_node::get_untransformed_body): Pass compressed |
| flag to lto_get_section_data. |
| * varpool.c (varpool_node::get_constructor): Likewise. |
| * lto-section-in.c (lto_get_section_data): Add new flag decompress. |
| (lto_free_section_data): Likewise. |
| (lto_get_raw_section_data): New function. |
| (lto_free_raw_section_data): New function. |
| (copy_function_or_variable): Copy sections w/o decompressing. |
| (lto_output_decl_state_refs): Picke compressed bit. |
| * lto-streamer.h (lto_in_decl_state): New flag compressed. |
| (lto_out_decl_state): Likewise. |
| (lto_get_section_data, lto_free_section_data): Update prototypes |
| (lto_get_raw_section_data, lto_free_raw_section_data): Declare. |
| (lto_write_raw_data): Declare. |
| (lto_begin_section): Remove FIXME. |
| (lto_write_raw_data): New function. |
| (lto_write_stream): Remove FIXME. |
| (lto_new_out_decl_state): Set compressed flag. |
| |
| 2015-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (free_lang_data_in_type, find_decls_types_r): Also free |
| unnecesary type decls. |
| * tree.h (is_redundant_typedef): Declare. |
| * dwarf2out.c (is_redundant_typedef): Export; booleanize |
| |
| 2015-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.h (TARGET_SUPPORTS_WIDE_INT): Define to 1. |
| * config/sparc/sparc.c (sparc_emit_set_const64): Remove code |
| conditionalized on HOST_BITS_PER_WIDE_INT == 32. |
| (sparc_cannot_force_const_mem) <CONST_WIDE_INT>: New case. |
| <CONST_DOUBLE>: Remove VOIDmode test. |
| (epilogue_renumber) <CONST_WIDE_INT>: New case. |
| (sparc_print_operand): Remove support for CONST_DOUBLE with VOIDmode. |
| (sparc_assemble_integer): Likewise. |
| (set_extends): Likewise. |
| (sparc_rtx_costs) <CONST_INT>: Use SMALL_INT. |
| <CONST_WIDE_INT>: New case. |
| <CONST_DOUBLE>: Remove support for VOIDmode. |
| <MULT>: Remove support for CONST_DOUBLE with VOIDmode. |
| * config/sparc/predicates.md (const_zero_operand): Add const_wide_int. |
| (const_all_ones_operand): Likewise. |
| (uns_small_int_operand): Remove const_double and code conditionalized |
| on HOST_BITS_PER_WIDE_INT == 32. |
| (arith_double_operand): Likewise. |
| (arith_double_add_operand): Likewise. |
| (input_operand): Remove support for CONST_DOUBLE with DImode. |
| * config/sparc/sparc.md (DImode CONST_INT splitter): Remove code |
| conditionalized on HOST_BITS_PER_WIDE_INT == 32. |
| (DFmode CONST_DOUBLE splitter): Likewise. |
| (*adddi3_insn_sp32): Likewise. |
| (*subdi3_insn_sp32): Likewise. |
| (DImode logical splitter): Likewise. |
| (DImode CONST_DOUBLE splitter): Delete. |
| |
| 2015-12-12 Paolo Bonzini <bonzini@gnu.org> |
| |
| PR sanitizer/68418 |
| * c-family/c-ubsan.c (ubsan_instrument_shift): Disable |
| sanitization of left shifts for wrapping signed types as well. |
| |
| 2015-12-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/68215 |
| * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter. |
| Do not gimplify the result. |
| (do_unop): Adjust call to tree_vec_extract. |
| (do_binop): Likewise. |
| (do_compare): Likewise. |
| (do_plus_minus): Likewise. |
| (do_negate): Likewise. |
| (expand_vector_condition): Likewise. |
| (do_cond): Likewise. |
| |
| 2015-12-11 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (RETURN_ADDR_REGNO): Delete. |
| (OUTGOING_ARG_POINTER_REGNUM): Delete. |
| (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. |
| (REGISTER_NAMES): Name static chain regs. |
| * config/nvptx/nvptx.c (nvptx_function_arg): Add ARG_UNUSED, merge |
| ifs. |
| (nvptx_incoming_arg): Merge ifs. |
| (nvptx_function_arg_boundary): Reimplement to avoid mixing units. |
| (nvptx_function_value): Tail call nvptx_libcall_value. |
| (nvptx_pass_by_reference): Add ARG_UNUSED. |
| (nvptx_static_chain): Use conditional op. |
| (nvptx_handle_kernel_attribute): Use VOID_TYPE_P. |
| |
| 2015-12-11 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| Dominique d'Humieres <dominiq@lps.ens.fr> |
| |
| PR target/26427 |
| PR target/33120 |
| PR testsuite/35710 |
| * config/darwin.c (darwin_use_anchors_for_symbol_p): Fix indention and |
| trailing whitespace. |
| |
| 2015-12-11 Jan Beulich <jbeulich@suse.com> |
| |
| * cfgexpand.c (expand_one_var): Exit early for static and |
| external variables when adjusting stack alignment related. |
| |
| 2015-12-11 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_rtx_costs) |
| (s390_cannot_force_const_mem, legitimate_pic_operand_p) |
| (s390_preferred_reload_class, s390_reload_symref_address) |
| (legitimate_reload_constant_p, print_operand): Wide int support. |
| * config/s390/predicates.md ("const0_operand", "constm1_operand") |
| ("consttable_operand"): Likewise. |
| ("larl_operand"): Add a comment. |
| * config/s390/s390.h (TARGET_SUPPORTS_WIDE_INT): Enable wide int |
| support. |
| |
| 2015-12-11 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (TARGET_SUPPORTS_WIDE_INT): Define. |
| * config/nvptx/nvptx.c (nvptxx_assemble_integer): Return false for |
| unrecognizable RTX. |
| |
| 2015-12-11 Tom de Vries <tom@codesourcery.com> |
| |
| * passes.def: Remove unpaired TERMINATE_PASS_LIST. |
| |
| 2015-12-11 Michael Matz <matz@suse.de> |
| |
| * hash-map.h (hash_map::hash_map): Gather statistics only |
| when GATHER_STATISTICS is true. |
| * hash-set.h (hash_set::hash_set): Ditto. |
| * hash-table.h (hash_table::hash_table): Ditto. |
| (hash_table::create_ggc): Ditto. |
| |
| 2015-12-11 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/68064 |
| * ipa-prop.c (ipa_compute_jump_functions_for_edge): Add checking |
| assert that align is nonzero. |
| |
| 2015-12-11 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_setmem): Use new expanders. |
| * config/s390/s390.md ("*setmem_long") |
| ("*setmem_long_and", "*setmem_long_31z"): Fix warnings. |
| ("*setmem_long_and_31z"): New define_insn. |
| ("setmem_long_<P:mode>"): New expanders. |
| * (<modesize>): New mode attribute |
| |
| 2015-12-11 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("movstr", "*movstr"): Fix warning. |
| ("movstr<P:mode>"): New indirect expanders used by "movstr". |
| |
| 2015-12-11 Martin Liska <mliska@suse.cz> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/67484 |
| * config/i386/i386.c (ix86_valid_target_attribute_tree): |
| Use ggc_strdup to copy option_strings to opts->x_ix86_arch_string and |
| opts->x_ix86_tune_string. |
| |
| 2015-12-11 Richard Biener <rguenther@suse.de> |
| |
| * lto-streamer.h (lto_simple_header_with_strings): Remove |
| main_size field already in lto_simple_header. |
| |
| 2015-12-11 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Check |
| mask vectype. |
| |
| 2015-12-11 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * config/i386/i386.c (ix86_get_mask_mode): Use scalar |
| modes for 32 and 16 byte boolean vectors when possible. |
| |
| 2015-12-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/67778 |
| PR rtl-optimization/68634 |
| * shrink-wrap.c (try_shrink_wrapping): Add a comment about why we want |
| to put the prologue earlier. When determining if an earlier block is |
| suitable, make sure it dominates every block reachable from it. |
| |
| 2015-12-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/68814 |
| * rtlanal.c (set_noop_p): Use BITS_BIG_ENDIAN instead of |
| BYTES_BIG_ENDIAN. |
| |
| 2015-12-10 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_function_arg, |
| nvptx_function_incoming_arg, nvptx_function_arg_advance, |
| nvptx_strict_argument_naming, nvptx_function_arg_boundary, |
| nvptx_libcall_value, nvptx_function_value, |
| nvptx_function_value_regno_p, nvptx_pass_by_reference, |
| nvptx_return_in_memory, nvptx_promote_function_mode, |
| nvptx_static_chain): Move earlier. |
| (write_one_arg): Break out as helper fn for ... |
| (write_arg): ... this new function. Adjust all callers. |
| |
| 2015-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-streamer-out.c (wrap_refs): Only wrap public decls. |
| |
| 2015-12-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p. |
| (good_cloning_opportunity_p): Likewise. |
| (gather_context_independent_values): Do not return true when |
| polymorphic call context is known or when we have known aggregate |
| value of unused parameter. |
| (estimate_local_effects): Try to create clone for all context |
| when either some params are substituted or devirtualization is possible |
| or some params can be removed; use local flag instead of |
| node->will_be_removed_from_program_if_no_direct_calls_p. |
| (identify_dead_nodes): Likewise. |
| |
| 2015-12-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/invoke.texi (-Wall): Add -Wmisleading-indentation to the |
| list. |
| (-Wmisleading-indentation): Update documentation to reflect |
| being enabled by -Wall in C/C++. |
| |
| 2015-12-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/68691 |
| * lra-spills.c (lra_final_code_change): Check pseudo occurrence |
| number in non-debug insns and remove debug insns if necessary. |
| |
| 2015-12-10 Martin Sebor <msebor@redhat.com> |
| |
| * invoke.texi (Warning Options): Update -Wall options. Clarify |
| when some -Wextra options are enabled. Add -Wplacement-new example. |
| |
| 2015-12-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * graphite-scop-detection.c (gather_bbs::before_dom_children): |
| Change return type to an edge. Always return NULL. |
| |
| 2015-12-10 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/68619 |
| * tree-ssa-dom.c (dom_opt_dom_walker::before_dom_children): Propgate |
| return value from optimize_stmt. |
| (dom_opt_dom_walker): Add new argument to dom_walker constructor. |
| (pass_dominator:execute): If a block has an unreachable edge, |
| remove all jump threads through any successor of the affected block. |
| (record_equivalences_from_phis): Ignore alternative if the edge |
| does not have EDGE_EXECUTABLE set. |
| (single_incoming_edge_ignoring_loop_edges): Similarly. |
| (optimize_stmt): If a gimple_code has a compile-time constant |
| condition, return the edge taken for that constant value. Also |
| change the condition to true/false as necessary. |
| * domwalk.h (dom_walker::dom_walker): Add new argument |
| skip_unreachable_blocks. Don't provide empty constructor body. |
| (dom_walker::before_dom_children): Change return type. |
| (dom_walker::bb_reachable): Declare new private method. |
| (dom_walker::propagate_unreachable_to_edges): Likewise. |
| (dom_walker::m_unreachable_dom): Declare new private data member. |
| (dom_walker::m_skip_unreachable_blocks): Likewise. |
| * domwalk.c: Include dumpfile.h. |
| (dom_walker::dom_walker): New constructor. Initialize private data |
| members. If needed, set EDGE_EXECUTABLE for all edges in the CFG, |
| extracted from tree-ssa-sccvn.c. |
| (dom_walker::bb_reachable): New method extracted from tree-ssa-sccvn.c |
| (dom_walker::propagate_unreachable_to_edges): Likewise. |
| (dom_walker::walk): Only call before_dom_children on reachable |
| blocks. If before_dom_children returns an edge, then clear |
| EDGE_EXECUTABLE for all other outgoing edges from the same block. |
| For unreachable blocks, call propagate_unreachable_to_edges. |
| Similarly, only call after_dom_children on reachable blocks. For |
| unreachable blocks, conditionally clear m_unreachable_dom. |
| * tree-ssa-sccvn.c (sccvn_dom_walker::unreachable_dom): Remove |
| private data member. |
| (sccvn_dom_walker::after_dom_children): Use methods from dom_walker |
| class. |
| (run_scc_vn): Likewise. |
| (sccvn_dom_walker::before_dom_children): Likewise. Return the taken |
| outgoing edge if a COND, SWITCH, or GOTO are optimized. |
| * compare-elim.c (find_comparison_dom_walker::before_dom_children): |
| Change return type to an edge. Always return NULL. |
| * fwprop.c (single_def_use_dom_walker::before_dom_children): Likewise. |
| * gimple-ssa-strength-reduction.c |
| (find_candidates_dom_walker::before_dom_children): Likewise. |
| * ipa-prop.c (analysis_dom_walker::before_dom_children): Likewise. |
| (ipcp_modif_dom_walker::before_dom_children): Likewise. |
| * tree-into-ssa.c (rewrite_dom_walker::before_dom_children): Likewise. |
| (rewrite_update_dom_walker::before_dom_children): Likewise. |
| (mark_def_dom_children::before_dom_children): Likewise. |
| * tree-ssa-dse.c (dse_dom_walker::before_dom_children): Likewise. |
| * tree-ssa-loop-im.c |
| (invariantness_dom_walker::before_dom_children): Likewise. |
| (move_computations_dom_walker::before_dom_walker): Likewise. |
| * tree-ssa-phiopt.c |
| (nontrapping_dom_walker::before_dom_children): Likewise. |
| * tree-ssa-pre.c |
| (eliminate_dom_walker::before_dom_children): Likewise. |
| * tree-ssa-propagate.c |
| (substitute_and_fold_dom_walker::before_dom_children): Likewise. |
| * tree-ssa-strlen.c |
| (strlen_dom_walker::before_dom_children): Likewise. |
| * tree-ssa-uncprop.c |
| (uncprop_dom_walker::before_dom_children): Likewise. |
| |
| 2015-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/68376 |
| PR rtl-optimization/68670 |
| * ifcvt.c (noce_try_abs): For one_cmpl allow < 0, >= 0 |
| or > -1 conditions regardless of negate, and disallow |
| all other conditions. |
| |
| 2015-12-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-chkp.c (chkp_call_returns_bounds_p): Return true |
| for VA_ARG call. |
| (chkp_fixup_inlined_call): New. |
| * tree-chkp.h (chkp_fixup_inlined_call): New. |
| * tree-stdarg.c: Include tree-chkp.h. |
| (expand_ifn_va_arg_1): Fixup bndret calls for removed |
| VA_ARG calls. |
| |
| 2015-12-10 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-inline.c (duplicate_remap_omp_clause_seq): New function. |
| (replace_locals_op): Duplicate gimple sequences in OMP clauses. |
| |
| 2015-12-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * graphite-optimize-isl.c (scop_get_domains): Fix indentation. |
| |
| 2015-12-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * ifcvt.c (noce_try_inverse_constants): Fix indentation. |
| |
| 2015-12-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * regrename.c (scan_rtx_address): Fix indentation. |
| |
| 2015-12-10 David Malcolm <dmalcolm@redhat.com> |
| |
| * function.c (locate_and_pad_parm): Fix indentation. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (struct variable_info): Add |
| is_ipa_escape_point flag. |
| (new_var_info): Initialize to false. |
| (find_func_aliases): Generate escape constraints for stores |
| properly in IPA mode. |
| (ipa_pta_execute): Compute is_ipa_escape_point for globals. |
| |
| 2015-12-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/atomic.md: Add new file. |
| |
| 2015-12-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_expand_atomic_op): Prototype. |
| (arc_split_compare_and_swap): Likewise. |
| (arc_expand_compare_and_swap): Likewise. |
| * config/arc/arc.c (arc_init): Check usage atomic option. |
| (arc_pre_atomic_barrier): New function. |
| (arc_post_atomic_barrier): Likewise. |
| (emit_unlikely_jump): Likewise. |
| (arc_expand_compare_and_swap_qh): Likewise. |
| (arc_expand_compare_and_swap): Likewise. |
| (arc_split_compare_and_swap): Likewise. |
| (arc_expand_atomic_op): Likewise. |
| * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): New C macro. |
| (ASM_SPEC): Enable mlock option when matomic is used. |
| * config/arc/arc.md (UNSPEC_ARC_MEMBAR): Define. |
| (VUNSPEC_ARC_CAS): Likewise. |
| (VUNSPEC_ARC_LL): Likewise. |
| (VUNSPEC_ARC_SC): Likewise. |
| (VUNSPEC_ARC_EX): Likewise. |
| * config/arc/arc.opt (matomic): New option. |
| * config/arc/constraints.md (ATO): New constraint. |
| * config/arc/predicates.md (mem_noofs_operand): New predicate. |
| * doc/invoke.texi: Document -matomic. |
| * config/arc/atomic.md: New file. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68817 |
| * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Detect |
| gaps early. |
| |
| 2015-12-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-stmts.c (vectorizable_assignment): Support |
| useless boolean conversion. |
| |
| 2015-12-10 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * doc/install.texi: Add note against GNAT 4.8 on ARM targets. |
| |
| 2015-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68785 |
| * gimple-fold.c (fold_ctor_reference): Pass return value from |
| native_encode_expr to native_interpret_expr. |
| * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/68331 |
| * tree-ssa-structalias.c (set_uids_in_ptset): Add fndecl |
| parameter and make vars_contains_nonlocal properly have |
| function-scope semantics in IPA mode. |
| (find_what_var_points_to): Add fndecl parameter. |
| (find_what_p_points_to): Likewise. |
| (pt_solution_includes_global): Remove IPA PTA early out. |
| (compute_points_to_sets): Adjust. |
| (ipa_pta_execute): Likewise. Clear final_solutions after |
| each function. |
| |
| 2015-12-10 Tom de Vries <tom@codesourcery.com> |
| |
| PR ada/65102 |
| * doc/include/fdl.texi: Add nodefaultgnufreedocumentationlicensenode |
| ifdef to allow disabling default @node GNU Free Documentation License. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (create_function_info_for): Add missing |
| constraint from nonlocal for DECL_RESULT. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-if-conv.c: Include params.h. |
| (ifcvt_memrefs_wont_trap): Use PARAM_ALLOW_STORE_DATA_RACES |
| instead of flag_tree_loop_if_convert_stores to guard cases |
| we'd introduce store-data-races. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/68721 |
| * ipa-split.c (split_function): Record return value properly |
| when the split part doesn't set it. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68806 |
| * tree-vect-loop.c (vect_analyze_loop_2): Properly detect |
| reduction chains and ignore SLP reductions. |
| |
| 2015-12-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-if-conv.c (if_convertible_loop_p_1): Do not compute |
| dependences. |
| (if_convertible_loop_p): Adjust. |
| |
| 2015-12-10 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Remove |
| invalid assert. |
| |
| 2015-12-10 Martin Liska <mliska@suse.cz> |
| |
| * tree-vect-data-refs.c: Free an overwritten dataref. |
| |
| 2015-12-09 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/68729 |
| * config/pa/pa.c (pa_emit_move_sequence): Don't check that mode is |
| consistent with modes of the input and output operands when doing |
| reloads to and from floating point registers. Do reload for all |
| address forms. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| PR middle-end/25140 |
| * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use compare_base_decls |
| (nonoverlapping_component_refs_of_decl_p): Update sanity check. |
| (decl_refs_may_alias_p): Use compare_base_decls. |
| * alias.c: Include cgraph.h |
| (get_alias_set): Add cut-off for recursion. |
| (rtx_equal_for_memref_p): Use rtx_equal_for_memref_p. |
| (compare_base_decls): New function. |
| (base_alias_check): Likewise. |
| (memrefs_conflict_p): Likewise. |
| (nonoverlapping_memrefs_p): Likewise. |
| * alias.h (compare_base_decls): Declare. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * ipa-visibility.c (function_and_variable_visibility): Fix vtable |
| rewritting guard. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| PR middle-end/25140 |
| * ipa-reference.c (ipa_reference_get_not_read_global, |
| ipa_reference_get_not_read_global): Fix WRT aliases. |
| (is_improper): Break out from ... |
| (is_proper_for_analysis): ... here; fix WRT aliases. |
| (analyze_function, generate_summary, |
| ipa_reference_write_optimization_summary, |
| ipa_reference_read_optimization_summary): Use ipa_reference_var_uid. |
| * ipa-refrence.h (ipa_reference_var_uid): New inline. |
| * tree-ssa-alias.c: Revert my accidental previous commit. |
| (ref_maybe_used_by_call_p_1, |
| call_may_clobber_ref_p_1): Use ipa_reference_var_uid. |
| |
| 2015-12-09 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/rs6000/freebsd64.h: Remove the redefinition of WCHAR_TYPE. |
| |
| 2015-12-09 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-optimize-isl.c: Include isl/ast_build.h |
| (optimize_isl): Set several isl_options_set_* options. |
| |
| 2015-12-09 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-sese-to-poly.c (pdr_add_memory_accesses): Iterate in |
| the same order as adding data reference access functions. |
| |
| 2015-12-09 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-optimize-isl.c (optimize_isl): Improve dump message. |
| |
| 2015-12-09 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/66949 |
| * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Don't call |
| single_non_singleton_phi_for_edges to get the PHI from |
| factor_out_conditional_conversion. Use NULL_TREE instead of NULL. |
| (factor_out_conditional_conversion): Adjust declaration. Make it |
| return the newly-created PHI. |
| |
| 2015-12-09 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_cannot_change_mode_class): Bring back. |
| * config/aarch64/aarch64.c |
| (aarch64_cannot_change_mode_class): Likewise. |
| * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Likewise. |
| * config/aarch64/aarch64.md (aarch64_movdi_<mode>low): Use |
| zero_extract rather than truncate. |
| (aarch64_movdi_<mode>high): Likewise. |
| |
| 2015-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68786 |
| * tree-if-conv.c: Include builtins.h. |
| (predicate_mem_writes): Put result of get_object_alignment (ref) |
| into second argument's value. |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Put minimum |
| pointer alignment into second argument's value. |
| * tree-data-ref.c (get_references_in_stmt): Use value of second |
| argument for build_aligned_type, and only the type to build |
| a zero second argument for MEM_REF. |
| * internal-fn.c (expand_mask_load_optab_fn, |
| expand_mask_store_optab_fn): Likewise. |
| |
| 2015-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68583 |
| * tree-if-conv.c (if_convertible_phi_p): Drop |
| flag_tree_loop_if_convert_stores check in favor of the |
| existing any_mask_load_store check. |
| (insert_gimplified_predicates): Likewise. |
| (combine_blocks): Likewise. |
| (tree_if_conversion): Likewise. |
| (ifcvt_memrefs_wont_trap): Properly check |
| flag_tree_loop_if_convert_stores in all places that can end |
| up introducing store-data-races. |
| (if_convertible_gimple_assign_stmt_p): Remove restriction |
| on flag_tree_loop_if_convert_stores for stores we can if-convert |
| without introducing store-data-races. Force versioning for |
| all if-converted stores. |
| |
| 2015-12-09 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/68716 |
| * tree-ssa-structalias.c (find_func_clobbers): Fix handling of |
| BUILT_IN_GOMP_PARALLEL and BUILT_IN_GOACC_PARALLEL. |
| |
| 2015-12-09 Martin Liska <mliska@suse.cz> |
| |
| * hash-traits.h (struct typed_delete_remove): New function. |
| (typed_delete_remove ::remove): Likewise. |
| * tree-ssa-loop-ivopts.c (struct iv_common_cand): Replace |
| auto_vec with vec. |
| (record_common_cand): Replace XNEW with operator new. |
| |
| 2015-12-09 Martin Liska <mliska@suse.cz> |
| |
| * tree-if-conv.c (ifcvt_local_dce): Replace vec with auto_vec. |
| |
| 2015-12-09 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/68790 |
| * ipa-icf.c (sem_function::param_used_p): Return true |
| if ipa_node_params_sum equals to NULL. |
| |
| 2015-12-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68583 |
| * tree-if-conv.c (ifc_dr): Make flags bool, add w_unconditionally |
| flag and rename predicates to w_predicate, rw_predicate and |
| base_w_predicate. |
| (DR_WRITTEN_AT_LEAST_ONCE): Rename to ... |
| (DR_BASE_W_UNCONDITIONALLY): ... this. |
| (DR_W_UNCONDITIONALLY): Add. |
| (hash_memrefs_baserefs_and_store_DRs_read): Adjust. Compute |
| unconditionally written separately from read or written. |
| (ifcvt_memrefs_wont_trap): Properly treat reads. |
| (ifcvt_could_trap_p): Inline ... |
| (if_convertible_gimple_assign_stmt_p): ... here. Refactor |
| to avoid code duplication. |
| (if_convertible_loop_p_1): Adjust and properly initialize |
| predicates. |
| |
| 2015-12-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_load): Set new vinfo only |
| if it was not yet set. |
| * tree-vectorizer.h (set_vinfo_for_stmt): Assert we don't |
| overwrite an existing entry. |
| |
| 2015-12-09 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * c-family/c-omp.c (c_finish_oacc_wait): Remove add_stmt() call. |
| * c/c-parser.c (c_parser_oacc_wait): Add add_stmt() call. |
| * cp/parser.c (cp_parser_oacc_wait): Add finish_expr_stmt() call. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * symtab.c (symtab_node::equal_address_to): New parameter |
| MEMORY_ACCESSED. |
| * cgraph.h (symtab_node::equal_address_to): Update prototype. |
| |
| 2015-12-08 DJ Delorie <dj@redhat.com> |
| |
| * config/rx/rx.opt (-mjsr): Add. |
| * config/rx/predicates.md (rx_call_operand): Avoid overflowing |
| calls when -mjsr. |
| * config/rx/rx.c (rx_function_ok_for_sibcall): Likewise for |
| overflowing jumps. |
| * doc/invoke.texi (-mjsr): Document it. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * lto-streamer.h (lto_symtab_merge_decls, lto_symtab_merge_symbols, |
| lto_symtab_prevailing_decl): MOve to lto-symtab.h. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): Check that |
| DECL_ABSTRACT_ORIGIN is not error_mark_node. |
| |
| 2015-12-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * tree-nested.c (convert_tramp_reference_stmt): Fix indentation. |
| |
| 2015-12-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Fix |
| indentation. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * lto-cgraph.c (compute_ltrans_boundary): Add transparent alias targets |
| into the boundary. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * varpool.c (varpool_node::get_availability): Recurse only on |
| weakrefs with definition in the target. |
| (symbol_table::remove_unreferenced_decls): Keep aliases in the boundary. |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * ipa-visibility.c (can_replace_by_local_alias): Look through |
| transparent aliases; refuse weakrefs. |
| (update_visibility_by_resolution_info): Skip transparent aliases in the |
| analysis part |
| |
| 2015-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * symtab.c (symtab_node::verify_base): Fix thinko in a conditional. |
| (symtab_node::noninterposable_alias): Do not accept transparent |
| aliases. |
| |
| 2015-12-08 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (decl_chunk_size, decl_chunk_mode, |
| decl_offset, init_part, object_size, object_finished): Replace |
| with ... |
| (struct init_frag): ... this new struct variable. |
| (begin_decl_field, output_decl_chunk): Replace with ... |
| (output_init_frag): ... this new function. |
| (nvptx_assemble_value): Reimplement. |
| (nvptx_assemble_integer, nvptx_output_skip): Adjust. |
| (nvptx_assemble_decl_begin, nvptx_assemble_decl_end): Adjust. |
| (nvptx_output_aligned_decl): Call nvptx_assemble_decl_end. |
| |
| 2015-12-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/68291 |
| PR middle-end/68292 |
| * cfgexpand.c (set_rtl): Always accept mode mismatch for SSA names |
| with BLKmode promoted mode based on RESULT_DECLs. |
| |
| 2015-12-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/68701 |
| * config/i386/i386.c (ix86_option_override_internal): Enable |
| -maccumulate-outgoing-args when %ebp is fixed due to stack |
| realignment requirements. |
| |
| 2015-12-08 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/68640 |
| * omp-low.c (install_var_field): Clear the restrict qualifier on the var |
| type. |
| |
| 2015-12-08 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/sse.md (define_insn "<avx512>_vec_dup<mode>_1"): Fix |
| assembler to make source always 128bit. |
| |
| 2015-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48088 |
| PR c/68657 |
| * common.opt (Wframe-larger-than=): Add Warning. |
| * opts.h (control_warning_option): Add ARG argument. |
| * opts-common.c (cmdline_handle_error): New function. |
| (read_cmdline_option): Use it. |
| (control_warning_option): Likewise. Add ARG argument. |
| If non-NULL, decode it if needed and pass through |
| to handle_generated_option. Handle CLVC_ENUM like |
| CLVC_BOOLEAN. |
| * opts.c (common_handle_option): Adjust control_warning_option |
| caller. |
| (enable_warning_as_error): Likewise. |
| |
| 2015-12-08 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-options-extensions.def: Remove |
| AARCH64_FL_RDMA from "fp" and "simd". Remove "pan", "lor", |
| "rdma". |
| * config/aarch64/aarch64.h (AARCH64_FL_PAN): Remove. |
| (AARCH64_FL_LOR): Remove. |
| (AARCH64_FL_RDMA): Remove. |
| (AARCH64_FL_V8_1): New. |
| (AARCH64_FL_FOR_AARCH8_1): Replace AARCH64_FL_PAN, AARCH64_FL_LOR |
| and AARCH64_FL_RDMA with AARCH64_FL_V8_1. |
| (AARCH64_ISA_RDMA): Replace AARCH64_FL_RDMA with AARCH64_FL_V8_1. |
| * doc/invoke.texi (AArch64 -march): Rewrite initial paragraph and |
| section on -march=native. Group descriptions of permitted |
| architecture names together. Expand description of |
| -march=armv8.1-a. |
| (AArch64 -mtune): Slightly rework section on -march=native. |
| (AArch64 -mcpu): Slightly rework section on -march=native. |
| (AArch64 Feature Modifiers): Remove "pan", "lor" and "rdma". |
| State that -march=armv8.1-a enables "crc" and "lse". |
| |
| 2015-12-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (SPARC options): Fix typo. |
| |
| 2015-12-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust. |
| (output_probe_stack_range): Rotate the loop and simplify. |
| |
| 2015-12-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_emit_swsqrtsf): Cleanup |
| infinity filterning code. |
| |
| 2015-12-08 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR tree-optimization/68766 |
| * tree-vectorizer.c (vectorize_loops): Check for |
| if-converted loops when debug counters are used. |
| |
| 2015-12-07 DJ Delorie <dj@redhat.com> |
| |
| * config/rl78/constraints.md (Wfr): Change to be a non-memory |
| constraint. |
| * config/rl78/rl78-protos.h (rl78_one_far_p): Declare. |
| * config/rl78/rl78.c (rl78_one_far_p): Define. |
| * config/rl78/rl78-virt (movqi_virt): Fix far memory |
| alternatives. |
| (movhi_virt): Likewise. |
| (zero_extendqihi2_virt): Likewise. |
| (extendqihi2_virt): Likewise. |
| (add<mode>3_virt): Likewise. |
| (sub<mode>3_virt): Likewise. |
| (andqi3_virt): Likewise. |
| (iorqi3_virt): Likewise. |
| (xorqi3_virt): Likewise. |
| * config/rl78/rl78-real.md (bf,br): Use long forms to avoid reloc |
| overflow in large files. |
| |
| 2015-12-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/63668 |
| * doc/invoke.texi (SPARC options): Document -mstd-struct-return. |
| * config/sparc/sparc.c (sparc_struct_value_rtx): Minor tweaks. |
| * config/sparc/sparc.h (CALL_REALLY_USED_REGISTERS): Define. |
| * config/sparc/sparc.opt (mstd-struct-return): Accept negative. |
| |
| 2015-12-07 Steve Ellcey <sellcey@imgtec.com> |
| |
| * reorg.c (optimize_skip): Do not put frame related instructions |
| in annulled delay slots. |
| (steal_delay_list_from_target): Ditto. |
| (fill_slots_from_thread): Ditto. |
| |
| 2015-12-07 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/aarch64/aarch64-cores.def: Use the Exynos M1 sched model. |
| * config/aarch64/aarch64.md: Include "exynos-m1.md". |
| * config/arm/arm.md: Likewise. |
| * config/arm/exynos-m1.md: New file. |
| |
| 2015-12-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Drop flag_strict_aliasing check. |
| |
| 2015-12-07 Nathan Sidwell <nathan@acm.org> |
| |
| * config//nvptx/nvptx.c (write_return): New. |
| (write_fn_proto, nvptx_declare_function_name): Call it. |
| |
| 2015-12-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/61886 |
| * symtab.c (ultimate_transparent_alias_target): New inline function. |
| (symbol_table::assembler_names_equal_p): New method; break out from ... |
| (symbol_table::decl_assembler_name_equal): ... here. |
| (symbol_table::change_decl_assembler_name): Also update names and |
| translation links of transparent aliases. |
| (symtab_node::dump_base): Dump transparent_alias. |
| (symtab_node::verify_base): Implement basic transparent alias |
| verification. |
| (symtab_node::make_decl_local): Support localization of weakrefs; |
| recurse to transparent aliases; set TREE_STATIC. |
| (symtab_node::ultimate_alias_target_1): Handle visibility of |
| transparent aliases. |
| (symtab_node::resolve_alias): New parmaeter transparent; handle |
| transparent aliases; recurse to aliases of aliases to fix comdat |
| groups. |
| (symtab_node::get_partitioning_class): Handle transparent aliases. |
| * ipa-visibility.c (cgraph_externally_visible_p, |
| varpool_node::externally_visible_p): Visibility of transparent alias |
| depends on its target. |
| (function_and_variable_visibility): Do not tweak visibility of |
| transparent laiases. |
| (function_and_variable_visibility): Likewise. |
| * ipa.c (symbol_table::remove_unreachable_nodes): Clear |
| transparent_alias flag. |
| * alias.c (cgraph_node::create_alias, cgraph_node::get_availability): |
| Support transparent aliases. |
| * cgraph.h (symtab_node): Update prototype of resolve_alias; |
| add transparent_alias flag. |
| (symbol_table: Add assembler_names_equal_p. |
| (symtab_node::real_symbol_p): Skip transparent aliases. |
| * cgraphunit.c (cgraph_node::reset): Reset transparent_alias flag. |
| (handle_alias_pairs): Set transparent_alias for weakref. |
| (cgraph_node::assemble_thunks_and_aliases): Do not asemble transparent |
| aliases. |
| * lto-cgraph.c (lto_output_node): When outputting same_comdat_group |
| skip symbols not put into boundary; stream transparent_alias. |
| (lto_output_varpool_node): Likewise. |
| (input_overwrite_node, input_varpool_node): Stream transparent alias. |
| * varpool.c (ctor_for_folding, varpool_node::get_availability, |
| varpool_node::assemble_aliases, |
| symbol_table::remove_unreferenced_decls): Handle transparent aliase. |
| (varpool_node::create_alias): Set transparent_alias. |
| |
| 2015-12-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/68291 |
| PR middle-end/68292 |
| * cfgexpand.c (set_rtl): Always accept PARALLELs with BLKmode for |
| SSA names based on RESULT_DECLs. |
| * function.c (expand_function_start): Do not create BLKmode REGs |
| for GIMPLE registers when coalescing is enabled. |
| |
| 2015-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * final.c (shorten_branches): Fix check for basic asm. |
| * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Add check for |
| basic asm. |
| |
| 2015-12-07 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_output_call_insn): Emit trap after no |
| return call. |
| |
| 2015-12-07 David Malcolm <dmalcolm@redhat.com> |
| |
| * pretty-print.c (text_info::set_range): Rename to... |
| (text_info::set_location): ...this, converting 2nd param |
| from source_range to a location_t. |
| * pretty-print.h (text_info::set_location): Convert |
| from inline function to external definition. |
| (text_info::set_range): Delete. |
| |
| 2015-12-07 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Look inside |
| complex and vector types. Cope with packed structs. |
| |
| 2015-12-07 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/68627 |
| * config/i386/sse.md: Make 'v' alternative work on 'avx512f' ISA only. |
| Force destination to 512 bits register. |
| |
| 2015-12-07 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/68633 |
| * config/i386/sse.md (define_insn "kunpckhi"): Fix operands order. |
| (define_insn "kunpcksi"): Ditto. |
| (define_insn "kunpckdi"): Ditto. |
| |
| 2015-12-06 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.md (rsqrtsf2): Adjust for canonical form with unspec. |
| |
| 2015-12-06 Victoria Stepanyan <victoria.stepanyan@amd.com> |
| |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_CLZERO_SET): New. |
| (ix86_handle_option): Handle clzero. |
| * config.gcc (i[34567]86-*-*): Add clzerointrin.h, |
| (x86_64-*-*): Likewise. |
| * config/i386/clzerointrin.h: New header. |
| * config/i386/cpuid.h (bit_CLZERO): Define. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| CLZERO support. |
| * config/i386/i386.opt (clzero): New. |
| * config/i386/i386-c.c: Define __CLZERO__ if needed. |
| * config/i386/i386.c (ix86_target_string): Define -mclzero option. |
| (PTA_CLZERO): New. |
| (ix86_option_override_internal): Handle new option. |
| (processor_alias_table): Added PTA_CLZERO. |
| (ix86_valid_target_attribute_inner_p): Add OPT_mclzero. |
| (ix86_builtins): Add IX86_BUILTIN_CLZERO, IX86_BUILTIN_CLZERO. |
| (ix86_expand_builtin): Handle IX86_BUILTIN_CLZERO and |
| IX86_BUILTIN_CLZERO built-ins. |
| * config/i386/i386.h (TARGET_CLZERO): New. |
| * config/i386/i386.md (unspecv): Add UNSPEC_CLZERO. |
| (clzero): New pattern. |
| (clzero_<mode>): New pattern. |
| * config/i386/x86intrin.h: Include clzerointrin.h. |
| * doc/extend.texi: Document clzero builtins. |
| * doc/invoke.texi: Document -mclzero option. |
| |
| 2015-12-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-icf.c (sem_function::merge): Check that local_original exists. |
| |
| 2015-12-05 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/68609 |
| * config/rs6000/rs6000-protos.h (rs6000_emit_swsqrt): Rename and add |
| bool arguement. |
| * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Rename. Add |
| non-reciporcal path. |
| * config/rs6000/rs6000.md (rsqrt<mode>2): Call new function name. |
| (sqrt<mode>2): Replace define_insn with define_expand that may call |
| rs6000_emit_swsqrt. |
| |
| 2015-12-04 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): |
| Improve debug. |
| (get_rename_from_scev): Check that all the ops in an expression |
| have their uses dominated by corresponding defs. |
| |
| 2015-12-04 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68693 |
| * graphite-scop-detection.c (dot_all_sese): New |
| (dot_all_scops_1): Renamed to dot_all_sese. |
| (dot_all_scops): Removed. |
| (dot_sese): New. |
| (dot_cfg): New. |
| (scop_detection::get_nearest_dom_with_single_entry): Check that |
| preds are from different loop levels. |
| (scop_detection::get_nearest_pdom_with_single_exit): Check that |
| succs are from different loop levels. |
| (scop_detection::print_sese): Inlined. |
| (scop_detection::print_edge): New. |
| (scop_detection::merge_sese): Added dumps. |
| * graphite.h: Add declarations. |
| |
| 2015-12-04 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (add<mode>3_pluslong): Add register |
| constraints. |
| |
| 2015-12-04 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/68349 |
| * lra-eliminations.c (move_plus_up): New function. |
| (lra_eliminate_regs_1): Use the function. |
| |
| 2015-12-04 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New, replacing ... |
| (init_output_initializer): ... this. |
| (nvptx_output_aligned_decl, nvptx_asm_declare_constant_name, |
| nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use |
| nvptx_assemble_decl_begin. |
| |
| 2015-12-04 Dmitry Vyukov <dvyukov@google.com> |
| |
| * sancov.c: New file. |
| * Makefile.in (OBJS): Add sancov.o. |
| * invoke.texi (-fsanitize-coverage=trace-pc): Describe. |
| * passes.def (sancov_pass): Add. |
| * tree-pass.h (sancov_pass): Add. |
| * common.opt (-fsanitize-coverage=trace-pc): Add. |
| * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_PC): Add. |
| * builtins.def (DEF_SANITIZER_BUILTIN): Enable for |
| flag_sanitize_coverage. |
| |
| 2015-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/65958 |
| * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. |
| (unspecv): Add VUNSPEC_PROBE_STACK_RANGE. |
| * config/arm/arm.md (probe_stack_range): Adjust. |
| * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. |
| (unspecv): Add UNSPECV_PROBE_STACK_RANGE. |
| (probe_stack_range_<PTR:mode>): Adjust. |
| |
| 2015-12-04 David Malcolm <dmalcolm@redhat.com> |
| |
| * convert.c (convert_to_real_1): When converting from a |
| REAL_TYPE, preserve the location of EXPR in the result. |
| * tree.c (get_pure_location): Make non-static. |
| (set_source_range): Return the resulting location_t. |
| (make_location): New function. |
| * tree.h (get_pure_location): New decl. |
| (get_finish): New inline function. |
| (set_source_range): Convert return type from void to location_t. |
| (make_location): New decl. |
| |
| 2015-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/68656 |
| * toplev.c (init_asm_output): Pass UNKNOWN_LOCATION instead of |
| input_location to inform. |
| (process_options): Use warning_at (UNKNOWN_LOCATION instead of |
| warning ( and error_at (UNKNOWN_LOCATION instead of error (. |
| Pass UNKNOWN_LOCATION instead of input_location to fatal_error. |
| |
| 2015-12-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (can_inline_edge_p) Use merged_comdat. |
| * cgraphclones.c (cgraph_node::create_clone): Use merged_comdat. |
| * cgraph.c (cgraph_node::dump): Dump merged_comdat. |
| * ipa-icf.c (sem_function::merge): Drop merged_comdat when merging |
| comdat and non-comdat. |
| * cgraph.h (cgraph_node): Rename merged to merged_comdat. |
| * ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat |
| and icf_merged. |
| |
| 2015-12-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (cstore<mode>4_unsigned): Use gpc_reg_operand |
| instead of register_operand. Remove empty constraints. Use std::swap. |
| (cstore_si_as_di, cstore<mode>4_signed_imm, |
| cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use |
| gpc_reg_operand instead of register_operand. |
| (cstore<mode>4 for FP): Use gpc_reg_operand instead of |
| register_operand. Remove empty constraints. |
| |
| 2015-12-04 Nick Clifton <nickc@redhat.com> |
| |
| * config.gcc (extra_gcc_objs): Define for MSP430. |
| * common/config/msp430/msp430-common.c (msp430_handle_option): |
| Pass both -mmcu and -mcpu on to the back end if they are both defined. |
| * config/msp430/msp430.c (hwmult_name): New function. |
| (msp430_option_override): If an unrecognised MCU name is |
| detected only warn if the user has not provided suitable |
| -mhwmult and -mcpu options. Use msp430_warn_mcu to control |
| warning messages. Generate warnings about conflicts between |
| -mmcu and -mcpu and -mhwmult options. |
| If neither -mcpu nor -mmcu have been specified but -mhwmult= |
| f5series has the select the 430X isa. |
| (msp430_no_hwmult): If -mmcu has not been specified and |
| msp430_hwmult_type is AUTO then return true. |
| * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define. |
| (LIB_SPEC): Add hardware multiply library selection. |
| * config/msp430/t-msp430: Delete hardware multiply multilibs. |
| Add rule to build driver-msp430.o |
| * config/msp430/driver-msp430.c: New file. |
| * config/msp430/msp430.opt (warn-mcu): New option. |
| * doc/invoke.texi: Update description of -mhwmult=auto. |
| Document -mwarn-mcu option. |
| |
| 2015-12-04 Segher Boessenkool <segher&kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (cstore<mode>4_signed): New expander. |
| (cstore<mode>4): Call it. |
| |
| 2015-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs. |
| |
| PR tree-optimization/68680 |
| * calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for |
| BUILT_IN_ALLOCA{,_WITH_ALIGN}. Don't check for __builtin_alloca |
| by name. |
| |
| PR tree-optimization/68671 |
| * tree-ssa-reassoc.c (maybe_optimize_range_tests): For basic |
| blocks starting with the successor of first bb we've modified |
| and ending with last_bb call reset_flow_sensitive_info_in_bb. |
| |
| 2015-12-04 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean |
| indicating if a gimple conditional was optimized to true/false. |
| (reassociate_bb): Bubble up return value from |
| maybe_optimize_range_tests. |
| (do_reassoc): Similarly, but for reassociate_bb. |
| (execute_reassoc): Return TODO_cleanup_cfg as needed. |
| |
| 2015-12-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Do not alter target_flags due to TARGET_GENERAL_REGS_ONLY_P. |
| * doc/invoke.texi (AArch64 options): Mention that -mgeneral-regs-only |
| does not affect the assembler directives. |
| |
| 2015-12-04 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_asm_file_start): Implement hook function to |
| emit .machine and .machinemode to the top of the assembler file. |
| (TARGET_ASM_FILE_START): Provide target hook. |
| (s390_asm_output_machine_for_arch): Protect with |
| HAVE_AS_MACHINE_MACHINEMODE instead of S390_USE_TARGET_ATTRIBUTE. |
| |
| 2015-12-04 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.opt (s390_arch_string): Remove. |
| (s390_tune_string): Likewise. |
| (s390_cost_pointer): Add Variable. |
| (s390_tune_flags): Add TargetVariable. |
| (s390_arch_flags, march=, mbackchain, mdebug, mesa, mhard-dfp), |
| (mhard-float, mlong-double-128, mlong-double-64, mhtm, mvx), |
| (mpacked-stack, msmall-exec, msoft-float, mstack-guard=, mstack-size=), |
| (mtune=, mmvcle, mzvector, mzarch, mbranch-cost=, mwarn-dynamicstack), |
| (mwarn-framesize=): Save option. |
| (mno-stack-guard, mno-stack-guard): New option. |
| (mwarn-dynamicstack): Allow mno-warn-dynamicstack. |
| (mwarn-framesize=): Convert to UInteger (negative values are rejected |
| now). |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Split setting |
| macros changeable through the GCC target pragma into a separate |
| function. |
| (s390_cpu_cpp_builtins): Likewise. |
| (s390_pragma_target_parse): New function, implement GCC target pragma |
| if enabled. |
| (s390_register_target_pragmas): Register s390_pragma_target_parse if |
| available. |
| * common/config/s390/s390-common.c (s390_handle_option): |
| Export. |
| Move setting s390_arch_flags to s390.c. |
| Remove s390_tune_flags. |
| Allow 0 as argument to -mstack-size (switch to default value). |
| Allow 0 as argument to -mstack-guard (switch off). |
| Remove now unnecessary explicit parsing code for -mwarn-framesize. |
| * config/s390/s390-protos.h (s390_handle_option): Export. |
| (s390_valid_target_attribute_tree): Export. |
| (s390_reset_previous_fndecl): Export. |
| * config/s390/s390-builtins.def: Use new macro B_GROUP to mark the start |
| and end of HTM and VX builtins. |
| (s390_asm_output_function_prefix): Declare hook. |
| (s390_asm_declare_function_size): Likewise. |
| * config/s390/s390-builtins.h (B_GROUP): Use macro. |
| * config/s390/s390-opts.h: Add comment about processor_type usage. |
| * config/s390/s390.h (TARGET_CPU_IEEE_FLOAT_P, TARGET_CPU_ZARCH_P), |
| (TARGET_CPU_LONG_DISPLACEMENT_P, TARGET_CPU_EXTIMM_P, TARGET_CPU_DFP_P), |
| (TARGET_CPU_Z10_P, TARGET_CPU_Z196_P, TARGET_CPU_ZEC12_P), |
| (TARGET_CPU_HTM_P, TARGET_CPU_Z13_P, TARGET_CPU_VX_P), |
| (TARGET_HARD_FLOAT_P, TARGET_LONG_DISPLACEMENT_P, TARGET_EXTIMM_P), |
| (TARGET_DFP_P, TARGET_Z10_P, TARGET_Z196_P, TARGET_ZEC12_P), |
| (TARGET_HTM_P, TARGET_Z13_P, TARGET_VX_P, TARGET_CPU_EXTIMM), |
| (TARGET_CPU_DFP, TARGET_CPU_Z10, TARGET_CPU_Z196, TARGET_CPU_ZEC12), |
| (TARGET_CPU_HTM, TARGET_CPU_Z13, TARGET_LONG_DISPLACEMENT), |
| (TARGET_EXTIMM, TARGET_DFP, TARGET_Z10, TARGET_Z196, TARGET_ZEC12), |
| (TARGET_Z13, TARGET_VX, S390_USE_TARGET_ATTRIBUTE), |
| (S390_USE_ARCHITECTURE_MODIFIERS, SWITCHABLE_TARGET), |
| (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_FUNCTION_PREFIX): Likewise. |
| * config/s390/vecintrin.h: Use vector definitions even if __VEC__ is |
| undefined. |
| (vec_all_nan): Rewrite as macro using statement expressions to avoid |
| that the vector keyword needs to be defined when including the file. |
| (vec_all_numeric): Likewise. |
| (vec_any_nan): Likewise. |
| (vec_any_numeric): Likewise. |
| * config/s390/s390.c (s390_previous_fndecl): New static variable. |
| (s390_set_current_function): New function. |
| (s390_cost): Wrapper macro to allow defining the cost table pointer in |
| the options file. |
| (processor_table): Table for march= and mtune= parsing. |
| (s390_init_builtins): Enable all builtins and types unconditionally. |
| (s390_expand_builtin): Generate an error message if builtin is not |
| supported by current options. |
| Correct an error message. |
| (s390_function_specific_restore): New function to set s390_cost. |
| (s390_asm_output_machine_for_arch): New function for emitting .machine |
| and .machinmode directives to the assembler file. |
| (s390_asm_output_function_prefix): Likewise. |
| (s390_asm_declare_function_size): Likewise. |
| (s390_asm_output_function_label): Add mdebug output for feature testing. |
| (s390_option_override): Move implementation into internal function. |
| (s390_option_override_internal): Likewise. |
| Implement option overriding based on current options. |
| (s390_valid_target_attribute_inner_p): New function implementing target |
| attribute logic. |
| (s390_valid_target_attribute_tree): Likewise. |
| (s390_valid_target_attribute_p): Likewise. |
| (s390_reset_previous_fndecl): Likewise. |
| (s390_set_current_function): Likewise. |
| (TARGET_SET_CURRENT_FUNCTION): Provide target hook function. |
| (TARGET_OPTION_VALID_ATTRIBUTE_P): Likewise. |
| (TARGET_OPTION_RESTORE): Likewise. |
| * doc/extend.texi: S390: Document target attribute and pragma. |
| * config.in: Regenerated. |
| * configure: Regenerated. |
| * configure.ac: S390: Check for .machinemode and .machine in gas. |
| S390: Check for architecture modifiers support in gas. |
| |
| 2015-12-04 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * doc/extend.texi ("simd"): Describe new flags. |
| |
| 2015-12-04 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * config/i386/sse.md (<avx512>_store<mode>_mask): Fix |
| operand checked for alignment. |
| |
| 2015-12-04 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (write_one_arg): Deal with prologue |
| emission too. Change 'no_arg_types' to 'prototyped'. |
| (write_fn_proto): Use write_one_arg for stdarg, static chain & |
| main. |
| (nvptx_declare_function_name): Use write_one_arg for prologue copies. |
| |
| 2015-12-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (sccvn_dom_walker): Add unreachable_dom |
| member and initialize it. |
| (sccvn_dom_walker::after_dom_children): Reset unreachable_dom |
| if necessary. |
| (sccvn_dom_walker::before_dom_children): If unreachable_dom |
| is set BB is not reachable either. Set unreachable_dom |
| if not set and BB is unreachable. |
| |
| 2015-12-04 Richard Biener <rguenther@suse.de> |
| |
| * bitmap.c (bitmap_find_bit): Guard the bitmap descriptor |
| query with GATHER_STATISTICS. |
| |
| 2015-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/65958 |
| * gimplify.c (struct gimplify_ctx): Turn boolean fields into 1-bit |
| fields, add keep_stack and reorder them. |
| (gimplify_bind_expr): Save gimplify_ctxp->keep_stack on entry then |
| set it to false. Do not insert a stack save/restore pair if it has |
| been set to true by the gimplification of the statements. |
| Restore it to the saved value on exit if it is still false. |
| (gimplify_vla_decl): Do not set gimplify_ctxp->save_stack here. |
| (gimplify_call_expr) <BUILT_IN_ALLOCA[_WITH_ALIGN]>: New case. Set |
| either save_stack or keep_stack depending on CALL_ALLOCA_FOR_VAR_P. |
| * doc/extend.texi (Variable Length): Document new behavior. |
| * doc/generic.texi (Blocks): Document new handling of VLAs. |
| |
| 2015-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| Tristan Gingold <gingold@adacore.com> |
| |
| PR middle-end/65958 |
| * config/aarch64/aarch64-protos.h (aarch64_output_probe_stack-range): |
| Declare. |
| * config/aarch64/aarch64.md: Declare UNSPECV_BLOCKAGE and |
| UNSPEC_PROBE_STACK_RANGE. |
| (blockage): New instruction. |
| (probe_stack_range_<PTR:mode>): Likewise. |
| * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): New |
| function. |
| (aarch64_output_probe_stack_range): Likewise. |
| (aarch64_expand_prologue): Invoke aarch64_emit_probe_stack_range if |
| static builtin stack checking is enabled. |
| * config/aarch64/aarch64-linux.h (STACK_CHECK_STATIC_BUILTIN): |
| Define to 1. |
| |
| 2015-12-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68214 |
| * config/arm/arm.md (*call_mem): Delete pattern. |
| (*call_value_mem): Likewise. |
| * config/arm/arm.c (output_call_mem): Delete. |
| * config/arm/arm-protos.h (output_call_mem): Delete prototype. |
| |
| 2015-12-04 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/aarch64/atomics.md (atomic_store<mode>): Use predicate |
| aarch64_sync_memory_operand. |
| |
| 2015-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/68655 |
| * config/i386/i386.c (canonicalize_vector_int_perm): New function. |
| (expand_vec_perm_1): Use it and recurse if everything else |
| failed. Use nd.perm instead of perm2. |
| (expand_vec_perm_even_odd_1): If testing_p, use gen_raw_REG |
| instead of gen_lowpart for the target. |
| (ix86_expand_vec_perm_const_1): Use canonicalize_vector_int_perm |
| and recurse if everything else failed. |
| |
| 2015-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68636 |
| * builtins.c (get_pointer_alignment_1): Take care of byte to |
| bit alignment computation overflow. |
| |
| 2015-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67438 |
| * match.pd: Guard ~X cmp ~Y -> Y cmp X and the variant with |
| a constant with single_use. |
| |
| 2015-12-04 Bin Cheng <bin.cheng@arm.com> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_legitimize_address): legitimize |
| address expressions like Ra + Rb + CONST and Ra + Rb<<SCALE + CONST. |
| |
| 2015-12-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * alias.c (alias_set_subset_of, alias_sets_must_conflict_p): |
| Add short circuit for !flag_strict_aliasing |
| (get_alias_set): Remove flag_strict_aliasing check. |
| (new_alias_set): Likewise. |
| |
| 2015-12-03 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model. |
| * config/aarch64/aarch64.c (exynosm1_addrcost_table): New variable. |
| (exynosm1_regmove_cost): Likewise. |
| (exynosm1_vector_cost): Likewise. |
| (exynosm1_tunings): Likewise. |
| * config/arm/aarch-cost-tables.h (exynosm1_extra_costs): Likewise. |
| * config/arm/arm.c (arm_exynos_m1_tune): Likewise. |
| |
| 2015-12-03 Alan Lawrence <alan.lawrence@arm.com> |
| Richard Biener <richard.guenther@gmail.com> |
| |
| * cfgexpand.c (pass_expand::execute): Replace call to |
| redirect_edge_var_map_destroy with redirect_edge_var_map_empty. |
| * tree-ssa.c (delete_tree_ssa): Likewise. |
| * function.c (set_cfun): Call redirect_edge_var_map_empty. |
| * passes.c (execute_one_ipa_transform_pass, execute_one_pass): Likewise. |
| * tree-ssa.h (redirect_edge_var_map_destroy): Remove. |
| (redirect_edge_var_map_empty): New. |
| * tree-ssa.c (redirect_edge_var_map_destroy): Remove. |
| (redirect_edge_var_map_empty): New. |
| |
| 2015-12-03 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/68599 |
| * loop-init.c (rtl_loop_init): Set LOOPS_HAVE_RECORDED_EXITS |
| in call to loop_optimizer_init. |
| * loop-iv.c (get_simple_loop_desc): Only allow unsafe loop |
| optimization to drop the assumptions/infinite notations if |
| the loop has a single exit. |
| |
| 2015-12-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi (vec_load_lanes@var{m}@var{n}): Document that |
| the pattern cannot FAIL. |
| (vec_store_lanes@var{m}@var{n}): Likewise. |
| (maskload@var{m}@var{n}): Likewise. |
| (maskstore@var{m}@var{n}): Likewise. Fix a cut-&-paste error |
| in the name of the pattern. |
| (rsqrt@var{m}2): Document that mode m must be a scalar or vector |
| floating-point mode and that all operands have that mode. |
| (fmin@var{m}3, fmax@var{m}3): Likewise. Document that the |
| pattern cannot FAIL. |
| (sqrt@var{m}2): Document that mode m must be a scalar or vector |
| floating-point mode, that all operands have that mode, and that |
| the patterns cannot FAIL. Remove previous documentation referring |
| to @code{double} and @code{float}. |
| (fmod@var{m}3, remainder@var{m}3, cos@var{m}2, sin@var{m}2) |
| (sincos@var{m}3, log@var{m}2, pow@var{m}3, atan2@var{m}3) |
| (copysign@var{m}3): Likewise. |
| (exp@var{m}2): Likewise. Explicitly state the base. |
| (floor@var{m}2): As for sqrt@var{m}2, but also specify the operands. |
| (btrunc@var{m}2, rint@var{m}2): Likewise. |
| (round@var{m}2): Likewise. Fix incorrect description of rounding |
| effect. |
| (ceil@var{m}2): As for round@var{m}2. |
| (nearbyint@var{m}2): As for floor@var{m}2, but also mention that |
| the instruction must not raise an inexact condition. |
| (scalb@var{m}3): Document previously-undocumented pattern |
| (ldexp@var{m}3, tan@var{m}2, asin@var{m}2, acos@var{m}2) |
| (atan@var{m}2, expm1@var{m}2, exp10@var{m}2, exp2@var{m}2) |
| (log1p@var{m}2, log10@var{m}2, log2@var{m}2, logb@var{m}2) |
| (significand@var{m}2): Likewise. |
| (ffs@var{m}2): Fix the description of the modes, so that operand 1 has |
| mode m and operand 0 is defined more freely. Document that @var{m} |
| can be a scalar or vector integer mode and that the pattern is not |
| allowed to FAIL. |
| (clz@var{m}2, ctz@var{m}2, popcount@var{m}2, parity@var{m}2): Likewise. |
| (clrsb@var{m}2): Likewise, except that the description of the |
| mode was missing in this case. |
| |
| 2015-12-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.def (RSQRT): New function. |
| * optabs.def (rsqrt_optab): New optab. |
| * doc/md.texi (rsqrtM2): Document. |
| * target.def (builtin_reciprocal): Replace gcall argument with |
| a function decl. Restrict hook to machine functions. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_builtin_reciprocal): Update prototype. |
| * targhooks.c (default_builtin_reciprocal): Likewise. |
| * tree-ssa-math-opts.c: Include internal-fn.h. |
| (internal_fn_reciprocal): New function. |
| (pass_cse_reciprocals::execute): Call it, and build a call to an |
| internal function on success. Only call targetm.builtin_reciprocal |
| for machine functions. |
| * config/aarch64/aarch64-protos.h (aarch64_builtin_rsqrt): Remove |
| second argument. |
| * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin_rsqrt): |
| Rename aarch64_rsqrt_<mode>2 to rsqrt<mode>2. |
| (aarch64_builtin_rsqrt): Remove md_fn argument and only handle |
| machine functions. |
| * config/aarch64/aarch64.c (use_rsqrt_p): New function. |
| (aarch64_builtin_reciprocal): Replace gcall argument with a |
| function decl. Use use_rsqrt_p. Remove optimize_size check. |
| Only handle machine functions. Update call to aarch64_builtin_rsqrt. |
| (aarch64_optab_supported_p): New function. |
| (TARGET_OPTAB_SUPPORTED_P): Define. |
| * config/aarch64/aarch64-simd.md (aarch64_rsqrt_<mode>2): Rename to... |
| (rsqrt<mode>2): ...this. |
| * config/i386/i386.c (use_rsqrt_p): New function. |
| (ix86_builtin_reciprocal): Replace gcall argument with a |
| function decl. Use use_rsqrt_p. Remove optimize_insn_for_size_p |
| check. Only handle machine functions. |
| (ix86_optab_supported_p): Handle rsqrt_optab. |
| * config/rs6000/rs6000.c (TARGET_OPTAB_SUPPORTED_P): Define. |
| (rs6000_builtin_reciprocal): Replace gcall argument with a |
| function decl. Remove optimize_insn_for_size_p check. |
| Only handle machine functions. |
| (rs6000_optab_supported_p): New function. |
| |
| 2015-12-03 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR target/68471 |
| PR target/68472 |
| * config/i386/i386.c (ix86_mitigate_rop): Don't call |
| compute_bb_for_insn again. Call df_insn_rescan_all. |
| * config/i386/i386.md (set_got_rex64): Override modrm_class. |
| |
| * regrename.c (build_def_use): Ignore stack regs if regstack_completed. |
| |
| 2015-12-03 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h (npvptx_section_from_addr_space): Delete. |
| * config/nvptx/nvptx.c (enum nvptx_data_area): New. |
| (SYMBOL_DATA_AREA, SET_SYMBOL_DATA_AREA): New defines. |
| (nvptx_option_override): Set data ares for worker vars. |
| (nvptx_addr_space_from_sym): Delete. |
| (nvptx_encode_section_info): New. |
| (section_for_sym, section_for_decl): New. |
| (nvptx_maybe_convert_symbolic_operand): Get data area from symbol flags. |
| (nvptx_section_from_addr_space): Delete. |
| (nvptx_section_for_decl): Delete. |
| (nvptx_output_aligned, nvptx_declare_object_name, |
| nvptx_assemble_undefined_decl): Use section_for_decl, remove |
| unnecessary checks. |
| (nvptx_print_operand): Add 'D', adjust 'A'. |
| (nvptx_expand_worker_addr): Adjust unspec generation. |
| (TARGET_ENCODE_SECTION_INFO): Override. |
| * config/nvptx/nvptx.h (ADDR_SPACE_GLOBAL, ADDR_SPACE_SHARED, |
| ADDR_SPACE_CONST, ADDR_SPACE_LOCAL, ADDR_SPACE_PARAM): Delete. |
| * config/nvptx/nvptx.md (UNSPEC_FROM_GLOBAL, UNSPEC_FROM_LOCAL, |
| UNSPEC_FROM_PARAM, UNSPEC_FROM_SHARED, UNSPEC_FROM_CONST, |
| UNSPEC_TO_GLOBAL, UNSPEC_TO_LOCAL, UNSPEC_TO_PARAM, |
| UNSPEC_TO_SHARED, UNSPEC_TO_CONST): Delete. |
| (UNSPEC_TO_GENERIC): New. |
| (nvptx_register_or_symbolic_operand): Delete. |
| (cvt_code, cvt_name, cvt_str): Delete. |
| (convaddr_<cvt_name><mode> [P]): Delete. |
| (convaddr_<mode> [P]): New. |
| |
| 2015-12-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68624 |
| * ifcvt.c (noce_try_cmove_arith): Check clobbers of temp regs in both |
| blocks if they exist and simplify the logic choosing the order to emit |
| them in. |
| |
| 2015-12-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66051 |
| * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction |
| on load group size. Do not pass in vectorization_factor. |
| (vect_transform_slp_perm_load): Do not require any permute support. |
| (vect_build_slp_tree): Do not pass in vectorization factor. |
| (vect_analyze_slp_instance): Do not compute vectorization |
| factor estimate. Use vector size instead of vectorization factor |
| estimate to split store groups for BB vectorization. |
| |
| 2015-12-03 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * cfgexpand.c (expand_gimple_stmt_1): Return statement with |
| DECL as return value is allowed to have NULL bounds. |
| |
| 2015-12-03 Tom de Vries <tom@codesourcery.com> |
| |
| * graphite-isl-ast-to-gimple.c (binary_op_to_tree) |
| (gcc_expression_from_isl_expr_op): Guard isl_ast_op_zdiv_r usage with |
| HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS. |
| |
| 2015-12-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67800 |
| PR tree-optimization/68333 |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Restore |
| restriction to reduction contexts but allow SLP reductions as well. |
| (vect_recog_sad_pattern): Likewise. |
| (vect_recog_widen_sum_pattern): Likewise. |
| |
| 2015-12-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68639 |
| * tree-vect-data-refs.c (dr_group_sort_cmp): Split groups |
| belonging to different loops. |
| (vect_analyze_data_ref_accesses): Likewise. |
| |
| 2015-12-02 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/sse.md (define_insn "vec_extract_hi_<mode>_maskm"): |
| Remove "prefix_extra". |
| (define_insn "vec_extract_hi_<mode>_mask"): New. |
| (define_insn "vec_extract_hi_<mode>"): Remove masking. |
| |
| 2015-12-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-pure-const.c (ignore_edge_for_pure_const): New function. |
| (propagate_pure_const): Use it; fix comments and optimize loops. |
| |
| 2015-12-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-pure-const.c (ignore_edge): Rename to ... |
| (ignore_edge_for_nothrow) ... this one; also ignore eges to |
| interposable functions or ones that can not throw. |
| (propagate_nothrow): Fix handling of availability. |
| |
| 2015-12-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/68184 |
| * cgraphunit.c (cgraph_node::analyze): Set can_throw_external. |
| |
| 2015-12-02 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle |
| isl_ast_op_zdiv_r. |
| (gcc_expression_from_isl_expr_op): Same. |
| |
| 2015-12-02 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check |
| that insertion point is still in the region. |
| |
| 2015-12-02 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68550 |
| * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump. |
| (copy_bb_and_scalar_dependences): Do not code generate loop peeled |
| statements. |
| |
| 2015-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * configure.ac: Check assembler support for R_PPC64_ENTRY relocation. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New |
| function. |
| (rs6000_output_function_prologue): Use it instead of checking |
| cfun->machine->r2_setup_needed. Use internal labels instead of |
| GNU as local label extension. Handle ELFv2 large code model. |
| (rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed. |
| (rs6000_elf_declare_function_name): Handle ELFv2 large code model. |
| |
| 2015-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/68647 |
| * optabs.c (expand_doubleword_popcount, expand_doubleword_parity): |
| New functions. |
| (expand_unop): Use them. |
| |
| 2015-12-02 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/68653 |
| * tree.c (nonnull_arg_p): Allow OFFSET_TYPE. |
| |
| 2015-12-02 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New. Absorb |
| SHUFFLE defines. |
| (nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust. |
| |
| 2015-12-02 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c (scop_get_reads): Add extra dumps. |
| (scop_get_must_writes): Same. |
| (scop_get_may_writes): Same. |
| (compute_deps): Same. |
| * graphite-sese-to-poly.c (bounds_are_valid): New. |
| (pdr_add_data_dimensions): Call bounds_are_valid. |
| |
| 2015-12-02 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize. |
| * graphite-poly.c (apply_poly_transforms): Same. |
| * graphite.c (gate_graphite_transforms): Same. |
| * toplev.c (process_options): Same. |
| |
| 2015-12-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/mips/mips.c (mips_emit_probe_stack_range): Adjust. |
| (mips_output_probe_stack_range): Rotate the loop and simplify. |
| |
| 2015-12-02 David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64.md: New pattern. |
| * config/aarch64/aarch64-simd.md: Likewise. |
| * config/aarch64/iterators.md: New unspecs, iterators. |
| |
| 2015-12-02 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (dwar2out_var_location): In addition to notes, |
| process indirect calls whose target is compile-time known. |
| Enhance pattern matching to get the SYMBOL_REF they embed. |
| (gen_subprogram_die): Handle such calls. |
| * final.c (final_scan_insn): For call instructions, invoke the |
| var_location debug hook only after the call has been emitted. |
| |
| 2015-12-02 Tom de Vries <tom@codesourcery.com> |
| |
| * gimplify.c (enum gimplify_omp_var_data): Add enum value |
| GOVD_MAP_FORCE. |
| (oacc_default_clause): Fix default for scalars in oacc kernels. |
| (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_FORCE. |
| |
| 2015-12-02 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-low.c (install_var_field, scan_sharing_clauses): Add and handle |
| parameter base_pointers_restrict. |
| (omp_target_base_pointers_restrict_p): New function. |
| (scan_omp_target): Call scan_sharing_clauses with |
| base_pointers_restrict arg. |
| |
| 2015-12-02 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_output_mov_insn): Declare. |
| (nvptx_underlying_object_mode): Delete. |
| * config/nvptx/nvptx.c (nvptx_underlying_object_mode): Delete. |
| (output_reg): New. |
| (nvptx_declare_function_name): Use output_reg. Remove punning buffer. |
| (nvptx_output_mov_insn): New. |
| (nvptx_print_operand): Separate SUBREG handling, remove 'f' case, |
| Use output_reg. Merge 't' and 'u' handling. |
| * config/nvptx/nvptx.h (NVPTX_PUNNING_BUFFER_REGNUM): Delete. |
| (struct machine_function): Remvoe punning_buffer_size. |
| (REGISTER_NAMES): Remove %punbuffer. |
| * config/nvptx/nvptx.md (UNSPEC_CPLX_LOWPART, |
| UNSPEC_CPLX_HIGHPART): Delete. |
| (*mov<mode>_insn [QHSDIM): Remove unnecessary constraints, use |
| nvptx_output_mov_insn. |
| (*mov<mode>_insn [SDFM): Reorder constraints to match integer moc. |
| Use nvptx_output_mov_insn. |
| (highpartscsf2, set_highpartscsf2, lowpartscsf2, set_lowpartscsf2): |
| Delete. |
| (mov<mode> [SDCM]): Delete. |
| |
| 2015-12-02 Richard Biener <rguenther@suse.de> |
| |
| * tree.h (tree_invariant_p): Declare. |
| * tree.c (tree_invariant_p): Export. |
| * genmatch.c (dt_simplify::gen_1): For GENERIC code-gen never |
| create SAVE_EXPRs but reject patterns if we would need to. |
| |
| 2015-12-02 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call) |
| (find_func_clobbers, ipa_pta_execute): Handle BUILT_IN_GOACC_PARALLEL. |
| |
| 2015-12-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (cstore_si_as_di): New expander. |
| (cstore<mode>4): Use it. |
| |
| 2015-12-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68625 |
| * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not call |
| cleanup_control_flow_bb. |
| (cleanup_tree_cfg_1): First perform cleanup_control_flow_bb |
| on all BBs, then cleanup_tree_cfg_bb and finally iterate |
| over the worklist doing both. |
| |
| 2015-12-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/68432 |
| * coretypes.h (optimization_type): New enum. |
| * doc/tm.texi.in (TARGET_OPTAB_SUPPORTED_P): New hook. |
| * doc/tm.texi: Regenerate. |
| * target.def (optab_supported_p): New hook. |
| * targhooks.h (default_optab_supported_p): Declare. |
| * targhooks.c (default_optab_supported_p): New function. |
| * predict.h (function_optimization_type): Declare. |
| (bb_optimization_type): Likewise. |
| * predict.c (function_optimization_type): New function. |
| (bb_optimization_type): Likewise. |
| * optabs-query.h (convert_optab_handler): Define an overload |
| that takes an optimization type. |
| (direct_optab_handler): Likewise. |
| * optabs-query.c (convert_optab_handler): Likewise. |
| (direct_optab_handler): Likewise. |
| * internal-fn.h (direct_internal_fn_supported_p): Take an |
| optimization_type argument. |
| * internal-fn.c (direct_optab_supported_p): Likewise. |
| (multi_vector_optab_supported_p): Likewise. |
| (direct_internal_fn_supported_p): Likewise. |
| * builtins.c (replacement_internal_fn): Update call to |
| direct_internal_fn_supported_p. |
| * gimple-match-head.c (build_call_internal): Likewise. |
| * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. |
| * tree-vect-stmts.c (vectorizable_internal_function): Likewise. |
| * tree.c (maybe_build_call_expr_loc): Likewise. |
| * config/i386/i386.c (ix86_optab_supported_p): New function. |
| (TARGET_OPTAB_SUPPORTED_P): Define. |
| * config/i386/i386.md (asinxf2): Remove optimize_insn_for_size_p check. |
| (asin<mode>2, acosxf2, acos<mode>2, log1pxf2, log1p<mode>2) |
| (expNcorexf3, expxf2, exp<mode>2, exp10xf2, exp10<mode>2, exp2xf2) |
| (exp2<mode>2, expm1xf2, expm1<mode>2, ldexpxf3, ldexp<mode>3) |
| (scalbxf3, scalb<mode>3, rint<mode>2, round<mode>2) |
| (<rounding_insn>xf2, <rounding_insn><mode>2): Likewise. |
| |
| 2015-12-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * Makefile.in (GENSUPPORT_H): New macro. |
| (build/gensupport.o, build/read-rtl.o, build/genattr.o) |
| (build/genattr-common.o, build/genattrtab.o, build/genautomata.o) |
| (build/gencodes.o, build/genconditions.o, build/genconfig.o) |
| (build/genconstants.o, build/genextract.o, build/genflags.o) |
| (build/gentarget-def.o): Use it. |
| (build/genemit.o): Likewise. Depend on internal-fn.def. |
| * genopinit.c: Move block comment to optabs.def. |
| (optab_tag, optab_def): Move to gensupport.h |
| (pattern): Likewise, renaming to optab_pattern. |
| (match_pattern): Move to gensupport.c |
| (gen_insn): Use find_optab. |
| (patterns, pattern_cmp): Replace pattern with optab_pattern. |
| (main): Likewise. Use num_optabs. |
| * optabs.def: Add comment that was previously in genopinit.c. |
| * gensupport.h (optab_tag): Moved from genopinit.c |
| (optab_def): Likewise, expanding commentary. |
| (optab_pattern): Likewise, after renaming from pattern. |
| (optabs, num_optabs, find_optab): Declare. |
| * gensupport.c (optabs): Moved from genopinit.c. |
| (num_optabs): New variable. |
| (match_pattern): Moved from genopinit.c. |
| (find_optab): New function, extracted from genopinit.c:gen_insn. |
| * genemit.c (nofail_optabs): New variable. |
| (emit_c_code): New function. |
| (gen_expand): Check whether the instruction is an optab that isn't |
| allowed to fail. Call emit_c_code. |
| (gen_split): Call emit_c_code here too. |
| (main): Initialize nofail_optabs. Don't emit FAIL and DONE here. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md (const_mask_operand): New predicate. |
| * config/s390/s390-builtins.def: Set a smaller bitmask |
| for a few builtins. |
| * config/s390/vector.md: Change predicate from immediate_operand |
| to either const_int_operand or const_mask_operand. Add special |
| insn conditions on patterns which have to exclude certain values. |
| * config/s390/vx-builtins.md: Likewise. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md ("*vec_set<mode>"): Change shift count |
| mode from DI to SI. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: New builtin types added. |
| * config/s390/s390-builtins.def: Add s390_vec_splat_* definitions. |
| * config/s390/s390.c (s390_expand_builtin): Always truncate |
| constants to the mode in the pattern. |
| * config/s390/vecintrin.h: Let the vec_splat_* macros point to the |
| respective builtin __builtin_s390_vec_splat_*. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Sort builtin types. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-c.c (s390_get_vstring_flags): Invert the |
| condition for the RT flag. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/constraints.md ("jKK"): New constraint. |
| * config/s390/s390.c (tm-constrs.h): Include for |
| satisfies_constraint_*. |
| (s390_legitimate_constant_p): Allow jKK constants. Use |
| satisfies_constraint_* also for the others. |
| (legitimate_reload_vector_constant_p): Likewise. |
| (print_operand): Allow h output modifier on vectors. |
| * config/s390/vector.md ("mov<mode>"): Add vrepi. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md ("*vec_splats<mode>"): Fix constraint |
| letter I->K. |
| |
| 2015-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("bswap<mode>2"): Add support for strv and strvg. |
| ("bswaphi2"): New pattern. |
| New splitter for HI reg-reg bswap. |
| |
| 2015-11-27 Jiri Engelthaler <engycz@gmail.com> |
| |
| PR driver/68029 |
| * opts-common.c (prune_options): Don't ignore -fdiagnostics-color |
| if it is the first parameter. |
| |
| 2015-12-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/68577 |
| * tree-vect-stmts.c (simple_integer_narrowing): New function. |
| (vectorizable_call): Restrict internal function handling |
| to NONE and NARROW cases, using simple_integer_narrowing |
| to test for the latter. Add cost of narrowing operation |
| and insert it where necessary. |
| |
| 2015-12-01 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro. |
| (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set |
| rs6000_current_abi to ABI_AIX or ABI_ELFv2. |
| |
| 2015-12-01 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_output_aligned_decl): Declare. |
| * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON, |
| ASM_OUTPUT_ALIGNED_DECL_LOCAL): Forward to nvptx_output_aligned_decl. |
| * config/nvptx/nvptx.c (write_fn_marker, write_var_marker): New. |
| (write_fn_proto, write_fn_proto_from_insn): Call write_fn_marker. |
| (init_output_initializer): Call write_var_marker. |
| (nvptx_output_aligned_decl): New. |
| (nvptx_assemble_undefined_decl, nvptx_file_end): Call write_var_marker. |
| |
| 2015-12-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * c-common.c (parse_optimize_options): Do not silently ignore |
| -fstrict-aliasing changes. |
| |
| 2015-12-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET. |
| * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not |
| stream TYPE_ALIAS_SET. |
| * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not |
| stream TYPE_ALIAS_SET. |
| |
| 2015-12-01 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't |
| consider mode. |
| |
| 2015-12-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (const_load_sequence_p): Handle extra |
| indirection for large and small code models. |
| (adjust_vperm): Likewise. |
| |
| 2015-12-01 Julian Brown <julian@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| James Norris <James_Norris@mentor.com> |
| |
| * gimple-pretty-print.c (dump_gimple_omp_target): Add host_data support. |
| * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_HOST_DATA. |
| (is_gimple_omp_oacc): Add support for above. |
| * gimplify.c (omp_region_type): Add ORT_ACC_HOST_DATA. |
| (omp_notice_variable): Diagnose undefined implicit uses of |
| use_device variables in offloaded regions. |
| (gimplify_scan_omp_clauses): Add host_data, use_device |
| support. Diagnose undefined mapping of use_device variables in |
| OpenACC clauses. |
| (gimplify_omp_workshare): Add host_data support. |
| (gimplify_expr): Likewise. |
| * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): New. |
| * omp-low.c (lookup_decl_in_outer_ctx) |
| (maybe_lookup_decl_in_outer_ctx): Add optional argument to skip |
| host_data regions. |
| (scan_sharing_clauses): Support use_device. |
| (check_omp_nesting_restrictions): Support host_data. |
| (expand_omp_target): Support host_data. |
| (lower_omp_target): Skip over outer host_data regions when looking |
| up decls. Support use_device. |
| (make_gimple_omp_edges): Support host_data. |
| * tree-nested.c (convert_nonlocal_omp_clauses): Add use_device clause. |
| |
| 2015-12-01 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/68582 |
| * cgraphunit.c (check_global_declaration): Only depend |
| on TREE_THIS_VOLATILE for VAR_DECLs. |
| |
| 2015-12-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/68474 |
| * tree-call-cdce.c (use_internal_fn): Protect call to |
| gen_shrink_wrap_conditions. |
| |
| 2015-12-01 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/68617 |
| * config/arm/arm.opt (unaligned_access): Save. |
| * config/arm/arm-c.c (__ARM_FEATURE_UNALIGNED): Conditionally define. |
| * config/arm/arm.c (arm_option_override): Move unaligned_access setting. |
| (arm_option_override_internal): ... here. |
| * config/arm/arm.h (TARGET_32BIT_P): New macro. |
| |
| 2015-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68379 |
| * tree-vect-stmts.c (vectorizable_load): For BB vectorization |
| always base loads on the first used DR of a group. |
| * tree-vect-data-refs.c (vect_slp_analyze_and_verify_node_alignment): |
| Compute alignment of the first scalar element unconditionally. |
| |
| 2015-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68590 |
| * genmatch.c (struct capture_info): Add match_use_count. |
| (capture_info::walk_match): Increment match_use_count. |
| (dt_simplify::gen_1): For GENERIC, only wrap multi-use |
| replacements in a save_expr if they occur more often than |
| in the original expression. |
| |
| 2015-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/68470 |
| * ipa-split.c (split_function): Handle main part not returning. |
| |
| 2015-12-01 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR middle-end/68595 |
| * tree-vect-stmts.c (vect_init_vector): Cast boolean |
| scalars to a proper value before building a vector. |
| |
| 2015-12-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genattrtab.c (check_attr_test): Take an attr_desc instead of |
| an is_const flag. Put the file_location argument first. |
| Update recursive calls. Improve error messages. |
| (check_attr_value): Take a file location and use it instead |
| of attr->loc. Improve error messages. Update calls to |
| check_attr_test. |
| (check_defs): Update call to check_attr_value. |
| (make_canonical): Likewise. |
| (gen_attr): Likewise. |
| (main): Likewise. |
| (gen_insn_reserv): Update call to check_attr_test. |
| |
| 2015-12-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Fix typo. |
| |
| 2015-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68590 |
| * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns. |
| |
| 2015-12-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p, |
| odr_type_p): Move to ... |
| * ipa-utils.h (type_with_linkage_p, type_in_anonymous_namespace_p, |
| odr_type_p): here; miscro-optimize. |
| |
| 2015-12-01 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/68529 |
| * tree-ssa-loop-niter.c (number_of_iterations_ne): Add new param. |
| Compute no-overflow information for control iv. |
| (number_of_iterations_lt, number_of_iterations_le): Add new param. |
| (number_of_iterations_cond): Pass new argument to above functions. |
| |
| 2015-11-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when |
| inlining -fno-strict-aliasing into -fstrict-aliasing body. |
| |
| 2015-11-30 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68565 |
| * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Early return on |
| codegen_error. Fail when rhs of division operations is integer_zerop. |
| (ternary_op_to_tree): Early return on codegen_error. |
| (unary_op_to_tree): Same. |
| (nary_op_to_tree): Same. |
| (gcc_expression_from_isl_expr_op): Same. |
| (gcc_expression_from_isl_expression): Same. |
| (graphite_create_new_loop): On codegen_error continue generating |
| wrong code. |
| (graphite_create_new_loop_guard): Same. |
| (build_iv_mapping): Same. |
| (graphite_create_new_guard): Same. |
| |
| 2015-11-30 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c: Fix dump messages. |
| * graphite-scop-detection.c: Same. |
| * graphite-sese-to-poly.c (isl_id_for_ssa_name): Do not call get_name. |
| |
| 2015-11-30 Cesar Philippidis <cesar@codesourcery.com> |
| |
| * tree-nested.c (convert_nonlocal_omp_clauses): Add support for |
| OMP_CLAUSE_{NUM_GANGS,NUM_VECTORS,VECTOR_LENGTH,SEQ}. |
| (convert_local_omp_clauses): Likewise. |
| |
| 2015-11-30 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/46032 |
| * tree-ssa-structalias.c (find_func_aliases_for_call_arg): New function, |
| factored out of ... |
| (find_func_aliases_for_call): ... here. |
| (find_func_aliases_for_builtin_call, find_func_clobbers): Handle |
| BUILT_IN_GOMP_PARALLEL. |
| (ipa_pta_execute): Same. Handle node->parallelized_function as a local |
| function. |
| |
| 2015-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68501 |
| * target.def (builtin_reciprocal): Replace the 3 arguments with |
| a gcall * one, adjust description. |
| * targhooks.h (default_builtin_reciprocal): Replace the 3 arguments |
| with a gcall * one. |
| * targhooks.c (default_builtin_reciprocal): Likewise. |
| * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Use |
| targetm.builtin_reciprocal even on internal functions, adjust |
| the arguments and allow replacing an internal function with normal |
| built-in. |
| * config/i386/i386.c (ix86_builtin_reciprocal): Replace the 3 arguments |
| with a gcall * one. Handle internal fns too. |
| * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Likewise. |
| * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise. |
| * doc/tm.texi (builtin_reciprocal): Document. |
| |
| 2015-11-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68592 |
| * tree-vect-loop.c (vect_analyze_loop_2): Reset SLP type also |
| on the pattern def sequence. |
| |
| 2015-11-30 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_name_replacement): Move earlier. |
| (write_one_arg): Reorder parms, add 'sep' param. |
| (nvptx_write_function_decl): Rename to ... |
| (write_fn_proto): ... here. Do name replacement. Emit linaer |
| comment marker. Deal with both decls and defns. Simplify argument |
| formatting. |
| (write_function_decl_and_comment): Delete. |
| (write_func_decl_from_insn): Rename to ... |
| (write_fn_proto_from_insn): ... here. Don't do name replacement. |
| (nvptx_record_fndecl): Call write_fn_proto. |
| (nvptx_record_libfunc): Call write_fn_proto_from_insn. |
| (nvptx_declare_function_name): Adjust for write_fn_proto changes. |
| (nvotx_output_call_insn): Call write_fn_prot_from_insn. |
| |
| 2015-11-30 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.md (define_mode_iterator SWI1248_AVX512BW): New. |
| (define_insn "*k<logic><mode>"): Use new iterator. |
| |
| 2015-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/28115 |
| * config/sparc/sparc.c (supersparc_adjust_cost): Fix thinko. |
| (sparc_adjust_cost): Add missing space. |
| |
| 2015-11-30 Richard Biener <rguenther@suse.de> |
| |
| PR c/68162 |
| * dwarf2out.c (gen_type_die_with_usage): Keep variant types of arrays. |
| |
| 2015-11-30 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| |
| * tree-if-conv.c (struct ifc_dr): Add new tree base_predicate field. |
| (hash_memrefs_baserefs_and_store_DRs_read_written_info): Hash |
| base ref, DR pairs and store base_predicate for write type DRs. |
| (ifcvt_memrefs_wont_trap): Guard checks with |
| -ftree-loop-if-convert-stores flag. |
| |
| 2015-11-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_node::make_local): No name is unique during |
| incremental linking. |
| * cgraph.h (can_be_discarded_p): Update comment; also common and |
| WEAK in named sections can be discarded; when doing incremental |
| link do not rely on resolution being the final one. |
| * varasm.c (default_binds_local_p_3, decl_binds_to_current_def_p): |
| When symbol can be discarded, do not rely on resolution info. |
| * symtab.c (symtab_node::nonzero_address): Take into account that |
| symbol can be discarded. |
| * ipa-visibility.c (update_visibility_by_resolution_info): Handle |
| definition correctly. |
| (function_and_variable_visibility): Do not set unique_name when |
| incrementally linking. |
| |
| 2015-11-29 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (const_0_operand, global_mem_operand, |
| const_mem_operand, param_mem_operand, shared_mem_operand): Delete. |
| (ctrap<mode>): Use const0_operand. |
| |
| 2015-11-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (add_type_duplicate): Remove redundant |
| ODR violation dump. |
| |
| 2015-11-29 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/28115 |
| * config/rs6000/rs6000.c (rs6000_adjust_cost): Correct |
| recog_memoized test for insn and check recog_memoized for dep_insn. |
| |
| 2015-11-28 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (FIRST_PARM_OFFSET): Add void cast. |
| (FRAME_POINTER_CFA_OFFSET): Define. |
| (struct nvptx_args): Use 'tree' type. |
| (INIT_CUMULATIVE_ARGS): Remove unnecessary do...while. |
| |
| 2015-11-28 Tom de Vries <tom@codesourcery.com> |
| |
| * lto-wrapper.c (run_gcc): Handle -flinker-output argument. |
| |
| 2015-11-27 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Option Summary): Use negative form of |
| -Waggressive-loop-optimizations, remove redundant -Wpedantic-ms-format, |
| sort alphabetically and re-justify. |
| |
| 2015-11-27 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/68536 |
| * lra.c (lra_emit_add): Add code for null base. |
| * lra-constraints.c (curr_insn_transform): Skip operators for |
| subreg reloads. |
| |
| 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| Revert |
| 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies |
| multiple_sets. |
| (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b |
| are not modified by the final modified insns in the basic blocks. |
| |
| 2015-11-27 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address): |
| Don't declare. |
| * config/nvptx/nvptx.c (nvptx_addr_space_from_sym): New. |
| (nvptx_maybe_convert_symbolic_operand): Simplify. |
| (nvptx_addr_space_from_address): Delete. |
| (nvptx_print_operand): Adjust 'A' case. |
| |
| 2015-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68559 |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Move |
| peeling for gap checks ... |
| * tree-vect-stmts.c (vectorizable_load): ... here and relax for SLP. |
| * tree-vect-loop.c (vect_analyze_loop_2): Re-set |
| LOOP_VINFO_PEELING_FOR_GAPS before re-trying without SLP. |
| |
| 2015-11-27 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_record_needed_decl): Don't declare. |
| * config/nvptx/nvptx.c (write_func_decl_from_insn): Move earlier. |
| (nvptx_record_fndecl): Don't return value, remove force |
| argument. Require fndecl. |
| (nvptx_record_libfunc): New. |
| (nvptx_record_needed_decl): Deteermine how to record decl here. |
| (nvptx_maybe_record_fnsym): New. |
| (nvptx_expand_call): Don't record libfuncs here, |
| (nvptx_maybe_convert_symbolic_operand): Use |
| nvptx_maye_record_fnsym. |
| (nvptx_assemble_integer): Reimplement with single switch. |
| (nvptx_output_call_insn): Register libfuncs here. |
| (nvptx_file_end): Adjust nvptx_record_fndecl call. |
| * config/nvptx/nvptx.md (expand_movdi): Don't call |
| nvptx_record_needed_decl. |
| |
| 2015-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68553 |
| * tree-vect-slp.c (vect_create_mask_and_perm): Skip VEC_PERM_EXPR |
| generation for 1:1 permutations. |
| (vect_transform_slp_perm_load): Detect 1:1 permutations. |
| |
| 2015-11-27 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * gimple.h (nonbarrier_call_p): Declare. |
| * gimple.c (nonbarrier_call_p): New function. |
| * tree-ssa-phiopt.c (nontrapping_dom_walker::before_dom_children): |
| Also increment call phase for ASMs with vdef and potential barrier |
| calls. |
| |
| 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies |
| multiple_sets. |
| (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b |
| are not modified by the final modified insns in the basic blocks. |
| |
| 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68506 |
| * ifcvt.c (noce_try_cmove_arith): Try emitting the else basic block |
| first if emit_a exists or then_bb modifies 'b'. Reindent if-else |
| blocks. |
| |
| 2015-11-27 Martin Liska <mliska@suse.cz> |
| |
| PR c++/68312 |
| * vec.h (release_vec_vec): New function. |
| |
| 2015-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68552 |
| * optabs.c (expand_vec_perm_1): Move vec_shr handling from here... |
| (expand_vec_perm): ... here. Do it regardless of vec_perm_const_optab |
| or whether v0 == v1. |
| |
| 2015-11-27 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-uninit.c: Fix whitespaces in the source file. |
| The change is just automatical. |
| |
| 2015-11-27 Martin Liska <mliska@suse.cz> |
| |
| * tree-chkp.c (chkp_make_static_bounds): Release buffer |
| used for string. |
| |
| 2015-11-27 Martin Liska <mliska@suse.cz> |
| |
| * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): |
| Do not release memory for comp_alias_ddrs. |
| * tree-vect-loop.c (destroy_loop_vec_info): Release |
| the memory for all loop_vec_info. |
| |
| 2015-11-27 Martin Liska <mliska@suse.cz> |
| |
| * ipa-devirt.c (ipa_devirt): Use auto_vec instead |
| of a local-scope vec. |
| (struct final_warning_record): Use auto_vec instead of vec. |
| |
| 2015-11-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68553 |
| * tree-vect-slp.c (vect_get_mask_element): Remove. |
| (vect_transform_slp_perm_load): Implement in a simpler way. |
| |
| 2015-11-26 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR rtl-optimization/67753 |
| PR rtl-optimization/64164 |
| * function.c (assign_parm_setup_block): Right-shift |
| upward-padded big-endian args when bypassing the stack slot. |
| |
| 2015-11-26 Maciej W. Rozycki <macro@imgtec.com> |
| |
| * doc/invoke.texi (Option Summary) <MIPS Options>: Reorder |
| `-mcompact-branches='. |
| (MIPS Options): Likewise. |
| |
| 2015-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (build/genmatch.o): Depend on internal-fn.def. |
| |
| 2015-11-26 David Edelsohn <dje.gcc@gmail.com> |
| |
| * doc/install.texi (Prerequisites): Increase ISL requirement to |
| 0.14 or 0.15. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/arm_neon.h |
| (vqrdmlah_laneq_s16, vqrdmlah_laneq_s32): New. |
| (vqrdmlahq_laneq_s16, vqrdmlahq_laneq_s32): New. |
| (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New. |
| (vqrdmlshq_laneq_s16, vqrdmlshq_laneq_s32): New. |
| (vqrdmlah_lane_s16, vqrdmlah_lane_s32): New. |
| (vqrdmlahq_lane_s16, vqrdmlahq_lane_s32): New. |
| (vqrdmlahh_s16, vqrdmlahh_lane_s16, vqrdmlahh_laneq_s16): New. |
| (vqrdmlahs_s32, vqrdmlahs_lane_s32, vqrdmlahs_laneq_s32): New. |
| (vqrdmlsh_lane_s16, vqrdmlsh_lane_s32): New. |
| (vqrdmlshq_lane_s16, vqrdmlshq_lane_s32): New. |
| (vqrdmlshh_s16, vqrdmlshh_lane_s16, vqrdmlshh_laneq_s16): New. |
| (vqrdmlshs_s32, vqrdmlshs_lane_s32, vqrdmlshs_laneq_s32): New. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New. |
| (vqrdmlahq_s16, vqrdmlahq_s32): New. |
| (vqrdmlsh_s16, vqrdmlsh_s32): New. |
| (vqrdmlshq_s16, vqrdmlshq_s32): New. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add |
| ARM_FEATURE_QRDMX. |
| |
| 2015-11-26 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| PR debug/53927 |
| * tree-nested.c (finalize_nesting_tree_1): Append a field to |
| hold the frame base address. |
| * dwarf2out.c (gen_subprogram_die): Generate for |
| DW_AT_static_link a location description that computes the value |
| of this field. |
| |
| 2015-11-26 Tom de Vries <tom@codesourcery.com> |
| |
| revert: |
| 2015-11-25 Tom de Vries <tom@codesourcery.com> |
| |
| * cfgloop.c (find_single_latch): New function, factored out of ... |
| (flow_loops_find): ... here. |
| (verify_loop_structure): Improve verification of loop->latch. |
| * cfgloop.h (find_single_latch): Declare. |
| * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: |
| Add missing changes from r230962. |
| |
| 2015-11-26 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (write_func_decl_from_insn): Replace callee |
| arg with name. Don't deal with split regs. Tweak formatting. |
| (nvptx_expand_call): Adjust write_func_decl_from_insn call. |
| (nvptx_output_call_insn): Don't deal with split regs here. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def |
| (sqrdmlah, sqrdmlsh): New. |
| (sqrdmlah_lane, sqrdmlsh_lane): New. |
| (sqrdmlah_laneq, sqrdmlsh_laneq): New. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_sqmovun<mode>): Fix some white-space. |
| (aarch64_<sur>qmovun<mode>): Likewise. |
| (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h<mode>): New. |
| (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): New. |
| (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): New. |
| * config/aarch64/iterators.md (UNSPEC_SQRDMLAH): New. |
| (UNSPEC_SQRDMLSH): New. |
| (SQRDMLH_AS): New. |
| (rdma_as): New. |
| |
| 2015-11-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66721 |
| * tree-vect-loop.c (vect_analyze_loop_2): Compute scalar |
| iteration cost earlier. Re-do analysis without SLP when |
| vectorization using SLP fails and without has a chance to succeed. |
| |
| 2015-11-26 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_simplify::gen_1): For generic wrap all |
| multi-result-use captures in a SAVE_EXPR. |
| |
| 2015-11-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New. |
| (TARGET_SIMD_RDMA): New. |
| |
| 2015-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * combine.c (subst): Do not return clobber of zero in widening mult |
| case. Just return x unchanged if it is a no-op substitution. |
| |
| 2015-11-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/68416 |
| * config/i386/i386.h (enum reg_class): Add |
| bounds registers to ALL_REGS. |
| |
| 2015-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68128 |
| * tree.h (OMP_CLAUSE_SHARED_READONLY): Define. |
| * gimplify.c: Include gimple-walk.h. |
| (enum gimplify_omp_var_data): Add GOVD_WRITTEN. |
| (omp_notice_variable): Set flags to n->value if n already |
| exists in target region, but we need to jump to do_outer. |
| (omp_shared_to_firstprivate_optimizable_decl_p, |
| omp_mark_stores, omp_find_stores_op, omp_find_stores_stmt): New |
| functions. |
| (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_SHARED_READONLY |
| on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is |
| not modified in the body. Call omp_mark_stores for outer |
| contexts on OMP_CLAUSE_SHARED clauses if they could be written |
| in the body or on OMP_CLAUSE_LASTPRIVATE. |
| (gimplify_adjust_omp_clauses): Add body argument, call |
| omp_find_stores_{stmt,op} on the body through walk_gimple_seq. |
| Set OMP_CLAUSE_SHARED_READONLY |
| on OMP_CLAUSE_SHARED if it is a scalar non-addressable that is |
| not modified in the body. Call omp_mark_stores for outer |
| contexts on OMP_CLAUSE_SHARED clauses if they could be written |
| in the body or on OMP_CLAUSE_LASTPRIVATE or on OMP_CLAUSE_LINEAR |
| without OMP_CLAUSE_LINEAR_NO_COPYOUT or on OMP_CLAUSE_REDUCTION. |
| (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task, |
| gimplify_omp_for, gimplify_omp_workshare, gimplify_omp_target_update, |
| gimplify_expr): Adjust gimplify_adjust_omp_clauses callers. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Clear OMP_CLAUSE_SHARED_READONLY on |
| non-local vars or local vars referenced from nested routines. |
| * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_SHARED_READONLY |
| attempt to optimize it into OMP_CLAUSE_FIRSTPRIVATE. Even for |
| TREE_READONLY, don't call use_pointer_for_field with non-NULL |
| second argument until we are sure we are keeping OMP_CLAUSE_SHARED. |
| |
| 2015-11-26 Paolo Bonzini <bonzini@gnu.org> |
| |
| * doc/implement-c.texi (Integers Implementation): Make GCC's promises |
| about signed left shift stronger and clarify the cases when they're |
| broken. |
| |
| 2015-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/67226 |
| * calls.c (store_one_arg): Take into account |
| crtl->args.pretend_args_size when checking for overlap between |
| arg->value and argblock + arg->locate.offset during sibcall |
| optimization. |
| |
| 2015-11-26 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (cbranch<mode>4): Use |
| aarch64_fp_compare_operand. |
| (store_pairsf): Use aarch64_reg_or_fp_zero. |
| (store_pairdf): Likewise. |
| (cstore<mode>4): Use aarch64_fp_compare_operand. |
| (cmov<mode>6): Likewise. |
| * config/aarch64/aarch64-ldpstp.md: Use aarch64_reg_or_fp_zero. |
| |
| 2015-11-25 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68453 |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_for_loop): Do |
| not redirect edges already pointing to their destination. |
| (translate_isl_ast_node_for): Split edges after loops to create |
| basic blocks for close phi nodes. Save merge points at the end of |
| a loop guard. |
| (translate_isl_ast_node_if): Save merge points at the end of the |
| if region. |
| (add_close_phis_to_outer_loops): New. |
| (add_close_phis_to_merge_points): New. |
| (copy_loop_close_phi_args): Call add_close_phis_to_merge_points. |
| (copy_bb_and_scalar_dependences): Do not split basic blocks on |
| loop close phi locations. |
| |
| 2015-11-25 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-visibility.c (cgraph_externally_visible_p, |
| varpool_node::externally_visible_p): When doing incremental linking, |
| hidden symbols may be still used later. |
| (update_visibility_by_resolution_info): Do not drop weak during |
| incremental link. |
| (function_and_variable_visibility): Fix formating. |
| * flag-types.h (lto_linker_output): Declare. |
| * common.opt 9flag_incremental_link): New flag. |
| |
| 2015-11-25 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/constraints.md (wb constraint): New constraint for |
| ISA 3.0 d-form scalar addressing. |
| |
| * config/rs6000/rs6000.c (mode_supports_vmx_dform): Add support |
| for ISA 3.0 D-form addressing to load SFmode/DFmode scalars into |
| Altivec registers. Add wb constraint for Altivec registers with |
| D-form addressing. If we have ISA 3.0 d-form support, undo |
| secondary reload support for using FPR registers if we want to do |
| D-form addressing. |
| (rs6000_debug_reg_global): Likewise. |
| (rs6000_setup_reg_addr_masks): Likewise. |
| (rs6000_init_hard_regno_mode_ok): Likewise. |
| (rs6000_secondary_reload): Likewise. |
| (rs6000_preferred_reload_class): Likewise. |
| (rs6000_secondary_reload_class): Likewise. |
| |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wb |
| constraint. |
| |
| * config/rs6000/rs6000.md (f32_lr2 mode attribute): Add support |
| for ISA 3.0 SFmode/DFmode d-form addressing to Altivec registers. |
| (f32_lm2): Likewise. |
| (f32_li2): Likewise. |
| (f32_sr2): Likewise. |
| (f32_sm2): Likewise. |
| (f32_si2): Likewise. |
| (f64_p9): Likewise. |
| (extendsfdf2_fpr): Likewise. |
| (mov<mode>_hardfloat): Likewise. |
| (mov<mode>_hardfloat32): Likewise. |
| (mov<mode>_hardfloat64): Likewise. |
| |
| * doc/md.texi (RS/6000 constraints): Document wb constraint. |
| Fixup we constraint documentation. |
| |
| 2015-11-25 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-low.c (pass_expand_omp_ssa::clone): New function. |
| * passes.def: Add pass_oacc_kernels pass group. |
| * tree-ssa-loop-ch.c (pass_ch::clone): New function. |
| |
| 2015-11-25 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-pass.h (make_pass_oacc_kernels, make_pass_oacc_kernels2): |
| Declare. |
| * tree-ssa-loop.c (gate_oacc_kernels): New static function. |
| (pass_data_oacc_kernels, pass_data_oacc_kernels2): New pass_data. |
| (class pass_oacc_kernels, class pass_oacc_kernels2): New pass. |
| (make_pass_oacc_kernels, make_pass_oacc_kernels2): New function. |
| |
| 2015-11-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * timevar.def (TV_IPA_LTO_DECOMPRESS, TV_IPA_LTO_COMPRESS, |
| TV_IPA_LTO_OUTPUT): New. |
| * lto-compress.c: Include timevar.h |
| (lto_end_compression, lto_end_uncompression): Add timers. |
| * langhooks.c: Include timevar.h. |
| (lhd_append_data): Add timer. |
| |
| 2015-11-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * varasm.c (default_elf_asm_output_limited_string, |
| default_elf_asm_output_ascii): Replace fprintf by putc. |
| |
| 2015-11-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/67954 |
| * lra-constraints.c (curr_insn_transform): Add check on scratch |
| pseudo when change class to NO_REGS. Add an assert. |
| |
| 2015-11-25 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number |
| constraint is 'n'. |
| * config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg number. |
| (nvptx_write_function_decl): Number args from 0. |
| (nvptx_declare_function_name): Likewise. |
| (nvptx_function_incoming_arg): Likewise. |
| (nvptx_output_call_insn): Correct formatting. |
| |
| 2015-11-25 David Sherwood <david.sherwood@arm.com> |
| |
| * optabs.def: Add new optabs fmax_optab/fmin_optab. |
| * internal-fn.def: Add new fmax/fmin internal functions. |
| * doc/md.texi: Add fmin and fmax patterns. |
| |
| 2015-11-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/68385 |
| * tree.c (integer_zerop, integer_onep, integer_each_onep) |
| (integer_all_onesp, integer_minus_onep, integer_pow2p) |
| (integer_nonzerop, integer_truep, tree_log2, tree_floor_log2) |
| (real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS. |
| |
| 2015-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68528 |
| * fold-const.c (fold_binary_loc): Do not call negate_expr_p |
| on stripped operands. |
| |
| 2015-11-25 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (walk_args_for_params): Delete. |
| (nvptx_declare_function_name): Move assignments next to register |
| declarations, and process params here. |
| |
| 2015-11-25 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize |
| both the symbol and the "dot" symbol for function descriptors. Fix |
| inversion for rename of symbols with dollar sign. |
| |
| 2015-11-25 Tom de Vries <tom@codesourcery.com> |
| |
| * cfgloop.c (find_single_latch): New function, factored out of ... |
| (flow_loops_find): ... here. |
| (verify_loop_structure): Improve verification of loop->latch. |
| * cfgloop.h (find_single_latch): Declare. |
| * omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop. |
| |
| 2015-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up. |
| (STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define. |
| (STARTFILE_SPEC): Use %(startfile_vtv). |
| (ENDFILE_SPEC): Use %(endfile_vtv). |
| (SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC, |
| ENDFILE_VTV_SPEC. |
| |
| * gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}. |
| |
| 2015-11-25 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * ifcvt.c (noce_mem_write_may_trap_or_fault_p, |
| noce_can_store_speculate): Delete. |
| (noce_process_if_block): Don't try to handle single MEM stores. |
| * rtl.h (memory_must_be_modified_in_insn_p): Don't declare. |
| * alias.c (memory_must_be_modified_in_insn_p): Delete. |
| |
| 2015-11-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68435 |
| * ifcvt.c (noce_try_cmove_arith): Skip final insn when checking |
| for conflicts between a, b and the set destinations. |
| |
| 2015-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68517 |
| * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): |
| Properly handle zero-sized types. |
| |
| 2015-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c: Include gimplify.h |
| (set_cond_stmt_execution_predicate, |
| set_switch_stmt_execution_predicate): Be sure to not leak locations |
| to function body. |
| |
| 2015-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/67089 |
| * tree-ssa-math-opts.c (uaddsub_overflow_check_p, |
| match_uaddsub_overflow): New functions. |
| (pass_optimize_widening_mul::execute): Call match_uaddsub_overflow. |
| |
| 2015-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68492 |
| * tree-vect-slp.c (vect_build_slp_tree): Consistently build up |
| op from scalars after operand swapping. |
| |
| 2015-11-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68502 |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Restore |
| check that the step is a multiple of the type size. |
| |
| 2015-11-24 Michael Collison <michael.collison@linaro.org> |
| |
| * config/aarch64/aarch64-simd.md (widen_ssum, widen_usum) |
| (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns |
| * config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes. |
| |
| 2015-11-24 Steve Ellcey <sellcey@imgtec.com> |
| |
| * frame-header-opt.c (gate): Check for optimize > 0. |
| (has_inlined_assembly): New function. |
| (needs_frame_header_p): Remove is_leaf_function check, |
| add argument type check. |
| (callees_functions_use_frame_header): Add is_leaf_function |
| and has_inlined_assembly calls.. |
| (set_callers_may_not_allocate_frame): New function. |
| (frame_header_opt): Add is_leaf_function call, add |
| set_callers_may_not_allocate_frame call. |
| * config/mips/mips.c (mips_compute_frame_info): Add check |
| to see if callee saved regs can be put in frame header. |
| (mips_expand_prologue): Add check to see if step1 is zero, |
| fix cfa restores when using frame header to store regs. |
| (mips_can_use_return_insn): Check to see if registers are |
| stored in frame header. |
| * config/mips/mips.h (machine_function): Add |
| callers_may_not_allocate_frame and |
| use_frame_header_for_callee_saved_regs fields. |
| |
| 2015-11-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/68520 |
| * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if |
| its bit was already set in BB_WITH. |
| |
| 2015-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P |
| double check that type is main variant. |
| * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing |
| variant. |
| (verify_type_variant): Verify that variants have no |
| TYPE_ALIAS_SET_KNOWN_P set |
| * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder |
| streaming so constant fields come first; stream TYPE_ALIAS_SET==0 |
| only for main variants; stream TYPE_ALIAS_SET as a bit. |
| * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update |
| accordingly. |
| |
| 2015-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (make_vector_type): Properly compute canonical type of the |
| main variant. |
| (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is |
| a main variant. |
| |
| 2015-11-24 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (maybe_split_mode): Return new mode or |
| VOIDmode, don't alter incoming mode. |
| (nvptx_split_reg_p): Delete. |
| (write_one_arg, walk_args_for_param, nvptx_declare_function_name, |
| write_func_decl_from_insn, nvptx_output_call_insn): Adjust |
| maybe_split_mode calls. |
| (nvptx_print_operand): Use maybe_split_mode. |
| |
| 2015-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL |
| only for types where LTO sets them. |
| * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO. |
| (make_vector_type): Likewise. |
| (gimple_canonical_types_compatible_p): Use canonical_type_used_p. |
| * tree.h (canonical_type_used_p): New inline. |
| * alias.c (get_alias_set): Handle structural equality for all |
| types that pass canonical_type_used_p. |
| (record_component_aliases): Look through all types with |
| record_component_aliases for possible pointers; sanity check that |
| the alias sets match. |
| |
| 2015-11-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints. |
| |
| 2015-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (free_node): New function. |
| (type_hash_canon): Use it. |
| * tree.h (free_node): Declare. |
| |
| 2015-11-24 David Edelsohn <dje.gcc@gmail.com> |
| Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec. |
| (Fv2): New mode attribute to be used when ISA 2.07 instructions |
| are used on SF values, and ISA 2.06 instructions on DF values. |
| (add<mode>3_fpr): Use <Fv2> instead of <Fv>. |
| (sub<mode>3_fpr): Use <Fv2> instead of <Fv>. |
| (mul<mode>3_fpr): Use <Fv2> instead of <Fv>. |
| (div<mode>3_fpr): Use <Fv2> instead of <Fv>. |
| (sqrt<mode>2): Use <Fv2> instead of <Fv>. |
| (fre<Fs>): Use <Fv2> instead of <Fv>. |
| (rsqrt<mode>2): Use <Fv2> instead of <Fv>. |
| (cmp<mode>_fpr): Use <Fv2> instead of <Fv>. |
| (xsrdpi<mode>
|