| 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>): Add support for the lround function. |
| (lround<mode>di2): Likewise. |
| (fma<mode>4_fpr): Use <Fv2> instead of <Fv>. |
| (fms<mode>4_fpr): Use <Fv2> instead of <Fv>. |
| (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>. |
| (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>. |
| |
| 2015-11-24 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/67984 |
| * graphite-isl-ast-to-gimple.c (is_constant): New. |
| (get_rename): Call is_constant. |
| (get_new_name): Same. |
| |
| 2015-11-24 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c: Only include graphite.h. |
| * graphite-isl-ast-to-gimple.c: Same. |
| * graphite-optimize-isl.c: Same. |
| * graphite-poly.c: Same. |
| * graphite-scop-detection.c: Same. |
| * graphite-sese-to-poly.c: Same. |
| * graphite.c: Same. |
| * graphite-isl-ast-to-gimple.h: Move to graphite.h. |
| * graphite-poly.h: Same. |
| * graphite-scop-detection.h: Same. |
| * graphite.h: New. |
| |
| 2015-11-24 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of |
| DW_TAG_namespace for IMPORTED_DECL declarations. Call |
| dwarf2out_imported_module_or_decl_1 for all DWARF versions as this |
| function already takes care of checking what it can emit. |
| |
| 2015-11-24 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * doc/invoke.texi (-fpic): Add the AArch64 limit. |
| (-fPIC): Add AArch64. |
| |
| 2015-11-24 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-loop-im.c (tree_ssa_lim): Make static. |
| (pass_lim::execute): Allow to run outside pass_tree_loop. |
| |
| 2015-11-24 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (add<mode>3): |
| Block early expansion into 2 add instructions. |
| (add<mode>3_pluslong): New pattern to combine complex |
| immediates into 2 additions. |
| |
| 2015-11-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/66217 |
| PR target/67677 |
| PR target/68332 |
| * config/rs6000/predicates.md (and_operand): Check that the operand |
| is a const_int before calling rs6000_is_valid_and_mask. |
| |
| 2015-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (*condjump): Rename to... |
| (condjump): ... This. |
| (*compare_condjump<mode>): New define_insn_and_split. |
| (*compare_cstore<mode>_insn): Likewise. |
| (*cstore<mode>_insn): Rename to... |
| (cstore<mode>_insn): ... This. |
| * config/aarch64/iterators.md (CMP): Handle ne code. |
| * config/aarch64/predicates.md (aarch64_imm24): New predicate. |
| |
| 2015-11-24 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| PR target/68497 |
| * config/i386/i386.c (output_387_binary_op): Fix assertion for |
| -fno-checking case. |
| |
| 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove. |
| (val_ssa_equiv_hash_traits::remove): Likewise. |
| (pass_uncprop::execute): Adjust. |
| |
| 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * hash-map-traits.h (simple_hashmap_traits ::remove): call |
| destructors on values that are being removed. |
| * mem-stats.h (hash_map): Pass type of values to |
| simple_hashmap_traits. |
| * tree-sra.c (sra_deinitialize): Remove work around for hash |
| maps not destructing values. |
| * genmatch.c (sinfo_hashmap_traits): Adjust. |
| * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise. |
| |
| 2015-11-24 Richard Biener <rguenther@suse.de> |
| Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR middle-end/68375 |
| * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid |
| bogus assertion. |
| |
| 2015-11-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/68483 |
| * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR |
| is valid vec_shr pattern, don't lower it even if can_vec_perm_p |
| returns false. |
| * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX |
| whenever first is nelt or above. Don't mask expected with |
| 2 * nelt - 1. |
| |
| 2015-11-24 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR c/68337 |
| * gimple-fold.c: Include ipa-chkp.h. |
| (gimple_fold_builtin_memory_op): Don't fold call if we |
| are going to instrument it and it may copy pointers. |
| |
| 2015-11-24 Bernd Schmidt <bschmidt@redhat.com> |
| Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68194 |
| PR rtl-optimization/68328 |
| PR rtl-optimization/68185 |
| * ree.c (combine_reaching_defs): Reject copy_needed case if |
| copies_list is not empty. |
| |
| 2015-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68221 |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly |
| use mem_ref_offset. |
| |
| 2015-11-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/68381 |
| * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern |
| is poisoned. |
| |
| 2015-11-23 Nick Clifton <nickc@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * ree.c (add_removable_extension): Avoid mis-optimizing cases where |
| the source/dest of the target extension require a different number of |
| hard registers. |
| (combine_set_extension): Remove #if 0 code. |
| |
| 2015-11-23 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68314 |
| * graphite-optimize-isl.c (optimize_isl): Do not call |
| isl_union_map_is_equal. |
| * graphite-poly.c (new_scop): Remove original_schedule. |
| (free_scop): Same. |
| * graphite-poly.h (struct scop): Same. |
| * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): |
| Remove. |
| (build_pbb_scattering_polyhedrons): Add back. |
| (build_scop_minimal_scattering): Remove. |
| (build_scop_scattering): Add back. |
| (build_scop_original_schedule): Remove. |
| (build_poly_scop): Revert to only call build_scop_scattering. |
| |
| 2015-11-23 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68493 |
| * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add |
| missing early return when codegen_error is set. |
| |
| 2015-11-23 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68279 |
| * graphite-poly.c (new_scop): Remove poly_scop_p. |
| * graphite-poly.h (struct scop): Same. |
| (build_poly_scop): Declare. |
| * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h. |
| (cleanup_loop_iter_dom): New. |
| (build_loop_iteration_domains): Early return when scev analysis fails. |
| (create_pw_aff_from_tree): Same. |
| (add_condition_to_pbb): Same. |
| (add_conditions_to_domain): Same. |
| (add_conditions_to_constraints): Same. |
| (build_scop_iteration_domain): Same. |
| (build_poly_scop): Same. Do not initialize poly_scop_p. |
| * graphite-sese-to-poly.h: Remove. |
| * graphite.c: Do not include graphite-sese-to-poly.h. |
| (graphite_transform_loops): Stop before code generation when |
| build_poly_scop fails. |
| * sese.c (scalar_evolution_in_region): Add fixme note about scev |
| analysis. |
| |
| 2015-11-23 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): |
| Remove call to update_ssa. |
| * sese.c (sese_insert_phis_for_liveouts): Same. |
| |
| 2015-11-23 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/68455 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Don't call |
| extract_range_from_multiplicative_op_1 on symbolic ranges. |
| |
| 2015-11-23 Richard Henderson <rth@redhat.com> |
| |
| * optabs.def (uaddv4_optab, usubv4_optab): New. |
| * internal-fn.c (expand_addsub_overflow): Use them. |
| * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4. |
| |
| * config/i386/i386.c (ix86_cc_mode): Extend add overflow check |
| to reversed operands. |
| * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New. |
| (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow. |
| (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow. |
| (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow. |
| (*add<SWI>3_cconly_overflow_2): New. |
| (*add<SWI>3_cc_overflow_2): New. |
| (*addsi3_zext_cc_overflow_2): New. |
| |
| 2015-11-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68465 |
| * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): |
| Also record equalities from multiple predecessor blocks if |
| only one non-backedge exists. |
| |
| 2015-11-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68363 |
| * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments |
| that are not INSN_P. |
| |
| 2015-11-23 Bilyan Borisov <bilyan.borisov@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_gimple_fold_builtin): Fold FMULX. |
| |
| 2015-11-23 David Edelsohn <dje.gcc@gmail.com> |
| |
| * system.h: Don't poison calloc and strdup if USES_ISL is defined. |
| * graphite-dependences.c: Define USES_ISL. Include ISL header files |
| after GCC header files and before graphite header files. |
| * graphite-dependences.c: Same. |
| * graphite-isl-ast-to-gimple.c: Same. |
| * graphite-optimize-isl.c: Same. |
| * graphite-poly.c: Same. |
| * graphite-scop-detection.c: Same. |
| * graphite-sese-to-poly.c: Same. |
| * graphite.c: Same. |
| |
| 2015-11-23 Richard Biener <rguenth@gcc.gnu.org> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| PR tree-optimization/68317 |
| PR tree-optimization/68326 |
| * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the |
| final min and max are not infinity. |
| |
| 2015-11-23 Ilya Enkovich <enkovich.gnu@gmail.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68327 |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Don't |
| compute vectype for non-relevant mask producers. |
| * tree-vect-stmts.c (vectorizable_comparison): Check stmt |
| relevance earlier. |
| |
| 2015-11-23 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/68460 |
| * tree-parloops.c (gather_scalar_reductions): Also call |
| free_stmt_vec_info_vec if simple_loop_info == NULL. |
| |
| 2015-11-23 Maxim Ostapenko <m.ostapenko@partner.samsung.com> |
| |
| * opts.c (finish_options): Allow -fsanitize-recover=address for |
| userspace sanitization. |
| * asan.c (asan_expand_check_ifn): Redefine recover_p. |
| * doc/invoke.texi (fsanitize-recover): Update documentation. |
| |
| 2015-11-23 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping. |
| |
| 2015-11-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68445 |
| * tree-vect-slp.c (vect_create_mask_and_perm): Properly use |
| two different strides. |
| |
| 2015-11-23 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc. |
| * config/s390/s390.c (s390_check_symref_alignment): Use new |
| symref flags, early abort on wrong alignment |
| (s390_secondary_reload): Use new symref flags. |
| (s390_encode_section_info): Likewise. |
| * config/s390/predicates.md: Likewise. |
| |
| 2015-11-23 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| PR target/68390 |
| * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type |
| for indirect function call. |
| |
| 2015-11-22 Bilyan Borisov <bilyan.borisov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New. |
| (*aarch64_mulx_elt<mode>, VDQF): Likewise. |
| (*aarch64_mulx_elt_to_64v2df): Likewise. |
| (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise. |
| * config/aarch64/arm_neon.h (vmulx_lane_f32): New. |
| (vmulx_lane_f64): Likewise. |
| (vmulxq_lane_f32): Refactored & moved. |
| (vmulxq_lane_f64): Likewise. |
| (vmulx_laneq_f32): New. |
| (vmulx_laneq_f64): Likewise. |
| (vmulxq_laneq_f32): Likewise. |
| (vmulxq_laneq_f64): Likewise. |
| (vmulxs_lane_f32): Likewise. |
| (vmulxs_laneq_f32): Likewise. |
| (vmulxd_lane_f64): Likewise. |
| (vmulxd_laneq_f64): Likewise. |
| |
| 2015-11-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode): |
| In LTO we do not compute TYPE_CANONICAL of pointers. |
| (gimple_canonical_types_compatible_p): Improve coments; sanity check |
| that pointers do not have canonical type that would make us believe |
| they are different. |
| * alias.c (get_alias_set): Do structural type equality on pointers; |
| enable pointer path for LTO; also glob pointer to vector with pointer |
| to vector element; glob pointers and references for LTO; do more strict |
| sanity checking about build_pointer_type returning the canonical type |
| which is also the main variant. |
| (record_component_aliases): When component type is pointer and we |
| do LTO; record void_type_node alias set. |
| |
| 2015-11-21 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type. |
| |
| * config/nvptx/nvptx.c (write_function_decl_and_comment): Print |
| leading blank line. |
| (write_func_decl_from_insn): Likewise. |
| (init_output_initializer, nvptx_assemble_undefined_decl): Likewise. |
| (nvptx_file_end): Likewise. |
| (nvptx_function_end): Undent output. |
| (nvptx_expand_call): Fix formatting. |
| (nvptx_output_call_insn): Indent output. |
| * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON, |
| ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line. |
| |
| 2015-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/66432 |
| * tree-inline.c (copy_debug_stmt): If |
| gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL |
| in decl_debug_args, don't call remap_gimple_op_r on it. |
| |
| 2015-11-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL; |
| do not check AGGREGATE_TYPE_P when adding TYPE_MODE; |
| Check that all record types are complete. |
| * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not |
| compare alias sets for types w/o alias sets. |
| |
| 2015-11-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (umulxhi_vis): Move around. |
| (*umulxhi_sp64): Likewise. |
| (umulxhi_v8plus): Likewise. |
| (xmulx_vis): Likewise. |
| (*xmulx_sp64): Likewise. |
| (xmulx_v8plus): Likewise. |
| (xmulxhi_vis): Likewise. |
| (*xmulxhi_sp64): Likewise. |
| (xmulxhi_v8plus): Likewise. |
| |
| 2015-11-20 David Malcolm <dmalcolm@redhat.com> |
| |
| PR 62314 |
| * diagnostic-show-locus.c (colorizer::set_fixit_hint): New. |
| (class layout): Update comment |
| (layout::print_any_fixits): New method. |
| (layout::move_to_column): New method. |
| (diagnostic_show_locus): Add call to layout.print_any_fixits. |
| |
| 2015-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/68221 |
| * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction |
| has non-zero bias, subtract it in integer type instead of |
| pointer plus of negated bias. |
| |
| PR middle-end/68339 |
| * omp-low.c (expand_simd_clones): Call node->get_body () before |
| allocating stuff in GC. |
| |
| 2015-11-20 Jim Wilson <jim.wilson@linaro.org> |
| |
| * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS. |
| |
| 2015-11-20 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/aarch64/aarch64.md (predicated): Copy attribute from |
| "arm.md". |
| * config/arm/arm.md (predicated): Added description. |
| |
| 2015-11-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (arm_option_override): Require TARGET_32BIT |
| for unaligned_access. |
| * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT |
| from matching condition. |
| (unaligned_loadhis): Likewise. |
| (unaligned_loadhiu): Likewise. |
| (unaligned_storesi): Likewise. |
| (unaligned_storehi): Likewise. |
| |
| 2015-11-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68149 |
| * config/arm/arm.md (unaligned_loaddi): Delete. |
| (unaligned_storedi): Likewise. |
| * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate |
| unaligned DImode memory ops. Instead perform two back-to-back |
| unaligned SImode ops. |
| |
| 2015-11-20 Nathan Sidwell <nathan@codesourcery.com> |
| James Norris <jnorris@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New. |
| (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override. |
| |
| 2015-11-20 Alan Hayward <alan.hayward@arm.com> |
| |
| PR tree-optimization/68413 |
| * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache |
| evolution base |
| (vectorizable_reduction): Use cached base |
| |
| 2015-11-20 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-parloops.c (build_new_reduction): Fix trailing whitespace in |
| dump-file string. |
| (try_create_reduction_list): Same. Fix typo in dump-file string. |
| |
| 2015-11-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/md.texi (Standard Names): Move entry for addptr3 around, |
| add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes |
| glitch in entries for cbranch4 and jump. |
| |
| 2015-11-20 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/68373 |
| * tree-scalar-evolution.c (final_value_replacement_loop): Factor out |
| of ... |
| (scev_const_prop): ... here. |
| * tree-scalar-evolution.h (final_value_replacement_loop): Declare. |
| * tree-parloops.c (try_create_reduction_list): Call |
| final_value_replacement_loop. |
| |
| 2015-11-20 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/52272 |
| * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct. |
| (struct iv_common_cand_hasher): New struct. |
| (iv_common_cand_hasher::hash): New function. |
| (iv_common_cand_hasher::equal): New function. |
| (struct ivopts_data): New fields, iv_common_cand_tab and |
| iv_common_cands. |
| (tree_ssa_iv_optimize_init): Initialize above fields. |
| (record_common_cand, common_cand_cmp): New functions. |
| (add_iv_candidate_derived_from_uses): New function. |
| (add_iv_candidate_for_use): Record iv_common_cands derived from |
| iv use in hash table, instead of adding candidates directly. |
| (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses. |
| (record_important_candidates): Add important candidates to iv uses' |
| related_cands. Always keep related_cands for future use. |
| (try_add_cand_for): Use iv uses' related_cands. |
| (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields |
| in struct ivopts_data, iv_common_cand_tab and iv_common_cands. |
| |
| 2015-11-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("bswaphi2"): New pattern. |
| |
| 2015-11-20 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md (GPR1_REGNUM): New constant. |
| ("*trunc<BFP:mode><DFP_ALL:mode>2") |
| ("*trunc<DFP_ALL:mode><BFP:mode>2") |
| ("trunc<BFP:mode><DFP_ALL:mode>2") |
| ("trunc<DFP_ALL:mode><BFP:mode>2") |
| ("*extend<BFP:mode><DFP_ALL:mode>2") |
| ("*extend<DFP_ALL:mode><BFP:mode>2") |
| ("extend<BFP:mode><DFP_ALL:mode>2") |
| ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1. |
| |
| 2015-11-19 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68428 |
| * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate |
| over basic blocks outside the scop. |
| |
| 2015-11-19 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/68341 |
| * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove |
| gcc_unreachable and safely fail codegen. |
| (copy_loop_close_phi_args): Do not insert merge phis in a basic |
| block with loop phi nodes. |
| (edge_for_new_close_phis): New. |
| (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis. |
| |
| 2015-11-19 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define. |
| * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK. |
| (nvptx_declare_objec_name): Likewise. |
| |
| 2015-11-19 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move... |
| (get_false_edge_from_guard_bb): Move... |
| * sese.c (get_false_edge_from_guard_bb) |
| (get_true_edge_from_guard_bb): ... here. |
| |
| 2015-11-19 David Edelsohn <dje.gcc@gmail.com> |
| |
| Revert |
| 2015-11-18 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore |
| type-limits warning. |
| |
| |
| 2015-11-19 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> |
| |
| * tree.h (desired_pro_or_demotion_p): New function. |
| * tree-vrp.c (simplify_cond_using_ranges): Call it. |
| |
| 2015-11-19 Michael Matz <matz@suse.de> |
| |
| PR rtl-optimization/68392 |
| * fwprop.c (update_uses): Use flag_checking instead of |
| gcc_checking_assert. |
| |
| 2015-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/gty.texi (Support for inheritance): Fix missing |
| parentheses in example. |
| |
| 2015-11-19 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/68431 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition. |
| |
| 2015-11-19 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1, |
| atomic_exchange<mode>): Input values can be immediates. |
| |
| 2015-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/61313 |
| * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified |
| by the user. |
| * configure: Regenerate. |
| |
| 2015-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/68408 |
| * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine. |
| (DTORS_SECTION_ASM_OP): Likewise. |
| |
| 2015-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/68376 |
| * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if |
| encountering x <= 0 ? ~x : x or x > 0 ? ~x : x. |
| |
| 2015-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68117 |
| * tree-ssa.c (delete_tree_ssa): Revert removal of call to |
| redirect_edge_var_map_destroy. |
| |
| 2015-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/67770 |
| * config/i386/i386.md (simple_return): Disable if |
| ix86_static_chain_on_stack is true. |
| |
| 2015-11-19 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR bootstrap/68393 |
| * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P |
| destinations. |
| |
| 2015-11-18 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/68198 |
| * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish |
| between threading a multi-way branch and a thread path that contains |
| a multi-way branch. Disallow the case where a path contains a |
| multi-way branch and does not thread a multi-way branch. |
| (thread_through_all_blocks): Update comment. |
| |
| 2015-11-18 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/65083 |
| * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence) |
| (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit) |
| (atomic_flag_clear, atomic_flag_clear_explicit): Declare as |
| functions before defining as macros. |
| |
| 2015-11-18 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace. |
| (nvptx_record_offload_symbol): Remove code compensating for lack |
| of default dimension handling. |
| (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers. |
| |
| 2015-11-18 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return |
| type to bool for early exit. |
| (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return |
| in case of error. |
| (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same. |
| (add_phi_arg_for_new_expr): Enable codegen for if-block where one |
| predecessor dominates the other. |
| (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the |
| element is not found it returns -1. |
| (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail |
| out early when codegen fails. |
| (graphite_regenerate_ast_isl): Remove codegen region when pending |
| phis could not be generated. |
| |
| 2015-11-18 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove |
| semicolon. |
| (class translate_isl_ast_to_gimple): Indentation. |
| (translate_pending_phi_nodes): Comment. |
| (add_parameters_to_ivs_params): Moved from sese.c inside class |
| translate_isl_ast_to_gimple. |
| (get_max_schedule_dimensions): Same. |
| (generate_isl_context): Same. |
| (extend_schedule): Same. |
| (generate_isl_schedule): Same. |
| (set_options): Same. |
| (scop_to_isl_ast): Same. |
| (is_valid_rename): Same. |
| (get_rename): Same. |
| (get_rename_from_scev): Same. |
| (get_def_bb_for_const): Same. |
| (get_new_name): Same. |
| (collect_all_ssa_names): Same. |
| (copy_loop_phi_args): Same. |
| (copy_loop_phi_nodes): Same. |
| (copy_loop_close_phi_args): Same. |
| (copy_loop_close_phi_nodes): Same. |
| (copy_cond_phi_args): Same. |
| (copy_cond_phi_nodes): Same. |
| (graphite_copy_stmts_from_block): Same. |
| (copy_bb_and_scalar_dependences): Same. |
| (add_phi_arg_for_new_expr): Same. |
| (rename_uses): Same. |
| (set_rename): Same. |
| (set_rename_for_each_def): Same. |
| (gsi_insert_earliest): Same. |
| (rename_all_uses): Same. |
| (codegen_error_p): Same. |
| (print_isl_ast_node): Same. |
| (translate_isl_ast_for_loop): Call function codegen_error_p. |
| (translate_isl_ast_to_gimple::translate_isl_ast): Same. |
| (translate_isl_ast_node_user): Make nb_loops const and release |
| iv_map before exit. |
| (get_true_edge_from_guard_bb): Move all free-functions early. |
| (get_false_edge_from_guard_bb): Same. |
| (bb_contains_loop_close_phi_nodes): Same. |
| (bb_contains_loop_phi_nodes): Same. |
| (is_loop_closed_ssa_use): Same. |
| (number_of_phi_nodes): Same. |
| (phi_uses_name): Same. |
| (later_of_the_two): Same. |
| (substitute_ssa_name): |
| (get_edges): Same. |
| (get_loc): Same. |
| (get_loop_init_value): Same. |
| (find_init_value): Same. |
| (find_init_value_close_phi): Same. |
| (ast_build_before_for): Same. |
| (graphite_regenerate_ast_isl): Formatting changes. |
| * graphite-scop-detection.c (build_cross_bb_scalars_use): Same. |
| * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c |
| (set_rename): Same. |
| (gsi_insert_earliest): Same. |
| (collect_all_ssa_names): Same. |
| (rename_all_uses): Same. |
| (rename_uses): Same. |
| (get_def_bb_for_const): Same. |
| (copy_loop_phi_nodes): Same. |
| (copy_loop_close_phi_args): Same. |
| (copy_loop_close_phi_nodes): Same. |
| (copy_cond_phi_args): Same. |
| (copy_cond_phi_nodes): Same. |
| (set_rename_for_each_def): Same. |
| (graphite_copy_stmts_from_block): Same. |
| (copy_bb_and_scalar_dependences): Same. |
| (if_region_set_false_region): Same. |
| (scev_analyzable_p): Same. |
| * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c. |
| |
| 2015-11-18 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the |
| commit from r125920 for FreeBSD. |
| |
| 2015-11-18 Jason Merrill <jason@redhat.com> |
| |
| * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers |
| to be vecs of vecs. |
| (add_finalizer): Split out from ggc_internal_alloc. |
| (ggc_handle_finalizers): Run finalizers for the current depth. |
| (init_ggc, ggc_pch_read): Reserve space for finalizers. |
| |
| 2015-11-18 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR target/68410 |
| * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests |
| from || expression. |
| |
| 2015-11-18 Pitchumani Sivanupandi <pitchumani.s@atmel.com> |
| |
| * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and |
| atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb |
| and atmega328pb. |
| * doc/avr-mmcu.texi: Regenerate. |
| |
| 2015-11-18 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types. |
| (pseudo_node_t, struct bracket, bracket_vec_t): New types. |
| (struct bb_sese): New struct. |
| (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New. |
| (BB_GET_SESE, BB_SET_SESE): Define. |
| (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New. |
| (nvptx_find_sese): New. |
| (nvptx_neuter_pars): Find SESE regions when optimizing. |
| |
| 2015-11-18 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore |
| type-limits warning. |
| |
| 2015-11-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR bootstrap/68406 |
| * hash-set.h (hash_set::traverse): Expand Key typedef. |
| |
| 2015-11-18 Martin Liska <mliska@suse.cz> |
| |
| * config/arm/arm.c (arm_valid_target_attribute_p): Finalize |
| options struct. |
| |
| 2015-11-18 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (global_lock_var): New. |
| (nvptx_global_lock_addr): New. |
| (nvptx_lockless_update): Recomment and adjust for clarity. |
| (nvptx_lockfull_update): New. |
| (nvptx_reduction_update): New. |
| (nvptx_goacc_reduction_fini): Call it. |
| |
| 2015-11-18 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * regrename.h (struct du_head): Add target_data_1 and target_data_2 |
| fields. |
| * regrename.c (create_new_chain): Clear entire struct after allocating. |
| |
| * config/i386/i386.opt (mmitigate-rop): New option. |
| * doc/invoke.texi (mmitigate-rop): Document. |
| * config/i386/i386.c: Include "regrename.h". |
| (ix86_rop_should_change_byte_p, reg_encoded_number, |
| ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New |
| static functions. |
| (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop. |
| * config/i386/i386.md (attr "modrm_class"): New. |
| (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor, |
| x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se) |
| (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute. |
| |
| 2015-11-18 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR target/68405 |
| * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break. |
| |
| 2015-11-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/68157 |
| * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of |
| pow_stmt or mul_stmt from stmt's uid. |
| (reassociate_bb): Set uid of mul_stmt from stmt's uid. |
| |
| 2015-11-18 Martin Liska <mliska@suse.cz> |
| |
| * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list. |
| |
| 2015-11-18 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): |
| Fix GNU coding style. |
| (find_def_preds): Use auto_vec. |
| (destroy_predicate_vecs): Change signature of the function. |
| (prune_uninit_phi_opnds_in_unrealizable_paths): Use the |
| new signature. |
| (simplify_preds_4): Use destroy_predicate_vecs instread of |
| just releasing preds vector. |
| (normalize_preds): Likewise. |
| (is_use_properly_guarded): Use new signature of |
| destroy_predicate_vecs. |
| (find_uninit_use): Likewise. |
| |
| 2015-11-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67790 |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Remove |
| IL rewrite for MINUS_EXPR reductions, rename back to ... |
| (vect_is_simple_reduction): ... this, removing the wrapper. |
| (vect_force_simple_reduction): Adjust. |
| (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR |
| reductions and make use if reduc_index in all places. For |
| the final reduction of MINUS_EXPR use PLUS_EXPR. |
| |
| 2015-11-18 Alan Modra <amodra@gmail.com> |
| |
| * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro |
| to ld. |
| * configure: Regenerate. |
| |
| 2015-11-17 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments. |
| |
| 2015-11-17 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing |
| uses of ssa_name with constant. |
| |
| 2015-11-17 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if |
| something changed. |
| |
| 2015-11-17 Tom de Vries <tom@codesourcery.com> |
| |
| * cfgloop.h (struct loop): Add in_oacc_kernels_region field. |
| * omp-low.c (mark_loops_in_oacc_kernels_region): New function. |
| (expand_omp_target): Call mark_loops_in_oacc_kernels_region. |
| |
| 2015-11-17 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * regrename.c (regrename_find_superclass): New function, code moved |
| from ... |
| (rename_chains): ... here. Call it. |
| * regrename.h (regrename_find_superclass): Declare. |
| |
| * regrename.c (record_out_operands): Terminate earlyclobbered |
| operands here. |
| |
| PR target/66785 |
| * regrename.c (record_operand_use): Keep track of failed operands |
| and stop appending if we see any. |
| * regrename.h (struct operand_rr_info): Add a failed field and shrink |
| n_chains to short. |
| |
| 2015-11-17 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR 48568 |
| * doc/extend.texi (Common Function Attributes) [visibility]: |
| Add cross-references to matching variable and type attributes. |
| (Common Variable Attributes) [visibility]: Add missing entry. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove |
| entries that map directly to optabs. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.c (ix86_builtin_vectorized_function): Remove |
| entries that map directly to optabs. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.h (direct_internal_fn_info): Add vectorizable flag. |
| * internal-fn.c (direct_internal_fn_array): Update accordingly. |
| * tree-vectorizer.h (vectorizable_function): Delete. |
| * tree-vect-stmts.c: Include internal-fn.h. |
| (vectorizable_internal_function): New function. |
| (vectorizable_function): Inline into... |
| (vectorizable_call): ...here. Explicitly reject calls that read |
| from or write to memory. Try using an internal function before |
| falling back on the old vectorizable_function behavior. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (builtin_vectorized_function): Take a combined_fn (in |
| the form of an unsigned int) rather than a function decl. |
| (builtin_md_vectorized_function): New. |
| * targhooks.h (default_builtin_vectorized_function): Replace the |
| fndecl argument with an unsigned int. |
| (default_builtin_md_vectorized_function): Declare. |
| * targhooks.c (default_builtin_vectorized_function): Replace the |
| fndecl argument with an unsigned int. |
| (default_builtin_md_vectorized_function): New function. |
| * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): |
| New hook. |
| * doc/tm.texi: Regenerate. |
| * tree-vect-stmts.c (vectorizable_function): Update call to |
| builtin_vectorized_function, also passing internal functions. |
| Call builtin_md_vectorized_function for target-specific builtins. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_builtin_vectorized_function): Replace fndecl argument |
| with an unsigned int. |
| * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h. |
| (aarch64_builtin_vectorized_function): Update after above changes. |
| Use CASE_CFN_*. |
| * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace |
| fndecl argument with an unsigned int. |
| * config/arm/arm-builtins.c: Include case-cfn-macros.h |
| (arm_builtin_vectorized_function): Update after above changes. |
| Use CASE_CFN_*. |
| * config/i386/i386.c: Include case-cfn-macros.h |
| (ix86_veclib_handler): Take a combined_fn rather than a |
| built_in_function. |
| (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise. Use |
| mathfn_built_in rather than calling builtin_decl_implicit directly. |
| (ix86_builtin_vectorized_function) Update after above changes. |
| Use CASE_CFN_*. |
| * config/rs6000/rs6000.c: Include case-cfn-macros.h |
| (rs6000_builtin_vectorized_libmass): Replace fndecl argument |
| with a combined_fn. Use CASE_CFN_*. Use mathfn_built_in rather |
| than calling builtin_decl_implicit directly. |
| (rs6000_builtin_vectorized_function): Update after above changes. |
| Use CASE_CFN_*. Move BUILT_IN_MD to... |
| (rs6000_builtin_md_vectorized_function): ...this new function. |
| (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-patterns.c: Include internal-fn.h. |
| (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P) |
| (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (expand_errno_check, expand_builtin_mathfn) |
| (expand_builtin_mathfn_2): Delete. |
| (expand_builtin): Remove handling of functions with |
| internal function equivalents. |
| * internal-fn.def (SET_EDOM): New internal function. |
| * internal-fn.h (set_edom_supported_p): Declare. |
| * internal-fn.c (expand_SET_EDOM): New function. |
| (set_edom_supported_p): Likewise. |
| * tree-call-cdce.c: Include builtins.h and internal-fn.h. |
| Rewrite comment at head of file. |
| (is_call_dce_candidate): Rename to... |
| (can_test_argument_range): ...this. Don't check gimple_call_lhs |
| or gimple_call_builtin_p here. |
| (edom_only_function): New function. |
| (shrink_wrap_one_built_in_call_with_conds): New function, split out |
| from... |
| (shrink_wrap_one_built_in_call): ...here. |
| (can_use_internal_fn, use_internal_fn): New functions. |
| (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn |
| for calls that have an lhs. |
| (pass_call_cdce::gate): Remove optimize_function_for_speed_p check. |
| (pass_call_cdce::execute): Skip blocks that are optimized for size. |
| Check gimple_call_builtin_p here. Use can_use_internal_fn for |
| calls with an lhs. |
| * opts.c (default_options_table): Enable -ftree-builtin-call-cdce |
| at -O and above. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.h (called_as_built_in): Declare. |
| * builtins.c (called_as_built_in): Make external. |
| * internal-fn.h (expand_internal_call): Define a variant that |
| specifies the internal function explicitly. |
| * internal-fn.c (expand_load_lanes_optab_fn) |
| (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE) |
| (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE) |
| (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END) |
| (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR) |
| (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT) |
| (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB) |
| (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW) |
| (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED) |
| (expand_mask_load_optab_fn, expand_mask_store_optab_fn) |
| (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG) |
| (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS) |
| (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn) |
| (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn |
| argument. |
| (internal_fn_expanders): Update prototype. |
| (expand_internal_call): Define a variant that specifies the |
| internal function explicitly. Use it to implement the previous |
| interface. |
| * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in |
| functions as calls to internal functions. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd. |
| (generated_files): Likewise. |
| (s-cfn-operators, cfn-operators.pd): New rules. |
| (s-match): Depend on cfn-operators.pd. |
| * gencfn-macros.c: Expand comment to describe -o behavior. |
| (print_define_operator_list): New function. |
| (main): Accept -o. Call print_define_operator_list. |
| * genmatch.c (main): Add the current directory to the include path. |
| * match.pd (DEFINE_MATH_FN): Delete. Include cfn-operators.pd |
| instead. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/match-and-simplify.texi: Document the "null" identifier. |
| * genmatch.c (id_base::NULL_ID): New kind. |
| (null_id): New variable. |
| (get_operator): Add a parameter that says whether null identifiers |
| are allowed. |
| (contains_id): New function. |
| (lower_for): Skip substitutions that would have a null_id in |
| either the match or the result. |
| (parser::parse_for): Allow the null identifier to be used. |
| (parser::parse_operator_list): Likewise. |
| (main): Initialize null_id. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Use HYPOT and COS rather than hypot and cos. |
| Use CASE_CFN_* macros. Guard log/exp folds with |
| SCALAR_FLOAT_TYPE_P. |
| * genmatch.c (internal_fn): New enum. |
| (fn_id::fn): Change to an unsigned int. |
| (fn_id::fn_id): Accept internal_fn too. |
| (add_builtin): Rename to... |
| (add_function): ...this and turn into a template. |
| (get_operator): Only try one variation if the original name fails. |
| Only add _EXPR if the original name was all lower case. |
| Try converting internal and built-in function names to their |
| CFN equivalents. |
| (expr::gen_transform): Use maybe_build_call_expr_loc for generic. |
| (dt_simplify::gen_1): Likewise. |
| (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple |
| and get_call_combined_fn for generic. |
| (dt_simplify::gen): Use combined_fn as the type of fn_ids. |
| (decision_tree::gen): Likewise. |
| (main): Use lower case in the strings for {VIEW_,}CONVERT[012]. |
| Use add_function rather than add_builtin. Register internal |
| functions too. |
| * generic-match-head.c: Include case-cfn-macros.h. |
| * gimple-fold.c (replace_stmt_with_simplification): Use |
| gimple_call_combined_fn to test whether we can keep an |
| existing call. |
| * gimple-match.h (code_helper): Replace built_in_function |
| with combined_fn. |
| * gimple-match-head.c: Include fold-const-call.h, internal-fn.h |
| and case-fn-macros.h. |
| (gimple_resimplify1): Use fold_const_call. |
| (gimple_resimplify2, gimple_resimplify3): Likewise. |
| (build_call_internal, build_call): New functions. |
| (maybe_push_res_to_seq): Use them. |
| (gimple_simplify): Use fold_const_call. Set *rcode to a combined_fn |
| rather than a built-in function. |
| * tree.h (build_call_expr_internal_loc): Declare. |
| (maybe_build_call_expr_loc): Likewise. |
| * tree.c (build_call_expr_internal_loc_array): New function. |
| (maybe_build_call_expr_loc): Likewise. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.h (mathfn_built_in): Add a variant that takes |
| a combined_fn. |
| * builtins.c: Include case-cfn-macros.h. |
| (CASE_MATHFN): Use CASE_CFN_*. |
| (CASE_MATHFN_REENT): Use CFN_ codes. |
| (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function |
| argument with a combined_fn. |
| (mathfn_built_in): Add a variant that takes a combined_fn. |
| (expand_builtin_int_roundingfn_2): Update callers accordingly. |
| (fold_builtin_sincos, fold_builtin_classify): Likewise. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-patterns.c: Include case-cfn-macros.h. |
| (vect_recog_pow_pattern): Use combined_fn instead of built-in codes. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-ssa-math-opts.c: Include case-cfn-macros.h. |
| (execute_cse_sincos_1): Use combined_fn instead of built-in codes. |
| (pass_cse_sincos::execute): Likewise. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-ssa-reassoc.c: Include case-cfn-macros.h. |
| (stmt_is_power_of_op): Use combined_fn instead of built-in codes. |
| (decrement_power, acceptable_pow_call): Likewise. |
| (attempt_builtin_copysign): Likewise. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vrp.c: Include case-cfn-macros.h. |
| (extract_range_basic): Switch on combined_fn rather than handling |
| built-in functions and internal functions separately. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const.h (negate_mathfn_p): Take a combined_fn rather |
| than a built_in_function. |
| (tree_call_nonnegative_warnv_p): Take a combined_fn rather than |
| a function decl. |
| (integer_valued_real_call_p): Likewise. |
| * fold-const.c: Include case-cfn-macros.h |
| (negate_mathfn_p): Take a combined_fn rather than a built_in_function. |
| (negate_expr_p): Update accordingly. |
| (tree_call_nonnegative_warnv_p): Take a combined_fn rather than |
| a function decl. |
| (integer_valued_real_call_p): Likewise. |
| (tree_invalid_nonnegative_warnv_p): Update accordingly. |
| (integer_valued_real_p): Likewise. |
| * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call |
| to tree_call_nonnegative_warnv_p. |
| (gimple_call_integer_valued_real_p): Likewise |
| integer_valued_real_call_p. |
| * gimple-ssa-backprop.c: Include case-cfn-macros.h. |
| (backprop::process_builtin_call_use): Extend to combined_fn. |
| (strip_sign_op_1): Likewise. |
| (backprop::process_use): Don't check for built-in calls here. |
| (backprop::execute): Likewise. |
| (backprop::optimize_builtin_call): Update call to negate_mathfn_p. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const-call.h (fold_const_call): Replace built_in_function |
| arguments with combined_fn arguments. |
| * fold-const-call.c: Include case-cfn-macros.h. |
| (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc) |
| (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc) |
| (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace |
| built_in_function arguments with combined_fn arguments. |
| * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2) |
| (fold_builtin_3): Update calls to fold_const_call. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * Makefile.in (HASH_TABLE_H): Add GGC_H. |
| (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h. |
| (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o) |
| (build/gencfn-macros$(build_exeext): New rules. |
| (genprogerr): Add cfn-macros. |
| * hash-set.h (hash_set): Use the traits value_type as the key. |
| * gencfn-macros.c: New file. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.def (DEF_INTERNAL_INT_FN): New macro. |
| (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions. |
| * builtins.c (associated_internal_fn): Handle them. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.h (associated_internal_fn): Declare. |
| (replacement_internal_fn): Likewise. |
| * builtins.c: Include internal-fn.h |
| (associated_internal_fn, replacement_internal_fn): New functions. |
| * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro. |
| (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P) |
| (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT) |
| (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB) |
| (LDEXP): New functions. |
| * internal-fn.c: Include recog.h. |
| (unary_direct, binary_direct): New macros. |
| (expand_direct_optab_fn): New function. |
| (expand_unary_optab_fn): New macro. |
| (expand_binary_optab_fn): Likewise. |
| (direct_unary_optab_supported_p): Likewise. |
| (direct_binary_optab_supported_p): Likewise. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * coretypes.h (tree_pair): New type. |
| * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro. Use it |
| for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES. |
| * internal-fn.h (direct_internal_fn_info): New structure. |
| (direct_internal_fn_array): Declare. |
| (direct_internal_fn_p, direct_internal_fn): New functions. |
| (direct_internal_fn_types, direct_internal_fn_supported_p): Declare. |
| * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct) |
| (mask_store_direct, store_lanes_direct): New macros. |
| (direct_internal_fn_array) New array. |
| (get_multi_vector_move): Return the optab handler without asserting |
| that it is available. |
| (expand_LOAD_LANES): Rename to... |
| (expand_load_lanes_optab_fn): ...this and add an optab argument. |
| (expand_STORE_LANES): Rename to... |
| (expand_store_lanes_optab_fn): ...this and add an optab argument. |
| (expand_MASK_LOAD): Rename to... |
| (expand_mask_load_optab_fn): ...this and add an optab argument. |
| (expand_MASK_STORE): Rename to... |
| (expand_mask_store_optab_fn): ...this and add an optab argument. |
| (direct_internal_fn_types, direct_optab_supported_p) |
| (multi_vector_optab_supported_p, direct_internal_fn_supported_p) |
| (direct_internal_fn_supported_p): New functions. |
| (direct_mask_load_optab_supported_p): New macro. |
| (direct_load_lanes_optab_supported_p): Likewise. |
| (direct_mask_store_optab_supported_p): Likewise. |
| (direct_store_lanes_optab_supported_p): Likewise. |
| |
| 2015-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-core.h (internal_fn): Move immediately after the definition |
| of built_in_function. |
| (combined_fn): New enum. |
| * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn) |
| (internal_fn_p, as_internal_fn): New functions. |
| (get_call_combined_fn, combined_fn_name): Declare. |
| * tree.c (get_call_combined_fn): New function. |
| (combined_fn_name): Likewise. |
| * gimple.h (gimple_call_combined_fn): Declare. |
| * gimple.c (gimple_call_combined_fn): New function. |
| |
| 2015-11-17 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/68308 |
| * cp/init.c (build_new_1): Check for expression constness |
| the right way. |
| |
| 2015-11-17 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR target/53587 |
| * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86 |
| option list. |
| (x86 Options): Add -mms-bitfields and -mno-ms-bitfields. Move |
| discussion of the Microsoft structure layout details here from |
| its former home in extend.texi. |
| * doc/extend.texi (x86 Variable Attributes): Replace detailed |
| discussion with pointer to its new location. Add cross-reference |
| to corresponding type attributes. |
| (x86 Type Attributes): Add cross-references to command-line options |
| and variable attributes. |
| |
| 2015-11-17 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR middle-end/68134 |
| * targhooks.c (default_get_mask_mode): Filter out |
| scalar modes returned by mode_for_vector. |
| |
| 2015-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68143 |
| * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of |
| offset from dstbase and use it appropriately in |
| adjust_automodify_address. |
| (arm_block_set_aligned_vect): Likewise. |
| |
| 2015-11-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode. |
| (MULTILIB_DIRNAMES): Adjust accordingly. |
| |
| 2015-11-17 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a35): New. |
| * config/aarch64/aarch64.c (cortexa35_tunings): New. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (-mcpu): Add Cortex-A35 |
| |
| 2015-11-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/68263 |
| * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define |
| to 32 for IAMCU. |
| * config/i386/sse.md (*mov<mode>_internal): Always enable |
| AVX and SSE unaligned moves for IAMCU. |
| |
| 2015-11-17 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> |
| |
| * tree-if-conv.c: Include varasm.h |
| (ref_DR_map): Define. |
| (baseref_DR_map): Like wise |
| (struct ifc_dr): Add new tree predicate field. |
| (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function. |
| (memrefs_read_or_written_unconditionally): Remove. |
| (write_memrefs_written_at_least_once): Remove. |
| (ifcvt_memrefs_wont_trap): Use hash maps to query |
| unconditional read/written information. |
| (if_convertible_loop_p_1): Initialize hash maps and predicates |
| before hashing data references and delete hashmaps at the end. |
| |
| 2015-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR 56036 |
| * doc/invoke.texi (Optimize Options): Move @end table to the right |
| place. |
| |
| 2015-11-16 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR 65129 |
| * doc/extend.texi (__builtin_assume_aligned): Fix formatting of |
| return value. |
| |
| 2015-11-16 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double |
| 128-bit types, just types that fit in a single vector. |
| * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise. |
| |
| 2015-11-16 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| * doc/md.texi ('#' and '*' constraint modifiers): Do not include these |
| in the user documentation. |
| (define_peephole2, define_split): Similarly. |
| |
| 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi> |
| |
| * lto-streamer-out.c (write_global_references): Adjust integer type. |
| (lto_output_decl_state_refs): Likewise. |
| |
| 2015-11-16 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm-cores.def (cortex-a35): New. |
| * config/arm/arm.c (arm_cortex_a35_tune): New. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35. |
| * config/arm/t-aprofile: Likewise. |
| * doc/invoke.texi (-mcpu): Likewise. |
| |
| 2015-11-16 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1 |
| and qdf24xx and xgene1 to match -march=armv8-a. |
| |
| 2015-11-16 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/68330 |
| * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND |
| of LSHIFTRT by a non-zero constant integer. |
| |
| 2015-11-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68306 |
| * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix |
| bogus copying from verify_data_ref_alignment and use continue |
| instead of return. |
| |
| 2015-11-16 Oleg Endo <olegendo@gcc.gnu.org> |
| Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/68277 |
| * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and |
| operands[2]. |
| (*addsi3): Add another insn_and_split variant for reload. |
| |
| 2015-11-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68117 |
| * cfgexpand.c (pass_expand::execute): Destroy the edge |
| redirection var map before setting RTL CFG hooks. |
| |
| 2015-11-16 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/i386/sse.md (reduc_splus_v8df): Rename to... |
| (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar. |
| |
| (reduc_splus_v4df): Rename to... |
| (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar. |
| |
| (reduc_splus_v2df): Rename to... |
| (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar. |
| |
| (reduc_splus_v16sf): Rename to... |
| (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar. |
| |
| (reduc_splus_v8sf): Rename to... |
| (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar. |
| |
| (reduc_splus_v4sf): Rename to... |
| (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar. |
| |
| (reduc_<code>_<mode>, all 3 variants): Rename each to... |
| (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar. |
| |
| (reduc_umin_v8hf): Rename to... |
| (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar. |
| |
| 2015-11-16 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * omp-low.c (pass_omp_simd_clone::gate): If target allows - call |
| without additional conditions. |
| * doc/extend.texi (@item simd): New. |
| |
| 2015-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * passes.c (first_pass_instance): Remove variable. |
| (execute_todo): Remove setting of first_pass_instance. |
| * tree-pass.h (first_pass_instance): Remove declaration. |
| |
| 2015-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * passes.def: Add arg to pass_ccp pass instantiation. |
| * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p. Use nonzero_p |
| instead of first_pass_instance. |
| (do_ssa_ccp): Add and handle param nonzero_p. |
| (pass_ccp::pass_ccp): Initialize nonzero_p. |
| (pass_ccp::set_pass_param): New member function. Set nonzero_p. |
| (pass_ccp::execute): Call do_ssa_ccp with extra arg. |
| (pass_ccp::nonzero_p): New private member. |
| |
| 2015-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * passes.def: Add arg to pass_object_sizes pass instantiation. |
| * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize |
| insert_min_max_p. |
| (pass_object_sizes::set_pass_param): New member function. Set |
| insert_min_max_p. |
| (pass_object_sizes::insert_min_max_p): New private member. |
| (pass_object_sizes::execute): Use insert_min_max_p instead of |
| first_pass_instance. |
| |
| 2015-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * passes.def: Add arg to pass_dominator pass instantiation. |
| * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit |
| of comment. |
| * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize |
| may_peel_loop_headers_p. |
| (pass_dominator::set_pass_param): New member function. Set |
| may_peel_loop_headers_p. |
| (pass_dominator::may_peel_loop_headers_p): New private member. |
| (pass_dominator::execute): Use may_peel_loop_headers_p instead of |
| first_pass_instance. |
| |
| 2015-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * passes.def: Add arg to pass_reassoc pass instantiation. |
| * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable. |
| (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead |
| of first_pass_instance. |
| (execute_reassoc): Add and handle insert_powi_p parameter. |
| (pass_reassoc::insert_powi_p): New private member. |
| (pass_reassoc::pass_reassoc): Initialize insert_powi_p. |
| (pass_reassoc::set_pass_param): New member function. Set insert_powi_p. |
| (pass_reassoc::execute): Call execute_reassoc with extra arg. |
| |
| 2015-11-16 Tom de Vries <tom@codesourcery.com> |
| |
| * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument. |
| * gen-pass-instances.awk (handle_line): Same. |
| * pass_manager.h (class pass_manager): Define and undefine |
| NEXT_PASS_WITH_ARG. |
| * passes.c (opt_pass::set_pass_param): New function. |
| (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG. |
| * passes.def: Add extra arg to NEXT_PASS (pass_vrp). |
| * tree-pass.h (gimple_opt::set_pass_param): Declare. |
| * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle |
| warn_array_bounds_p parameter. |
| (pass_vrp::pass_vrp): Initialize warn_array_bounds_p. |
| (pass_vrp::set_pass_param): New function. |
| (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call. |
| (pass_vrp::warn_array_bounds_p): New private member. |
| |
| 2015-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust. |
| (output_probe_stack_range): Rotate the loop and simplify. |
| |
| 2015-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust. |
| (output_probe_stack_range): Rotate the loop and simplify. |
| |
| 2015-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use |
| an lea instruction when possible. |
| (output_adjust_stack_and_probe): Rotate the loop and simplify. |
| (ix86_emit_probe_stack_range): Adjust. |
| (output_probe_stack_range): Rotate the loop and simplify. |
| |
| 2015-11-16 Christian Bruel <christian.bruel@st.com> |
| |
| * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON. |
| Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP |
| with appropriate pragma GCC target. |
| |
| 2015-11-16 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/65837 |
| * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset |
| __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP. |
| |
| 2015-11-16 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.c (cortexa57_branch_costs): New. |
| (cortexa57_tunings): Use it. |
| |
| 2015-11-16 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/65837 |
| * config/arm/arm-c.c (arm_cpu_builtins): Set or reset |
| __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__ |
| (arm_pragma_target_parse): Change check for arm_cpu_builtins. |
| undefine __ARM_FP. |
| * config/arm/arm.c (arm_can_inline_p): Check FPUs. |
| (arm_valid_target_attribute_rec): Handle -mfpu attribute target. |
| * doc/invoke.texi (-mfpu=): Mention attribute and pragma. |
| * doc/extend.texi (-mfpu=): Describe attribute. |
| |
| 2015-11-16 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/65837 |
| * config/arm/arm-protos.h (arm_init_neon_builtins): Declare. |
| * config/arm/arm.c (arm_valid_target_attribute_tree): Call |
| arm_init_neon_builtins. |
| * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into... |
| (arm_init_neon_builtins_internal) |
| (arm_init_crypto_builtins_internal): |
| Test and set neon_set_p, neon_crypto_set_p. |
| (neon_set_p, neon_crypto_set_p): New static booleans. |
| |
| 2015-11-16 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/65837 |
| * config/arm/arm.c (arm_fpu_desc): Remove. |
| (all_fpus): Make global. |
| (arm_option_override): Use FPU TARGET accessors. |
| (arm_declare_function_name): Likewise. |
| * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5) |
| (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16) |
| (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO) |
| (TARGET_NEON): Likewise. |
| (all_fpus): Declare extern. |
| (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV) |
| (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors. |
| |
| 2015-11-15 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| PR middle-end/68366 |
| * sdbout.c: Include emit-rtl.h and function.h. |
| |
| 2015-11-15 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586. |
| Remove support for FreeBSD 5 and earlier. |
| |
| 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * configure: Regenerate. |
| * configure.ac: Always define ENABLE_OFFLOADING. |
| * cgraph.c (cgraph_node::create): Adjust. |
| * gcc.c (process_command): Likewise. |
| * omp-low.c (create_omp_child_function): Likewise. |
| (expand_omp_target): Likewise. |
| * varpool.c (varpool_node::get_create): Likewise. |
| |
| 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h (EH_RETURN_HANDLER_RTX): New default definition. |
| * df-scan.c (df_get_exit_block_use_set): Adjust. |
| * except.c (expand_eh_return): Likewise. |
| |
| 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * config/i386/i386.h (TARGET_PECOFF): Remove define. |
| * defaults.h (TARGET_PECOFF): New default definition. |
| * varasm.c (handle_vtv_comdat_section): Adjust. |
| |
| 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h: New definition of SDB_DEBUGGING_INFO. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in: Adjust. |
| * final.c (rest_of_clean_state): Remove check if |
| SDB_DEBUGGING_INFO is defined. |
| * function.c (number_blocks): Likewise. |
| * output.h: Likewise. |
| * sdbout.c: Likewise. |
| * toplev.c (process_options): Likewise. |
| |
| 2015-11-14 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES. |
| (enum sdb_masks): Likewise. |
| * sdbout.c (plain_type_1): Likewise. |
| * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro. |
| |
| 2015-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_* |
| internal calls - 0 if ordered simd and 1 for ordered threads simd. |
| * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_* |
| argument is 1, replace it with GOMP_ordered_* call instead of removing |
| it. |
| |
| 2015-11-13 Rich Felker <dalias@libc.org> |
| |
| * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard |
| address loading hack for FDPIC targets. |
| |
| 2015-11-13 Ajit Agarwal <ajitkum@xilinx.com> |
| Jeff Law <law@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-ssa-split-paths.o |
| * common.opt (-fsplit-paths): New flag controlling path splitting. |
| * doc/invoke.texi (fsplit-paths): Document. |
| * opts.c (default_options_table): Add -fsplit-paths to -O2. |
| * passes.def: Add split_paths pass. |
| * timevar.def (TV_SPLIT_PATHS): New timevar. |
| * tracer.c: Include "tracer.h" |
| (ignore_bb_p): No longer static. |
| (transform_duplicate): New function, broken out of tail_duplicate. |
| (tail_duplicate): Use transform_duplicate. |
| * tracer.h (ignore_bb_p): Declare |
| (transform_duplicate): Likewise. |
| * tree-pass.h (make_pass_split_paths): Declare. |
| * gimple-ssa-split-paths.c: New file. |
| |
| 2015-11-13 Kai Tietz <ktietz70@googlemail.com> |
| Marek Polacek <polacek@redhat.com> |
| Jason Merrill <jason@redhat.com> |
| |
| * convert.c (maybe_fold_build1_loc): New. |
| (maybe_fold_build2_loc): New. |
| (convert_to_pointer_1): Split out from convert_to_pointer. |
| (convert_to_pointer_nofold): New. |
| (convert_to_real_1): Split out from convert_to_real. |
| (convert_to_real_nofold): New. |
| (convert_to_integer_1): Split out from convert_to_integer. |
| (convert_to_integer_nofold): New. |
| (convert_to_complex_1): Split out from convert_to_complex. |
| (convert_to_complex_nofold): New. |
| * convert.h: Declare new functions. |
| * tree-complex.c (create_one_component_var): Break up line to |
| avoid sequence point issues. |
| |
| 2015-11-13 Jason Merrill <jason@redhat.com> |
| |
| * fold-const.c (fold_convert_const): Fold changing cv-quals on |
| VECTOR_CST. |
| |
| * hash-map.h (hash_map::empty): New. |
| |
| 2015-11-13 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ. |
| (oacc_loop_fixed_partitions): Correct return type to bool. |
| (oacc_loop_auto_partitions): New. |
| (oacc_loop_partition): Take mask argument, call |
| oacc_loop_auto_partitions. |
| (execute_oacc_device_lower): Provide mask to oacc_loop_partition. |
| |
| 2015-11-13 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/constraints.md (we constraint): New constraint for |
| 64-bit power9 vector support. |
| (wL constraint): New constraint for the element in a vector that |
| can be addressed by the MFVSRLD instruction. |
| |
| * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add |
| declaration. |
| (convert_int_to_float128): Likewise. |
| (rs6000_generate_compare): Add support for ISA 3.0 (power9) |
| hardware support for IEEE 128-bit floating point. |
| (rs6000_expand_float128_convert): Likewise. |
| (convert_float128_to_int): Likewise. |
| (convert_int_to_float128): Likewise. |
| |
| * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for |
| ISA 3.0 hardware IEEE 128-bit floating point. |
| (UNSPEC_IEEE128_MOVE): Likewise. |
| (UNSPEC_IEEE128_CONVERT): Likewise. |
| (FMA_F): Add support for IEEE 128-bit floating point hardware support. |
| (Ff): Add support for DImode. |
| (Fv): Likewise. |
| (any_fix code iterator): New and updated iterators for IEEE |
| 128-bit floating point hardware support. |
| (any_float code iterator): Likewise. |
| (s code attribute): Likewise. |
| (su code attribute): Likewise. |
| (az code attribute): Likewise. |
| (uns code attribute): Likewise. |
| (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit |
| floating point hardware support. |
| (abs<mode>2, FLOAT128 iterator): Likewise. |
| (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit |
| floating point hardware. |
| (sub<mode>3, IEEE128 iterator): Likewise. |
| (mul<mode>3, IEEE128 iterator): Likewise. |
| (div<mode>3, IEEE128 iterator): Likewise. |
| (copysign<mode>3, IEEE128 iterator): Likewise. |
| (sqrt<mode>2, IEEE128 iterator): Likewise. |
| (neg<mode>2, IEEE128 iterator): Likewise. |
| (abs<mode>2, IEEE128 iterator): Likewise. |
| (nabs<mode>2, IEEE128 iterator): Likewise. |
| (fma<mode>4_hw, IEEE128 iterator): Likewise. |
| (fms<mode>4_hw, IEEE128 iterator): Likewise. |
| (nfma<mode>4_hw, IEEE128 iterator): Likewise. |
| (nfms<mode>4_hw, IEEE128 iterator): Likewise. |
| (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise. |
| (trunc<mode>df2_hw, IEEE128 iterator): Likewise. |
| (trunc<mode>sf2_hw, IEEE128 iterator): Likewise. |
| (fix_fixuns code attribute): Likewise. |
| (float_floatuns code attribute): Likewise. |
| (fix<uns>_<mode>si2_hw): Likewise. |
| (fix<uns>_<mode>di2_hw): Likewise. |
| (float<uns>_<mode>si2_hw): Likewise. |
| (float<uns>_<mode>di2_hw): Likewise. |
| (xscvqp<su>wz_<mode>): Likewise. |
| (xscvqp<su>dz_<mode>): Likewise. |
| (xscv<su>dqp_<mode): Likewise. |
| (ieee128_mfvsrd): Likewise. |
| (ieee128_mfvsrwz): Likewise. |
| (ieee128_mtvsrw): Likewise. |
| (ieee128_mtvsrd): Likewise. |
| (trunc<mode>df2_odd): Likewise. |
| (cmp<mode>_h): Likewise. |
| (128-bit GPR splitters): Don't split a 128-bit move that is a |
| direct move between GPR and vector registers using ISA 3.0 direct |
| move instructions. |
| (maddld4): Add support for the ISA 3.0 integer multiply-add |
| instruction. |
| |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0 |
| debugging. |
| (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we |
| constraint. Disable the VSX<->GPR direct move helpers if we have |
| the MFVSRLD and MTVSRDD instructions. |
| (rs6000_secondary_reload_simple_move): Add support for doing |
| vector direct moves directly without additional scratch registers |
| if we have ISA 3.0 instructions. |
| (rs6000_secondary_reload_direct_move): Update comments. |
| (rs6000_output_move_128bit): Add support for ISA 3.0 vector |
| instructions. |
| |
| * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0 |
| direct move instructions. |
| (vsx_movti_64bit): Likewise. |
| (vsx_extract_<mode>): Likewise. |
| |
| * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New |
| macros for ISA 3.0 direct move instructions. |
| (TARGET_DIRECT_MOVE_128): Likewise. |
| (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add |
| instruction. |
| |
| * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL |
| constraints. Update wa documentation to say not to use %x<n> on |
| instructions that only take Altivec registers. |
| |
| 2015-11-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Add gcc-rich-location.o. |
| * diagnostic.c (diagnostic_append_note): Pass line_table to |
| rich_location ctor. |
| (emit_diagnostic): Likewise. |
| (inform): Likewise. |
| (inform_n): Likewise. |
| (warning): Likewise. |
| (warning_at): Likewise. |
| (warning_n): Likewise. |
| (pedwarn): Likewise. |
| (permerror): Likewise. |
| (error): Likewise. |
| (error_n): Likewise. |
| (error_at): Likewise. |
| (sorry): Likewise. |
| (fatal_error): Likewise. |
| (internal_error): Likewise. |
| (internal_error_no_backtrace): Likewise. |
| (source_range::debug): Likewise. |
| * gcc-rich-location.c: New file. |
| * gcc-rich-location.h: New file. |
| * genmatch.c (fatal_at): Pass line_table to rich_location ctor. |
| (warning_at): Likewise. |
| * gimple.h (gimple_set_block): Use set_block function. |
| * input.c (dump_line_table_statistics): Dump stats on how many |
| ranges were optimized vs how many needed ad-hoc table. |
| (write_digit_row): Add "map" param; use its range_bits |
| to calculate the per-character offset. |
| (dump_location_info): Print the range and column bits for each |
| ordinary map. Use the range bits to calculate the per-character |
| offset. Pass the map as a new param to the various calls to |
| write_digit_row. Eliminate uses of |
| ORDINARY_MAP_NUMBER_OF_COLUMN_BITS. |
| * print-tree.c (print_node): Print any source range information. |
| * rtl-error.c (diagnostic_for_asm): Likewise. |
| * toplev.c (general_init): Initialize line_table's |
| default_range_bits. |
| * tree-cfg.c (move_block_to_fn): Likewise. |
| (move_block_to_fn): Likewise. |
| * tree-inline.c (copy_phis_for_bb): Likewise. |
| * tree.c (tree_set_block): Likewise. |
| (get_pure_location): New function. |
| (set_source_range): New functions. |
| (set_block): New function. |
| (set_source_range): New functions. |
| * tree.h (CAN_HAVE_RANGE_P): New. |
| (EXPR_LOCATION_RANGE): New. |
| (EXPR_HAS_RANGE): New. |
| (get_expr_source_range): New inline function. |
| (DECL_LOCATION_RANGE): New. |
| (set_source_range): New decls. |
| (get_decl_source_range): New inline function. |
| |
| 2015-11-13 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/67682 |
| * tree-vect-slp.c (vect_split_slp_store_group): New. |
| (vect_analyze_slp_instance): During basic block SLP, recurse on |
| subgroups if vect_build_slp_tree fails after 1st vector. |
| |
| 2015-11-13 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/65837 |
| * config/arm/arm.c (arm_option_override): Move NEON check... |
| (arm_option_check_internal): here |
| (arm_file_start): Move .fpu print... |
| (arm_declare_function_name): here |
| (arm_option_print): Dump current fpu name. |
| * config/arm/arm.opt (arm_fpu_index): Mark Save. |
| |
| 2015-11-13 Segher Boessenkool <segher@kernel.crashing.org> |
| Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * combine.c (subst): Don't substitute or simplify when |
| handling register-wise widening multiply. |
| (force_to_mode): Likewise. |
| |
| 2015-11-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/68264 |
| * tree-call-cdce.c (gen_one_condition): Update commentary. |
| (gen_conditions_for_pow_int_base): Invert the sense of the tests |
| passed to gen_one_condition. |
| (gen_conditions_for_domain): Likewise. Use unordered comparisons. |
| (shrink_wrap_one_built_in_call): Invert the sense of the tests, |
| using EDGE_FALSE_VALUE for edges to the call block and |
| EDGE_TRUE_VALUE for the others. |
| |
| 2015-11-13 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with |
| complex types. |
| |
| 2015-11-13 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * gimplify.c (oacc_default_clause): Use inform for enclosing scope. |
| |
| 2015-11-13 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Rename prefix_len var to |
| len_of_prefix. |
| |
| 2015-11-13 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Add args_str variable. |
| |
| 2015-11-13 Martin Liska <mliska@suse.cz> |
| |
| * graphite-poly.c (free_scop): Release scop->drs vector. |
| * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region): |
| Release dom vector. |
| (try_generate_gimple_bb): Use vNULL as a default initialization |
| for vectors. |
| |
| 2015-11-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/68311 |
| * ipa-icf.c (sem_item_optimizer::traverse_congruence_split): |
| Replace array initialization (using a variable post-increment) |
| that possible triggers multiple unsequenced modifications |
| with a pair of pushes to a vector. |
| |
| 2015-11-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68306 |
| * tree-vect-data-refs.c (verify_data_ref_alignment): Move |
| loop related checks ... |
| (vect_verify_datarefs_alignment): ... here. |
| (vect_slp_analyze_and_verify_node_alignment): Compute and |
| verify alignment of the single DR that it matters. |
| * tree-vect-stmts.c (vectorizable_store): Add an assert. |
| (vectorizable_load): Add a comment. |
| * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used |
| for determining load cost. |
| |
| 2015-11-13 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Check |
| mix of boolean and integer vectors in a single statement. |
| * tree-vect-slp.c (vect_mask_constant_operand_p): New. |
| (vect_get_constant_vectors): Use vect_mask_constant_operand_p to |
| determine constant type. |
| * tree-vect-stmts.c (vectorizable_comparison): Provide vectype |
| for loop invariants. |
| |
| 2015-11-13 Alan Hayward <alan.hayward@arm.com> |
| |
| PR tree-optimization/66558 |
| * tree-vect-loop.c (is_integer_induction):Add. |
| (vectorizable_reduction): Add integer induction checks. |
| |
| 2015-11-13 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| Revert [ARM] Remove neon-testgen.ml and generated tests. |
| |
| 2015-11-12 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| [ARM] Remove neon-testgen.ml and generated tests. |
| |
| * config/arm/neon-testgen.ml: Remove. |
| |
| 2015-11-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter. |
| Signal fatal failure if early checks fail. |
| (vect_analyze_loop): If vect_analyze_loop_2 fails fatally |
| do not bother testing further vector sizes. |
| |
| 2015-11-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (misaligned_operand): Return true if |
| operand is aligned to less than its natural alignmnet. |
| |
| 2015-11-13 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * doc/md.texi (vec_cmp@var{m}@var{n}): New item. |
| (vec_cmpu@var{m}@var{n}): New item. |
| (vcond@var{m}@var{n}): Specify comparison is signed. |
| (vcondu@var{m}@var{n}): New item. |
| (vcond_mask_@var{m}@var{n}): New item. |
| (maskload@var{m}@var{n}): New item. |
| (maskstore@var{m}@var{n}): New item. |
| |
| 2015-11-13 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Check |
| types of stored value and storage are compatible. |
| |
| 2015-11-13 Andris Pavenis <andris.pavenis@iki.fi> |
| |
| * gcc.c (POST_LINK_SPEC): Define if not already defined. |
| (LINK_COMMAND_SPEC): Use post_link. |
| (post_link_spec): New, initialize to POST_LINK_SPEC. |
| (post_link): Initialize new static spec. |
| * doc/tm.texi.in (POST_LINK_SPEC): Document. |
| * doc/tm.texi: Regenerated. |
| |
| 2015-11-13 David Malcolm <dmalcolm@redhat.com> |
| |
| PR driver/67613 |
| * Makefile.in (GCC_OBJS): Add spellcheck.o. |
| (OBJS): Add spellcheck-tree.o. |
| * gcc.c: Include "spellcheck.h". |
| (suggest_option): New function. |
| (driver::handle_unrecognized_options): Call suggest_option to |
| provide a hint about misspelled options. |
| * spellcheck.c: Update file comment. |
| (levenshtein_distance): Convert 4-param implementation from static |
| to extern scope. Remove note about unit tests from leading |
| comment for const char * implementation. Move tree |
| implementation to... |
| * spellcheck-tree.c: New file. |
| * spellcheck.h (levenshtein_distance): Add 4-param decl. |
| |
| 2015-11-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Add spellcheck.o. |
| * spellcheck.c: New file. |
| * spellcheck.h: New file. |
| |
| 2015-11-13 James Bowman <james.bowman@ftdichip.com> |
| |
| * config/ft32/ft32.md (*sne): New insn pattern. |
| |
| 2015-11-12 Brad Lucier <lucier@math.purdue.edu> |
| |
| * cprop.c (is_too_expensive): Remove. |
| (gcse.h): Include. |
| (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not |
| is_too_expensive. |
| * gcse.h (gcse_or_cprop_is_too_expensive): Declare. |
| * gcse.c (is_too_expensive): Rename to ... |
| (gcse_or_cprop_is_too_expensive): ... this. |
| Expand warning to add required size of max-gcse-memory. |
| (one_pre_gcse_pass): Use it. |
| (one_code_hoisting_pass): Use it. |
| * params.def (max-gcse-memory): Increase from 50MB to 128MB. |
| |
| 2015-11-12 James Norris <jnorris@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * gimple-pretty-print.c (dump_gimple_omp_target): Handle |
| GF_OMP_TARGET_KIND_OACC_DECLARE. |
| * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE. |
| (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE. |
| * gimplify.c (oacc_declare_returns): New. |
| (gimplify_bind_expr): Prepend 'exit' stmt to cleanup. |
| (device_resident_p): New function. |
| (oacc_default_clause): Handle device_resident clause. |
| (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions. |
| (gimplify_expr): Handle OACC_DECLARE. |
| * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin. |
| * omp-low.c (expand_omp_target): Handle |
| GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE. |
| (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE. |
| (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE, |
| GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK. |
| (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE. |
| * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and |
| GOMP_MAP_DEVICE_RESIDENT. |
| |
| 2015-11-12 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| [ARM] Remove neon-testgen.ml and generated tests. |
| |
| * config/arm/neon-testgen.ml: Remove. |
| |
| 2015-11-12 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/aarch64/aarch64-cores.def (qdf24xx): New. |
| * config/aarch64/aarch64-tune.md: Regenerated. |
| * config/arm/arm-cores.def (qdf24xx): New. |
| * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support. |
| * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx". |
| (ARM Options/-mtune): Likewise. |
| |
| 2015-11-12 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_valid_target_attribute_p): |
| Finalize options at the of the function. |
| * gcc.c (driver_get_configure_time_options): Call newly |
| introduced init_opts_obstack. |
| * lto-wrapper.c (main): Likewise. |
| * opts.c (init_opts_obstack): New function. |
| (init_options_struct): Call newly introduced init_opts_obstack. |
| * opts.h (init_options_struct): Declare. |
| |
| 2015-11-12 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/68035 |
| * ipa-icf.c (void sem_item::set_hash): New function. |
| (sem_function::get_hash): Use renamed m_hash member variable. |
| (sem_item::update_hash_by_addr_refs): Utilize get_hash. |
| (sem_item::update_hash_by_local_refs): Likewise. |
| (sem_variable::get_hash): Use renamed m_hash member variable. |
| (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash. |
| (sem_item_optimizer::build_hash_based_classes): Utilize set_hash. |
| (sem_item_optimizer::build_graph): As the hash value of an item |
| is lazy initialized, force the calculation. |
| * ipa-icf.h (set_hash): Declare new function and rename hash member |
| variable to m_hash. |
| |
| 2015-11-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences): |
| Rename to vect_slp_analyze_instance_dependence. |
| * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence): |
| Remove WAR special-case. |
| (vect_slp_analyze_node_dependences): Instead add more specific |
| code here, not relying on other instances being vectorized. |
| (vect_slp_analyze_instance_dependence): Adjust accordingly. |
| * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive |
| vertical space in dump files. |
| (vect_print_slp_tree): Likewise. |
| (vect_analyze_slp_instance): Dump a header for the final SLP tree. |
| (vect_slp_analyze_bb_1): Delay computing relevant stmts and |
| not vectorized stmts until after dependence analysis removed |
| instances. Merge alignment and dependence checks. |
| * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited |
| flag on all stmts. |
| |
| 2015-11-12 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/aarch64/aarch64-protos.h (tune_params): Add new members |
| "max_case_values" and "cache_line_size". |
| * config/aarch64/aarch64.c (aarch64_case_values_threshold): New |
| function. |
| (aarch64_override_options_internal): Tune heuristics based on new |
| members in "tune_params". |
| (TARGET_CASE_VALUES_THRESHOLD): Define macro. |
| |
| 2015-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68306 |
| * tree-vect-data-refs.c (verify_data_ref_alignment): Remove |
| relevant and vectorizable checks here. |
| (vect_verify_datarefs_alignment): Add relevant check here. |
| |
| 2015-11-12 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * gimplify.c (oacc_default_clause): New. |
| (omp_notice_variable): Call it. |
| |
| 2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR tree-optimization/68305 |
| * tree-vect-slp.c (vect_get_constant_vectors): Support |
| COND_EXPR with SSA_NAME as a condition. |
| |
| 2015-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/visium/visium-protos.h (notice_update_cc): Delete. |
| (print_operand): Likewise. |
| (print_operand_address): Likewise. |
| |
| 2015-11-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE, |
| FUNCTION_VALUE_REGNO_P): Remove. |
| * config/alpha/alpha-protos.h (function_value): Remove. |
| * config/alpha/alpha.c (function_value): Rename to... |
| (alpha_function_value_1): ... this. Make static. |
| (alpha_function_value, alpha_libcall_value, |
| alpha_function_value_regno_p): New functions. |
| (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, |
| TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| |
| 2015-11-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. |
| * config/alpha/alpha.c (alpha_memory_latency): Make static. |
| (alpha_register_move_cost, alpha_memory_move_cost): New functions. |
| (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. |
| |
| 2015-11-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/67265 |
| * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete |
| assertion on the CFA register. |
| |
| 2015-11-12 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * expr.c (do_store_flag): Expand vector comparison as |
| VEC_COND_EXPR if vector comparison is not supported by target. |
| |
| 2015-11-12 Renlin Li <renlin.li@arm.com> |
| |
| * config/arm/arm.md (addsi3_compare_op2): Make the order of |
| assembly pattern consistent with constraint order. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Simplify match regexp. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Simplify init of |
| postfix_starts_at. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Rename var where to |
| call_starts_at. |
| |
| 2015-11-12 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (gen_compare_reg): Swap operands also when we |
| do not expand to rtl. |
| |
| 2015-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/58497 |
| * tree-vect-generic.c: Include gimplify.h. |
| (tree_vec_extract): Lookup constant/constructor DEFs. |
| (do_cond): Unshare cond. |
| |
| 2015-11-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_legitimate_combined_insn): Reject |
| combined insn if the alignment of vector mode memory operand |
| is less than ssememalign. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Print parentheses and |
| pass_name explicitly. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Add pass_num, prefix |
| and postfix vars. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Add comments. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Rename len_of_end to |
| len_of_close. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Add len_of_call variable. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Restructure using early-out. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Unify semicolon use. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk (handle_line): Remove unused var line_length. |
| |
| 2015-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * gen-pass-instances.awk: Add emacs indent setting. |
| |
| 2015-11-12 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C) |
| to match.pd. |
| Move Convert A/(B/C) to (A/B)*C to match.pd. |
| Move Convert C1/(X*C2) into (C1/C2)/X to match.pd. |
| Move Optimize (X & (-A)) / A where A is a power of 2, to |
| X >> log2(A) to match.pd. |
| |
| * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier. |
| (rdiv @0 (rdiv:s @1 @2)): New simplifier. |
| (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2): |
| New simplifier. |
| (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier. |
| |
| 2015-11-12 Charles Baylis <charles.baylis@linaro.org> |
| |
| * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max |
| variable. |
| (neon_vst2_lane<mode>): Likewise. |
| (neon_vld3_lane<mode>): Likewise. |
| (neon_vst3_lane<mode>): Likewise. |
| (neon_vld4_lane<mode>): Likewise. |
| (neon_vst4_lane<mode>): Likewise. |
| |
| 2015-11-11 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): |
| New member codegen_error |
| (translate_isl_ast_for_loop): Remove call to single_succ_edge and |
| early return. |
| (translate_isl_ast_node_user): Early return in case of error. |
| (translate_isl_ast_to_gimple::translate_isl_ast): Same. |
| (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New. |
| (add_parameters_to_ivs_params): Remove macro. |
| (graphite_regenerate_ast_isl): Add if_region pointer to region. |
| * graphite-poly.c (new_poly_dr): Remove macro. |
| (print_pdr): Same. |
| (new_gimple_poly_bb): Same. |
| (free_gimple_poly_bb): Same. |
| (print_scop_params): Same. |
| * graphite-poly.h (struct poly_dr): Same. |
| (struct poly_bb): Add new_bb. |
| (gbb_from_bb): Remove dead code. |
| (pbb_from_bb): Same. |
| * graphite-scop-detection.c (parameter_index_in_region_1): Same. |
| (parameter_index_in_region): Same. |
| (find_scop_parameters): Same. |
| (build_cross_bb_scalars_def): New. |
| (build_cross_bb_scalars_use): New. |
| (graphite_find_cross_bb_scalar_vars): New |
| (try_generate_gimple_bb): Reads and Writes. |
| (build_alias_set): Move. |
| (gather_bbs::before_dom_children): Gather bbs visited. |
| (build_scops): call build_alias_set. |
| * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete. |
| (remove_simple_copy_phi): Delete. |
| (remove_invariant_phi): Delete. |
| (simple_copy_phi_p): Delete. |
| (reduction_phi_p): Delete. |
| (isl_id_for_dr): Remove unused param. |
| (parameter_index_in_region_1): Remove macro usage. |
| (set_scop_parameter_dim): Same. |
| (add_param_constraints): Same. |
| (add_conditions_to_constraints): Same |
| (build_scop_iteration_domain): Same. |
| (pdr_add_alias_set): Comment. |
| (add_scalar_version_numbers): New. |
| (build_poly_dr): ISL id. |
| (build_scop_drs): Move. |
| (build_poly_sr_1): Same. |
| (insert_stmts): Remove. |
| (build_poly_sr): New. |
| (new_pbb_from_pbb): Delete. |
| (insert_out_of_ssa_copy_on_edge): Delete. |
| (create_zero_dim_array): Delete. |
| (scalar_close_phi_node_p): Delete. |
| (propagate_expr_outside_region): Delete. |
| (rewrite_close_phi_out_of_ssa): Delete. |
| (rewrite_phi_out_of_ssa): Delete. |
| (rewrite_degenerate_phi): Delete. |
| (rewrite_reductions_out_of_ssa): Delete. |
| (rewrite_cross_bb_scalar_dependence): Delete. |
| (handle_scalar_deps_crossing_scop_limits): |
| (rewrite_cross_bb_scalar_deps): Delete. |
| (build_poly_scop): Remove calls to out-of-ssa functions. |
| * graphite.c (graphite_transform_loops): Early return in case of |
| codegen error. |
| * sese.c (debug_rename_map_1): Delete. |
| (debug_rename_map): Delete. |
| (sese_record_loop): Remove macro. |
| (build_sese_loop_nests): Same. |
| (new_sese_info): Same. |
| (free_sese_info): Same. |
| (sese_insert_phis_for_liveouts): |
| (is_loop_closed_ssa_use): New. |
| (number_of_phi_nodes): New. |
| (bb_contains_loop_close_phi_nodes): New. |
| (bb_contains_loop_phi_nodes): New. |
| (phi_uses_name): New. |
| (is_valid_rename): |
| (get_rename): Add old_bb and loop_phi for more precise matching of |
| exprs. |
| (set_rename): Pass region. |
| (later_of_the_two): New. |
| (gsi_insert_earliest): New. |
| (collect_all_ssa_names): New. |
| (substitute_ssa_name): New. |
| (rename_all_uses): New. |
| (get_rename_from_scev): New. |
| (rename_uses): Pass old_bb for more precise matching of exprs. |
| (get_def_bb_for_const): New. |
| (get_new_name): New. |
| (get_loc): New. |
| (get_edges): New. |
| (copy_loop_phi_args): New. |
| (copy_loop_phi_nodes): New. |
| (get_loop_init_value): New. |
| (find_init_value): New. |
| (find_init_value_close_phi): New. |
| (copy_loop_close_phi_args): New. |
| (copy_loop_close_phi_nodes): New. |
| (add_phi_arg_for_new_expr): New. |
| (copy_cond_phi_args): New. |
| (copy_cond_phi_nodes): New. |
| (copy_phi_nodes): New. |
| (should_copy_to_new_region): New. |
| (set_rename_for_each_def): New. |
| (graphite_copy_stmts_from_block): Early return in case of error. |
| (copy_bb_and_scalar_dependences): Same. |
| * sese.h (vec_find): New. |
| (SESE_PARAMS): Delete. |
| (SESE_LOOPS): Delete. |
| (SESE_LOOP_NEST): Delete. |
| (sese_contains_loop): Remove macro usage. |
| (sese_nb_params): Same. |
| (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs. |
| |
| 2015-11-11 Abderrazek Zaafrani <a.zaafrani@samsung.com> |
| |
| * graphite-sese-to-poly.c (build_scop_original_schedule): Call |
| isl_union_map_add_map on every pbb->schedule. |
| |
| 2015-11-11 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-parloops.c (create_parallel_loop): Return void. |
| |
| 2015-11-11 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit |
| block only when needed. |
| |
| 2015-11-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha-protos.h (print_operand): Remove. |
| (print_operand_address): Remove. |
| * config/alpha/alpha.h (PRINT_OPERAND): Remove. |
| (PRINT_OPERAND_ADDRESS): Remove. |
| (PRINT_OPERAND_PUNCT_VALID_P): Remove. |
| * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define. |
| (TARGET_PRINT_OPERAND_ADDRESS): New hook define. |
| (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define. |
| (print_operand_address): Rename to... |
| (alpha_print_operand_address): ...this and make static. |
| (print_operand): Rename to... |
| (alpha_print_operand): ...this and make static. |
| (alpha_print_operand_punct_valid_p): New static function. |
| |
| 2015-11-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment): |
| Declare. |
| (vect_analyze_data_refs_alignment): Make loop vect specific. |
| (vect_verify_datarefs_alignment): Likewise. |
| * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences): |
| Add missing continue. |
| (vect_compute_data_ref_alignment): Export. |
| (vect_compute_data_refs_alignment): Merge into... |
| (vect_analyze_data_refs_alignment): ... this. |
| (verify_data_ref_alignment): Split out from ... |
| (vect_verify_datarefs_alignment): ... here. |
| (vect_slp_analyze_and_verify_node_alignment): New function. |
| (vect_slp_analyze_and_verify_instance_alignment): Likewise. |
| * tree-vect-slp.c (vect_supported_load_permutation_p): Remove |
| misplaced checks on alignment. |
| (vect_slp_analyze_bb_1): Add fatal output parameter. Do |
| alignment analysis after SLP discovery and do it per instance. |
| (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not |
| bother to re-try using different vector sizes. |
| |
| 2015-11-11 Nathan Sidwell <nathan@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * gimplify.c (enum omp_region_type): Add ORT_ACC, |
| ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS. Adjust ORT_NONE. |
| (gimple_add_tmp_var): Add ORT_ACC checks. |
| (gimplify_var_or_parm_decl): Likewise. |
| (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask. |
| (omp_add_variable): Look in outer contexts for openacc and allow |
| reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks. |
| (omp_notice_variable, omp_is_private, omp_check_private): Add |
| ORT_ACC checks. |
| (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE. |
| Permit private openacc reductions. |
| (gimplify_oacc_cache): Specify ORT_ACC. |
| (gimplify_omp_workshare): Adjust OpenACC region types. |
| (gimplify_omp_target_update): Likewise. |
| * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry. |
| (lower-rec_input_clauses): Don't handle openacc firstprivate |
| references here. |
| (lower_omp_target): Emit initializers for openacc firstprivate vars. |
| |
| 2015-11-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/67265 |
| * ira.c (ira_setup_eliminable_regset): Do not necessarily create the |
| frame pointer for stack checking if non-call exceptions aren't used. |
| * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise. |
| |
| 2015-11-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of |
| [LA]SHIFTRT. |
| |
| 2015-11-11 Martin Liska <mliska@suse.cz> |
| Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/68287 |
| * lra-lives.c (lra_create_live_ranges_1): Reserve the right |
| number of elements. |
| |
| 2015-11-11 Simon Dardis <simon.dardis@imgtec.com> |
| |
| * config/mips/mips.c (mips_breakable_sequence_p): New function. |
| (mips_break_sequence): New function. |
| (mips_reorg_process_insns): Use them. Use compact branches in selected |
| situations. |
| |
| 2015-11-11 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo. |
| |
| 2015-11-11 Jiong Wang <jiong.wang@arm.com> |
| Jim Wilson <wilson@gcc.gnu.org> |
| |
| PR target/67305 |
| * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict |
| be true and eliminable registers mentioned. |
| |
| 2015-11-11 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2 |
| options. |
| * config/arc/arc-opts.h: Add ARCv2 CPUs. |
| * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype. |
| * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg) |
| situation, and store instructions with large offsets. |
| (arc_secondary_reload_conv): New function. |
| (arc_init): Add ARCv2 options. |
| (arc_conditional_register_usage): Select the proper register usage |
| for ARCv2 processors. |
| (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1 |
| architecture. |
| (arc_compute_function_type): Likewise. |
| (arc_print_operand): Handle new ARCv2 punctuation characters. |
| (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes. |
| (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New |
| function. |
| (arc_reorg, arc_hazard): Use it. |
| * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__. |
| (ASM_SPEC): Add ARCv2 options. |
| (TARGET_NORM): ARC HS has norm instructions by default. |
| (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS. |
| (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family. |
| (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define. |
| (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY): |
| Likewise. |
| (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise. |
| (TARGET_LP_WR_INTERLOCK): Likewise. |
| * config/arc/arc.md |
| (commutative_binary_mult_comparison_result_used, movsicc_insn) |
| (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart) |
| (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart) |
| (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i): |
| Use it for ARCv2. |
| (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm) |
| (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2) |
| (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu) |
| (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store) |
| (extzvsi): New pattern. |
| * config/arc/arc.opt: New ARCv2 options. |
| * config/arc/arcEM.md: New file. |
| * config/arc/arcHS.md: Likewise. |
| * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2 |
| values. |
| (Cm2): A signed 9-bit integer constant constraint. |
| (C62): An unsigned 6-bit integer constant constraint. |
| (C16): A signed 16-bit integer constant constraint. |
| * config/arc/predicates.md (mult_operator): Add ARCv2 processort. |
| (short_const_int_operand): New predicate. |
| * config/arc/t-arc-newlib: Add ARCv2 multilib options. |
| * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem> |
| -mcode-density and -mdiv-rem. |
| |
| 2015-11-11 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo. |
| |
| 2015-11-11 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386.c: Handle "skylake" and "skylake-avx512". |
| |
| 2015-11-11 Martin Liska <mliska@suse.cz> |
| |
| * gimple-ssa-strength-reduction.c (create_phi_basis): |
| Use auto_vec. |
| * passes.c (release_dump_file_name): New function. |
| (pass_init_dump_file): Used from this function. |
| (pass_fini_dump_file): Likewise. |
| * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump. |
| * var-tracking.c (vt_initialize): Use pool_allocator. |
| |
| 2015-11-11 Richard Biener <rguenth@gcc.gnu.org> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| PR tree-optimization/68234 |
| * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI |
| node which estimiated to be VR_VARYING initially. |
| |
| 2015-11-11 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * regname.c (scan_rtx_reg): Check the matching number of consecutive |
| registers when tying chains. |
| (build_def_use): Move terminated_this_insn earlier in the function. |
| |
| 2015-11-10 Mike Frysinger <vapier@gentoo.org> |
| |
| * configure.ac: Use = with test and not ==. |
| * configure: Regenerated. |
| |
| 2015-11-11 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and |
| machine asserts. Update defines for 64 bit. |
| |
| 2015-11-11 Charles Baylis <charles.baylis@linaro.org> |
| |
| PR target/63870 |
| * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid |
| lane number. |
| (neon_vst1_lane<mode>): Likewise. |
| (neon_vld2_lane<mode>): Likewise. |
| (neon_vst2_lane<mode>): Likewise. |
| (neon_vld3_lane<mode>): Likewise. |
| (neon_vst3_lane<mode>): Likewise. |
| (neon_vld4_lane<mode>): Likewise. |
| (neon_vst4_lane<mode>): Likewise. |
| |
| 2015-11-11 Charles Baylis <charles.baylis@linaro.org> |
| |
| PR target/63870 |
| * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use |
| qualifier_struct_load_store_lane_index. |
| (arm_storestruct_lane_qualifiers) Likewise. |
| * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for |
| big-endian. |
| (neon_vst1_lane<mode>) Likewise. |
| (neon_vld2_lane<mode>) Likewise. |
| (neon_vst2_lane<mode>) Likewise. |
| (neon_vld3_lane<mode>) Likewise. |
| (neon_vst3_lane<mode>) Likewise. |
| (neon_vld4_lane<mode>) Likewise. |
| (neon_vst4_lane<mode>) Likewise. |
| |
| 2015-11-11 Charles Baylis <charles.baylis@linaro.org> |
| |
| PR target/63870 |
| * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator |
| qualifier_struct_load_store_lane_index. |
| (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX. |
| (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON |
| argument qualifiers. |
| (arm_expand_neon_builtin): Handle new NEON argument qualifier. |
| * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro. |
| |
| 2015-11-10 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.opt (moptimize): New flag. |
| * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize |
| default. |
| (nvptx_optimize_inner): New. |
| (nvptx_process_pars): Call it when optimizing. |
| * doc/invoke.texi (Nvidia PTX Options): Document -moptimize. |
| |
| 2015-11-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move): |
| Remove redundant code. |
| |
| 2015-11-10 Jeff Law <law@redhat.com> |
| |
| * config/ft32/ft32.c (ft32_print_operand): Supply mode to |
| call to output_address. |
| * config/moxie/moxie.c (moxie_print_operand_address): Similarly. |
| Add unnamed machine_mode argument. |
| |
| 2015-11-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that |
| default to 64-bit. |
| |
| 2015-11-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movabs<mode>_1): Add explicit |
| size directives for -masm=intel. |
| (*movabs<mode>_2): Ditto. |
| |
| 2015-11-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_print_operand): Remove dead code that |
| tried to avoid (%rip) for call operands. |
| |
| 2015-11-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip |
| argument. Do not use RIP relative addressing when no_rip is set. |
| (ix86_print_operand): Update call to ix86_print_operand_address_as. |
| (ix86_print_operand_address): Ditto. |
| * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for |
| absolute movabs operand 0. Add square braces for -masm=intel. |
| (*movabs<mode>_2): Ditto for operand 1. |
| |
| 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle |
| combine_vcvtf2i pattern. |
| |
| 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (neon_valid_immediate): Remove integer |
| CONST_DOUBLE handling. It should never occur. |
| |
| 2015-11-10 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/atomics.md (unspecv): Move to iterators.md. |
| (ATOMIC_LDOP): Likewise. |
| (atomic_ldop): Likewise. |
| * config/aarch64/iterators.md (unspecv): Moved from atomics.md. |
| (ATOMIC_LDOP): Likewise. |
| (atomic_ldop): Likewise. |
| |
| 2015-11-10 Martin Liska <mliska@suse.cz> |
| |
| * alloc-pool.h (allocate_raw): New function. |
| (operator new (size_t, object_allocator<T> &a)): Use the |
| function instead of object_allocator::allocate). |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * config/i386/sse.md (HALFMASKMODE): New attribute. |
| (DOUBLEMASKMODE): New attribute. |
| (vec_pack_trunc_qi): New. |
| (vec_pack_trunc_<mode>): New. |
| (vec_unpacks_lo_hi): New. |
| (vec_unpacks_lo_si): New. |
| (vec_unpacks_lo_di): New. |
| (vec_unpacks_hi_hi): New. |
| (vec_unpacks_hi_<mode>): New. |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * optabs.c (expand_binop_directly): Allow scalar mode for |
| vec_pack_trunc_optab. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Skip |
| boolean vector producers from pattern sequence when computing VF. |
| * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add |
| vect_recog_mask_conversion_pattern. |
| (search_type_for_mask): Choose the smallest |
| type if different size types are mixed. |
| (build_mask_conversion): New. |
| (vect_recog_mask_conversion_pattern): New. |
| (vect_pattern_recog_1): Allow scalar mode for boolean vectype. |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked |
| load with pattern. |
| (vectorizable_conversion): Support boolean vectors. |
| (free_stmt_vec_info): Allow patterns for statements with no lhs. |
| * tree-vectorizer.h (NUM_PATTERNS): Increase to 14. |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_expand_sse_movcc): New. |
| * config/i386/i386.c (ix86_expand_sse_movcc): Make public. |
| Cast mask to FP mode if required. |
| * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New. |
| (vcond_mask_<mode><avx512fmaskmodelower>): New. |
| (vcond_mask_<mode><sseintvecmodelower>): New. |
| (vcond_mask_<mode><sseintvecmodelower>): New. |
| (vcond_mask_v2div2di): New. |
| (vcond_mask_<mode><sseintvecmodelower>): New. |
| (vcond_mask_<mode><sseintvecmodelower>): New. |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * optabs-query.h (get_vcond_mask_icode): New. |
| * optabs-tree.c (expand_vec_cond_expr_p): Use |
| get_vcond_mask_icode for VEC_COND_EXPR with mask. |
| * optabs.c (expand_vec_cond_mask_expr): New. |
| (expand_vec_cond_expr): Use get_vcond_mask_icode when possible. |
| * optabs.def (vcond_mask_optab): New. |
| * tree-vect-patterns.c (vect_recog_bool_pattern): Don't |
| generate redundant comparison for COND_EXPR. |
| * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME |
| as a condition. |
| (vectorizable_condition): Likewise. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow |
| cond_exp with no embedded comparison. |
| (vect_build_slp_tree_1): Likewise. |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * config/i386/sse.md (maskload<mode>): Rename to ... |
| (maskload<mode><sseintvecmodelower>): ... this. |
| (maskstore<mode>): Rename to ... |
| (maskstore<mode><sseintvecmodelower>): ... this. |
| (maskload<mode><avx512fmaskmodelower>): New. |
| (maskstore<mode><avx512fmaskmodelower>): New. |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes. |
| (expand_MASK_STORE): Adjust to maskstore optab changes. |
| * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg. |
| Adjust to maskload, maskstore optab changes. |
| * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg. |
| * optabs.def (maskload_optab): Transform into convert optab. |
| (maskstore_optab): Likewise. |
| * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to |
| can_vec_mask_load_store_p signature change. |
| (predicate_mem_writes): Use boolean mask. |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to |
| can_vec_mask_load_store_p signature change. Allow invariant masks. |
| (vectorizable_operation): Ignore type precision for boolean vectors. |
| |
| 2015-11-10 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results. |
| (const_vector_mask_from_tree): New. |
| (const_vector_from_tree): Use const_vector_mask_from_tree |
| for boolean vectors. |
| * optabs-query.h (get_vec_cmp_icode): New. |
| * optabs-tree.c (expand_vec_cmp_expr_p): New. |
| * optabs-tree.h (expand_vec_cmp_expr_p): New. |
| * optabs.c (vector_compare_rtx): Add OPNO arg. |
| (expand_vec_cond_expr): Adjust to vector_compare_rtx change. |
| (expand_vec_cmp_expr): New. |
| * optabs.def (vec_cmp_optab): New. |
| (vec_cmpu_optab): New. |
| * optabs.h (expand_vec_cmp_expr): New. |
| * tree-vect-generic.c (expand_vector_comparison): Add vector |
| comparison optabs check. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Ignore mask |
| operations for VF. Add mask type computation. |
| * tree-vect-stmts.c (get_mask_type_for_scalar_type): New. |
| (vectorizable_comparison): New. |
| (vect_analyze_stmt): Add vectorizable_comparison. |
| (vect_transform_stmt): Likewise. |
| (vect_init_vector): Support boolean vector invariants. |
| (vect_get_vec_def_for_operand): Add VECTYPE arg. |
| (vectorizable_condition): Directly provide vectype for invariants |
| used in comparison. |
| * tree-vectorizer.h (get_mask_type_for_scalar_type): New. |
| (enum vect_var_kind): Add vect_mask_var. |
| (enum stmt_vec_info_type): Add comparison_vec_info_type. |
| (vectorizable_comparison): New. |
| (vect_get_vec_def_for_operand): Add VECTYPE arg. |
| * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var. |
| (vect_create_destination_var): Likewise. |
| * tree-vect-patterns.c (check_bool_pattern): Check fails |
| if we can vectorize comparison directly. |
| (search_type_for_mask): New. |
| (vect_recog_bool_pattern): Support cases when bool pattern check fails. |
| * tree-vect-slp.c (vect_build_slp_tree_1): Allow |
| comparison statements. |
| (vect_get_constant_vectors): Support boolean vector constants. |
| * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New. |
| (ix86_expand_int_vec_cmp): New. |
| (ix86_expand_fp_vec_cmp): New. |
| * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for |
| op_true and op_false. |
| (ix86_int_cmp_code_to_pcmp_immediate): New. |
| (ix86_fp_cmp_code_to_pcmp_immediate): New. |
| (ix86_cmp_code_to_pcmp_immediate): New. |
| (ix86_expand_mask_vec_cmp): New. |
| (ix86_expand_fp_vec_cmp): New. |
| (ix86_expand_int_sse_cmp): New. |
| (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp. |
| (ix86_expand_int_vec_cmp): New. |
| (ix86_get_mask_mode): New. |
| (TARGET_VECTORIZE_GET_MASK_MODE): New. |
| * config/i386/sse.md (avx512fmaskmodelower): New. |
| (vec_cmp<mode><avx512fmaskmodelower>): New. |
| (vec_cmp<mode><sseintvecmodelower>): New. |
| (vec_cmpv2div2di): New. |
| (vec_cmpu<mode><avx512fmaskmodelower>): New. |
| (vec_cmpu<mode><sseintvecmodelower>): New. |
| (vec_cmpuv2div2di): New. |
| |
| 2015-11-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68240 |
| * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares |
| properly. |
| (visit_phi): For PHIs with just a single executable edge |
| take its value directly. |
| (expressions_equal_p): Handle VN_TOP properly. |
| |
| 2015-11-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): |
| Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF |
| conservatively. |
| |
| 2015-11-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/56118 |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal |
| cost favor vectorized version. |
| |
| 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand. |
| * config/aarch64/iterators.md (NEG_NOT): New code iterator. |
| (neg_not_op): New code attribute. |
| |
| 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * ifcvt.c (noce_try_inverse_constants): New function. |
| (noce_process_if_block): Call it. |
| * optabs.h (emit_conditional_neg_or_complement): Declare prototype. |
| * optabs.def (negcc_optab, notcc_optab): Declare. |
| * optabs.c (emit_conditional_neg_or_complement): New function. |
| * doc/tm.texi (Standard Names): Document negcc, notcc names. |
| |
| 2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68236 |
| * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0 |
| if insn_queue doesn't exist. |
| (haifa_sched_finish): Reset insn_queue to NULL. |
| |
| 2015-11-10 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * regrename.c (create_new_chain): Initialize renamed and tied_chain. |
| (build_def_use): Initialize terminated_this_insn. |
| (find_best_rename_reg): Pick and check register from the tied chain. |
| (regrename_do_replace): Mark head as renamed. |
| (struct du_head *terminated_this_insn). New static variable. |
| (scan_rtx_reg): Tie chains in move insns. Set terminated_this_insn. |
| * regrename.h (struct du_head): Add tied_chain, renamed members. |
| |
| 2015-11-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR bootstrap/68256 |
| * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p): |
| Return false. |
| |
| 2015-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/57845 |
| * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do |
| not promote the mode for aggregate types. |
| |
| 2015-11-09 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare. |
| * omp-low.c (build_oacc_routine_dims): New. |
| |
| 2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/constraints.md (wF constraint): New constraints |
| for power9/toc fusion. |
| (wG constraint): Likewise. |
| |
| * config/rs6000/predicates.md (u6bit_cint_operand): New |
| predicate, recognize 0..63. |
| (upper16_cint_operand): New predicate for power9 and toc fusion. |
| (fpr_reg_operand): Likewise. |
| (toc_fusion_or_p9_reg_operand): Likewise. |
| (toc_fusion_mem_raw): Likewise. |
| (toc_fusion_mem_wrapped): Likewise. |
| (fusion_gpr_addis): If power9 fusion, allow fusion for a larger |
| address range. |
| (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load |
| instead. |
| (fusion_addis_mem_combo_load): Add support for power9 fusion of |
| floating point loads, floating point stores, and gpr stores. |
| (fusion_addis_mem_combo_store): Likewise. |
| (fusion_offsettable_mem_operand): Likewise. |
| |
| * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations. |
| (emit_fusion_load_store): Likewise. |
| (fusion_p9_p): Likewise. |
| (expand_fusion_p9_load): Likewise. |
| (expand_fusion_p9_store): Likewise. |
| (emit_fusion_p9_load): Likewise. |
| (emit_fusion_p9_store): Likewise. |
| (fusion_wrap_memory_address): Likewise. |
| |
| * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new |
| elements for power9 fusion. |
| (rs6000_debug_print_mode): Rework debug information to print more |
| information about fusion. |
| (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support. |
| (rs6000_legitimate_address_p): Recognize toc fusion as a valid |
| offsettable memory address. |
| (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions. |
| (emit_fusion_gpr_load): Move most of the code from |
| emit_fusion_gpr_load into emit_fusion-addis that handles both |
| power8 and power9 fusion. |
| (emit_fusion_addis): Likewise. |
| (emit_fusion_load_store): Likewise. |
| (fusion_wrap_memory_address): Add support for TOC fusion. |
| (fusion_split_address): Likewise. |
| (fusion_p9_p): Add support for power9 fusion. |
| (expand_fusion_p9_load): Likewise. |
| (expand_fusion_p9_store): Likewise. |
| (emit_fusion_p9_load): Likewise. |
| (emit_fusion_p9_store): Likewise. |
| |
| * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for |
| new instructions in ISA 3.0. |
| (TARGET_CTZ): Likewise. |
| (TARGET_TOC_FUSION_INT): Macros for power9 fusion support. |
| (TARGET_TOC_FUSION_FP): Likewise. |
| |
| * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc |
| fusion unspecs. |
| (UNSPEC_FUSION_ADDIS): Likewise. |
| (QHSI mode iterator): New iterator for power9 fusion. |
| (GPR_FUSION): Likewise. |
| (FPR_FUSION): Likewise. |
| (mod<mode>3): Add support for ISA 3.0 modulus instructions. |
| (umod<mode>3): Likewise. |
| (divmod peephole): Likewise. |
| (udivmod peephole): Likewise. |
| (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar |
| instructions. |
| (ctz<mode>2_h): Likewise. |
| (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction. |
| (ashdi3_extswsli_dot): Likewise. |
| (ashdi3_extswsli_dot2): Likewise. |
| (power9 fusion splitter): New power9/toc fusion support. |
| (toc_fusionload_<mode>): Likewise. |
| (toc_fusionload_di): Likewise. |
| (fusion_gpr_load_<mode>): Update predicate function. |
| (power9 fusion peephole2s): New power9/toc fusion support. |
| (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. |
| (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise. |
| (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise. |
| (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise. |
| (fusion_p9_<mode>_constant): Likewise. |
| |
| 2015-11-09 Steve Ellcey <sellcey@imgtec.com> |
| |
| * optabs.c (prepare_libcall_arg): New function. |
| (expand_fixed_convert): Add call to prepare_libcall_arg. |
| |
| 2015-11-09 Nikolai Bozhenov <n.bozhenov@samsung.com> |
| |
| * sched-int.h (dump_rgn_dependencies_dot): Declare |
| * sched-rgn.c (dump_rgn_dependencies_dot): New function |
| * print-rtl.h (print_insn): Add prototype |
| |
| * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr. |
| * common.opt (-fsched-verbose): Set default value to 1. |
| * invoke.texi (-fsched-verbose): Update the option's description. |
| |
| 2015-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/visium/visium.h (PRINT_OPERAND): Delete. |
| (PRINT_OPERAND_PUNCT_VALID_P): Likewise. |
| (PRINT_OPERAND_ADDRESS): Likewise. |
| * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define |
| to... |
| (visium_print_operand_punct_valid_p): ...this. New function. |
| (TARGET_PRINT_OPERAND): Define to... |
| (print_operand): Rename to... |
| (visium_print_operand): ...this. |
| (TARGET_PRINT_OPERAND_ADDRESS): Define to... |
| (visium_output_address): Rename to... |
| (visium_print_operand_address): ...this. |
| (print_operand_address): Delete. |
| |
| 2015-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/68259 |
| * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>: |
| Check that the type of the first operand is an aggregate type. |
| |
| 2015-11-09 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c: Fix some OpenACC comment typos. |
| (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call. |
| * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM, |
| BUILT_IN_GOACC_GET_NUM_THREADS): Delete. |
| |
| 2015-11-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*strmovqi_1): Fix insn enable condition. |
| |
| 2015-11-09 Jeff Law <law@redhat.com> |
| |
| * tree-ssanames.c (verify_ssaname_freelists): Simplify check for |
| being in gimple/ssa form. Remove redundant check for SSA_NAME. |
| Fix comment typo. |
| |
| 2015-11-09 Michael Meissner <meissner@linux.vnet.ibm.com> |
| Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for |
| ISA 3.0 (power9). |
| (-mpower9-vector): Likewise. |
| (-mpower9-dform): Likewise. |
| (-mpower9-minmax): Likewise. |
| (-mtoc-fusion): Likewise. |
| (-mmodulo): Likewise. |
| (-mfloat128-hardware): Likewise. |
| |
| * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option |
| mask for ISA 3.0 (power9). |
| (POWERPC_MASKS): Add new ISA 3.0 switches. |
| (power9 cpu): Add power9 cpu. |
| |
| * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9. |
| (ASM_CPU_SPEC): Likewise. |
| (EXTRA_SPECS): Likewise. |
| |
| * config/rs6000/rs6000-opts.h (enum processor_type): Add |
| PROCESSOR_POWER9. |
| |
| * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9. |
| (rs6000_debug_reg_global): Add support for power9 fusion. |
| (rs6000_setup_reg_addr_masks): Cache mode size. |
| (rs6000_option_override_internal): Until real power9 tuning is |
| added, use -mtune=power8 for -mcpu=power9. |
| (rs6000_setup_reg_addr_masks): Do not allow pre-increment, |
| pre-decrement, or pre-modify on SFmode/DFmode if we allow the use |
| of Altivec registers. |
| (rs6000_option_override_internal): Add support for ISA 3.0 switches. |
| (rs6000_loop_align): Add support for power9 cpu. |
| (rs6000_file_start): Likewise. |
| (rs6000_adjust_cost): Likewise. |
| (rs6000_issue_rate): Likewise. |
| (insn_must_be_first_in_group): Likewise. |
| (insn_must_be_last_in_group): Likewise. |
| (force_new_group): Likewise. |
| (rs6000_register_move_cost): Likewise. |
| (rs6000_opt_masks): Likewise. |
| |
| * config/rs6000/rs6000.md (cpu attribute): Add power9. |
| * config/rs6000/rs6000-tables.opt: Regenerate. |
| |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define |
| _ARCH_PWR9 if power9 support is available. |
| |
| * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9. |
| * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise. |
| |
| * configure.ac: Determine if the assembler supports the ISA 3.0 |
| instructions. |
| * config.in (HAVE_AS_POWER9): Likewise. |
| * configure: Regenerate. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0 |
| switches. |
| |
| 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): |
| Remove integer CONST_DOUBLE handling. It should never occur. |
| |
| 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68129 |
| * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1. |
| * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE): |
| Delete VOIDmode case. Assert that mode is not VOIDmode. |
| * config/aarch64/predicates.md (const0_operand): Remove const_double |
| match. |
| |
| 2015-11-09 Martin Liska <mliska@suse.cz> |
| |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Call |
| body_info release function. |
| * ipa-prop.c (ipa_release_body_info): New function. |
| (ipa_analyze_node): Call the function. |
| (ipa_node_params::~ipa_node_params): Release known_csts. |
| * ipa-prop.h (ipa_release_body_info): Declare. |
| |
| 2015-11-09 Martin Liska <mliska@suse.cz> |
| |
| * gcc.c (record_temp_file): Release name string. |
| * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec. |
| * lra-lives.c (free_live_range_list): Utilize |
| lra_live_range_pool for allocation and deallocation. |
| (create_live_range): Likewise. |
| (copy_live_range): Likewise. |
| (lra_merge_live_ranges): Likewise. |
| (remove_some_program_points_and_update_live_ranges): Likewise. |
| (lra_create_live_ranges_1): Release point_freq_vec that can |
| be not freed from previous iteration of the function. |
| * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec. |
| * tree-sra.c (sra_deinitialize): Release all vectors in |
| base_access_vec. |
| * tree-ssa-dom.c (free_dom_edge_info): Make the function extern. |
| * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): |
| Release edge_info for a removed edge. |
| (thread_through_all_blocks): Free region vector. |
| * tree-ssa.h (free_dom_edge_info): Declare function extern. |
| |
| 2015-11-09 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * optabs.c (expand_vec_cond_expr): Always get sign from type. |
| * tree.c (wide_int_to_tree): Support negative values for boolean. |
| (build_nonstandard_boolean_type): Use signed type for booleans. |
| |
| 2015-11-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68248 |
| * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2. |
| |
| 2015-11-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/56118 |
| * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare. |
| * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export. |
| * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New |
| function. |
| (vect_slp_analyze_data_ref_dependences): Instead of computing |
| all dependences of the region DRs just analyze the code motions |
| SLP vectorization will perform. Remove SLP instances that |
| cannot have their store/load motions applied. |
| (vect_analyze_data_refs): Allow DRs without a vectype |
| in BB vectorization. |
| |
| 2015-11-09 Julian Brown <julian@codesourcery.com> |
| |
| * final.c (output_asm_insn): Pass VOIDmode to output_address. |
| (output_address): Add MODE argument. Pass to print_operand_address |
| hook. |
| * targhooks.c (default_print_operand_address): Add MODE argument. |
| * targhooks.h (default_print_operand_address): Update prototype. |
| * output.h (output_address): Update prototype. |
| * target.def (print_operand_address): Add MODE argument. |
| * config/vax/vax.c (print_operand_address): Pass VOIDmode to |
| output_address. |
| (print_operand): Pass access mode to output_address. |
| * config/mcore/mcore.c (mcore_print_operand_address): Add MODE |
| argument. |
| (mcore_print_operand): Update calls to mcore_print_operand_address. |
| * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to |
| output_address. |
| * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to |
| output_address. |
| * config/tilegx/tilegx.c (output_memory_reference_mode): Remove |
| global. |
| (tilegx_print_operand): Don't set above global. Update calls to |
| output_address. |
| (tilegx_print_operand_address): Add MODE argument. Use instead of |
| output_memory_reference_mode global. |
| * config/frv/frv.c (frv_print_operand_address): Add MODE argument. |
| (frv_print_operand): Pass mode to frv_print_operand_address calls. |
| * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to |
| output_address. |
| * config/cris/cris.c (cris_print_operand_address): Add MODE argument. |
| (cris_print_operand): Pass mode to output_address calls. |
| * config/spu/spu.c (print_operand): Pass mode to output_address calls. |
| * config/aarch64/aarch64.h (aarch64_print_operand) |
| (aarch64_print_operand_address): Remove prototypes. |
| * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete |
| global. |
| (aarch64_print_operand): Make static. Update calls to output_address. |
| (aarch64_print_operand_address): Add MODE argument. Use instead of |
| aarch64_memory_reference_mode global. |
| (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target |
| hooks. |
| * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): |
| Delete macro definitions. |
| * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls. |
| * config/xtensa/xtensa.c (print_operand): Pass mode in |
| output_address calls. |
| * config/h8300/h8300.c (h8300_print_operand_address): Add MODE |
| argument. |
| (h83000_print_operand): Update calls to h8300_print_operand_address |
| and output_address. |
| * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument. |
| * config/tilepro/tilepro.c (output_memory_reference_mode): Delete |
| global. |
| (tilepro_print_operand): Pass mode to output_address. |
| (tilepro_print_operand_address): Add MODE argument. Use instead of |
| output_memory_reference_mode. |
| * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer) |
| (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode |
| to output_address calls. |
| (nvptx_print_operand_address): Add MODE argument. |
| * config/alpha/alpha.c (print_operand): Pass mode argument in |
| output_address calls. |
| * config/m68k/m68k.c (print_operand): Pass mode argument in |
| output_address call. |
| * config/avr/avr.c (avr_print_operand_address): Add MODE argument. |
| (avr_print_operand): Update calls to avr_print_operand_address. |
| * config/sparc/sparc.c (sparc_print_operand_address): Add MODE |
| argument. Update calls to output_address. |
| (sparc_print_operand): Pass mode to output_address. |
| * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE |
| argument. |
| (iq2000_print_operand): Pass mode in output_address calls. |
| * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add |
| MODE argument. |
| (xstormy16_print_operand): Pass mode to |
| xstormy16_print_operand_address calls. |
| * config/mips/mips.c (mips_print_operand): Update calls to |
| output_address. |
| (mips_print_operand_address): Add MODE argument. |
| * config/epiphany/epiphany.c (epiphany_print_operand): Update calls |
| to output_address. |
| (epiphany_print_operand_address): Add MODE argument. Add FIXME note. |
| * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to |
| output_address. |
| * config/rx/rx.c (rx_print_operand_address): Add MODE argument. |
| (rx_print_operand): Update calls to output_address, |
| rx_print_operand_address. |
| * config/nds32/nds32.c (nds32_print_operand): Update calls to |
| output_address. |
| (nds32_print_operand_address): Add MODE argument. |
| * config/rs6000/rs6000.c (print_operand): Pass mem mode to |
| output_address calls. |
| * config/c6x/c6x.c (print_address_offset): Pass mem mode to |
| output_address call. |
| (c6x_print_address_operand): Update calls to output_address. |
| (c6x_print_operand_address): Pass mode to above. |
| * config/v850/v850.c (v850_print_operand_address): Add MODE argument. |
| (v850_print_operand): Pass mode to v850_print_operand_address, |
| output_address. |
| * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument. |
| (mmix_print_operand): Pass mode in output_address calls. |
| * config/sh/sh.c (sh_print_operand_address): Add MODE argument. |
| (sh_print_operand): Pass mem mode to output_address, |
| sh_print_operand_address. |
| * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument. |
| (cr16_print_operand): Pass mode to output_address, |
| cr16_print_operand_address. |
| * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to |
| output_address. |
| * config/microblaze/microblaze.c (print_operand): Pass mode to |
| output_address. |
| * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to |
| output_address. |
| (nios2_print_operand_address): Add MODE argument. Update call to |
| nios2_print_operand_address. |
| * config/s390/s390.c (print_operand): Pass mode to output_address. |
| * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument. |
| * config/arc/arc.c (arc_print_operand): Pass VOIDmode to |
| output_address. |
| * config/arm/arm.c (arm_print_operand_address): Add MODE argument. |
| Use instead of output_memory_reference_mode. |
| (output_memory_reference_mode): Delete global. |
| (arm_print_operand): Pass mem mode to output_address. |
| * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument. |
| (m32r_print_operand): Pass mode to output_address. |
| * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE |
| argument. |
| (msp430_print_operand): Pass mode to msp430_print_operand_addr. |
| * config/i386/i386.c (ix86_print_operand): Pass mode to |
| output_address calls. |
| (ix86_print_operand_address): Add MODE argument. |
| |
| 2015-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/68251 |
| * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around. |
| * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag. |
| * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust. |
| * tree-streamer-out.c (pack_ts_base_value_fields): Likewise. |
| |
| 2015-11-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/67749 |
| * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE |
| case before emitting the two blocks. Instead modify the register |
| in the corresponding final insn of the basic block. |
| |
| 2015-11-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in |
| assembler syntax. |
| Support Solaris ld. |
| Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1. |
| |
| * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to |
| HAVE_INITFINI_ARRAY_SUPPORT. |
| * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value. |
| |
| * configure.ac (gcc_cv_as_sparc_nobits): Remove. |
| * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): |
| Don't check HAVE_AS_SPARC_NOBITS. |
| Heed SECTION_NOTYPE. |
| |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2015-11-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/68253 |
| * fold-const.c (fold_truth_andor_1): Initialize new variables to 0. |
| |
| 2015-11-09 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS, |
| __SEG_GS, __SEG_TLS. |
| (ix86_register_pragmas): Register address spaces __seg_fs, |
| __seg_gs, __seg_tls. |
| * config/i386/i386-protos.h (enum ix86_address_seg): Remove. |
| (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New. |
| (struct ix86_address): Use addr_space_t instead of ix86_address_seg. |
| * config/i386/i386.c (ix86_decompose_address): Likewise. |
| (ix86_legitimate_address_p): Likewise. |
| (memory_address_length): Likewise. Check mem address space too. |
| (ix86_print_operand): Use ix86_print_operand_address_as. |
| (ix86_print_operand_address_as): Rename from |
| ix86_print_operand_address, add new addr_space_t parameter. |
| Validate that either the parameter or the ix86_address segment |
| is default address space. Handle ADDR_SPACE_SEG_TLS. |
| (ix86_print_operand_address): New. |
| (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New. |
| (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New. |
| (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New. |
| (ix86_addr_space_zero_address_valid): New. |
| (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New. |
| * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants. |
| * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise. |
| * config/i386/predicates.md (address_no_seg_operand): Likewise. |
| (vsib_address_operand): Likewise. |
| (address_mpx_no_base_operand): Likewise. |
| (address_mpx_no_index_operand): Likewise. |
| * doc/extend.texi (x86 Named Address Spaces): New section. |
| |
| * config/i386/i386.c (ix86_check_no_addr_space): New. |
| (decide_alg): Add have_as parameter. |
| (alg_usable_p): Likewise; disable rep algorithms if set. |
| (ix86_expand_set_or_movmem): Notice if either MEM has a |
| non-default address space. |
| (ix86_expand_strlen): Likewise. |
| * config/i386/i386.md (strmov, strset): Likewise. |
| (*strmovdi_rex_1): Use ix86_check_no_addr_space. |
| (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi, |
| *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1, |
| *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1, |
| *cmpstrnqi_1, *strlenqi_1): Likewise. |
| |
| * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx. |
| (*movabs<mode>_2): Likewise. |
| |
| * dwarf2out.c (modified_type_die): Pass the address space number |
| through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class. |
| * target.def (TARGET_ADDR_SPACE_DEBUG): New. |
| * targhooks.c (default_addr_space_debug): New. |
| * targhooks.h (default_addr_space_debug): Declare. |
| * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it. |
| * doc/tm.texi: Rebuild. |
| |
| * gimple.c (check_loadstore): Return false when 0 is a valid address. |
| * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold |
| null when 0 is valid in the source address space. |
| * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New. |
| * targhooks.c (default_addr_space_zero_address_valid): New. |
| * targhooks.h (default_addr_space_zero_address_valid): Declare. |
| * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it. |
| * doc/tm.texi: Rebuild. |
| |
| * cselib.c (add_mem_for_addr): Compare address spaces when |
| matching memories. |
| (cselib_lookup_mem): Likewise. |
| * fold-const.c (operand_equal_p): Check address spaces of |
| pointer types before checking integer constants. |
| |
| PR tree-opt/66768 |
| * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of |
| the correct type for the base. |
| |
| 2015-11-09 Jeff Law <law@redhat.com> |
| |
| * tree-into-ssa.c (names_to_release): No longer static. |
| * tree-into-ssa.h (names_to_release): Declare. |
| * tree-ssanames.c (verify_ssaname_freelists): New debug function. |
| (release_free_names_and_compact_live_names): New function extracted |
| from pass_release_ssa_names::execute. |
| (pass_release_ssa_names::execute): Use it. |
| |
| 2015-11-09 Alan Modra <amodra@gmail.com> |
| |
| * gensupport.c (add_mnemonic_string): Make len param a size_t. |
| (gen_mnemonic_setattr): Make "size" var a size_t. Use |
| obstack_blank_fast to shrink obstack. Cast obstack_next_free |
| return value. |
| |
| 2015-11-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/68182 |
| * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional |
| branch with only one successor just like unconditional branches. |
| |
| 2015-11-08 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a |
| non-FSM path has no edges marked with EDGE_DFS_BACK. |
| (ssa_redirect_edges): No longer call mark_loop_for_removal. |
| (thread_single_edge, def_split_header_continue_p): Remove. |
| (bb_ends_with_multiway_branch): Likewise. |
| (thread_through_loop_header): Remove cases of threading from |
| latch through the header. Simplify knowing we won't thread |
| the latch. |
| (thread_through_all_blocks): Simplify knowing that only the FSM |
| threader needs to handle backedges. |
| |
| 2015-11-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/extend.texi (type attributes): Document scalar_storage_order. |
| (Structure-Packing Pragmas): Rename into... |
| (Structure-Layout Pragmas): ...this. Document scalar_storage_order. |
| * doc/invoke.texi (C Dialect Options): Document -fsso-struct |
| (Warnings): Document -Wno-scalar-storage-order. |
| * flag-types.h (enum scalar_storage_order_kind): New enumeration. |
| * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to |
| extract_bit_field and store_bit_field. |
| (initialize_argument_information): Adjust call to store_expr. |
| (load_register_parameters): Adjust call to extract_bit_field. |
| * expmed.c (check_reverse_storage_order_support): New function. |
| (check_reverse_float_storage_order_support): Likewise. |
| (flip_storage_order): Likewise. |
| (store_bit_field_1): Add REVERSE parameter. Flip the storage order |
| of the value if it is true. Pass REVERSE to recursive call after |
| adjusting the target offset. |
| Do not use extraction or movstrict instruction if REVERSE is true. |
| Pass REVERSE to store_fixed_bit_field. |
| (store_bit_field): Add REVERSE parameter and pass to it to above. |
| (store_fixed_bit_field): Add REVERSE parameter and pass to it to |
| store_split_bit_field and store_fixed_bit_field_1. |
| (store_fixed_bit_field_1): Add REVERSE parameter. Flip the storage |
| order of the value if it is true and adjust the target offset. |
| (store_split_bit_field): Add REVERSE parameter and pass it to |
| store_fixed_bit_field. Adjust the target offset if it is true. |
| (extract_bit_field_1): Add REVERSE parameter. Flip the storage order |
| of the value if it is true. Pass REVERSE to recursive call after |
| adjusting the target offset. |
| Do not use extraction or subreg instruction if REVERSE is true. |
| Pass REVERSE to extract_fixed_bit_field. |
| (extract_bit_field): Add REVERSE parameter and pass to it to above. |
| (extract_fixed_bit_field): Add REVERSE parameter and pass to it to |
| extract_split_bit_field and extract_fixed_bit_field_1. |
| (extract_fixed_bit_field_1): Add REVERSE parameter. Flip the storage |
| order of the value if it is true and adjust the target offset. |
| (extract_split_bit_field): Add REVERSE parameter and pass it to |
| extract_fixed_bit_field. Adjust the target offset if it is true. |
| * expmed.h (flip_storage_order): Declare. |
| (store_bit_field): Adjust prototype. |
| (extract_bit_field): Likewise. |
| * expr.c (emit_group_load_1): Adjust calls to extract_bit_field. |
| (emit_group_store): Adjust call to store_bit_field. |
| (copy_blkmode_from_reg): Likewise. |
| (copy_blkmode_to_reg): Likewise. |
| (write_complex_part): Likewise. |
| (read_complex_part): Likewise. |
| (optimize_bitfield_assignment_op): Add REVERSE parameter. Assert |
| that it isn't true if the target is a register. |
| <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1, |
| and flip the storage order of the value. |
| <BIT_IOR_EXPR>: Flip the storage order of the value. |
| (get_bit_range): Adjust call to get_inner_reference. |
| (expand_assignment): Adjust calls to get_inner_reference, store_expr, |
| optimize_bitfield_assignment_op and store_field. Handle MEM_EXPRs |
| with reverse storage order. |
| (store_expr_with_bounds): Add REVERSE parameter and pass it to |
| recursive calls and call to store_bit_field. Force the value into a |
| register if it is true and then flip the storage order of the value. |
| (store_expr): Add REVERSE parameter and pass it to above. |
| (categorize_ctor_elements_1): Adjust call to |
| initializer_constant_valid_p. |
| (store_constructor_field): Add REVERSE parameter and pass it to |
| recursive calls and call to store_field. |
| (store_constructor): Add REVERSE parameter and pass it to calls to |
| store_constructor_field and store_expr. Set it to true for an |
| aggregate type with TYPE_REVERSE_STORAGE_ORDER. |
| (store_field): Add REVERSE parameter and pass it to recursive calls |
| and calls to store_expr and store_bit_field. Temporarily flip the |
| storage order of the value with record type and integral mode and |
| adjust the shift if it is true. |
| (get_inner_reference): Add PREVERSEP parameter and set it to true |
| upon encoutering a reference with reverse storage order. |
| (expand_expr_addr_expr_1): Adjust call to get_inner_reference. |
| (expand_constructor): Adjust call to store_constructor. |
| (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER |
| of the union type to store_expr in the MEM case and assert that it |
| isn't set in the REG case. Adjust call to store_field. |
| (expand_expr_real_1) <MEM_REF>: Handle reverse storage order. |
| <normal_inner_ref>: Add REVERSEP variable and adjust calls to |
| get_inner_reference and extract_bit_field. Temporarily flip the |
| storage order of the value with record type and integral mode and |
| adjust the shift if it is true. Flip the storage order of the value |
| at the end if it is true. |
| <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to |
| get_inner_reference. Do not fetch an inner reference if it is true. |
| * expr.h (store_expr_with_bounds): Ajust prototype. |
| (store_expr): Likewise. |
| * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set |
| REF_REVERSE_STORAGE_ORDER on the reference according to it. |
| (optimize_bit_field_compare): Deal with reverse storage order. |
| Adjust calls to get_inner_reference and make_bit_field_ref. |
| (decode_field_reference): Add PREVERSEP parameter and adjust call to |
| get_inner_reference. |
| (fold_truth_andor_1): Deal with reverse storage order. Adjust calls |
| to decode_field_reference and make_bit_field_ref. |
| (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference. |
| <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag. |
| (fold_comparison): Adjust call to get_inner_reference. |
| (split_address_to_core_and_offset): Adjust call to |
| get_inner_reference. |
| * gimple-expr.c (useless_type_conversion_p): Return false for array |
| types with different TYPE_REVERSE_STORAGE_ORDER flag. |
| * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the |
| REF_REVERSE_STORAGE_ORDER flag. |
| * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER. |
| * output.h (assemble_real): Adjust prototype. |
| * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER. |
| * stor-layout.c (finish_record_layout): Propagate the |
| TYPE_REVERSE_STORAGE_ORDER flag to the variants. |
| * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document. |
| (TYPE_SATURATING): Adjust. |
| (REF_REVERSE_STORAGE_ORDER): Document. |
| * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and |
| set it to true upon encoutering a reference with reverse storage order. |
| * tree-dfa.h (get_ref_base_and_extent): Adjust prototype. |
| * tree-inline.c (remap_gimple_op_r): Propagate the |
| REF_REVERSE_STORAGE_ORDER flag. |
| (copy_tree_body_r): Likewise. |
| * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to |
| store_expr. |
| * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with |
| TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER. |
| * tree-streamer-out.c (pack_ts_base_value_fields): Likewise. |
| * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the |
| REF_REVERSE_STORAGE_ORDER flag. |
| (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER. |
| (gimple_canonical_types_compatible_p): Likewise. |
| * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag. |
| (TYPE_SATURATING): Adjust. |
| (REF_REVERSE_STORAGE_ORDER): New flag. |
| (reverse_storage_order_for_component_p): New inline predicate. |
| (storage_order_barrier_p): Likewise. |
| (get_inner_reference): Adjust prototype. |
| * varasm.c: Include expmed.h. |
| (assemble_variable_contents): Adjust call to output_constant. |
| (assemble_real): Add REVERSE parameter. Flip the storage |
| order of the value if REVERSE is true. |
| (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER. |
| (assemble_constant_contents): Adjust call to output_constant. |
| (output_constant_pool_2): Adjust call to assemble_real. |
| (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with |
| TYPE_REVERSE_STORAGE_ORDER. |
| (initializer_constant_valid_p): Add REVERSE parameter. |
| (output_constant): Add REVERSE parameter. |
| <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true. |
| <REAL_TYPE>: Adjust call to assemble_real. |
| <COMPLEX_TYPE>: Pass it to recursive calls. |
| <ARRAY_TYPE>: Likewise. Adjust call to output_constructor. |
| <RECORD_TYPE>: Likewise. Adjust call to output_constructor. |
| (struct oc_local_state): Add REVERSE field. |
| (output_constructor_array_range): Adjust calls to output_constant. |
| (output_constructor_regular_field): Likewise. |
| (output_constructor_bitfield): Adjust call to output_constructor. |
| Flip the storage order of the value if REVERSE is true. |
| (output_constructor): Add REVERSE parameter. Set it to true for an |
| aggregate type with TYPE_REVERSE_STORAGE_ORDER. Adjust call to |
| output_constructor_bitfield. |
| * varasm.h (initializer_constant_valid_p): Default REVERSE to false. |
| * asan.c (instrument_derefs): Adjust call to get_inner_reference. |
| * builtins.c (get_object_alignment_2): Likewise. |
| * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference |
| and get_ref_base_and_extent. |
| * dbxout.c (dbxout_expand_expr): Likewise. |
| * dwarf2out.c (add_var_loc_to_decl): Likewise. |
| (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise. |
| (loc_list_from_tree): Likewise. |
| (fortran_common): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to |
| get_ref_base_and_extent. |
| (get_base_constructor): Likewise. |
| (fold_const_aggregate_ref_1): Likewise. |
| * gimple-laddress.c (pass_laddress::execute): Adjust call to |
| get_inner_reference. |
| * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to |
| get_inner_reference and bail out on reverse storage order. |
| * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field. |
| * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to |
| build_ref_for_offset. |
| * ipa-polymorphic-call.c (set_by_invariant): Adjust call to |
| get_ref_base_and_extent. |
| (ipa_polymorphic_call_context): Likewise. |
| (extr_type_from_vtbl_ptr_store): Likewise. |
| (check_stmt_for_type_change): Likewise. |
| (get_dynamic_type): Likewise. |
| * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to |
| get_ref_base_and_extent. |
| (compute_complex_assign_jump_func): Likewise. |
| (get_ancestor_addr_info): Likewise. |
| (compute_known_type_jump_func): Likewise. |
| (determine_known_aggregate_parts): Likewise. |
| (ipa_get_adjustment_candidate): Likewise. |
| (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF. |
| * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field. |
| (build_ref_for_offset): Adjust prototype. |
| * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to |
| get_inner_reference. |
| * tree-affine.c (tree_to_aff_combination): Adjust call to |
| get_inner_reference. |
| (get_inner_reference_aff): Likewise. |
| * tree-data-ref.c (split_constant_offset_1): Likewise. |
| (dr_analyze_innermost): Likewise. Bail out if reverse storage order. |
| * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to |
| get_inner_reference. |
| * tree-sra.c (struct access): Add REVERSE and move WRITE around. |
| (dump_access): Print new fields. |
| (create_access): Adjust call to get_ref_base_and_extent and set the |
| REVERSE flag according to the result. |
| (completely_scalarize_record): Set the REVERSE flag. |
| (scalarize_elem): Add REVERSE parameter. |
| (build_access_from_expr_1): Preserve storage order barriers. |
| (build_accesses_from_assign): Likewise. |
| (build_ref_for_offset): Add REVERSE parameter and set the |
| REF_REVERSE_STORAGE_ORDER flag accordingly. |
| (build_ref_for_model): Adjust call to build_ref_for_offset and clear |
| the REF_REVERSE_STORAGE_ORDER flag if there are components. |
| (analyze_access_subtree): Likewise. |
| (create_artificial_child_access): Set the REVERSE flag. |
| (get_access_for_expr): Adjust call to get_ref_base_and_extent. |
| (turn_representatives_into_adjustments): Propagate REVERSE flag. |
| (ipa_sra_check_caller): Adjust call to get_inner_reference. |
| * tree-ssa-alias.c (ao_ref_base): Adjust call to |
| get_ref_base_and_extent. |
| (aliasing_component_refs_p): Likewise. |
| (stmt_kills_ref_p_1): Likewise. |
| * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. |
| * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New. |
| Return true if reverse storage order. |
| <BIT_FIELD_REF>: Likewise. |
| <COMPONENT_REF>: Likewise. |
| <ARRAY_REF>: Likewise. |
| <ARRAY_RANGE_REF>: Likewise. |
| (split_address_cost): Likewise. Bail out if reverse storage order. |
| * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to |
| get_inner_reference. Bail out if reverse storage order. |
| (bswap_replace): Adjust call to get_inner_reference. |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set |
| the REF_REVERSE_STORAGE_ORDER flag. |
| <BIT_FIELD_REF>: Likewise. |
| * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order |
| barriers. |
| (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according |
| to the REF_REVERSE_STORAGE_ORDER flag. |
| <BIT_FIELD_REF>: Likewise. |
| <VIEW_CONVERT_EXPR>: Set it for storage order barriers. |
| (contains_storage_order_barrier_p): New predicate. |
| (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent. |
| Punt on storage order barriers if necessary. |
| * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE. |
| * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust |
| call to get_ref_base_and_extent. |
| (do_structure_copy): Likewise. |
| * tree-vect-data-refs.c (vect_check_gather): Adjust call to |
| get_inner_reference. |
| (vect_analyze_data_refs): Likewise. Bail out if reverse storage order. |
| * tsan.c (instrument_expr): Adjust call to get_inner_reference. |
| * ubsan.c (instrument_bool_enum_load): Likewise. |
| (instrument_object_size): Likewise. |
| * var-tracking.c (track_expr_p): Adjust call to |
| get_ref_base_and_extent. |
| * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to |
| get_inner_reference. |
| * config/s390/s390.c (s390_expand_atomic): Adjust call to |
| store_bit_field. |
| * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to |
| extract_bit_field. |
| * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise. |
| |
| 2015-11-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.opt (mfix-at697f): Add final period. |
| |
| 2015-11-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/67864 |
| * common/config/i386/i386-common.c (ix86_option_optimization_table) |
| <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC |
| at -Os and up. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for |
| internal functions. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP |
| * builtins.c, genmatch.c, tree-core.h: Don't undef them here. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.def: #undef DEF_INTERNAL_FN at the end. |
| * internal-fn.c: Don't undef it here. |
| * tree-core.h: Likewise. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_nan): Delete. |
| (fold_builtin_memcmp): Remove case where both arguments are constant. |
| (fold_builtin_strcmp, fold_builtin_strncmp): Likewise. |
| (fold_builtin_strspn, fold_builtin_strcspn): Likewise. |
| (fold_builtin_1): Remove BUILT_IN_NAN* handling. |
| * fold-const-call.c: Include fold-const.h. |
| (host_size_t_cst_p): New function. |
| (build_cmp_result, fold_const_builtin_nan): Likewise. |
| (fold_const_call_1): New function, split out from... |
| (fold_const_call): ...here (for all three interfaces). Handle |
| constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete. |
| (fold_builtin_1): Don't call them. |
| * fold-const-call.c: Include tm.h. |
| (fold_const_call_ss): New variant for integer-to-integer folds. |
| (fold_const_call): Call it. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_classify): Move constant cases to... |
| * fold-const-call.c (fold_const_call_ss): ...here. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.h (c_getstr): Move to... |
| * fold-const.h (c_getstr): ...here. |
| * builtins.c (c_getstr): Move to... |
| * fold-const.c (c_getstr): ...here. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use |
| ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO. |
| |
| 2015-11-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update |
| the dominance info; free it if we can't. |
| (pass_call_cdce::execute): Don't free the dominance info here. |
| |
| 2015-11-06 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadedge.c (dummy_simplify): Remove. |
| (thread_around_empty_blocks): Remove backedge_seen_p argument. |
| If we thread to a backedge, then return false. Update recursive |
| call to eliminate backedge_seen_p argument. |
| (thread_through_normal_block): Remove backedge_seen_p argument. |
| Remove backedge_seen_p argument from calls to |
| thread_around_empty_blocks. Remove checks on backedge_seen_p. |
| If we thread to a backedge, then return 0. |
| (thread_across_edge): Remove bookkeeping for backedge_seen. Don't |
| pass it to thread_through_normal_block or thread_through_empty_blocks. |
| For joiner handling, if we see a backedge, do not try normal |
| threading. |
| |
| 2015-11-06 Abderrazek Zaafrani <a.zaafrani@samsung.com> |
| |
| * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal. |
| * graphite-poly.c (new_scop): Initialize original_schedule. |
| (free_scop): Free original_schedule. |
| * graphite-poly.h (struct scop): Add field original_schedule. |
| * graphite-sese-to-poly.c (build_scop_original_schedule): New. |
| (build_poly_scop): Call build_scop_original_schedule. |
| |
| 2015-11-06 Abderrazek Zaafrani <a.zaafrani@samsung.com> |
| |
| * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove. |
| (build_pbb_minimal_scattering_polyhedrons): New. |
| (build_scop_scattering): Remove. |
| (build_scop_minimal_scattering): New. |
| (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons. |
| (build_poly_scop): Call build_scop_minimal_scattering. |
| |
| 2015-11-06 Jeff Law <law@redhat.com> |
| |
| * cfg-flags.def (IGNORE): New edge flag. |
| * tree-vrp.c (identify_jump_threads): Mark and clear edges |
| scheduled for removal with EDGE_IGNORE around call into |
| jump threader. Do no thread across edges with EDGE_IGNORE, |
| but do allow threading across those with EDGE_DFS_BACK. |
| |
| 2015-11-06 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| * doc/md.texi (multi-alternative constraints): Don't document |
| alternatives inherently tied to reload for the user documentation. |
| |
| 2015-11-06 Michael Collison <michael.collison@linaro.org> |
| Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| Revert: |
| 2015-08-01 Michael Collison <michael.collison@linaro.org |
| Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/arm.md (*arm_smin_cmp): New pattern. |
| (*arm_umin_cmp): Likewise. |
| |
| 2015-11-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording. |
| * omp-low.c (check_omp_nesting_restrictions): Update for the |
| various new OpenMP 4.5 nesting restrictions, clarified |
| nesting glossary, closely nested region relationship clarified |
| to mean explicit or implicit parallel regions (target/teams), |
| use %</%> or %qs where appropriate. |
| |
| 2015-11-06 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-scop-detection.c (loop_is_valid_scop): Call |
| optimize_loop_nest_for_speed_p. |
| |
| 2015-11-06 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-optimize-isl.c (optimize_isl): Call |
| isl_options_set_schedule_maximize_band_depth. |
| |
| 2015-11-06 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-scop-detection.c (scop_detection::merge_sese): Entry |
| and exit edges should not be a part of irreducible loop. |
| (scop_detection::can_represent_loop_1): Loops should not be |
| irreducible. |
| (scop_detection::harmful_stmt_in_region): All the basic block |
| should belong to reducible loops. |
| |
| 2015-11-06 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Update builtins |
| tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*. |
| * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to... |
| (aarch64_tbl3<mode>) ... this, which supports v16qi too. |
| (aarch64_tbx4v8qi): Rename to... |
| aarch64_tbx4<mode>): ... this. |
| (aarch64_qtbl3<mode>): New pattern. |
| (aarch64_qtbx3<mode>): New pattern. |
| (aarch64_qtbl4<mode>): New pattern. |
| (aarch64_qtbx4<mode>): New pattern. |
| * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8) |
| (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8) |
| (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8) |
| (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8) |
| (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8) |
| (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8) |
| (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8) |
| (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin |
| functions. |
| |
| 2015-11-06 Mike Stump <mikestump@comcast.net> |
| |
| PR debug/66728 |
| * dwarf2out.c (get_full_len): Return a value based upon the actual |
| precision needed for the value. |
| (add_const_value_attribute): Use a maximal wide-int for |
| CONST_WIDE_INTs, not VOIDmode. |
| (output_die): Don't ever output NULL with printf. |
| |
| * rtl.h (get_precision of rtx_mode_t): Ensure we never process |
| BLKmode nor VOIDmode values. |
| |
| 2015-11-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1" |
| and "range2". |
| (parse_gcc_colors): Update comment to describe default GCC_COLORS. |
| * diagnostic-core.h (warning_at_rich_loc): New declaration. |
| (error_at_rich_loc): New declaration. |
| (permerror_at_rich_loc): New declaration. |
| (inform_at_rich_loc): New declaration. |
| * diagnostic-show-locus.c (adjust_line): Delete. |
| (struct point_state): New struct. |
| (class colorizer): New class. |
| (class layout_point): New class. |
| (class layout_range): New class. |
| (struct line_bounds): New. |
| (class layout): New class. |
| (colorizer::colorizer): New ctor. |
| (colorizer::~colorizer): New dtor. |
| (layout::layout): New ctor. |
| (layout::print_source_line): New method. |
| (layout::print_annotation_line): New method. |
| (layout::get_state_at_point): New method. |
| (layout::get_x_bound_for_row): New method. |
| (diagnostic_show_locus): Reimplement in terms of class layout. |
| (diagnostic_print_caret_line): Delete. |
| * diagnostic.c (diagnostic_initialize): Replace |
| MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES. |
| (diagnostic_set_info_translated): Convert param from location_t |
| to rich_location *. Eliminate calls to set_location on the |
| message in favor of storing the rich_location ptr there. |
| (diagnostic_set_info): Convert param from location_t to |
| rich_location *. |
| (diagnostic_build_prefix): Break out array into... |
| (diagnostic_kind_color): New variable. |
| (diagnostic_get_color_for_kind): New function. |
| (diagnostic_report_diagnostic): Colorize the option_text |
| using the color for the severity. |
| (diagnostic_append_note): Update for change in signature of |
| diagnostic_set_info. |
| (diagnostic_append_note_at_rich_loc): New function. |
| (emit_diagnostic): Update for change in signature of |
| diagnostic_set_info. |
| (inform): Likewise. |
| (inform_at_rich_loc): New function. |
| (inform_n): Update for change in signature of diagnostic_set_info. |
| (warning): Likewise. |
| (warning_at): Likewise. |
| (warning_at_rich_loc): New function. |
| (warning_n): Update for change in signature of diagnostic_set_info. |
| (pedwarn): Likewise. |
| (permerror): Likewise. |
| (permerror_at_rich_loc): New function. |
| (error): Update for change in signature of diagnostic_set_info. |
| (error_n): Likewise. |
| (error_at): Likewise. |
| (error_at_rich_loc): New function. |
| (sorry): Update for change in signature of diagnostic_set_info. |
| (fatal_error): Likewise. |
| (internal_error): Likewise. |
| (internal_error_no_backtrace): Likewise. |
| (source_range::debug): New function. |
| * diagnostic.h (struct diagnostic_info): Eliminate field |
| "override_column". Add field "richloc". |
| (struct diagnostic_context): Add field "colorize_source_p". |
| (diagnostic_override_column): Delete. |
| (diagnostic_set_info): Convert param from location_t to |
| rich_location *. |
| (diagnostic_set_info_translated): Likewise. |
| (diagnostic_append_note_at_rich_loc): New function. |
| (diagnostic_num_locations): New function. |
| (diagnostic_expand_location): Get the location from the |
| rich_location. |
| (diagnostic_print_caret_line): Delete. |
| (diagnostic_get_color_for_kind): New declaration. |
| * genmatch.c (linemap_client_expand_location_to_spelling_point): New. |
| (error_cb): Update for change in signature of "error" callback. |
| (fatal_at): Likewise. |
| (warning_at): Likewise. |
| * input.c (linemap_client_expand_location_to_spelling_point): New. |
| * pretty-print.c (text_info::set_range): New method. |
| (text_info::get_location): New method. |
| * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro. |
| (struct text_info): Eliminate "locations" array in favor of |
| "m_richloc", a rich_location *. |
| (textinfo::set_location): Add a "caret_p" param, and reimplement |
| in terms of a call to set_range. |
| (textinfo::get_location): Eliminate inline implementation in favor of |
| an out-of-line reimplementation. |
| (textinfo::set_range): New method. |
| * rtl-error.c (diagnostic_for_asm): Update for change in signature |
| of diagnostic_set_info. |
| * tree-diagnostic.c (default_tree_printer): Update for new |
| "caret_p" param for textinfo::set_location. |
| * tree-pretty-print.c (percent_K_format): Likewise. |
| |
| 2015-11-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| Properly apply. |
| 2015-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| * config/aarch64/aarch64.c |
| (aarch64_can_use_per_function_literal_pools_p): New. |
| (aarch64_use_blocks_for_constant_p): Adjust declaration |
| and use aarch64_can_use_function_literal_pools_p. |
| (aarch64_select_rtx_section): Update. |
| |
| 2015-11-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates. |
| * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe. |
| (arm_output_multireg_pop): Likewise. |
| (output_move_double): Likewise. |
| (output_move_quad): Likewise. |
| (output_return_instruction): Likewise. |
| (arm_print_operand): Remove support for %( and %. print modifiers. |
| (arm_output_shift): Make unified asm. |
| (arm_declare_function_name): Likewise. |
| * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete. |
| (ASM_APP_OFF): Adjust. |
| (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM. |
| (ASM_OUTPUT_REG_POP): Likewise. |
| * config/arm/arm.md: Adjust uses of %., %(, %) |
| * config/arm/sync.md: Likewise. |
| * config/arm/thumb2.md: Likewise. |
| * config/arm/ldmstm.md: Regenerate. |
| * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb. |
| * doc/invoke.texi (masm-unified-syntax): Update documentation. |
| |
| 2015-11-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * input.c (dump_line_table_statistics): Dump stats on adhoc table. |
| |
| 2015-11-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and |
| add OEP_MATCH_SIDE_EFFECTS. |
| * fold-const.c (operand_equal_p): Update documentation; handle |
| OEP_MATCH_SIDE_EFFECTS. |
| * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use |
| OEP_MATCH_SIDE_EFFECTS. |
| |
| 2015-11-06 Benedikt Huber <benedikt.huber@theobroma-systems.com> |
| Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
| |
| * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf. |
| * config/aarch64/aarch64-protos.h: Declare. |
| * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and |
| frsqrts. |
| * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt. |
| * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation |
| code when applicable. |
| * config/aarch64/aarch64.md: Added enum entries. |
| * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt. |
| |
| 2015-11-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/68057 |
| PR ipa/68220 |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering |
| issue when offset is out of range. |
| (contains_type_p): Fix out of range check, clear dynamic flag. |
| |
| 2015-11-06 Arnout Vandecappelle <arnout@mind.be> |
| |
| * config.gcc (e6500): Fix cpu_is_64bit typo. |
| |
| 2015-11-06 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * tree-sra.c (completely_scalarize): Properly handle negative array |
| indices using offset_int. |
| |
| 2015-11-06 Richard Biener <rguenther@suse.de> |
| |
| * alloc-pool.h (object_allocator::allocate): Default-initialize |
| object. |
| |
| 2015-11-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor. |
| * lra.c (init_reg_info): Truncate copy_vec instead of |
| re-allocating a new one and leaking the old. |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Free |
| bb_infos vec. |
| * sched-deps.c (sched_deps_finish): Free the dn/dl pools. |
| * postreload-gcse.c (free_mem): Free modify_mem_list and |
| canon_modify_mem_list. |
| |
| 2015-11-06 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR tree-optimization/68145 |
| * tree-vect-stmts.c (vectorizable_operation): Fix |
| determination for booleans. |
| |
| 2015-11-06 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-cfg.c (gimple_split_block_before_cond_jump): Split before |
| cond_jump, instead of split after last nondebug insn before cond_jump. |
| * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before |
| returning. |
| |
| 2015-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68088 |
| * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip |
| subregs from accumulator and make sure it's a register. |
| |
| 2015-11-06 Simon Dardis <simon.dardis@imgtec.com> |
| |
| * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract |
| low part to scalar. |
| (reduc_uplus_<mode>): Remove. |
| (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec |
| loongson_extract_lo_<mode>. |
| (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from |
| reduc_smax_<mode>, reduc_smax_<mode>, use vec |
| loongson_extract_lo_<mode>. |
| (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename. |
| |
| 2015-11-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end |
| members. |
| (vect_stmt_in_region_p): Declare. |
| * tree-vect-slp.c (new_bb_vec_info): Work on a region. |
| (destroy_bb_vec_info): Likewise. |
| (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p. |
| (vect_get_and_check_slp_defs): Likewise. |
| (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs. |
| (vect_slp_bb): Likewise. |
| * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement |
| in terms of vect_stmt_in_region_p. |
| (vect_pattern_recog): Iterate over the BB region. |
| * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p. |
| * tree-vectorizer.c (vect_stmt_in_region_p): New function. |
| (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1. |
| * config/i386/i386.c: Include gimple-iterator.h. |
| * config/aarch64/aarch64.c: Likewise. |
| |
| 2015-11-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR rtl-optimization/67753 |
| PR rtl-optimization/64164 |
| * function.c (assign_parm_setup_block): Avoid allocating a |
| stack slot if we don't have an ABI-reserved one. Emit the |
| copy to target_reg in the conversion seq if the copy from |
| entry_parm is in it too. Don't use the conversion seq to copy |
| a PARALLEL to a REG or a CONCAT. |
| |
| 2015-11-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-hash-traits.h (tree_operand_hash): Provide equal, not |
| equal_keys. |
| |
| 2015-11-05 Cesar Philippidis <cesar@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| James Norris <jnorris@codesourcery.com> |
| |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Add support for |
| OMP_CLAUSE_TILE. Update handling of OMP_CLAUSE_INDEPENDENT. |
| (gimplify_adjust_omp_clauses): Likewise. |
| * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE. |
| * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE. |
| * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE. |
| (omp_clause_code_name): Likewise. |
| (walk_tree_1): Handle OMP_CLAUSE_TILE. |
| * tree.h (OMP_TILE_LIST): New macro. |
| |
| 2015-11-05 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/67942 |
| * doc/invoke.texi (-Wplacement-new): Document new option. |
| |
| 2015-11-05 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/65963 |
| * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle |
| LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs. |
| |
| 2015-11-05 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New. |
| (noce_convert_multiple_sets): Likewise. |
| (noce_process_if_block): Call them. |
| |
| 2015-11-05 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * gimple-fold.c: Include omp-low.h. |
| (fold_internal_goacc_dim): New. |
| (gimple_fold_call): Call it. |
| |
| 2015-11-05 Jakub Jelinek <jakub@redhat.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| |
| * builtin-types.def |
| (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove. |
| (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New. |
| * cgraph.h (enum cgraph_simd_clone_arg_type): Add |
| SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP, |
| SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and |
| SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP. |
| (struct cgraph_simd_clone_arg): Adjust comment. |
| * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41 |
| to GOMP_target_ext. Add num_teams and thread_limit arguments. |
| (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41 |
| to GOMP_target_data_ext. |
| (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41 |
| to GOMP_target_update_ext. |
| (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START, |
| BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START, |
| BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT, |
| BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT, |
| BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START, |
| BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START, |
| BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT, |
| BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT, |
| BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC, |
| BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins. |
| * tree-core.h (enum omp_clause_schedule_kind): Add |
| OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC, |
| OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change |
| OMP_CLAUSE_SCHEDULE_LAST value. |
| * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE, |
| OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument. |
| * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of |
| OMP_FOR_CHECK. Remove comment. |
| * tree-pretty-print.c (dump_omp_clause): Handle |
| GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER. |
| Simplify. Print schedule clause modifiers. |
| * tree-vect-stmts.c (vectorizable_simd_clone_call): Add |
| SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP |
| cases. |
| * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO. |
| (omp_default_clause): Tweak for |
| private/firstprivate/is_device_ptr variables on target |
| construct and use_device_ptr on target data. |
| (omp_check_private): Likewise. |
| (omp_notice_variable): For references check whether what it refers |
| to has mappable type, rather than the reference itself. |
| (omp_is_private): Diagnose linear iteration variables on non-simd |
| constructs. |
| (omp_no_lastprivate): Return true only for Fortran. |
| (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for |
| GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds. |
| Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and |
| GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element |
| based array sections. Use GOMP_MAP_ALWAYS_P. Fix up handling of |
| lastprivate and linear when combined with distribute. Gimplify |
| variable low-bound for array reduction. Look through |
| POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section |
| reductions. |
| (gimplify_adjust_omp_clauses_1): For implicit references to |
| variables with reference type and when not ref to scalar or |
| ref to pointer, map what they refer to using tofrom and |
| use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference. |
| (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER |
| from target exit data. Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE. |
| Drop OMP_CLAUSE_MAP_PRIVATE support. Use GOMP_MAP_ALWAYS_P. |
| Diagnose the same var on both firstprivate and lastprivate on |
| distribute construct. |
| (gimplify_omp_for): Fix up handling of predetermined |
| lastprivate or linear iter vars when combined with distribute. |
| (find_omp_teams, computable_teams_clause, optimize_target_teams): New |
| functions. |
| (gimplify_omp_workshare): Call optimize_target_teams. |
| * omp-low.c (struct omp_region): Add sched_modifiers field. |
| (struct omp_for_data): Likewise. |
| (omp_any_child_fn_dumped): New variable. |
| (extract_omp_for_data): Fill in sched_modifiers, and mask out |
| OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK |
| from sched_kind. |
| (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK |
| bits of OMP_CLAUSE_SCHED_KIND. |
| (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE, |
| drop OMP_CLAUSE_MAP_PRIVATE support. Look through POINTER_PLUS_EXPR |
| for array section reductions. |
| (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even |
| for distribute parallel for, if there are lastprivate clauses on the |
| for. |
| (lower_rec_input_clauses): Handle non-zero low-bound on array |
| section reductions. |
| (lower_reduction_clauses): Likewise. |
| (lower_send_clauses): Look through POINTER_PLUS_EXPR |
| for array section reductions. |
| (expand_parallel_call): Use nonmonotonic entrypoints for |
| nonmonotonic: dynamic/guided. |
| (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on |
| child_fn if current_function_decl has assembler name set, but child_fn |
| does not. Dump the header and IL of the child function when not in SSA |
| form. |
| (expand_omp_target): Likewise. Pass num_teams and thread_limit |
| arguments to BUILT_IN_GOMP_TARGET. |
| (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): |
| Initialize the extra _looptemp_ clause to fd->loop.n2. |
| (expand_omp_for): Use nonmonotonic entrypoints for |
| nonmonotonic: dynamic/guided. Initialize region->sched_modifiers. |
| (expand_omp): Clear omp_any_child_fn_dumped. Dump function header |
| again if we have dumped any child functions. |
| (lower_omp_for_lastprivate): Determine the right count variable |
| for distribute simd, or distribute parallel for{, simd}. |
| (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE |
| and GOMP_MAP_ALWAYS_POINTER. Drop OMP_CLAUSE_MAP_PRIVATE |
| support. |
| (simd_clone_clauses_extract): Handle variable step |
| for references and arguments passed by reference. |
| (simd_clone_mangle): Mangle ref/uval/val variable steps. |
| (simd_clone_adjust_argument_types): Handle |
| SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like |
| SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and |
| SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like |
| SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP. |
| (simd_clone_linear_addend): New function. |
| (simd_clone_adjust): Handle variable step like similarly |
| to constant step, use simd_clone_linear_addend to determine |
| the actual step at runtime. |
| |
| 2015-11-05 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * target.def (goacc.dim_limit): New hook. |
| * targhooks.h (default_goacc_dim_limit): Declare. |
| * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add. |
| * doc/tm.texi: Rebuilt. |
| * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare. |
| * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New. |
| (default_goacc_dim_limit): New. |
| * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New. |
| (nvptx_goacc_dim_limit) New. |
| (TARGET_GOACC_DIM_LIMIT): Override. |
| * tree-vrp.c: Include omp-low.h, target.h. |
| (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE & |
| IFN_GOACC_DIM_POS. |
| |
| 2015-11-05 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-generic.c (do_compare): Use -1 for true |
| result instead of 1. |
| |
| 2015-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_can_use_per_function_literal_pools_p): New. |
| (aarch64_use_blocks_for_constant_p): Adjust declaration |
| and use aarch64_can_use_function_literal_pools_p. |
| (aarch64_select_rtx_section): Update. |
| |
| 2015-11-05 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * targhooks.c (default_get_mask_mode): Use BLKmode in |
| case target doesn't support required vector mode. |
| * stor-layout.c (layout_type); Check for BLKmode. |
| |
| 2015-11-04 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): |
| Remove use of parameter_rename_map. |
| (copy_def): Remove. |
| (copy_internal_parameters): Remove. |
| (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters. |
| * sese.c (new_sese_info): Do not initialize parameter_rename_map. |
| (free_sese_info): Do not free parameter_rename_map. |
| (set_rename): Do not use parameter_rename_map. |
| (rename_uses): Update call to set_rename. |
| (graphite_copy_stmts_from_block): Do not use parameter_rename_map. |
| * sese.h (parameter_rename_map_t): Remove. |
| (struct sese_info_t): Remove field parameter_rename_map. |
| |
| 2015-11-04 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c: Include tree-cfg.h. |
| (translate_isl_ast_node_user): Add more dumps: call print_loops_bb. |
| * graphite-scop-detection.c (dot_all_scops_1): Moved out of |
| anonymous namespace. |
| * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove. |
| (isl_id_for_pbb): Use a buffer of size 10. |
| (isl_id_for_ssa_name): Same. |
| * sese.c (set_rename): Add more dumps. |
| |
| 2015-11-04 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (struct omp_context): Remove reduction_map field. |
| (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete. |
| (new_omp_context, delete_omp_context, scan_omp_target): Remove |
| reduction_map handling. |
| (lower_omp_target): Remove obsolete openacc reduction handling. |
| |
| 2015-11-04 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking. |
| |
| 2015-11-04 Nathan Sidwell <nathan@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * config/nvptx/nvptx.c: Include gimple headers. |
| (worker_red_size, worker_red_align, worker_red_name, |
| worker_red_sym): New. |
| (nvptx_option_override): Initialize worker reduction buffer. |
| (nvptx_file_end): Write out worker reduction buffer var. |
| (nvptx_expand_shuffle, nvptx_expand_worker_addr, |
| nvptx_expand_cmp_swap): New builtin expanders. |
| (enum nvptx_builtins): New. |
| (nvptx_builtin_decls): New. |
| (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New |
| (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New. |
| (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle, |
| nvptx_lockless_update): New helpers. |
| (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init, |
| nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New. |
| (nvptx_goacc_reduction): New. |
| (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN, |
| TARGET_BUILTIN_DECL): Override. |
| (TARGET_GOACC_REDUCTION): Override. |
| |
| 2015-11-04 Nathan Sidwell <nathan@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * internal-fn.def (GOACC_REDUCTION): New. |
| * internal-fn.h (enum ifn_goacc_reduction_kind): New. |
| * internal-fn.c (expand_GOACC_REDUCTION): New. |
| * target.def (goacc.reduction): New OpenACC hook. |
| * targhooks.h (default_goacc_reduction): Declare. |
| * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION. |
| * doc/tm.texi: Rebuilt. |
| * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads, |
| scan_sharing_clauses): Remove oacc reduction handling here. |
| (lower_rec_input_clauses): Don't handle OpenACC reductions here. |
| (oacc_lower_reduction_var_helper): Delete. |
| (lower_oacc_reductions): New. |
| (lower_reduction_clauses): Don't handle OpenACC reductions here. |
| (lower_oacc_head_tail): Call lower_oacc_reductions. |
| (oacc_gimple_assign, oacc_init_reduction_array, |
| oacc_initialize_reduction_data, oacc_finalize_reduction_data, |
| oacc_process_reduction_data): Delete. |
| (lower_omp_target): Remove old OpenACC reduction handling. Insert |
| dummy OpenACC gang reduction for reductions at outer level. |
| (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION. |
| (default_goacc_reduction): New. |
| (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION. |
| |
| 2015-11-04 Martin Liska <mliska@suse.cz> |
| |
| * cgraphunit.c (cgraph_node::expand_thunk): Call |
| allocate_struct_function before init_function_start. |
| (cgraph_node::expand): Use push_cfun and pop_cfun. |
| * config/i386/i386.c (ix86_code_end): Call |
| allocate_struct_function before init_function_start. |
| * config/rs6000/rs6000.c (rs6000_code_end): Likewise. |
| * function.c (init_function_start): Move preamble to all |
| callers. |
| * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun. |
| (execute_one_pass): Handle newly added TODO_discard_function. |
| (execute_pass_list_1): Terminate if cfun equals to NULL. |
| (execute_pass_list): Do not push and pop cfun, expect that |
| cfun is set. |
| * tree-pass.h (TODO_discard_function): Define. |
| |
| 2015-11-04 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * cfganal.c (inverted_post_order_compute): Remove conditional |
| compilation, use flag_checking. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Remove ENABLE_CHECKING. |
| * genconditions.c: Do not #undef ENABLE_CHECKING. |
| * sese.h (bb_in_region): Comment out broken check. |
| * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove |
| conditional compilation, use flag_checking. |
| |
| 2015-11-04 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67742 |
| * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type |
| field. |
| (push_fields_onto_fieldstack): Handle restrict_pointed_type field. |
| (create_variable_info_for_1): Add and handle handle_param parameter. |
| Add restrict handling. |
| (create_variable_info_for): Call create_variable_info_for_1 with extra |
| arg. |
| (make_param_constraints): Drop restrict_name parameter. Ignore |
| vi->only_restrict_pointers. |
| (intra_create_variable_infos): Call create_variable_info_for_1 with |
| extra arg. Remove restrict handling. Call make_param_constraints with |
| one fewer arg. |
| |
| 2015-11-04 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type |
| variable. |
| |
| 2015-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * config/arm/coff.h: Remove. |
| |
| 2015-11-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical |
| check for aggregate types and beef up comment for mode check. |
| |
| 2015-11-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect |
| data references here. |
| * tree-vect-loop.c: Include cgraph.h. |
| (vect_analyze_loop_2): Collect data references here. |
| * tree-vect-slp.c (find_bb_location): Inline ... |
| (vect_slp_bb): ... here. Renamed from vect_slp_analyze_bb. |
| Factor in vect_slp_transform_bb. |
| (vect_slp_transform_bb): Removed. |
| (vect_slp_analyze_bb_1): Collect data references here. |
| * tree-vectorizer.c (pass_slp_vectorize::execute): Call |
| vect_slp_bb. |
| * tree-vectorizer.h (vect_slp_bb): Declare. |
| (vect_slp_analyze_bb): Remove. |
| (vect_slp_transform_bb): Remove. |
| (find_bb_location): Remove. |
| (vect_analyze_data_refs): Remove stmt count reference parameter. |
| |
| 2015-11-03 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * multiple_target.c (create_dispatcher_calls): Add target check |
| on ifunc. |
| (create_target_clone): Change assembler name for versioned declarations. |
| |
| 2015-11-03 Thomas Schwinge <thomas@codesourcery.com> |
| Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc. |
| * omp-low.c (check_omp_nesting_restrictions): Allow |
| GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC |
| contexts. |
| |
| 2015-11-03 Bilyan Borisov <bilyan.borisov@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (fmulx): New. |
| * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New. |
| * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx |
| builtin. |
| (vmulxq_f32): Likewise. |
| (vmulx_f64): New. |
| (vmulxq_f64): Rewrite to call fmulx builtin. |
| (vmulxs_f32): Likewise. |
| (vmulxd_f64): Likewise. |
| (vmulx_lane_f32): Remove. |
| * config/aarch64/iterators.md (UNSPEC): Add fmulx. |
| |
| 2015-11-03 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.md (*movhf_aarch64): Use |
| aarch64_reg_or_fp_zero for second operand. |
| |
| 2015-11-03 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gimple-expr.c: Include hash-set.h and rtl.h. |
| (mark_addressable_queue): New var. |
| (mark_addressable): Factor actual marking into... |
| (mark_addressable_1): ... this. Queue it up during expand. |
| (mark_addressable_2): New. |
| (flush_mark_addressable_queue): New. |
| * gimple-expr.h (flush_mark_addressable_queue): Declare. |
| * cfgexpand.c: Include gimple-expr.h. |
| (pass_expand::execute): Flush mark_addressable queue. |
| |
| 2015-11-02 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out |
| bb_no_side_effects_p tests... |
| (tree_ssa_ifcombine_bb): ... here. |
| |
| PR tree-optimization/68083 |
| * tree-ssa-ifcombine.c: Include tree-ssa.h. |
| (bb_no_side_effects_p): Test for undefined uses too. |
| * tree-ssa.c (gimple_uses_undefined_value_p): New. |
| * tree-ssa.h (gimple_uses_undefined_value_p): Declare. |
| |
| 2015-11-02 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect |
| cases where the loop latch edge is in the middle of an FSM path. |
| |
| 2015-11-03 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ... |
| (make_param_constraints): ... this. Add and handle restrict_name |
| parameter. Handle is_full_var case. |
| (intra_create_variable_infos): Use make_param_constraints. |
| |
| 2015-11-03 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (make_restrict_var_constraints): Replace |
| make_copy_constraint call with make_constraint_from call. |
| |
| 2015-11-02 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle |
| PIE executables. |
| |
| 2015-11-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.h (fold_fma): Move to fold-const-call.h. |
| * builtins.c: Include fold-const-call.h. |
| (mathfn_built_in_2): New function, split out from... |
| (mathfn_built_in_1): ...here. |
| (do_real_to_int_conversion, fold_const_builtin_pow) |
| (fold_const_builtin_logb, fold_const_builtin_significand) |
| (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2) |
| (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete. |
| (fold_builtin_sincos): Use fold_const_call to handle constants. |
| (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit |
| checks for ERROR_MARK. Use fold_const_call to handle constant |
| folds for math functions. |
| (fold_fma): Move to fold-const-call.c. |
| * fold-const.c: Include fold-const-call.h. |
| * Makefile.in (OBJS): Add fold-const-call.o. |
| (PLUGIN_HEADERS): Add fold-const-call.h. |
| * realmpfr.h (real_from_mpfr): Allow the format to be specified |
| directly. |
| * realmpfr.c (real_from_mpfr): Likewise. |
| * fold-const-call.h, fold-const-call.c: New files. |
| |
| 2015-11-02 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous |
| brackets and semicolon. |
| |
| 2015-11-02 Alan Lawrence <alan.lawrence@arm.com> |
| |
| Revert: |
| 2015-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/65963 |
| * tree-scalar-evolution.c (interpret_rhs_expr): Handle some |
| LSHIFT_EXPRs as equivalent MULT_EXPRs. |
| |
| 2015-11-02 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/68166 |
| * fold-const.c: Include "md5.h". |
| |
| 2015-11-01 Jeff Law <law@redhat.com> |
| |
| * vmsdbgout.c: Revert unused header file reduction patch. |
| |
| * config/mcore/mcore.c: Include regs.h. |
| |
| 2015-10-31 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite. |
| |
| 2015-10-31 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the |
| same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is |
| live as for using it elsewhere, for TARGET_MINIMAL_TOC. |
| |
| 2015-10-31 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * ggc-common.c: Restore needed header for checking=release. |
| |
| 2015-10-31 Tom de Vries <tom@codesourcery.com> |
| |
| * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding. |
| |
| 2015-10-31 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect |
| existing varinfo for arguments. |
| |
| 2015-10-31 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to |
| create_function_info_for. Dump constraints generated during |
| create_function_info_for. Move intra_create_variable_infos call and |
| function-return-values-escape bit to ... |
| (create_function_info_for): ... here, and merge |
| intra_create_variable_infos call with argument loop. Add and handle |
| nonlocal_p parameter. |
| |
| 2015-10-31 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi |
| updating is alap, and seperated from preceding code. Make sure |
| insert_vi_for_tree is seperated from surrounding code. |
| |
| 2015-10-31 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint. |
| |
| 2015-10-30 Jeff Law <law@redhat.com> |
| Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused |
| args. |
| (MOVE_MAX): Set to 8. |
| |
| 2015-10-30 Cesar Philippidis <cesar@codesourcery.com> |
| |
| * cgraph.c: Include context.h for offloading. |
| * varpool.c: Include context.h and omp-low.h. |
| |
| 2015-10-30 Anatoly Sokolov <aesok@post.ru> |
| |
| * rtl.h (contains_symbol_ref_p): Declare. |
| (SYMBOL_REF_P): Define. |
| * rtlanal.c (contains_symbol_ref_p: New function. |
| * lra-constraints.c (contains_symbol_ref_p): Remove. |
| * var-tracking.c (contains_symbol_ref): Remove. |
| (track_expr_p): Use contains_symbol_ref_p instead of |
| contains_symbol_ref. |
| |
| 2015-10-30 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * gimple-fold.c (fold_array_ctor_reference): Move searching code to: |
| * fold-const.c (get_array_ctor_element_at_index): New. |
| (fold): Remove binary-search through CONSTRUCTOR, call previous. |
| |
| * fold-const.h (get_array_ctor_element_at_index): New. |
| |
| 2015-10-30 Evgeny Stupachenko <evstupac@gmail.com> |
| |
| * Makefile.in (OBJS): Add multiple_target.o. |
| * attrib.c (make_attribute): Moved from config/i386/i386.c |
| * config/i386/i386.c (make_attribute): Deleted. |
| * multiple_target.c (create_dispatcher_calls): New. |
| (get_attr_len): Ditto. |
| (get_attr_str): Ditto. |
| (separate_attrs): Ditto. |
| (is_valid_asm_symbol): Ditto. |
| (create_new_asm_name): Ditto. |
| (create_target_clone): Ditto. |
| (expand_target_clones): Ditto. |
| (ipa_target_clone): Ditto. |
| (ipa_dispatcher_calls): Ditto. |
| * passes.def (pass_target_clone): Two new ipa passes. |
| * tree-pass.h (make_pass_target_clone): Ditto. |
| * doc/extend.texi (target_clones): New attribute description. |
| |
| 2015-10-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/68106 |
| * lra-remat.c (input_regno_present_p): Process hard regs |
| explicitly present in machine description insns. |
| (call_used_input_regno_present_p): Ditto. |
| (calculate_gen_cands): Ditto. |
| (do_remat): Ditto. |
| |
| 2015-10-30 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/arm/neon-testgen.ml: Fix comment typo. |
| |
| 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * rtlanal.c (reg_set_p): Expand function comment. |
| |
| 2015-10-30 Andrew MacLeod <amacleod@redhat.com> |
| |
| * alias.c: Remove unused headers. |
| * asan.c: Likewise. |
| * attribs.c: Likewise. |
| * auto-inc-dec.c: Likewise. |
| * auto-profile.c: Likewise. |
| * bb-reorder.c: Likewise. |
| * bitmap.c: Likewise. |
| * bt-load.c: Likewise. |
| * builtins.c: Likewise. |
| * caller-save.c: Likewise. |
| * calls.c: Likewise. |
| * ccmp.c: Likewise. |
| * cfg.c: Likewise. |
| * cfganal.c: Likewise. |
| * cfgbuild.c: Likewise. |
| * cfgcleanup.c: Likewise. |
| * cfgexpand.c: Likewise. |
| * cfghooks.c: Likewise. |
| * cfgloop.c: Likewise. |
| * cfgloopanal.c: Likewise. |
| * cfgloopmanip.c: Likewise. |
| * cfgrtl.c: Likewise. |
| * cgraph.c: Likewise. |
| * cgraphbuild.c: Likewise. |
| * cgraphclones.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * cilk-common.c: Likewise. |
| * combine-stack-adj.c: Likewise. |
| * combine.c: Likewise. |
| * compare-elim.c: Likewise. |
| * convert.c: Likewise. |
| * coverage.c: Likewise. |
| * cppbuiltin.c: Likewise. |
| * cprop.c: Likewise. |
| * cse.c: Likewise. |
| * cselib.c: Likewise. |
| * data-streamer-in.c: Likewise. |
| * data-streamer-out.c: Likewise. |
| * data-streamer.c: Likewise. |
| * dbxout.c: Likewise. |
| * dce.c: Likewise. |
| * ddg.c: Likewise. |
| * debug.c: Likewise. |
| * df-core.c: Likewise. |
| * df-problems.c: Likewise. |
| * df-scan.c: Likewise. |
| * dfp.c: Likewise. |
| * dojump.c: Likewise. |
| * dominance.c: Likewise. |
| * domwalk.c: Likewise. |
| * double-int.c: Likewise. |
| * dse.c: Likewise. |
| * dumpfile.c: Likewise. |
| * dwarf2asm.c: Likewise. |
| * dwarf2cfi.c: Likewise. |
| * dwarf2out.c: Likewise. |
| * emit-rtl.c: Likewise. |
| * except.c: Likewise. |
| * explow.c: Likewise. |
| * expmed.c: Likewise. |
| * expr.c: Likewise. |
| * final.c: Likewise. |
| * fixed-value.c: Likewise. |
| * fold-const.c: Likewise. |
| * function.c: Likewise. |
| * fwprop.c: Likewise. |
| * gcse.c: Likewise. |
| * generic-match-head.c: Likewise. |
| * ggc-common.c: Likewise. |
| * gimple-builder.c: Likewise. |
| * gimple-expr.c: Likewise. |
| * gimple-fold.c: Likewise. |
| * gimple-iterator.c: Likewise. |
| * gimple-low.c: Likewise. |
| * gimple-match-head.c: Likewise. |
| * gimple-pretty-print.c: Likewise. |
| * gimple-ssa-isolate-paths.c: Likewise. |
| * gimple-ssa-strength-reduction.c: Likewise. |
| * gimple-streamer-in.c: Likewise. |
| * gimple-streamer-out.c: Likewise. |
| * gimple-walk.c: Likewise. |
| * gimple.c: Likewise. |
| * gimplify-me.c: Likewise. |
| * gimplify.c: Likewise. |
| * godump.c: Likewise. |
| * graph.c: Likewise. |
| * graphds.c: Likewise. |
| * haifa-sched.c: Likewise. |
| * hw-doloop.c: Likewise. |
| * ifcvt.c: Likewise. |
| * init-regs.c: Likewise. |
| * internal-fn.c: Likewise. |
| * ipa-chkp.c: Likewise. |
| * ipa-comdats.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-devirt.c: Likewise. |
| * ipa-icf-gimple.c: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-inline-analysis.c: Likewise. |
| * ipa-inline-transform.c: Likewise. |
| * ipa-inline.c: Likewise. |
| * ipa-polymorphic-call.c: Likewise. |
| * ipa-profile.c: Likewise. |
| * ipa-prop.c: Likewise. |
| * ipa-pure-const.c: Likewise. |
| * ipa-ref.c: Likewise. |
| * ipa-reference.c: Likewise. |
| * ipa-split.c: Likewise. |
| * ipa-utils.c: Likewise. |
| * ipa-visibility.c: Likewise. |
| * ipa.c: Likewise. |
| * ira-build.c: Likewise. |
| * ira-color.c: Likewise. |
| * ira-conflicts.c: Likewise. |
| * ira-costs.c: Likewise. |
| * ira-emit.c: Likewise. |
| * ira-lives.c: Likewise. |
| * ira.c: Likewise. |
| * jump.c: Likewise. |
| * langhooks.c: Likewise. |
| * lcm.c: Likewise. |
| * lists.c: Likewise. |
| * loop-doloop.c: Likewise. |
| * loop-init.c: Likewise. |
| * loop-invariant.c: Likewise. |
| * loop-iv.c: Likewise. |
| * loop-unroll.c: Likewise. |
| * lower-subreg.c: Likewise. |
| * lra-assigns.c: Likewise. |
| * lra-coalesce.c: Likewise. |
| * lra-constraints.c: Likewise. |
| * lra-eliminations.c: Likewise. |
| * lra-lives.c: Likewise. |
| * lra-remat.c: Likewise. |
| * lra-spills.c: Likewise. |
| * lra.c: Likewise. |
| * lto-cgraph.c: Likewise. |
| * lto-compress.c: Likewise. |
| * lto-opts.c: Likewise. |
| * lto-section-in.c: Likewise. |
| * lto-section-out.c: Likewise. |
| * lto-streamer-in.c: Likewise. |
| * lto-streamer-out.c: Likewise. |
| * lto-streamer.c: Likewise. |
| * mcf.c: Likewise. |
| * mode-switching.c: Likewise. |
| * modulo-sched.c: Likewise. |
| * optabs.c: Likewise. |
| * opts-global.c: Likewise. |
| * passes.c: Likewise. |
| * plugin.c: Likewise. |
| * postreload-gcse.c: Likewise. |
| * postreload.c: Likewise. |
| * predict.c: Likewise. |
| * print-tree.c: Likewise. |
| * profile.c: Likewise. |
| * real.c: Likewise. |
| * realmpfr.c: Likewise. |
| * recog.c: Likewise. |
| * ree.c: Likewise. |
| * reg-stack.c: Likewise. |
| * regcprop.c: Likewise. |
| * reginfo.c: Likewise. |
| * regrename.c: Likewise. |
| * regstat.c: Likewise. |
| * reload.c: Likewise. |
| * reload1.c: Likewise. |
| * reorg.c: Likewise. |
| * resource.c: Likewise. |
| * rtl-chkp.c: Likewise. |
| * rtl-error.c: Likewise. |
| * rtlanal.c: Likewise. |
| * rtlhooks.c: Likewise. |
| * sanopt.c: Likewise. |
| * sched-deps.c: Likewise. |
| * sched-ebb.c: Likewise. |
| * sched-rgn.c: Likewise. |
| * sdbout.c: Likewise. |
| * sel-sched-dump.c: Likewise. |
| * sel-sched-ir.c: Likewise. |
| * sel-sched.c: Likewise. |
| * sese.c: Likewise. |
| * shrink-wrap.c: Likewise. |
| * simplify-rtx.c: Likewise. |
| * stack-ptr-mod.c: Likewise. |
| * statistics.c: Likewise. |
| * stmt.c: Likewise. |
| * stor-layout.c: Likewise. |
| * store-motion.c: Likewise. |
| * stringpool.c: Likewise. |
| * symtab.c: Likewise. |
| * target-globals.c: Likewise. |
| * targhooks.c: Likewise. |
| * toplev.c: Likewise. |
| * tracer.c: Likewise. |
| * trans-mem.c: Likewise. |
| * tree-affine.c: Likewise. |
| * tree-call-cdce.c: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-cfgcleanup.c: Likewise. |
| * tree-chkp-opt.c: Likewise. |
| * tree-chkp.c: Likewise. |
| * tree-chrec.c: Likewise. |
| * tree-complex.c: Likewise. |
| * tree-data-ref.c: Likewise. |
| * tree-dfa.c: Likewise. |
| * tree-diagnostic.c: Likewise. |
| * tree-dump.c: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-emutls.c: Likewise. |
| * tree-if-conv.c: Likewise. |
| * tree-inline.c: Likewise. |
| * tree-into-ssa.c: Likewise. |
| * tree-iterator.c: Likewise. |
| * tree-loop-distribution.c: Likewise. |
| * tree-nested.c: Likewise. |
| * tree-nrv.c: Likewise. |
| * tree-object-size.c: Likewise. |
| * tree-outof-ssa.c: Likewise. |
| * tree-parloops.c: Likewise. |
| * tree-phinodes.c: Likewise. |
| * tree-predcom.c: Likewise. |
| * tree-pretty-print.c: Likewise. |
| * tree-profile.c: Likewise. |
| * tree-scalar-evolution.c: Likewise. |
| * tree-sra.c: Likewise. |
| * tree-ssa-address.c: Likewise. |
| * tree-ssa-alias.c: Likewise. |
| * tree-ssa-ccp.c: Likewise. |
| * tree-ssa-coalesce.c: Likewise. |
| * tree-ssa-copy.c: Likewise. |
| * tree-ssa-dce.c: Likewise. |
| * tree-ssa-dse.c: Likewise. |
| * tree-ssa-forwprop.c: Likewise. |
| * tree-ssa-ifcombine.c: Likewise. |
| * tree-ssa-live.c: Likewise. |
| * tree-ssa-loop-ch.c: Likewise. |
| * tree-ssa-loop-im.c: Likewise. |
| * tree-ssa-loop-ivcanon.c: Likewise. |
| * tree-ssa-loop-ivopts.c: Likewise. |
| * tree-ssa-loop-manip.c: Likewise. |
| * tree-ssa-loop-niter.c: Likewise. |
| * tree-ssa-loop-prefetch.c: Likewise. |
| * tree-ssa-loop-unswitch.c: Likewise. |
| * tree-ssa-loop.c: Likewise. |
| * tree-ssa-math-opts.c: Likewise. |
| * tree-ssa-operands.c: Likewise. |
| * tree-ssa-phiopt.c: Likewise. |
| * tree-ssa-phiprop.c: Likewise. |
| * tree-ssa-pre.c: Likewise. |
| * tree-ssa-propagate.c: Likewise. |
| * tree-ssa-reassoc.c: Likewise. |
| * tree-ssa-scopedtables.c: Likewise. |
| * tree-ssa-sink.c: Likewise. |
| * tree-ssa-strlen.c: Likewise. |
| * tree-ssa-structalias.c: Likewise. |
| * tree-ssa-tail-merge.c: Likewise. |
| * tree-ssa-ter.c: Likewise. |
| * tree-ssa-threadupdate.c: Likewise. |
| * tree-ssa-uncprop.c: Likewise. |
| * tree-ssa-uninit.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-ssanames.c: Likewise. |
| * tree-stdarg.c: Likewise. |
| * tree-streamer-in.c: Likewise. |
| * tree-streamer-out.c: Likewise. |
| * tree-streamer.c: Likewise. |
| * tree-switch-conversion.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| * tree-vect-data-refs.c: Likewise. |
| * tree-vect-generic.c: Likewise. |
| * tree-vect-loop-manip.c: Likewise. |
| * tree-vect-loop.c: Likewise. |
| * tree-vect-patterns.c: Likewise. |
| * tree-vect-slp.c: Likewise. |
| * tree-vect-stmts.c: Likewise. |
| * tree-vectorizer.c: Likewise. |
| * tree-vrp.c: Likewise. |
| * tree.c: Likewise. |
| * tsan.c: Likewise. |
| * ubsan.c: Likewise. |
| * value-prof.c: Likewise. |
| * var-tracking.c: Likewise. |
| * varasm.c: Likewise. |
| * varpool.c: Likewise. |
| * vmsdbgout.c: Likewise. |
| * vtable-verify.c: Likewise. |
| * web.c: Likewise. |
| * wide-int-print.cc: Likewise. |
| * wide-int.cc: Likewise. |
| * xcoffout.c: Likewise. |
| |
| 2015-10-30 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship |
| between pass numbering and execution order. |
| |
| 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to |
| check for dependencies. |
| |
| 2015-10-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free |
| CDI_DOMINATORS. |
| |
| 2015-10-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (format_helper): New. |
| (real_convert, exact_real_truncate, real_from_string3, real_to_target) |
| (real_from_target, real_nan, real_2expN, real_value_truncate) |
| (significand_size, real_from_string2, exact_real_inverse) |
| (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil) |
| (real_round, real_isinteger, real_from_integer): Replace |
| machine_mode arguments with format_helper arguments. |
| * real.c (exact_real_inverse, real_from_string2, real_from_string3) |
| (real_from_integer, real_nan, real_2expN, real_convert) |
| (real_value_truncate, exact_real_truncate, real_to_target) |
| (real_from_target, significand_size, real_powi, real_trunc) |
| (real_floor, real_ceil, real_round, real_isinteger): Replace |
| machine_mode arguments with format_helper arguments. |
| (real_to_target_fmt, real_from_target_fmt): Delete. |
| * dfp.h (decimal_real_convert): Replace mode argument with real_format. |
| * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode |
| argument with real_format. |
| * builtins.c (do_real_to_int_conversion): Update type of fn argument. |
| |
| 2015-10-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fixed-value.c (check_real_for_fixed_mode, fixed_from_string) |
| (fixed_to_decimal, fixed_convert_from_real) |
| (real_convert_from_fixed): Fix mode arguments to real_2expN. |
| |
| 2015-10-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a |
| SCALAR_FLOAT_MODE_P. |
| |
| 2015-10-30 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * tree-sra.c (scalarizable_type_p): Comment variable-length arrays. |
| (completely_scalarize): Comment zero-length arrays. |
| (get_access_replacement): Correct comment re. precondition. |
| |
| 2015-10-30 Venkataramanan Kumar <venkataramanan.kumar@amd.com> |
| |
| * config/i386/i386.c (get_builtin_code_for_version): Set priority |
| for PROCESSOR_ZNVER1. |
| (enum processor_model): Add M_AMDFAM17H_znver1. |
| (struct arch_names_table): Likewise. |
| * doc/extend.texi: ADD znver1. |
| |
| 2015-10-30 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (fold_gimple_assign): Do not dispatch to |
| fold () on single RHSs. Allow CONSTRUCTORS with trailing |
| zeros to be folded to VECTOR_CSTs. |
| * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements. |
| * fold-const.c (fold): Use build_vector_from_ctor. |
| |
| 2015-10-30 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of |
| "mov %0.h[0], %1.h[0] to "neon_move". |
| (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr". |
| (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to |
| "mov_imm". |
| (*cmovsi_insn_uxtw): Likewise. |
| |
| 2015-10-30 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as |
| unsigned, and initialize, and use initial value instead of hardcoded |
| constant. Add generic constraints dumping section. Don't dump global |
| initializers constraints dumping section if empty. Don't update |
| variable from if unused. |
| |
| 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert, |
| flag_checking and/or CHECKING_P to eliminate conditional compilation |
| on ENABLE_CHECKING. |
| * config/arm/arm.c (arm_unwind_emit_sequence): Likewise. |
| * config/bfin/bfin.c (hwloop_optimize): Likewise. |
| * config/i386/i386.c (ix86_print_operand_address): Likewise. |
| (output_387_binary_op): Likewise. |
| * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise. |
| * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise. |
| * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue): |
| Likewise. |
| * config/rs6000/rs6000.h: Likewise. |
| * config/visium/visium.c (visium_setup_incoming_varargs): Likewise. |
| |
| 2015-10-29 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.opt (mfdpic): Add missing period. |
| |
| 2015-08-29 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, |
| BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P, |
| GO_IF_LEGITIMATE_ADDRESS): Remove macros. |
| * config/mcore/mcore.c (mcore_reg_ok_for_base_p, |
| mcore_base_register_rtx_p, mcore_legitimate_index_p, |
| mcore_legitimate_address_p): New functions. |
| (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define. |
| |
| 2015-10-29 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate |
| method. |
| * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove. |
| * tree-ssa-threadedge.c |
| (record_temporary_equivalences_from_stmts_at_dest): Remove |
| backedge_seen argument and associated code which invalidated |
| equivalences based on the value of that argument. |
| (thread_through_normal_block): Corresponding changes. |
| |
| 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this |
| function earlier in the file. |
| (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of |
| df_regs_ever_live_p. |
| |
| 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch)) |
| by ignoring it. |
| |
| 2015-10-29 Richard Henderson <rth@redhat.com> |
| |
| PR target/68124 |
| PR rtl-opt/67609 |
| * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten |
| sse check to the exact conditions of PR 67609. |
| |
| 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc |
| setup into 3 functions: init_float128_ibm, init_float128_ieee, and |
| rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all |
| of the traditional names that TFmode uses for handling IEEE |
| extended double. If -mfloat128, add KFmode functions for all of |
| the emulation functions. If -mabi=ieeelongdouble and -mfloat128, |
| make TFmode use the same emulation functions as KFmode. |
| (init_float128_ibm): Likewise. |
| (init_float128_ieee): Likewise. |
| (rs6000_generate_compare): For IEEE 128-bit floating point |
| comparisons, call the unordered comparison function instead of the |
| ordered comparison function. |
| (rs6000_expand_float128_convert): Deal with operands that are |
| memory operands. Restructure the code to use a switch statement on |
| the mode. Add support for TFmode defaulting to either IBM extended |
| double or IEEE 128-bit floating point. If the underlying types are |
| the same, use a move instead of a conversion function. |
| (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to |
| use for IEEE 128-bit floating point constants with -mfloat128. |
| (rs6000_c_mode_for_suffix): Likewise. |
| (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE |
| 128-bit floating point with IBM extended double floating point. |
| (rs6000_invalid_binary_op): Likewise. |
| (rs6000_gen_le_vsx_permute): On little endian systems generate a |
| ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point |
| types that can go in vector registers. |
| (chain_contains_only_swaps): Properly swap IEEE 128-bit floating |
| point types that can go in vector registers on little endian |
| PowerPC systems. |
| (mark_swaps_for_removal): Likewise. |
| (rs6000_analyze_swaps): Likewise. |
| (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point. |
| |
| * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator, |
| rework IEEE 128-bit floating point insns to deal with TFmode being |
| either IBM extended double or IEEE 128-bit floating point. |
| (IFKF): Likewise. |
| (IBM128): Update iterator to add condition that the mode is IBM |
| extended double. |
| (IEEE128): New iterator for IEEE 128-bit floating point. |
| (TFIFKF): Rename TFIFKF iterator to FLOAT128. |
| (FLOAT128): Likewise. |
| (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128 |
| iterator. |
| (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support |
| for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator |
| instead of hard coding TFmode or KFmode. |
| (negtf2_internal): Likewise. |
| (neg<mode>2_internal): Likewise. |
| (abs<mode>2): Likewise. |
| (abstf2_internal): Likewise. |
| (abs<mode>2_internal): Likewise. |
| (ieee_128bit_neg<mode>2): Likewise. |
| (ieee_128bit_neg<mode>2_internal): Likewise. |
| (ieee_128bit_abs<mode>2): Likewise. |
| (ieee_128bit_abs<mode>2_internal): Likewise. |
| (ieee_128bit_nabs<mode>2): Likewise. |
| (ieee_128bit_nabs<mode>2_internal): Likewise. |
| (extendiftf2): Add explicit conversions between 128-bit floating |
| point types. Drop the old conversions that had become unwieldy. |
| (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise. |
| (extendifkf2): Likewise. |
| (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise. |
| (extendtfkf2): Likewise. |
| (fix_trunc<IFKF:mode><SDI:mode>2): Likewise. |
| (trunciftf2): Likewise. |
| (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise. |
| (truncifkf2): Likewise. |
| (float<SDI:mode><IFKF:mode>2): Likewise. |
| (trunckftf2): Likewise. |
| (floatuns<SDI:mode><IFKF:mode>2): Likewise. |
| (trunctfif2): Likewise. |
| (FP iterator): Allow TFmode to be IEEE 128-bit floating point. |
| (extenddftf2): Rework 128-bit floating point conversions to |
| properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and |
| KFmode expanders into one function. |
| (extenddf<mode>2): Likewise. |
| (extenddftf2_fprs): Likewise. |
| (extenddf<mode>2_fprs): Likewise. |
| (extenddftf2_vsx): Likewise. |
| (extenddf<mode>2_vsx): Likewise. |
| (extendsftf2): Likewise. |
| (extendsf<mode>2): Likewise. |
| (trunctfdf2): Likewise. |
| (trunc<mode>df2): Likewise. |
| (trunctfdf2_internal1): Likewise. |
| (trunc<mode>df2_internal1): Likewise. |
| (trunctfdf2_internal2): Likewise. |
| (trunc<mode>df2_internal2): Likewise. |
| (trunctfsf2): Likewise. |
| (trunc<mode>sf2): Likewise. |
| (trunctfsf2_fprs): Likewise. |
| (trunc<mode>sf2_fprs): Likewise. |
| (floatsit2f): Likewise. |
| (floatsi<mode>2): Likewise. |
| (fix_trunc_helper): Likewise. |
| (fix_trunc_helper<mode>): Likewise. |
| (fix_trunctfsi2): Likewise. |
| (fix_trunc<mode>si2): Likewise. |
| (fix_trunctfsi2_fprs): Likewise. |
| (fix_trunc<mode>si2_fprs): Likewise. |
| (fix_trunctfsi2_internal): Likewise. |
| (fix_trunc<mode>si2_internal): Likewise. |
| (fix_trunctfdi2): Likewise. |
| (fix_trunc<mode>di2): Likewise. |
| (fixuns_trunctf<mode>2): Likewise. |
| (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise. |
| (floatditf2): Likewise. |
| (floatdi<mode>2): Likewise. |
| (floatuns<mode>tf2): Likewise. |
| (floatuns<SDI:mode><IEEE128:mode>): Likewise. |
| (cmptf_internal1): Use a mode iterator to add support for both |
| types (IFmode, TFmode) that support IBM extended double. |
| (cmp<mode>_internal1): Likewise. |
| (cmptf_internal2): Likewise. |
| (cmp<mode>_internal2): Likewise. |
| |
| * doc/extend.texi (Floating Types): Document __ibm128 and |
| __float128 on PowerPC. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Document |
| -mfloat128 and -mno-float128. |
| |
| 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit |
| floating point modes that can go in vector registers. |
| (MODES_TIEABLE_P): Move tests for vector modes before tests for |
| scalar floating point, so that IEEE 128-bit floating point that |
| can go in vector registers bind with vectors and not FP. |
| (struct rs6000_args): Add libcall field. |
| |
| * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none |
| and -mfloat128-software switches. Replace them with a binary |
| -mfloat128 switch. |
| (-mfloat128): Likewise. |
| |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow |
| 128-bit floating point types in GPRs, even if the appropriate |
| option enabling the type was not used. |
| (rs6000_debug_reg_global): Remove -mfloat128-{software,none} |
| debugging. |
| (rs6000_setup_reg_addr_masks): Do not allow pre-increment and |
| pre-decrement on IEEE 128-bit floating point values. |
| (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode |
| is IEEE 128-bit floating point. |
| (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE |
| 128-bit floating point types that can go in vector registers. |
| (rs6000_option_override_internal): Change -mfloat128-none and |
| -mfloat128-software to -mfloat128, and move code to be near other |
| VSX option handling. |
| (rs6000_option_override_internal): Disable -mfloat128 if we don't |
| have the Altivec ABI. |
| (rs6000_init_builtins): Don't make TFmode use either IFmode or |
| KFmode floating point nodes. Instead, have three separate nodes. |
| (rs6000_scalar_mode_supported_p): Add support for IFmode to allow |
| eventually moving the long double default to IEEE 128-bit floating |
| point. |
| (rs6000_opt_masks): Add -mfloat128. |
| (struct rs6000_opt_var): Fix typo in comment. |
| (init_cumulative_args): Initialize libcall field in |
| CUMULATIVE_ARGS. |
| (rs6000_function_arg): Treat library functions as if they had |
| prototypes to prevent IEEE 128-bit support functions from passing |
| arguments in both GPRs and vector registers. |
| (rs6000_arg_partial_bytes): Likewise. |
| |
| * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as |
| an option that can be turned on via -mcpu=<xxx>. |
| |
| * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no |
| longer used. |
| |
| * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define |
| __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long |
| double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long |
| double is IBM extended double. |
| |
| * config/rs6000/predicates.md (reg_or_indexed_operand): Allow |
| SUBREGs. |
| |
| 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING. |
| * genconditions.c: Define CHECKING_P in the generated code. |
| * genextract.c: Use flag_checking in insn_extract. |
| * gengtype.c (main): Remove conditional compilation. |
| * gengtype.h: Likewise. |
| |
| 2015-10-29 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/67892 |
| * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo |
| in comment. |
| (thread_through_normal_block): If we have seen a backedge, then |
| do nothing. No longer call find_jump_threads_backwards here. |
| (thread_across_edge): Use find_jump_threads_backwards to find |
| jump threads if the old style threader was not successful. |
| * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use |
| gsi_last_nondebug_bb. Return NULL if the block does not end |
| with a control statement. |
| (find_jump_threads_backwards): Setup code moved here from |
| tree-ssa-threadedge.c::thread_through_normal_block. Accept |
| single edge argument instead of name & block. |
| * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update |
| prototype. |
| |
| 2015-10-29 Tom de Vries <tom@codesourcery.com> |
| |
| * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict |
| types. |
| |
| 2015-10-29 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (lower_omp_target): Remove unreachable code & merge |
| ifs. |
| |
| 2015-10-29 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity. |
| |
| 2015-10-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove |
| guard_bb0 and use guard_bb throughout. |
| |
| 2015-10-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove |
| unnecessary label. |
| |
| 2015-10-29 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68142 |
| * fold-const.c (extract_muldiv_1): Avoid introducing undefined |
| overflow. |
| |
| 2015-10-29 Andrew MacLeod <amacleod@redhat.com> |
| |
| * alias.c: Reorder #include statements and remove duplicates. |
| * asan.c: Likewise. |
| * attribs.c: Likewise. |
| * auto-inc-dec.c: Likewise. |
| * auto-profile.c: Likewise. |
| * bb-reorder.c: Likewise. |
| * bt-load.c: Likewise. |
| * builtins.c: Likewise. |
| * caller-save.c: Likewise. |
| * calls.c: Likewise. |
| * ccmp.c: Likewise. |
| * cfg.c: Likewise. |
| * cfganal.c: Likewise. |
| * cfgbuild.c: Likewise. |
| * cfgcleanup.c: Likewise. |
| * cfgexpand.c: Likewise. |
| * cfghooks.c: Likewise. |
| * cfgloop.c: Likewise. |
| * cfgloopanal.c: Likewise. |
| * cfgloopmanip.c: Likewise. |
| * cfgrtl.c: Likewise. |
| * cgraph.c: Likewise. |
| * cgraphbuild.c: Likewise. |
| * cgraphclones.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * cilk-common.c: Likewise. |
| * combine-stack-adj.c: Likewise. |
| * combine.c: Likewise. |
| * compare-elim.c: Likewise. |
| * convert.c: Likewise. |
| * coverage.c: Likewise. |
| * cppbuiltin.c: Likewise. |
| * cprop.c: Likewise. |
| * cse.c: Likewise. |
| * cselib.c: Likewise. |
| * data-streamer-in.c: Likewise. |
| * data-streamer-out.c: Likewise. |
| * data-streamer.c: Likewise. |
| * dbxout.c: Likewise. |
| * dce.c: Likewise. |
| * ddg.c: Likewise. |
| * debug.c: Likewise. |
| * df-core.c: Likewise. |
| * df-problems.c: Likewise. |
| * df-scan.c: Likewise. |
| * dfp.c: Likewise. |
| * dojump.c: Likewise. |
| * dominance.c: Likewise. |
| * double-int.c: Likewise. |
| * dse.c: Likewise. |
| * dumpfile.c: Likewise. |
| * dwarf2asm.c: Likewise. |
| * dwarf2cfi.c: Likewise. |
| * dwarf2out.c: Likewise. |
| * emit-rtl.c: Likewise. |
| * except.c: Likewise. |
| * explow.c: Likewise. |
| * expmed.c: Likewise. |
| * expr.c: Likewise. |
| * final.c: Likewise. |
| * fixed-value.c: Likewise. |
| * fold-const.c: Likewise. |
| * function.c: Likewise. |
| * fwprop.c: Likewise. |
| * gcse.c: Likewise. |
| * generic-match-head.c: Likewise. |
| * ggc-common.c: Likewise. |
| * gimple-builder.c: Likewise. |
| * gimple-expr.c: Likewise. |
| * gimple-fold.c: Likewise. |
| * gimple-iterator.c: Likewise. |
| * gimple-low.c: Likewise. |
| * gimple-match-head.c: Likewise. |
| * gimple-pretty-print.c: Likewise. |
| * gimple-ssa-isolate-paths.c: Likewise. |
| * gimple-ssa-strength-reduction.c: Likewise. |
| * gimple-streamer-in.c: Likewise. |
| * gimple-streamer-out.c: Likewise. |
| * gimple-walk.c: Likewise. |
| * gimple.c: Likewise. |
| * gimplify-me.c: Likewise. |
| * gimplify.c: Likewise. |
| * godump.c: Likewise. |
| * graph.c: Likewise. |
| * graphite-poly.c: Likewise. |
| * haifa-sched.c: Likewise. |
| * hw-doloop.c: Likewise. |
| * ifcvt.c: Likewise. |
| * incpath.c: Likewise. |
| * init-regs.c: Likewise. |
| * internal-fn.c: Likewise. |
| * ipa-chkp.c: Likewise. |
| * ipa-comdats.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-devirt.c: Likewise. |
| * ipa-icf-gimple.c: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-inline-analysis.c: Likewise. |
| * ipa-inline-transform.c: Likewise. |
| * ipa-inline.c: Likewise. |
| * ipa-polymorphic-call.c: Likewise. |
| * ipa-profile.c: Likewise. |
| * ipa-prop.c: Likewise. |
| * ipa-pure-const.c: Likewise. |
| * ipa-ref.c: Likewise. |
| * ipa-reference.c: Likewise. |
| * ipa-split.c: Likewise. |
| * ipa-utils.c: Likewise. |
| * ipa-visibility.c: Likewise. |
| * ipa.c: Likewise. |
| * ira-build.c: Likewise. |
| * ira-color.c: Likewise. |
| * ira-conflicts.c: Likewise. |
| * ira-costs.c: Likewise. |
| * ira-emit.c: Likewise. |
| * ira-lives.c: Likewise. |
| * ira.c: Likewise. |
| * jump.c: Likewise. |
| * langhooks.c: Likewise. |
| * lcm.c: Likewise. |
| * lists.c: Likewise. |
| * loop-doloop.c: Likewise. |
| * loop-init.c: Likewise. |
| * loop-invariant.c: Likewise. |
| * loop-iv.c: Likewise. |
| * loop-unroll.c: Likewise. |
| * lower-subreg.c: Likewise. |
| * lra-assigns.c: Likewise. |
| * lra-coalesce.c: Likewise. |
| * lra-constraints.c: Likewise. |
| * lra-eliminations.c: Likewise. |
| * lra-lives.c: Likewise. |
| * lra-remat.c: Likewise. |
| * lra-spills.c: Likewise. |
| * lra.c: Likewise. |
| * lto-cgraph.c: Likewise. |
| * lto-compress.c: Likewise. |
| * lto-opts.c: Likewise. |
| * lto-section-in.c: Likewise. |
| * lto-section-out.c: Likewise. |
| * lto-streamer-in.c: Likewise. |
| * lto-streamer-out.c: Likewise. |
| * lto-streamer.c: Likewise. |
| * mode-switching.c: Likewise. |
| * modulo-sched.c: Likewise. |
| * omp-low.c: Likewise. |
| * optabs.c: Likewise. |
| * opts-global.c: Likewise. |
| * passes.c: Likewise. |
| * plugin.c: Likewise. |
| * postreload-gcse.c: Likewise. |
| * postreload.c: Likewise. |
| * predict.c: Likewise. |
| * print-tree.c: Likewise. |
| * profile.c: Likewise. |
| * real.c: Likewise. |
| * realmpfr.c: Likewise. |
| * recog.c: Likewise. |
| * ree.c: Likewise. |
| * reg-stack.c: Likewise. |
| * regcprop.c: Likewise. |
| * reginfo.c: Likewise. |
| * regrename.c: Likewise. |
| * regstat.c: Likewise. |
| * reload.c: Likewise. |
| * reload1.c: Likewise. |
| * reorg.c: Likewise. |
| * resource.c: Likewise. |
| * rtl-chkp.c: Likewise. |
| * rtl-error.c: Likewise. |
| * rtlanal.c: Likewise. |
| * rtlhooks.c: Likewise. |
| * sanopt.c: Likewise. |
| * sched-deps.c: Likewise. |
| * sched-ebb.c: Likewise. |
| * sched-rgn.c: Likewise. |
| * sese.c: Likewise. |
| * shrink-wrap.c: Likewise. |
| * simplify-rtx.c: Likewise. |
| * stack-ptr-mod.c: Likewise. |
| * statistics.c: Likewise. |
| * stmt.c: Likewise. |
| * stor-layout.c: Likewise. |
| * store-motion.c: Likewise. |
| * stringpool.c: Likewise. |
| * symtab.c: Likewise. |
| * target-globals.c: Likewise. |
| * targhooks.c: Likewise. |
| * toplev.c: Likewise. |
| * tracer.c: Likewise. |
| * trans-mem.c: Likewise. |
| * tree-affine.c: Likewise. |
| * tree-call-cdce.c: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-cfgcleanup.c: Likewise. |
| * tree-chkp-opt.c: Likewise. |
| * tree-chkp.c: Likewise. |
| * tree-chrec.c: Likewise. |
| * tree-complex.c: Likewise. |
| * tree-data-ref.c: Likewise. |
| * tree-dfa.c: Likewise. |
| * tree-diagnostic.c: Likewise. |
| * tree-dump.c: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-emutls.c: Likewise. |
| * tree-if-conv.c: Likewise. |
| * tree-inline.c: Likewise. |
| * tree-into-ssa.c: Likewise. |
| * tree-iterator.c: Likewise. |
| * tree-loop-distribution.c: Likewise. |
| * tree-nested.c: Likewise. |
| * tree-nrv.c: Likewise. |
| * tree-object-size.c: Likewise. |
| * tree-outof-ssa.c: Likewise. |
| * tree-parloops.c: Likewise. |
| * tree-phinodes.c: Likewise. |
| * tree-predcom.c: Likewise. |
| * tree-pretty-print.c: Likewise. |
| * tree-profile.c: Likewise. |
| * tree-scalar-evolution.c: Likewise. |
| * tree-sra.c: Likewise. |
| * tree-ssa-address.c: Likewise. |
| * tree-ssa-alias.c: Likewise. |
| * tree-ssa-ccp.c: Likewise. |
| * tree-ssa-coalesce.c: Likewise. |
| * tree-ssa-copy.c: Likewise. |
| * tree-ssa-dce.c: Likewise. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa-dse.c: Likewise. |
| * tree-ssa-forwprop.c: Likewise. |
| * tree-ssa-ifcombine.c: Likewise. |
| * tree-ssa-live.c: Likewise. |
| * tree-ssa-loop-ch.c: Likewise. |
| * tree-ssa-loop-im.c: Likewise. |
| * tree-ssa-loop-ivcanon.c: Likewise. |
| * tree-ssa-loop-ivopts.c: Likewise. |
| * tree-ssa-loop-manip.c: Likewise. |
| * tree-ssa-loop-niter.c: Likewise. |
| * tree-ssa-loop-prefetch.c: Likewise. |
| * tree-ssa-loop-unswitch.c: Likewise. |
| * tree-ssa-loop.c: Likewise. |
| * tree-ssa-math-opts.c: Likewise. |
| * tree-ssa-operands.c: Likewise. |
| * tree-ssa-phiopt.c: Likewise. |
| * tree-ssa-phiprop.c: Likewise. |
| * tree-ssa-pre.c: Likewise. |
| * tree-ssa-propagate.c: Likewise. |
| * tree-ssa-reassoc.c: Likewise. |
| * tree-ssa-sccvn.c: Likewise. |
| * tree-ssa-scopedtables.c: Likewise. |
| * tree-ssa-sink.c: Likewise. |
| * tree-ssa-strlen.c: Likewise. |
| * tree-ssa-structalias.c: Likewise. |
| * tree-ssa-tail-merge.c: Likewise. |
| * tree-ssa-ter.c: Likewise. |
| * tree-ssa-threadedge.c: Likewise. |
| * tree-ssa-threadupdate.c: Likewise. |
| * tree-ssa-uncprop.c: Likewise. |
| * tree-ssa-uninit.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-ssanames.c: Likewise. |
| * tree-stdarg.c: Likewise. |
| * tree-streamer-in.c: Likewise. |
| * tree-streamer-out.c: Likewise. |
| * tree-streamer.c: Likewise. |
| * tree-switch-conversion.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| * tree-vect-data-refs.c: Likewise. |
| * tree-vect-generic.c: Likewise. |
| * tree-vect-loop-manip.c: Likewise. |
| * tree-vect-loop.c: Likewise. |
| * tree-vect-patterns.c: Likewise. |
| * tree-vect-slp.c: Likewise. |
| * tree-vect-stmts.c: Likewise. |
| * tree-vectorizer.c: Likewise. |
| * tree-vrp.c: Likewise. |
| * tree.c: Likewise. |
| * tsan.c: Likewise. |
| * ubsan.c: Likewise. |
| * value-prof.c: Likewise. |
| * var-tracking.c: Likewise. |
| * varasm.c: Likewise. |
| * varpool.c: Likewise. |
| * vtable-verify.c: Likewise. |
| * web.c: Likewise. |
| * wide-int-print.cc: Likewise. |
| * wide-int.cc: Likewise. |
| * xcoffout.c: Likewise. |
| |
| 2015-10-29 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * Makefile.in (NO_PIE_CFLAGS): New. |
| (NO_PIE_FLAG): Likewise. |
| (NO_PIE_CFLAGS_FOR_BUILD): Likewise. |
| (NO_PIE_FLAG_FOR_BUILD): Likewise. |
| (BUILD_NO_PIE_CFLAGS): Likewise. |
| (BUILD_NO_PIE_FLAG): Likewise. |
| (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS). |
| (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG). |
| (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with |
| $(BUILD_NO_PIE_CFLAGS). |
| (BUILD_CXXFLAGS): Likewise. |
| (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with |
| $(BUILD_NO_PIE_FLAG). |
| * configure.ac (BUILD_NO_PIE_CFLAGS): New. AC_SUBST. |
| (BUILD_NO_PIE_FLAG): Likewise. |
| (NO_PIE_CFLAGS_FOR_BUILD): Likewise. |
| (NO_PIE_FLAG_FOR_BUILD): Likewise. |
| * configure: Regenerated. |
| |
| 2015-10-29 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/56956 |
| * fold-const.c (fold_cond_expr_with_comparison): Do not fold |
| unsigned conditonal negation to ABS_EXPR. |
| |
| 2015-10-29 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match-head.c (gimple_simplify): Remove premature checking |
| of builtin_decl_implicit of function calls we simplify. |
| |
| 2015-10-29 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on. |
| (get_computation_cost_at): Ditto. |
| (determine_use_iv_cost_address): Pass NULL for arguments depends_on |
| and inv_expr_id. |
| |
| 2015-10-28 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Remove |
| superfluous code. |
| |
| 2015-10-28 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in (TAGS): Include libcpp and libiberty. |
| |
| 2015-10-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete. |
| (extract_omp_for_data): Remove OpenACC special handling of |
| chunking. |
| |
| * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case. |
| (struct parallel): Update comment. |
| (nvptx_reorg): Likewise. |
| (nvptx_neuter): Cleanup whitespace. |
| |
| 2015-10-28 Richard Henderson <rth@redhat.com> |
| |
| * tree-eh.c (mark_reachable_handlers): Fix typo in assert. |
| |
| 2015-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> |
| |
| PR target/67839 |
| * config/avr/predicates.md (low_io_address_operand): Don't |
| consider MODE when computing upper bound. |
| (io_address_operand): Likewise. |
| |
| 2015-10-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Do not verify that types are |
| compatible for MEM_REFs. |
| |
| 2015-10-28 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs |
| in simplifying VEC_COND_EXPR conditions. |
| |
| 2015-10-28 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate |
| into vi_next of a full_var. |
| |
| 2015-10-28 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (new_var_info, make_heapvar) |
| (make_constraint_from_restrict, make_constraint_from_global_restrict) |
| (create_function_info_for, create_variable_info_for_1) |
| (create_variable_info_for): Add and handle add_id parameter. |
| (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call) |
| (init_base_vars): Add extra argument to calls to new_var_info. |
| (get_vi_for_tree): Add extra argument to call to |
| create_variable_info_for. |
| (process_constraint, do_deref, process_all_all_constraints): Add extra |
| argument to calls to new_scalar_tmp_constraint_exp. |
| (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra |
| argument to calls to make_heapvar. |
| (make_restrict_var_constraints): Add extra argument to call to |
| make_constraint_from_global_restrict. |
| (intra_create_variable_infos): Add extra argument to call to |
| create_variable_info_for_1. |
| (ipa_pta_execute): Add extra argument to call to |
| create_function_info_for. |
| |
| 2015-10-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt. |
| (sibcall_value): Likewise. |
| |
| 2015-10-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.h (struct machine_function): Add |
| axis_predicate. |
| * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork, |
| nvptx_expand_oacc_join): Declare. |
| * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete. |
| (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV, |
| UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New. |
| (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED, |
| UNSPECV_JOINING, UNSPECV_JOIN): New. |
| (BITS, BITD): New mode iterators. |
| (br_true_uni, br_false_uni): New. |
| (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete. |
| (oacc_dim_size, oacc_dim_pos): New. |
| (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New. |
| (oacc_fork, oacc_join): New. |
| (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New. |
| (worker_load<mode>, worker_store<mode>): New. |
| (nvptx_barsync): New. |
| * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h. |
| (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define. |
| (worker_bcast_hwm, worker_bcast_align, worker_bcast_name, |
| worker_bcast_sym): New. |
| (nvptx_option_override): Initialize worker broadcast buffer. |
| (nvptx_emit_forking, nvptx_emit_joining): New. |
| (nvptx_init_axis_predicate): New. |
| (nvptx_declare_function_name): Init axis predicates. |
| (nvptx_expand_call): Add fork/join markers around routine call. |
| (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New. |
| (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New. |
| (nvptx_gen_vcast): New. |
| (struct wcast_data_t): New. |
| (enum propagate_mask): New. |
| (nvptx_gen_wcast): New. |
| (nvptx_print_operand): Add 'S' case. |
| (struct parallel): New. |
| (parallel::parallel, parallel::~parallel): New. |
| (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs. |
| (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars, |
| nvptx_find_par, nvptx_discover_pars): New. |
| (nvptx_propagate): New. |
| (vprop_gen, nvptx_vpropagate): New. |
| (wprop_gen, nvptx_wpropagate): New. |
| (nvptx_wsync): New. |
| (nvptx_single, nvptx_skip_par): New. |
| (nvptx_process_pars, nvptx_neuter_pars): New. |
| (ntptx_reorg): Split blocks, generate parallel structure, apply |
| neutering. |
| (nvptx_cannot_copy_insn_p): New. |
| (nvptx_file_end): Emit worker broadcast decl. |
| (nvptx_goacc_fork_join): New. |
| (TARGET_CANNOT_COPY_INSN_P): Override. |
| (TARGET_GOACC_FORK_JOIN): Override. |
| |
| 2015-10-28 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (negate_expr_p): Adjust the division case to |
| properly avoid introducing undefined overflow. |
| (fold_negate_expr): Likewise. |
| |
| 2015-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/65962 |
| * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): |
| Avoid creating loop carried dependences also for outer loops |
| of the loop a use to replace is in. |
| |
| 2015-10-28 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (fchecking): New flag controlling flag_checking. |
| * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION. |
| * timevar.c (timer::print): Adjust output. |
| * doc/invoke.texi (fchecking): Document. |
| |
| 2015-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68067 |
| * fold-const.c (negate_expr_p): We cannot negate plus or minus |
| if overflow is not wrapping. Likewise multiplication unless |
| one operand is constant and not power of two. |
| (fold_negate_expr): Adjust accordingly. |
| |
| 2015-10-27 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (struct omp_context): Remove gwv_below, gwv_this |
| fields. |
| (is_oacc_parallel, is_oacc_kernels): New. |
| (enclosing_target_ctx): May return NULL. |
| (ctx_in_oacc_kernels_region): New. |
| (check_oacc_kernel_gwv): New. |
| (oacc_loop_or_target_p): Delete. |
| (scan_omp_for): Don't calculate gwv mask. Check parallel clause |
| operands. Strip reductions fro kernels. |
| (scan_omp_target): Don't calculate gwv mask. |
| (lower_oacc_head_mark, lower_oacc_loop_marker, |
| lower_oacc_head_tail): New. |
| (struct oacc_collapse): New. |
| (expand_oacc_collapse_init, expand_oacc_collapse_vars): New. |
| (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): |
| Remove OpenACC handling. |
| (expand_oacc_for): New. |
| (expand_omp_for): Call expand_oacc_for. |
| (lower_omp_for): Call lower_oacc_head_tail. |
| |
| 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * attribs.c (check_attribute_tables): New function, broken out from... |
| (init_attributes): Use it. |
| * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P |
| gcc_checking_assert and checking_* functions to eliminate |
| ENABLE_CHECKING conditionals. |
| * cfgexpand.c (expand_goto, expand_debug_expr): Likewise. |
| (pass_expand::execute): Likewise. |
| * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. |
| * cgraphunit.c (mark_functions_to_output): Likewise. |
| (cgraph_node::expand_thunk): Likewise. |
| (symbol_table::compile): Likewise. |
| * ddg.c (add_cross_iteration_register_deps): Likewise. |
| (create_ddg_all_sccs): Likewise. |
| * df-core.c (df_finish_pass, df_analyze): Likewise. |
| * diagnostic-core.h: Likewise. |
| * diagnostic.c (diagnostic_report_diagnostic): Likewise. |
| * dominance.c (calculate_dominance_info): Likewise. |
| * dwarf2out.c (add_AT_die_ref): Likewise. |
| (const_ok_for_output_1, mem_loc_descriptor): Likewise. |
| (loc_list_from_tree, gen_lexical_block_die): Likewise. |
| gen_type_die_with_usage, gen_type_die): Likewise. |
| (dwarf2out_decl): Likewise. |
| * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise. |
| * except.c (duplicate_eh_regions): Likewise. |
| * fwprop.c (register_active_defs, update_df_init): Likewise. |
| (fwprop_init, fwprop_done): Likewise. |
| (update_uses): Likewise. |
| * ggc-page.c (ggc_grow): Likewise. |
| * gimplify.c (gimplify_body): Likewise. |
| (gimplify_hasher::equal): Likewise. |
| * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise. |
| * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): |
| Likewise. |
| * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise. |
| (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise. |
| * hash-table.h (::find_empty_slot_for_expand): Likewise. |
| * ifcvt.c (if_convert): Likewise. |
| * ipa-cp.c (ipcp_propagate_stage): Likewise. |
| * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise. |
| (odr_type_p, odr_types_equivalent_p): Likewise. |
| (add_type_duplicate, get_odr_type): Likewise. |
| * ipa-icf.c (sem_item_optimizer::execute): Likewise. |
| (sem_item_optimizer::subdivide_classes_by_equality): Likewise. |
| (sem_item_optimizer::verify_classes): Likewise. |
| (sem_item_optimizer::traverse_congruence_split): Likewise. |
| (sem_item_optimizer::checking_verify_classes): New. |
| * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new |
| method. |
| * cfgrtl.c (commit_edge_insertions): Likewise. |
| (fixup_reorder_chain, cfg_layout_finalize): Likewise. |
| (rtl_flow_call_edges_add): Likewise. |
| * cgraph.c (symbol_table::create_edge): Likewise. |
| (cgraph_edge::redirect_call_stmt_to_callee): Likewise. |
| * cgraph.h (symtab_node): Likewise. |
| (symtab_node::checking_verify_symtab_nodes): Define. |
| (cgraph_node::checking_verify_cgraph_nodes): Define. |
| * cfghooks.h (checking_verify_flow_info): Define. |
| * cfgloop.h (checking_verify_loop_structure): Define. |
| * dominance.h (checking_verify_dominators): Define. |
| * et-forest.c: Fix comment. |
| * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking, |
| CHECKING_P gcc_checking_assert and checking_* functions to eliminate |
| ENABLE_CHECKING conditionals. |
| * ipa-inline-transform.c (save_inline_function_body): Likewise. |
| * ipa-inline.c (inline_small_functions): Likewise. |
| (early_inliner): Likewise. |
| * ipa-inline.h (estimate_edge_growth): Likewise. |
| * ipa-visibility.c (function_and_variable_visibility): Likewise. |
| * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. |
| (ipa_single_use): Likewise. |
| * ira-int.h: Likewise. |
| * ira.c (ira): Likewise. |
| * loop-doloop.c (doloop_optimize_loops): Likewise. |
| * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise. |
| * loop-invariant.c (move_loop_invariants): Likewise. |
| * lra-assigns.c (lra_assign): Likewise. |
| * lra-constraints.c (lra_constraints): Likewise. |
| * lra-eliminations.c (lra_eliminate): Likewise. |
| * lra-int.h (struct lra_reg): Likewise. |
| * lra-lives.c (check_pseudos_live_through_calls): Likewise. |
| (lra_create_live_ranges_1): Likewise. |
| * lra-remat.c (create_remat_bb_data): Likewise. |
| * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise. |
| (lra): Likewise. |
| (check_rtl): Always define. Remove incorrect guard around |
| extract_constrain_insn call. |
| * lto-cgraph.c (input_cgraph_1: Use flag_checking, |
| CHECKING_P gcc_checking_assert and checking_* functions to eliminate |
| ENABLE_CHECKING conditionals. |
| * lto-streamer-out.c (DFS::DFS): Likewise. |
| (lto_output): Likewise. |
| * lto-streamer.c (lto_streamer_init): Likewise. |
| * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise. |
| expand_omp_target, execute_expand_omp): Likewise. |
| (lower_omp_target): Likewise. |
| * passes.c (execute_function_todo): Likewise. |
| (execute_todo, execute_one_pass): Likewise. |
| (verify_curr_properties): Always define. |
| * predict.c (tree_estimate_probability: Use flag_checking, |
| CHECKING_P gcc_checking_assert and checking_* functions to eliminate |
| ENABLE_CHECKING conditionals. |
| (propagate_freq): Likewise. |
| * pretty-print.c (pp_format): Likewise. |
| * real.c (real_to_decimal_for_mode): Likewise. |
| * recog.c (split_all_insns): Likewise. |
| * regcprop.c (kill_value_one_regno): Likewise. |
| (copy_value): Likewise. |
| (validate_value_data): Define unconditionally. |
| * reload.c: Fix comment. |
| * timevar.c: Include options.h |
| * tree-ssa.h (checking_verify_ssa): Define. |
| * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define. |
| * sched-deps.c (CHECK): Remove unused macro. |
| (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P |
| gcc_checking_assert and checking_* functions to eliminate |
| ENABLE_CHECKING conditionals. |
| * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise. |
| * sel-sched.c (struct moveop_static_params): Likewise. |
| (find_best_reg_for_expr, move_cond_jump): Likewise. |
| (move_op_orig_expr_not_found): Likewise. |
| (code_motion_process_successors, move_op): Likewise. |
| * ssa-iterators.h (first_readonly_imm_use): Likewise. |
| (next_readonly_imm_use): Likewise. |
| * store-motion.c (compute_store_table): Likewise. |
| * symbol-summary.h (function_summary::function_summary): Likewise. |
| * target.h (cumulative_args_t): Likewise. |
| (get_cumulative_args, pack_cumulative_args): Likewise. |
| * timevar.c: (timer::print): Likewise. |
| * trans-mem.c (ipa_tm_execute): Likewise. |
| * tree-cfg.c (move_stmt_op): Likewise. |
| (move_sese_region_to_fn): Likewise. |
| (gimple_flow_call_edges_add): Likewise. |
| * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures): |
| Likewise. |
| * tree-eh.c (remove_unreachable_handlers): Likewise. |
| * tree-if-conv.c (pass_if_conversion::execute): Likewise. |
| * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise. |
| * tree-into-ssa.c (update_ssa): Likewise. |
| * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise. |
| * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise. |
| * tree-parloops.c (pass_parallelize_loops::execute): Likewise. |
| * tree-predcom.c (suitable_component_p): Likewise. |
| * tree-profile.c (gimple_gen_const_delta_profiler): Likewise. |
| * tree-ssa-alias.c (refs_may_alias_p_1): Likewise. |
| * tree-ssa-live.c (verify_live_on_entry): Likewise. |
| * tree-ssa-live.h (register_ssa_partition): Likewise. |
| * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise. |
| * tree-ssa-loop-manip.c (add_exit_phi): Likewise. |
| (tree_transform_and_unroll_loop): Likewise. |
| * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. |
| * tree-ssa-operands.c (get_expr_operands): Likewise. |
| * tree-ssa-propagate.c (replace_exp_1): Likewise. |
| * tree-ssa-structalias.c (rewrite_constraints): Likewise. |
| * tree-ssa-ter.c (free_temp_expr_table): Likewise. |
| * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise. |
| * tree-ssanames.c (release_ssa_name_fn): Likewise. |
| * tree-stdarg.c (expand_ifn_va_arg): Likewise. |
| * tree-vect-loop-manip.c |
| (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise. |
| (slpeel_checking_verify_cfg_after_peeling): Likewise. |
| (vect_do_peeling_for_loop_bound): Likewise. |
| (vect_do_peeling_for_alignment): Likewise. |
| * tree-vrp.c (supports_overflow_infinity): Likewise. |
| (set_value_range): Likewise. |
| * tree.c (free_lang_data_in_cgraph): Likewise. |
| * value-prof.c (gimple_remove_histogram_value): Likewise. |
| (free_hist): Likewise. |
| * var-tracking.c (canonicalize_values_star): Likewise. |
| (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise. |
| |
| 2015-10-27 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS, |
| IFN_GOACC_LOOP): New. |
| * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK, |
| IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK, |
| IFN_UNIQUE_OACC_TAIL_MARK. |
| (enum ifn_goacc_loop_kind): New. |
| * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK, |
| IFN_UNIQUE_OACC_JOIN cases. |
| (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New. |
| (expand_GOACC_LOOP): New. |
| * target-insns.def (oacc_dim_pos, oacc_dim_size): New. |
| * omp-low.c: Include gimple-pretty-print.h. |
| (struct oacc_loop): New. |
| (enum oacc_loop_flags): New. |
| (oacc_thread_numbers): New. |
| (oacc_xform_loop): New. |
| (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop, |
| new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New, |
| (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New, |
| (oacc_loop_discover_walk, oacc_loop_sibling_nrevers, |
| oacc_loop_discovery): New. |
| (oacc_loop_xform_head_tail, oacc_loop_xform_loop, |
| oacc_loop_process): New. |
| (oacc_loop_fixed_partitions, oacc_loop_partition): New. |
| (execute_oacc_device_lower): Discover & process loops. Process |
| internal fns. |
| * target.def (goacc.fork_join): Change sense of hook, clarify |
| documentation. |
| * doc/tm.texi: Regenerated. |
| |
| 2015-10-27 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * target-insns.def (oacc_fork, oacc_join): Define. |
| * target.def (goacc.validate_dims): Adjust doc to avoid warning. |
| (goacc.fork_join): New GOACC hook. |
| * targhooks.h (default_goacc_fork_join): Declare. |
| * omp-low.c (default_goacc_forkjoin): New. |
| * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add. |
| * doc/tm.texi: Regenerate. |
| |
| 2015-10-27 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (oacc_init_rediction_array): New. |
| (oacc_initialize_reduction_data): Initialize array. |
| |
| 2015-10-27 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (pass_oacc_device_lower::execute): Ignore errors. |
| |
| 2015-10-27 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * internal-fn.c (expand_UNIQUE): New. |
| * internal-fn.h (enum ifn_unique_kind): New. |
| * internal-fn.def (IFN_UNIQUE): New. |
| * target-insns.def (unique): Define. |
| * gimple.h (gimple_call_internal_unique_p): New. |
| * gimple.c (gimple_call_same_target_p): Check internal fn |
| uniqueness. |
| * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call. |
| * tree-ssa-threadedge.c |
| (record_temporary_equivalences_from_stmts): Likewise. |
| * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise. |
| |
| 2015-10-27 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/67609 |
| * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow |
| narrowing subregs on SSE and MMX registers. |
| * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that |
| appear to be sub-words of multi-register pseudos must be rejected. |
| * doc/tm.texi: Regenerate. |
| |
| 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/68102 |
| * config/aarch64/aarch64.md (*movsi_aarch64): Check that |
| operands[0] is a reg before taking its REGNO in split condition. |
| (*movdi_aarch64): Likewise. |
| |
| 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate): |
| Handle floating point inner modes properly. |
| |
| 2015-10-27 Alan Hayward <alan.hayward@arm.com> |
| |
| * tree-vect-looop.c |
| (vectorizable_live_operation): Change iterator. |
| |
| 2015-10-27 Abderrazek Zaafrani <a.zaafrani@samsung.com> |
| Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-optimize-isl.c (get_schedule_for_node_st): New callback |
| function to schedule based on isl_schedule_node. |
| (get_schedule_map_st): New schedule optimizer based on |
| isl_schedule_node. |
| (scop_get_domains): New. Return the isl_union_set containing the |
| domains of all the pbbs. |
| (optimize_isl): Call the new function get_schedule_map_st for isl-0.15 |
| |
| 2015-10-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/67215 |
| * calls.c (prepare_call_address): Don't handle -fno-plt here. |
| * config/i386/i386.c (ix86_expand_call): Generate indirect call |
| via GOT for -fno-plt. Support indirect call via GOT for x32. |
| * config/i386/predicates.md (sibcall_memory_operand): Allow |
| GOT memory operand. |
| |
| 2015-10-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68104 |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move |
| strided access check ... |
| (vect_compute_data_refs_alignment): ... here. |
| |
| 2015-10-27 Daniel Jacobowitz <dan@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| Mark Shinwell <shinwell@codesourcery.com> |
| Andrew Stubbs <ams@codesourcery.com> |
| Rich Felker <dalias@libc.org> |
| |
| * config.gcc: Handle --enable-fdpic. |
| * config/sh/constraints.md (Ccl): New constraint. |
| * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic. |
| * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and |
| __SH_FDPIC__. |
| * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to |
| library functions. |
| * config/sh/sh-protos.h (function_symbol_result): New struct. |
| (function_symbol): Return function_symbol_result. |
| (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New |
| declarations. |
| * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement |
| target hook. |
| (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise. |
| (sh_option_override): Force -fPIC if FDPIC is in effect. |
| (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and |
| UNSPEC_GOTOFFFUNCDESC cases. |
| (prepare_move_operands): Use FDPIC initial GOT register for |
| TLS-related GOT access; inhibit cross-section address offset constants |
| for FDPIC. |
| (sh_assemble_integer): New function. |
| (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC |
| PC-relative call sites. |
| (expand_ashiftrt): Adapt invocation of function_symbol. |
| (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC. |
| (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and |
| UNSPEC_GOTOFFFUNCDESC. |
| (legitimize_pic_address): Resolve function symbols to function |
| descriptors for FDPIC. Do not use GOT-relative addressing for local |
| data that may be read-only on FDPIC. |
| (sh_emit_storesi, sh_emit_storehi): New functions. |
| (sh_trampoline_init): Generate FDPIC trampolines. |
| (sh_function_ok_for_sibcall): Add TARGET_FDPIC check. |
| (sh_expand_sym_label2reg): Don't assume sibcalls are local. |
| (sh_output_mi_thunk): Generate FDPIC call. |
| (function_symbol): Return function_symbol_result. For SFUNC_STATIC on |
| FDPIC, generate call site labels to use PC-relative addressing rather |
| than GOT-relative addressing. |
| (sh_conditional_register_usage): Make PIC register fixed and call used |
| when FDPIC is in effect. |
| (sh_legitimate_constant_p): Impose FDPIC constant constraints. |
| (sh_cannot_force_const_mem_p, sh_load_function_descriptor, |
| sh_get_fdpic_reg_initial_val): New functions. |
| * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX): |
| Handle -mfdpic. |
| (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS, |
| PIC_OFFSET_TABLE_REG_CALL_CLOBBERED, |
| SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros. |
| (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and |
| FDPIC_SELF_SPECS. |
| (TRAMPOLINE_SIZE): Select trampoline size for FDPIC. |
| (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC. |
| (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case. |
| * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New |
| constants. |
| (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic, |
| sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic, |
| sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg, |
| sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns. |
| (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3, |
| *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3, |
| ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei, |
| call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall, |
| sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel, |
| sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg, |
| block_move_real, block_lump_real, block_move_real_i4, |
| block_lump_real_i4): Add support for FDPIC calls. |
| (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop, |
| call_value_pop): Adjust for new function_symbol signature. |
| * config/sh/sh.opt (-mfdpic): New option. |
| * doc/install.texi (Options specification): Document --enable-fdpic. |
| * doc/invoke.texi (SH Options): Document -mfdpic. |
| |
| |
| 2015-10-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/65963 |
| * tree-scalar-evolution.c (interpret_rhs_expr): Handle some |
| LSHIFT_EXPRs as equivalent MULT_EXPRs. |
| |
| 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/67929 |
| * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite. |
| * config/arm/constraints.md (Dp): Update callsite. |
| * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_load_exponent): Rename to... |
| (fold_const_builtin_load_exponent): ...this and only handle |
| constant arguments. |
| (fold_builtin_2): Update accordingly. |
| * match.pd: Add rules previously handled by fold_builtin_load_exponent. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_logb): Rename to... |
| (fold_const_builtin_logb): ...this and remove STRIP_NOPS call. |
| (fold_builtin_significand): Rename to... |
| (fold_const_builtin_significand): ...this and remove STRIP_NOPS call. |
| (fold_builtin_1): Update accordingly. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_fmin_fmax): Delete. |
| (fold_builtin_2): Handle constant fmin and fmax arguments here. |
| * match.pd: Add rules previously handled by fold_builtin_fmin_fmax. |
| |
| 2015-10-27 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member |
| for register extension into sign and zero register extension. |
| * config/aarch64/aarch64.c (generic_addrcost_table): Infer values |
| for sign and zero register extension. |
| (cortexa57_addrcost_table): Likewise. |
| (xgene1_addrcost_table): Likewise. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const.c (fold_minmax): Delete. |
| (fold_binary_loc): Don't call it. |
| * match.pd: Add rules previously handled by fold_minmax. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_fma): Remove constant handling. |
| (fold_builtin_3): Handle constant fma arguments here. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_fabs): Remove constant handling. |
| (fold_builtin_abs): Likewise. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_copysign): Delete. |
| (fold_builtin_2): Handle constant copysign arguments here. |
| * match.pd: Add rules previously handled by fold_builtin_copysign. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_signbit): Delete. |
| (fold_builtin_2): Handle constant signbit arguments here. |
| * match.pd: Add rules previously handled by fold_builtin_signbit. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Handle sqrt(x) cmp 0 specially. |
| |
| 2015-10-27 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Check |
| optab type before using it. |
| |
| 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (struct tune_params): Add autoprefetcher_model field. |
| * config/aarch64/aarch64.c: Include params.h |
| (generic_tunings): Specify autoprefetcher_model value. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (cortexa72_tunings): Likewise. |
| (thunderx_tunings): Likewise. |
| (xgene1_tunings): Likewise. |
| (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function. |
| (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define. |
| (aarch64_override_options_internal): Set |
| PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_exponent): Delete. |
| (fold_builtin_2): Handle constant expN arguments here. |
| * match.pd: Fold expN(logN(x)) -> x. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_powi): Delete. |
| (fold_builtin_2): Handle constant powi arguments here. |
| * match.pd: Add rules previously handled by fold_builtin_powi. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_pow): Delete in favor of... |
| (fold_const_builtin_pow): ...this new function. Only handle constant |
| arguments. |
| (fold_builtin_2): Update accordingly. |
| * match.pd: Add rules previously handled by fold_builtin_pow. |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_hypot): Delete. |
| (fold_builtin_2): Handle constant hypot arguments here. |
| * match.pd: Fold hypot(x, 0) and hypot(0, x) to x. Canonicalize |
| hypot(x, x) to fabs(x)*sqrt(2). |
| |
| 2015-10-27 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg |
| instead of make_ssa_name if not yet in SSA form. |
| |
| 2015-10-27 Richard Biener <rguenther@suse.de> |
| |
| * cfg.c (free_edge): Add function argument and use it instead of cfun. |
| (clear_edges): Likewise. |
| * cfg.h (clear_edges): Adjust prototype. |
| * cfgexpand.c (pass_expand::execute): Adjust. |
| * cfgloop.c (release_recorded_exits): Add function argument and use |
| it instead of cfun. |
| * cfgloop.h (release_recorded_exits): Adjust prototype. |
| (loops_state_satisfies_p): Add overload with function argument. |
| (loops_state_set): Likewise. |
| (loops_state_clear): Likewise. |
| (struct loop_iterator): Add function argument to constructor |
| and iterator and use it instead of cfun. |
| (FOR_EACH_LOOP_FN): New macro. |
| (loop_optimizer_finalize): Add overload with function argument. |
| * loop-init.c (loop_optimizer_init): Adjust. |
| (fix_loop_structure): Likewise. |
| (loop_optimizer_finaliz): Add function argument and use it |
| instead of cfun. |
| * tree-cfg.c (delete_tree_cfg_annotations): Likewise. |
| * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype. |
| * cgraph.c (release_function_body): Do not push/pop cfun. |
| * final.c (rest_of_clean_state): Adjust. |
| * graphite.c (graphite_finalize): Likewise. |
| * tree-ssa-copy.c (fini_copy_prop): Likewise. |
| * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise. |
| * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise. |
| (tree_unroll_loops_completely): Likewise. |
| (pass_complete_unrolli::execute): Likewise. |
| * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates): |
| Add function argument and use it instead of cfun. |
| * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates): |
| Adjust prototype. |
| * tree-ssa-loop.c (tree_ssa_loop_done): Adjust. |
| * tree-ssa.c (delete_tree_ssa): Add function argument and use it |
| instead of cfun. |
| * tree-ssa.h (delete_tree_ssa): Adjust prototype. |
| * tree-ssanames.c (fini_ssanames): Add function argument and use it |
| instead of cfun. |
| * tree-ssanames.c (fini_ssanames): Adjust prototype. |
| * tree-vrp.c (execute_vrp): Adjust. |
| * value-prof.c (free_histograms): Add function argument and use it |
| instead of cfun. |
| * value-prof.h (free_histograms): Adjust prototype. |
| |
| 2015-10-27 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES) |
| (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED) |
| (OACC_PARALLEL_COMBINED): Don't define macros. Adjust all users. |
| |
| 2015-10-27 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var |
| field_type. |
| |
| 2015-10-27 Bin Cheng <bin.cheng@arm.com> |
| |
| * loop-invariant.c (struct def): New field can_prop_to_addr_uses. |
| (inv_can_prop_to_addr_use): New function. |
| (record_use): Call can_prop_to_addr_uses, set the new field. |
| (get_inv_cost): Count cost if inv can't be propagated into its |
| address uses. |
| |
| 2015-10-26 Doug Evans <dje@google.com> |
| |
| * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL. |
| |
| 2015-10-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * match.pd (fold_widened_comparison): Apply simplifications to all |
| integral types. |
| |
| 2015-10-26 Simon Dardis <simon.dardis@imgtec.com> |
| |
| * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook. |
| * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document. |
| * doc/tm.texi: Regenerated. |
| * reorg.c (dbr_schedule): Use new hook. |
| * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New. |
| |
| 2015-10-26 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/68013 |
| * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): |
| Make sure the first block in the path is in VISITED_BBs. |
| |
| 2015-10-26 Richard Biener <rguenther@suse.de> |
| Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR middle-end/67443 |
| * alias.c (ao_ref_from_mem): Remove promoted subreg handling. |
| Properly prune ref->ref for accesses outside of ref. |
| |
| 2015-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-fold.c (replace_stmt_with_simplification): Don't allow |
| new statements to be inserted if inplace. Allow calls to have |
| nonempty sequences. |
| |
| 2015-10-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-object-size.c: Remove builtins.h include, include tree-cfg.h. |
| (do_valueize): New function. |
| (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and |
| replace_uses_by. |
| * tree-ssa-threadedge.c: Remove builtins.h include, include |
| gimple-fold.h |
| (fold_assignment_stmt): Remove. |
| (threadedge_valueize): New function. |
| (record_temporary_equivalences_from_stmts): Use |
| gimple_fold_stmt_to_constant_1, note additional cleanup |
| opportunities. |
| |
| 2015-10-26 Richard Biener <rguenther@suse.de> |
| |
| * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c. |
| ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c. |
| |
| 2015-10-26 Alan Hayward <alan.hayward@arm.com> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix |
| VEC_COND_EXPR types. |
| |
| 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * auto-inc-dec.c (insert_move_insn_before): Delete. |
| (attempt_change): Remember to cost the simple move in the |
| FORM_PRE_ADD and FORM_POST_ADD cases. |
| |
| 2015-10-26 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/68091 |
| * config/sh/sh.c (sh_vector_mode_supported_p): Use |
| TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY. |
| |
| 2015-10-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (make_restrict_var_constraints): New function, |
| factored out of ... |
| (intra_create_variable_infos): ... here. |
| |
| 2015-10-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Add |
| restrict_pointer_p and recursive_restrict_p variables. |
| |
| 2015-10-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Inline |
| get_vi_for_tree call. |
| |
| 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR middle-end/67989 |
| * optabs.c (expand_atomic_compare_and_swap): Handle case when |
| ptarget_oval or ptarget_bool are const0_rtx. |
| |
| 2015-10-26 Christian Bruel <christian.bruel@st.com> |
| |
| * function.h (MINIMUM_METHOD_BOUNDARY): New macro. |
| * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY. |
| * cp/method.c (implicitly_declare_fn): Likewise. |
| * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting. |
| * java/class.c (add_method_1): Likewise. |
| |
| 2015-10-26 Richard Biener <rguenther@suse.de> |
| |
| * alloc-pool.h (base_pool_allocator): Use placement new. |
| (base_pool_allocator::remove): Likewise. Compute size outside of |
| flag_checking. |
| |
| 2015-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (do_real_to_int_conversion): New function. |
| (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete. |
| (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l} |
| arguments here. |
| * match.pd: Add rules previously handled by fold_fixed_mathfn |
| and fold_builtin_int_roundingfn. |
| |
| 2015-10-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Use macros to define built-in operator lists. |
| |
| 2015-10-20 Richard Sandiford <richard.sandiford@arm.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_simplify::gen): Skip captures that are |
| part of the result. |
| (parser::parse_expr): Allow captures in results too. |
| * builtins.c (fold_builtin_cexp): Delete. |
| (fold_builtin_1): Handle constant cexp arguments here. |
| * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y). |
| |
| 2015-10-26 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove |
| conditional compilation. |
| (base_pool_allocator::remove): Use flag_checking. |
| |
| 2015-10-25 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define. |
| |
| PR middle-end/68079 |
| * dojump.c (do_compare_and_jump): Canonicalize both function and |
| method types. |
| |
| 2015-10-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/68084 |
| * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code |
| for =@ccae. |
| |
| 2015-10-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/pr67600 |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse |
| instance offset with offset of outer type. |
| |
| 2015-10-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR. |
| |
| 2015-10-23 Caroline Tice <cmtice@google.com> |
| |
| (from Richard Biener |
| * tree.c (int_cst_hasher::hash): Replace XOR with more efficient |
| call to iterative_hash_host_wide_int. |
| |
| 2015-10-23 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]: |
| Define as yes. |
| |
| 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Check |
| optab exists before use it. |
| |
| 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * tree-vect-generic.c (expand_vector_condition): Avoid |
| uninitialized variable warning. |
| |
| 2015-10-23 Jeff Law <law@redhat.com> |
| |
| * passes.c (execute_function_todo): Do not call flush_ssaname_freelist |
| here. Instead... |
| (execute_todo): Call it here. |
| * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse |
| statistics |
| (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist. |
| |
| 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca> |
| Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config.gcc (enable_secureplt): Add *-linux*-musl*. |
| |
| 2015-10-23 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/67830 |
| * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)): |
| Explicitly verify the mask has no bits outside the type of |
| the innermost operands. |
| |
| 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca> |
| Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define. |
| (MUSL_DYNAMIC_LINKER64): Define. |
| (GNU_USER_DYNAMIC_LINKER32): Update. |
| (GNU_USER_DYNAMIC_LINKER64): Update. |
| (CHOOSE_DYNAMIC_LINKER): Update. |
| |
| * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update. |
| (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,) |
| (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,) |
| (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,) |
| (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define. |
| (CHOOSE_DYNAMIC_LINKER): Update. |
| (INCLUDE_DEFAULTS): Redefine. |
| |
| * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define. |
| |
| 2015-10-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when |
| comparing addresses. |
| |
| 2015-10-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Handle matching of vector |
| constructors. |
| |
| 2015-10-23 David Edelsohn <dje.gcc@gmail.com> |
| |
| * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1. |
| |
| 2015-10-23 Steve Ellcey <sellcey@imgtec.com> |
| Andrew Pinski <apinski@cavium.com> |
| |
| PR rtl-optimization/67736 |
| * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead |
| of gen_lowpart. |
| |
| 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR middle-end/68066 |
| * tree.c (build_truth_vector_type): Support BLK mode |
| returned for boolean vector. |
| |
| 2015-10-23 Alan Hayward <alan.hayward@arm.com> |
| |
| PR tree-optimization/65947 |
| * tree-vect-loop.c |
| (vect_is_simple_reduction_1): Find condition reductions. |
| (vect_model_reduction_cost): Add condition reduction costs. |
| (get_initial_def_for_reduction): Add condition reduction initial var. |
| (vect_create_epilog_for_reduction): Add condition reduction epilog. |
| (vectorizable_reduction): Condition reduction support. |
| * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg |
| * doc/sourcebuild.texi (Vector-specific attributes): Document |
| vect_max_reduc |
| |
| 2015-10-23 Richard Biener <rguenther@suse.de> |
| |
| * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def |
| and builtins.def. |
| |
| 2015-10-23 Richard Biener <rguenther@suse.de> |
| Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B) |
| into (A ^ B) - B to match.pd |
| Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd. |
| |
| * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)): |
| New simplifier. |
| (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)): |
| New simplifier. |
| (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))): |
| New simplifier. |
| (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)): |
| New simplifier. |
| (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0) |
| INTEGER_CST@1)): New simplifier. |
| |
| 2015-10-23 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (integer_valued_real_p): Move to fold-const.c. |
| (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor) |
| (fold_builtin_ceil, fold_builtin_round): Delete. |
| (fold_builtin_1): Handle constant trunc, floor, ceil and round |
| arguments here. |
| * convert.c (convert_to_real): Remove narrowing of rounding |
| functions. |
| * fold-const.h (integer_valued_real_unary_p) |
| (integer_valued_real_binary_p, integer_valued_real_call_p) |
| (integer_valued_real_single_p, integer_valued_real_p): Declare. |
| * fold-const.c (tree_single_nonnegative_warnv_p): Move |
| name_registered_for_update_p check to SSA_NAME case statement. |
| Don't call tree_simple_nonnegative_warnv_p for SSA names. |
| (integer_valued_real_unary_p, integer_valued_real_binary_p) |
| (integer_valued_real_call_p, integer_valued_real_single_p) |
| (integer_valued_real_invalid_p): New functions. |
| (integer_valued_real_p): Move from fold-const.c and rework |
| to call the functions above. Handle SSA names. |
| * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare. |
| * gimple-fold.c (gimple_assign_integer_valued_real_p) |
| (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p) |
| (gimple_stmt_integer_valued_real_p): New functions. |
| * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f. |
| Fold f(x)->x for the same f if x is known to be integer-valued. |
| Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect |
| the result. Canonicalize floor(x) as trunc(x) if x is |
| nonnegative. |
| |
| 2015-10-23 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Use |
| make_constraint_from. |
| |
| 2015-10-23 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-structalias.c (create_variable_info_for_1): Add missing |
| setting of is_full_var in case of a single field. |
| |
| 2015-10-22 Martin Sebor <msebor@redhat.com> |
| |
| PR driver/68043 |
| * config/i386/i386.opt: Add missing periods to the ends of sentences. |
| * config/msp430/msp430.opt: Same. |
| |
| 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| * doc/extend.exp (Global Register Variables): Rewrite. |
| |
| 2015-10-22 Jeff Law <law@redhat.com> |
| |
| * genattrtab.c (main): If we do not have any annul-true or annul-false |
| slots, then write out a dummy eligible_for_annul_true or |
| eligible_for_annul_false as needed. |
| |
| 2015-10-22 Nick Clifton <nickc@redhat.com> |
| |
| * config/msp430/msp430.opt: Add -msilicon-errata and |
| -msilicon-errata-warn. |
| * config/msp430/msp430.h (ASM_SPEC): Pass new options on to |
| assembler. |
| * doc/invoke.texi: Document new options. |
| |
| 2015-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/58497 |
| * tree-vect-generic.c (ssa_uniform_vector_p): New helper. |
| (expand_vector_operations_1): Use it. Lower operations on |
| all uniform vectors to scalar operations if the HW supports it. |
| |
| 2015-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/19049 |
| PR tree-optimization/65962 |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back |
| to strided accesses if single-element interleaving doesn't work. |
| |
| 2015-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68046 |
| PR middle-end/61893 |
| * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv. |
| (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note. |
| (expand_unop): Likewise. |
| |
| 2015-10-22 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (fold_addr_of_array_ref_difference): Properly |
| convert operands before folding a MINUS_EXPR. |
| (fold_binary_loc): Move simplification of MINUS_EXPR on |
| converted POINTER_PLUS_EXPRs ... |
| * match.pd: ... here. |
| |
| 2015-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_tan): Delete. |
| (fold_builtin_1): Handle constant tan arguments here. |
| * match.pd: Simplify (tan (atan x)) to x. |
| |
| 2015-10-22 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_cproj): Delete. |
| (fold_builtin_1): Handle constant arguments here. |
| (build_complex_cproj): Move and rename to... |
| * tree.c: (build_complex_inf): ...this. |
| * tree.h (build_complex_inf): Declare. |
| * match.pd: Fold cproj(x)->x if x has no infinity. |
| Use build_complex_inf for existing cproj rules. |
| |
| 2015-10-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/68015 |
| * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't |
| already have a comparison result. |
| |
| 2015-10-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/63304 |
| * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New. |
| (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads. |
| (aarch64_classify_address): Likewise. |
| (aarch64_secondary_reload): Likewise. |
| (aarch64_override_options_after_change_1): Adjust. |
| * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>): |
| Use aarch64_nopcrelative_literal_loads. |
| (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. |
| * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): |
| Declare. |
| |
| 2015-10-21 Martin Sebor <msebor@redhat.com> |
| |
| PR driver/68043 |
| * opts.c (undocumented_msg, use_diagnosed_msg): New globals. |
| (print_filtered_help): Reference aliased option's name and encourage |
| readers to use it in preference to the alias if the former is not |
| documented. Mention when using an option is diagnosed. |
| * gcc.c (display_help): End each sentence with a period. |
| |
| * common.opt: End each sentence that describes an option with |
| a period. |
| * config/aarch64/aarch64.opt: Same. |
| * config/alpha/alpha.opt: Same. |
| * config/arc/arc.opt: Same. |
| * config/arm/arm.opt: Same. |
| * config/avr/avr.opt: Same. |
| * config/bfin/bfin.opt: Same. |
| * config/c6x/c6x.opt: Same. |
| * config/cr16/cr16.opt: Same. |
| * config/cris/cris.opt: Same. |
| * config/cris/linux.opt: Same. |
| * config/darwin.opt: Same. |
| * config/epiphany/epiphany.opt: Same. |
| * config/fr30/fr30.opt: Same. |
| * config/frv/frv.opt: Same. |
| * config/ft32/ft32.opt: Same. |
| * config/g.opt: Same. |
| * config/h8300/h8300.opt: Same. |
| * config/i386/cygming.opt: Same. |
| * config/i386/djgpp.opt: Same. |
| * config/i386/i386.opt: Same. |
| * config/i386/interix.opt: Same. |
| * config/i386/mingw-w64.opt: Same. |
| * config/i386/mingw.opt: Same. |
| * config/ia64/ia64.opt: Same. |
| * config/ia64/ilp32.opt: Same. |
| * config/iq2000/iq2000.opt: Same. |
| * config/linux.opt: Same. |
| * config/lm32/lm32.opt: Same. |
| * config/lynx.opt: Same. |
| * config/m32c/m32c.opt: Same. |
| * config/m32r/m32r.opt: Same. |
| * config/m68k/ieee.opt: Same. |
| * config/m68k/m68k.opt: Same. |
| * config/mcore/mcore.opt: Same. |
| * config/mep/mep.opt: Same. |
| * config/microblaze/microblaze.opt: Same. |
| * config/mips/mips.opt: Same. |
| * config/mmix/mmix.opt: Same. |
| * config/mn10300/mn10300.opt: Same. |
| * config/moxie/moxie.opt: Same. |
| * config/msp430/msp430.opt: Same. |
| * config/nios2/elf.opt: Same. |
| * config/nios2/nios2.opt: Same. |
| * config/nvptx/nvptx.opt: Same. |
| * config/pa/pa-hpux.opt: Same. |
| * config/pa/pa-hpux1010.opt: Same. |
| * config/pa/pa-hpux1111.opt: Same. |
| * config/pa/pa-hpux1131.opt: Same. |
| * config/pa/pa.opt: Same. |
| * config/pa/pa64-hpux.opt: Same. |
| * config/pdp11/pdp11.opt: Same. |
| * config/rl78/rl78.opt: Same. |
| * config/rs6000/476.opt: Same. |
| * config/rs6000/aix64.opt: Same. |
| * config/rs6000/darwin.opt: Same. |
| * config/rs6000/linux64.opt: Same. |
| * config/rs6000/rs6000.opt: Same. |
| * config/rs6000/sysv4.opt: Same. |
| * config/s390/s390.opt: Same. |
| * config/s390/tpf.opt: Same. |
| * config/sh/sh.opt: Same. |
| * config/sol2.opt: Same. |
| * config/sparc/long-double-switch.opt: Same. |
| * config/sparc/sparc.opt: Same. |
| * config/spu/spu.opt: Same. |
| * config/stormy16/stormy16.opt: Same. |
| * config/tilegx/tilegx.opt: Same. |
| * config/tilepro/tilepro.opt: Same. |
| * config/v850/v850.opt: Same. |
| * config/vax/vax.opt: Same. |
| * config/visium/visium.opt: Same. |
| * config/vms/vms.opt: Same. |
| * config/vxworks.opt: Same. |
| * config/xtensa/xtensa.opt: Same. |
| |
| 2015-10-21 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-scop-detection.c (parameter_index_in_region): Update call to |
| invariant_in_sese_p_rec. |
| * graphite-sese-to-poly.c (extract_affine): Same. |
| * sese.c (invariant_in_sese_p_rec): Pass in an extra |
| parameter has_vdefs. |
| (scalar_evolution_in_region): Return chrec_dont_know when the scalar |
| variable depends on virtual definitions in the current region. |
| * sese.h (invariant_in_sese_p_rec): Update declaration. |
| |
| 2015-10-21 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-scop-detection.c (build_scops): Do not handle scops |
| with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays. |
| * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New. |
| |
| 2015-10-21 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac (CHECKING_P): Define. |
| * system.h: Use CHECKING_P. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/67056 |
| * ipa-polymorphic-call.c (possible_placement_new): If cur_offset |
| is negative we don't know the type. |
| (check_stmt_for_type_change): Skip constructors of non-polymorphic |
| types as those won't help devirutalization. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Add code matching empty constructors. |
| |
| 2015-10-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak |
| comments. |
| (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR): |
| Add comments on sign of the result. |
| * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>: |
| Recurse on operand #1 instead of operand #0. |
| <CEIL_MOD_EXPR>: Do not recurse. |
| <ROUND_MOD_EXPR>: Likewise. |
| |
| 2015-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * cfgrtl.c (pass_free_cfg::execute): Adjust. |
| * final.c (dbr_sequence_length): Always define. |
| (shorten_branches): Adjust. |
| * genattr-common.c (main): Always define DELAY_SLOTS. |
| * genattr.c (main): Unconditionally declare functions and define |
| macros related to delay slots. |
| * genattrtab.c (write_eligible_delay): Adjust. |
| (main): Always write out delay slot functions. |
| * opts.c (default_options_table): Adjust. |
| * reorg.c (redirect_with_delay_slots_safe_p): Likewise. |
| (redirect_with_delay_list_safe_p): Likewise. |
| (fill_simple_delay_slots): Likewise. |
| (fill_slots_from_thread): Likewise. |
| (make_return_insns): Likewise. |
| (dbr_schedule): Likewise. |
| (rest_of_handle_delay_slots): Likewise. |
| (pass_delay_slots::gate): Likewise. |
| * toplev.c (process_options): Likewise. |
| |
| 2015-10-21 Richard Henderson <rth@redhat.com> |
| |
| * targhooks.c (default_addr_space_pointer_mode): Remove check |
| for generic address space. |
| (default_addr_space_address_mode): Likewise. |
| (default_addr_space_valid_pointer_mode): Likewise. |
| (default_addr_space_legitimate_address_p): Likewise. |
| (default_addr_space_legitimize_address): Likewise. |
| * target.def (addr_space.pointer_mode): Update documentation |
| of default behavior. |
| (addr_space.address_mode): Likewise. |
| * tm.texi: Update. |
| |
| * expr.c (expand_expr_real_2): Use convert_modes on disjoint |
| address spaces. |
| |
| 2015-10-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_cabs): Delete. |
| (fold_builtin_1): Update accordingly. Handle constant arguments here. |
| * match.pd: Add rules previously handled by fold_builtin_cabs. |
| |
| 2015-10-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const.h (fold_strip_sign_ops): Delete. |
| * fold-const.c (fold_strip_sign_ops): Likewise. |
| (fold_unary_loc, fold_binary_loc): Remove calls to it. |
| * builtins.c (fold_builtin_cos, fold_builtin_cosh) |
| (fold_builtin_ccos): Delete. |
| (fold_builtin_pow): Don't call fold_strip_sign_ops. |
| (fold_builtin_hypot, fold_builtin_copysign): Likewise. |
| Remove fndecl argument. |
| (fold_builtin_1): Update calls accordingly. Handle constant |
| cos, cosh, ccos and ccosh here. |
| |
| 2015-10-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document. |
| * Makefile.in (OBJS): Add gimple-ssa-backprop.o. |
| * common.opt (fssa-backprop): New option. |
| * fold-const.h (negate_mathfn_p): Declare. |
| * fold-const.c (negate_mathfn_p): Make public. |
| * timevar.def (TV_TREE_BACKPROP): New. |
| * tree-pass.h (make_pass_backprop): Declare. |
| * passes.def (pass_backprop): Add. |
| * gimple-ssa-backprop.c: New file. |
| |
| 2015-10-21 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): |
| Do not call create_empty_if_region_on_edge when cond_expr is true. |
| (translate_isl_ast_node_for): Check whether a guard has been generated. |
| |
| 2015-10-21 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-poly.h (struct dr_info): Added invalid_alias_set number. |
| (operator=): Removed. |
| (dr_info): Make alias_set number the last argument with default |
| value of invalid_alias_set. |
| * graphite-sese-to-poly.c (build_scop_drs): Update constructor |
| of dr_info. |
| (rewrite_reductions_out_of_ssa): Iterate only through the |
| basic blocks which are inside region. |
| (rewrite_cross_bb_scalar_deps_out_of_ssa): Same. |
| * sese.h (struct sese_l): Removed assignment operator. |
| (split_region_for_bb): Removed dead code. |
| |
| 2015-10-21 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-poly.h (struct dr_info): Removed conversion constructor. |
| (struct scop): Renamed scop::region to scop::scop_info |
| (scop_set_region): Same. |
| (SCOP_REGION): Removed |
| (SCOP_CONTEXT): Removed. |
| (POLY_SCOP_P): Removed. |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): |
| Rename scop->region to scop->scop_info. |
| (add_parameters_to_ivs_params): Same. |
| (graphite_regenerate_ast_isl): Same. |
| * graphite-poly.c (new_scop): Same. |
| (free_scop): Same. |
| (print_scop_params): Same. |
| * graphite-scop-detection.c (scop_detection::remove_subscops): Same. |
| (scop_detection::remove_intersecting_scops): Use pointer to sese_l. |
| (dot_all_scops_1): Rename scop->region to scop->scop_info. |
| (scop_detection::nb_pbbs_in_loops): Same. |
| (find_scop_parameters): Same. |
| (try_generate_gimple_bb): Same. |
| (gather_bbs::before_dom_children): Same. |
| (gather_bbs::after_dom_children): Same. |
| (build_scops): Same. |
| * graphite-sese-to-poly.c (build_scop_scattering): Same. |
| (extract_affine_chrec): Same. |
| (extract_affine): Same. |
| (set_scop_parameter_dim): Same. |
| (build_loop_iteration_domains): Same. |
| (create_pw_aff_from_tree): Same. |
| (add_param_constraints): Same. |
| (build_scop_iteration_domain): Same. |
| (build_scop_drs): Same. |
| (analyze_drs_in_stmts): Same. |
| (insert_out_of_ssa_copy_on_edge): Same. |
| (rewrite_close_phi_out_of_ssa):Same. |
| (rewrite_reductions_out_of_ssa):Same. |
| (handle_scalar_deps_crossing_scop_limits):Same. |
| (rewrite_cross_bb_scalar_deps):Same. |
| (rewrite_cross_bb_scalar_deps_out_of_ssa):Same. |
| (build_poly_scop):Same. |
| (build_alias_set): Use pointer to dr_info. |
| * graphite.c (print_graphite_scop_statistics): |
| (graphite_transform_loops): |
| * sese.h (struct sese_l): Remove conversion constructor. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/67966 |
| * tree.c (verify_type): Verify that TYPE_MODE match |
| between TYPE_CANONICAL and type. |
| * expr.c (store_expr_with_bounds): Revert my previous change. |
| * expmed.c (store_bit_field_1): Revert prevoius change. |
| * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE |
| to match for all types. |
| |
| 2015-10-21 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop |
| nesting. |
| |
| 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New. |
| * stor-layout.c (layout_type): Use mode to get vector mask size. |
| * target.def (get_mask_mode): New. |
| * targhooks.c (default_get_mask_mode): New. |
| * targhooks.h (default_get_mask_mode): New. |
| * tree-vect-stmts.c (get_same_sized_vectype): Add special case |
| for boolean vector. |
| * tree.c (MAX_BOOL_CACHED_PREC): New. |
| (nonstandard_boolean_type_cache): New. |
| (build_nonstandard_boolean_type): New. |
| (make_vector_type): Vector mask has no canonical type. |
| (build_truth_vector_type): New. |
| (build_same_sized_truth_vector_type): New. |
| (truth_type_for): Support vector masks. |
| * tree.h (VECTOR_BOOLEAN_TYPE_P): New. |
| (build_truth_vector_type): New. |
| (build_same_sized_truth_vector_type): New. |
| (build_nonstandard_boolean_type): New. |
| * tree-cfg.c (verify_gimple_comparison) Require boolean |
| vector type for vector comparison. |
| (verify_gimple_assign_ternary): Likewise. |
| * optabs.c (expand_vec_cond_expr): Accept boolean vector as |
| condition operand. |
| * tree-vect-stmts.c (vectorizable_condition): Use boolean |
| vector type for vector comparison. |
| * tree-vect-generic.c (elem_op_func): Add new operand to hold |
| vector type. |
| (do_unop): Adjust to modified function type. |
| (do_binop): Likewise. |
| (do_plus_minus): Likewise. |
| (do_negate); Likewise. |
| (expand_vector_piecewise): Likewise. |
| (do_cond): Likewise. |
| (do_compare): Use comparison instead of condition. |
| (expand_vector_divmod): Use boolean vector type for comparison. |
| (expand_vector_operations_1): Skip scalar mask operations. |
| |
| 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * omp-low.c (simd_clone_create): Set in_other_partition |
| for created clones. |
| |
| 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| * doc/extend.exp (Local Register Variables): Rewrite. |
| |
| 2015-10-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign |
| and x*x in cases where the operands are sign ops. Extend these |
| rules to handle copysign as a sign op (including for cos, cosh |
| and pow, which already treated negate and abs as sign ops). |
| |
| 2015-10-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/68018 |
| * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack |
| for 64-bit MS_ABI targets also when default incoming stack boundary |
| is overriden. |
| |
| 2015-10-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE |
| cond stmts, enhanced and split out from ... |
| (vn_phi_eq): ... here. |
| |
| 2015-10-21 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/68031 |
| * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h. |
| (tree_ssa_name_nonnegative_warnv_p): Fold into ... |
| (tree_single_nonnegative_warnv_p): ... here. For SSA names |
| make sure they are not registered for update. |
| |
| 2015-10-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68026 |
| * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for |
| unsigned VARYING values. |
| |
| 2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com> |
| |
| * asan.c (asan_emit_stack_protection): Don't pass local stack to |
| asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned |
| NULL and use local stack than. |
| (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call |
| in addition to __asan_init. |
| * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init. |
| (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call. |
| * asan.h (asan_intercepted_p): Handle new string builtins. |
| * ubsan.c (ubsan_use_new_style_p): New function. |
| (ubsan_instrument_float_cast): If location is unknown, assign |
| input_location to loc. Propagate loc to ubsan_create_data if |
| ubsan_use_new_style_p returned true. |
| |
| 2015-10-21 Jeff Law <law@redhat.com> |
| |
| * Makefile.in (OBJS): Remove sched-vis.c |
| * sched-vis.c: Removed. Code moved into... |
| * print-rtl.c: Here. Include cfg.h, pretty-print.h and print-rtl.h. |
| * rtl.h: Remove prototypes for functions now living in print-rtl.c |
| * print-rtl.h Add prototypes for new functions in print-rtl.c. |
| * auto-inc-dec.c: Include print-rtl.h |
| * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise. |
| * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise. |
| |
| * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with |
| ATTRIBUTE_UNUSED. |
| |
| 2015-10-21 Richard Biener <rguenther@suse.de> |
| Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B |
| to match.pd. |
| Move (a * (1 << b)) is (a << b) to match.pd. |
| Move convert (C1/X)*C2 into (C1*C2)/X to match.pd. |
| Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd. |
| Move X & ~X , X & (X == 0), and X & !X are zero to match.pd. |
| |
| * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))): |
| New simplifier. |
| (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier. |
| (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier. |
| (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1)) |
| : New simplifier. |
| (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)): |
| New simplifier. |
| (match (logical_inverted_value @0) (truth_not @0)) : New Predicate. |
| |
| 2015-10-21 Gregor Richards <gregor.richards@uwaterloo.ca> |
| Szabolcs Nagy <szabolcs.nagy@arm.com> |
| Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define. |
| * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define. |
| (LINK_SPEC): Add %(link_secure_plt). |
| (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt". |
| * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine. |
| |
| 2015-10-20 Gregor Richards <gregor.richards@uwaterloo.ca> |
| Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define. |
| (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define. |
| |
| 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p): |
| New function. |
| (fusion_load_store): Use it. |
| * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for |
| ldp and stp in VD modes. |
| * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern. |
| (store_pair<mode>, VD): Likewise. |
| |
| 2015-10-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/67609 |
| * lra-splill.c (lra_final_code_change): Don't remove all |
| sub-registers. |
| |
| 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * simplify-rtx.c (simplify_binary_operation): If either operand was |
| a constant pool reference use them if all other simplifications failed. |
| |
| 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md |
| (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern. |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise. |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns. |
| (aarch64_fpconst_pow_of_2): New function. |
| (aarch64_vec_fpconst_pow_of_2): Likewise. |
| * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare |
| prototype. |
| (aarch64_vec_fpconst_pow_of_2): Likewise. |
| * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate. |
| (aarch64_fp_vec_pow2): Likewise. |
| |
| 2015-10-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro. |
| (ALPHA_ARG_SIZE): Ditto. Remove unused NAMED argument. |
| * config/alpha/alpha.c (alpha_function_arg_advance): Update |
| ALPHA_ARG_SIZE usage. |
| (alpha_arg_partial_bytes): Ditto. |
| |
| 2015-10-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/66810 |
| * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local |
| error_mark_node decls. |
| |
| 2015-10-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/67963 |
| PR target/67985 |
| * common/config/i386/i386-common.c (ix86_handle_option): Remove |
| OPT_miamcu handling. |
| * config/i386/i386.c (PTA_NO_80387): New macro. |
| (processor_alias_table): Add PTA_NO_80387 to lakemont. |
| (ix86_option_override_internal): Update MASK_80387 from |
| PTA_NO_80387. Don't warn x87/MMX/SSE/AVX for -miamcu. Warn |
| SSE math only if 80387 is supported. Don't change |
| MASK_FLOAT_RETURNS. |
| (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if |
| 80387 is supported. |
| * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only |
| if TARGET_80387 is true and TARGET_IAMCU is false. |
| (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P |
| is true and TARGET_IAMCU_P is false. |
| |
| 2015-10-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68017 |
| * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards. |
| |
| 2015-10-20 Martin Liska <mliska@suse.cz> |
| |
| * cgraphclones.c (cgraph_node::create_virtual_clone): |
| Verify cgraph_node.local.versionable instead of calling |
| tree_versionable_function_p. |
| * ipa-cp.c (determine_versionability): Save the information |
| to ipa_node_params summary. |
| (ipcp_versionable_function_p): Use it. |
| (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function. |
| (ipcp_generate_summary): Do not compute cgraph_node |
| versionability. |
| * ipa-inline-analysis.c (inline_generate_summary): Compute |
| versionability for all cgraph nodes. |
| * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate |
| ipa_node_params::versionability. |
| * ipa-prop.h (struct ipa_node_params): Declare it. |
| |
| 2015-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR other/67868 |
| * varasm.c (assemble_variable): Move special vtv handling to.. |
| (handle_vtv_comdat_sections): .. here. New function. |
| (output_object_block): Handle vtv sections. |
| |
| 2015-10-20 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| PR target/66912 |
| * varasm.c (default_binds_local_p_2): Turn on extern_protected_data. |
| |
| 2015-10-20 Arkadiusz Drabczyk <arkadiusz@drabczyk.org> |
| |
| * doc/extend.texi: Update documentation WRT inline functions. |
| |
| 2015-10-20 Alan Modra <amodra@gmail.com> |
| |
| PR go/66870 |
| * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define. |
| * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define. |
| (TARGET_CAN_SPLIT_STACK_64BIT): Define. |
| |
| 2015-10-19 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| PR rtl-optimization/66790 |
| * df.h (DF_MIR): New macro. |
| (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR |
| (DF_MIR_INFO_BB): New macro. |
| (DF_MIR_IN, DF_MIR_OUT): New macros. |
| (struct df_mir_bb_info): New. |
| (df_mir): New macro. |
| (df_mir_add_problem, df_mir_simulate_one_insn): New forward |
| declarations. |
| (df_mir_get_bb_info): New. |
| * df-problems.c (struct df_mir_problem_data): New. |
| (df_mir_free_bb_info, df_mir_alloc, df_mir_reset, |
| df_mir_bb_local_compute, df_mir_local_compute, df_mir_init, |
| df_mir_confluence_0, df_mir_confluence_n, |
| df_mir_transfer_function, df_mir_free, df_mir_top_dump, |
| df_mir_bottom_dump, df_mir_verify_solution_start, |
| df_mir_verify_solution_end): New. |
| (problem_MIR): New. |
| (df_mir_add_problem, df_mir_simulate_one_insn): New. |
| * timevar.def (TV_DF_MIR): New. |
| * ree.c: Include bitmap.h |
| (add_removable_extension): Add an INIT_REGS parameter. Use it |
| to skip zero-extensions that may get an uninitialized register. |
| (find_removable_extensions): Compute must-initialized registers |
| using the MIR dataflow problem. Update the call to |
| add_removable_extension. |
| (find_and_remove_re): Call df_mir_add_problem. |
| |
| 2015-10-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * common/config/mn10300/mn10300-common.c |
| (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>: |
| Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up. |
| |
| 2015-10-19 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| * doc/extend.texi (Explicit Register Variables): Simplify and |
| avoid unnecessary and confusion abbreviations. Update cross |
| references. |
| doc/implement-c.tex: Update cross reference. |
| |
| 2015-10-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths |
| that create irreducible loops unless the path elimiantes a multiway |
| branch. |
| |
| 2015-10-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67975 |
| * tree-cfg.h (extract_true_false_controlled_edges): Declare. |
| * tree-cfg.c (extract_true_false_controlled_edges): Split out |
| core worker from ... |
| * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here. |
| * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args |
| instead of block number for PHIs with two or one args. |
| (vn_phi_eq): Compare edge predicates of PHIs that are in different |
| blocks. |
| |
| 2015-10-19 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function. |
| (gimple_stmt_nonnegative_warnv_p): Use it. |
| * match.pd (CPROJ): New operator list. |
| (cproj (complex ...)): Move simplifications from ... |
| * builtins.c (fold_builtin_cproj): ... here. |
| |
| 2015-10-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_vector_move): Use |
| GET_MODE_BITSIZE for IA MCU psABI to get vector natural |
| alignment. |
| |
| 2015-10-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * doc/invoke.texi: Replace @optindex with @opindex. |
| |
| 2015-10-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/67995 |
| * config/i386/i386.c (ix86_valid_target_attribute_tree): If |
| arch= is set, clear all bits in x_ix86_isa_flags, except for |
| ISA_64BIT, ABI_64, ABI_X32, and CODE16. |
| |
| 2015-10-19 Joost VandeVondele <vondele@gnu.gcc.org> |
| |
| PR middle-end/68002 |
| * common.opt (fkeep-static-functions): New option. |
| * doc/invoke.texi: Document it. |
| * cgraphunit.c (cgraph_node::finalize_function): Use it. |
| |
| 2015-10-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * sched-int.h (struct autopref_multipass_data_): Remove offset |
| field. Add min_offset, max_offset, multi_mem_insn_p fields. |
| * haifa-sched.c (analyze_set_insn_for_autopref): New function. |
| (autopref_multipass_init): Use it. Handle PARALLEL sets. |
| (autopref_rank_data): New function. |
| (autopref_rank_for_schedule): Use it. |
| (autopref_multipass_dfa_lookahead_guard_1): Likewise. |
| |
| 2015-10-18 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| PR other/65800 |
| * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly. |
| |
| 2015-10-18 Iain Sandoe <iain@codesourcery.com> |
| |
| * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here, |
| (HAVE_LD_SYSROOT): New. (SYSROOT_SPEC): New. |
| (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot. |
| (STANDARD_STARTFILE_PREFIX_1): New. |
| (STANDARD_STARTFILE_PREFIX_2): New. |
| |
| 2015-10-18 Iain Sandoe <iain@codesourcery.com> |
| |
| * config/darwin-driver.c (darwin_default_min_version): Refactor code. |
| (darwin_driver_init): Note a version-min when provided on the c/l. |
| * config/darwin.h (%darwin_minversion): Remove. |
| * config/i386/darwin.h: Likewise. |
| * config/rs6000/darwin.h: Likewise. |
| * config/darwin.opt (mmacosx-version-min=): Use the configured default, |
| rather than an arbitrary constant. |
| |
| 2015-10-18 Iain Sandoe <iain@codesourcery.com> |
| |
| * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for |
| PPC, detect conflicts between -arch and multilib settings. Detect |
| and warn about conflicts between multiple -arch definitions. |
| |
| 2015-10-18 Iain Sandoe <iain@codesourcery.com> |
| |
| * config/darwin-driver.c: Adjust includes to add diagnostic-core. |
| |
| 2015-10-16 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * lra-constraints.c (add_next_usage_insn): Change argument type |
| from rtx to rtx_insn *. |
| |
| 2015-10-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable |
| for Lakemont. |
| |
| 2015-10-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * config/tilepro/gen-mul-tables.cc: Adjust include files. |
| * config/tilegx/mul-tables.c: Regenerate. |
| * config/tilepro/mul-tables.c: Regenerate. |
| |
| * config/tilegx/tilegx-c.c: Adjust include files. |
| * config/tilegx/tilegx.c: Likewise. |
| * config/tilepro/tilepro-c.c: Likewise. |
| * config/tilepro/tilepro.c: Likewise. |
| * config/aarch64/aarch64-builtins.c: Likewise. |
| * config/aarch64/aarch64.c: Likewise. |
| * config/aarch64/cortex-a57-fma-steering.c: Likewise. |
| * config/alpha/alpha.c: Likewise. |
| * config/arc/arc.c: Likewise. |
| * config/arm/aarch-common.c: Likewise. |
| * config/arm/arm-builtins.c: Likewise. |
| * config/arm/arm-c.c: Likewise. |
| * config/arm/arm.c: Likewise. |
| * config/avr/avr-c.c: Likewise. |
| * config/avr/avr-devices.c: Likewise. |
| * config/avr/avr-log.c: Likewise. |
| * config/avr/avr.c: Likewise. |
| * config/bfin/bfin.c: Likewise. |
| * config/c6x/c6x.c: Likewise. |
| * config/cr16/cr16.c: Likewise. |
| * config/cris/cris.c: Likewise. |
| * config/darwin-c.c: Likewise. |
| * config/darwin-driver.c: Likewise. |
| * config/darwin.c: Likewise. |
| * config/default-c.c: Likewise. |
| * config/epiphany/epiphany.c: Likewise. |
| * config/epiphany/mode-switch-use.c: Likewise. |
| * config/epiphany/resolve-sw-modes.c: Likewise. |
| * config/fr30/fr30.c: Likewise. |
| * config/frv/frv.c: Likewise. |
| * config/ft32/ft32.c: Likewise. |
| * config/glibc-c.c: Likewise. |
| * config/h8300/h8300.c: Likewise. |
| * config/i386/host-cygwin.c: Likewise. |
| * config/i386/host-mingw32.c: Likewise. |
| * config/i386/i386-c.c: Likewise. |
| * config/i386/i386.c: Likewise. |
| * config/i386/msformat-c.c: Likewise. |
| * config/i386/winnt-cxx.c: Likewise. |
| * config/i386/winnt-stubs.c: Likewise. |
| * config/i386/winnt.c: Likewise. |
| * config/ia64/ia64-c.c: Likewise. |
| * config/ia64/ia64.c: Likewise. |
| * config/iq2000/iq2000.c: Likewise. |
| * config/lm32/lm32.c: Likewise. |
| * config/m32c/m32c-pragma.c: Likewise. |
| * config/m32c/m32c.c: Likewise. |
| * config/m32r/m32r.c: Likewise. |
| * config/mcore/mcore.c: Likewise. |
| * config/mep/mep-pragma.c: Likewise. |
| * config/mep/mep.c: Likewise. |
| * config/microblaze/microblaze-c.c: Likewise. |
| * config/microblaze/microblaze.c: Likewise. |
| * config/mips/mips-tables.opt |
| * config/mips/mips.c: Likewise. |
| * config/mmix/mmix.c: Likewise. |
| * config/mn10300/mn10300.c: Likewise. |
| * config/moxie/moxie.c: Likewise. |
| * config/msp430/msp430-c.c: Likewise. |
| * config/msp430/msp430.c: Likewise. |
| * config/nds32/nds32-cost.c: Likewise. |
| * config/nds32/nds32-fp-as-gp.c: Likewise. |
| * config/nds32/nds32-intrinsic.c: Likewise. |
| * config/nds32/nds32-isr.c: Likewise. |
| * config/nds32/nds32-md-auxiliary.c: Likewise. |
| * config/nds32/nds32-memory-manipulation.c: Likewise. |
| * config/nds32/nds32-pipelines-auxiliary.c: Likewise. |
| * config/nds32/nds32-predicates.c: Likewise. |
| * config/nds32/nds32.c: Likewise. |
| * config/nios2/nios2.c: Likewise. |
| * config/nvptx/mkoffload.c: Likewise. |
| * config/nvptx/nvptx.c: Likewise. |
| * config/pa/pa.c: Likewise. |
| * config/pdp11/pdp11.c: Likewise. |
| * config/rl78/rl78-c.c: Likewise. |
| * config/rl78/rl78.c: Likewise. |
| * config/rs6000/host-darwin.c: Likewise. |
| * config/rs6000/rs6000-c.c: Likewise. |
| * config/rs6000/rs6000-linux.c: Likewise. |
| * config/rs6000/rs6000.c: Likewise. |
| * config/rx/rx.c: Likewise. |
| * config/s390/s390-c.c: Likewise. |
| * config/s390/s390.c: Likewise. |
| * config/sh/sh-c.c: Likewise. |
| * config/sh/sh-mem.cc: Likewise. |
| * config/sh/sh.c: Likewise. |
| * config/sh/sh_optimize_sett_clrt.cc: Likewise. |
| * config/sh/sh_treg_combine.cc: Likewise. |
| * config/sol2-c.c: Likewise. |
| * config/sol2-cxx.c: Likewise. |
| * config/sol2-stubs.c: Likewise. |
| * config/sol2.c: Likewise. |
| * config/sparc/sparc-c.c: Likewise. |
| * config/sparc/sparc.c: Likewise. |
| * config/spu/spu-c.c: Likewise. |
| * config/spu/spu.c: Likewise. |
| * config/stormy16/stormy16.c: Likewise. |
| * config/v850/v850-c.c: Likewise. |
| * config/v850/v850.c: Likewise. |
| * config/vax/vax.c: Likewise. |
| * config/visium/visium.c: Likewise. |
| * config/vms/vms-c.c: Likewise. |
| * config/vms/vms.c: Likewise. |
| * config/vxworks.c: Likewise. |
| * config/winnt-c.c: Likewise. |
| * config/xtensa/xtensa.c: Likewise. |
| |
| 2015-10-16 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/67745 |
| * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P. |
| (FUNCTION_BOUNDARY_P): New macro: |
| * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function): |
| New hook. |
| * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document. |
| * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook. |
| * target.def (TARGET_RELAYOUT_FUNCTION): Likewise. |
| * function.c (allocate_struct_function): Call |
| relayout_function hook. |
| * passes.c (rest_of_decl_compilation): Likewise. |
| |
| 2015-10-16 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/67745 |
| * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to: |
| * config/arm/arm.c (arm_option_override_internal): Call |
| arm_override_options_after_change_1. |
| (arm_override_options_after_change): New function. |
| (arm_override_options_after_change_1): Likewise. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| Revert: |
| * ipa-icf-gimple.c (func_checker::compare_operand): Compare only |
| empty constructors. |
| |
| 2015-10-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the |
| argument is an ADDR_EXPR. |
| |
| 2015-10-16 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build |
| and get rid of force_gimple_operand_gsi. |
| (gimple_fold_builtin_memory_chk): Likewise. |
| (gimple_fold_builtin_stxcpy_chk): Likewise. |
| (rewrite_to_defined_overflow): Likewise. |
| (gimple_convert_to_ptrofftype): New function. |
| * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare. |
| |
| 2015-10-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-nested.h (build_addr): Adjust prototype. |
| * tree-nested.c (build_addr): Remove context argument and use |
| mark_addressable. |
| (get_static_chain): Adjust calls to build_addr. |
| (convert_nl_goto_reference): Likewise. |
| (convert_tramp_reference_op): Likewise. |
| (finalize_nesting_tree_1): Likewise. |
| * value-prof.c (gimple_ic): Likewise. |
| * gimple-low.c (lower_builtin_setjmp): Likewise. |
| * tree-parloops.c (take_address_of): Likewise. |
| (create_call_for_reduction_1): Likewise. |
| * tree-profile.c (gimple_gen_interval_profiler): Likewise. |
| (gimple_gen_ic_func_profiler): Likewise. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-icf-gimple.c (func_checker::compare_operand): Compare only |
| empty constructors. |
| |
| 2015-10-16 Michael Collison <michael.collison@linaro.org> |
| Andrew Pinski <andrew.pinski@caviumnetworks.com> |
| |
| * match.pd ((x < y) && (x < z) -> x < min (y,z), |
| (x > y) and (x > z) -> x > max (y,z)) |
| |
| 2015-10-15 Gregor Richards <gregor.richards@uwaterloo.ca> |
| Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define. |
| (DYNAMIC_LINKER): Renamed to ... |
| (GLIBC_DYNAMIC_LINKER): This. |
| (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER. |
| |
| 2015-10-15 Marek Polacek <polacek@redhat.com> |
| |
| * tree-ssa-reassoc.c (attempt_builtin_copysign): Call |
| gimple_call_builtin instead of is_gimple_call. |
| |
| 2015-10-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vect_init_vector): Remove unused vars. |
| |
| 2015-10-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_new_ssa_name): Declare. |
| * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper. |
| * tree-vect-loop.c (get_initial_def_for_induction): Drop |
| use of force_gimple_operand in favor of gimple_build. |
| Use vect_get_new_ssa_name. |
| * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name. |
| (vectorizable_mask_load_store): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (vect_get_vec_def_for_stmt_copy): Remove redundant stmt. |
| |
| 2015-10-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/67945 |
| * tree-pass.h (PROP_gimple_opt_math): New property flag. |
| * generic-match-head.c (canonicalize_math_p): New function. |
| * gimple-match-head.c: Include tree-pass.h. |
| (canonicalize_math_p): New function. |
| * match.pd: Group math built-in rules into simplifications |
| and canonicalizations. Guard the latter with canonicalize_math_p. |
| * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the |
| PROP_gimple_opt_math property. |
| |
| 2015-10-15 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/67953 |
| * match.pd (X - (X / Y) * Y): Don't change signedness of @0. |
| |
| 2015-10-15 Jiong Wang <jiong.wang@arm.com> |
| |
| * config.gcc: Recognize "." in architecture base name for AArch64. |
| |
| 2015-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using |
| ROUND_UP macro. |
| * config/mips/mips.c (mips_setup_incoming_varargs): Use |
| ROUND_DOWN to calculate off. |
| (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize. |
| (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate |
| rounded_size. |
| |
| 2015-10-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case. |
| |
| 2015-10-14 Peter Bergner <bergner@vnet.ibm.com> |
| Torvald Riegel <triegel@redhat.com> |
| |
| PR target/67281 |
| * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New. |
| (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend, |
| trechkpt, treclaim, tsr, ttest): Rename define_insns from this... |
| (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend, |
| *trechkpt, *treclaim, *tsr, *ttest): ...to this. Add memory barrier. |
| (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend, |
| trechkpt, treclaim, tsr, ttest): New define_expands. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define |
| __TM_FENCE__ for htm. |
| * doc/extend.texi: Update documentation for htm builtins. |
| |
| 2015-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/67967 |
| * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add |
| REG_CFA_EXPRESSION to aligned SSE stores. |
| |
| 2015-10-14 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump |
| num_threaded_edges for successful FSM threads too. |
| |
| 2015-10-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters. |
| (vect_is_simple_use_1): Likewise. Make overload of vect_is_simple_use. |
| (vect_get_vec_def_for_operand): Remove unused parameter. |
| * tree-vect-loop.c (get_initial_def_for_induction): Adjust. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_reduction): Likewise. |
| (vectorizable_live_operation): Likewise. |
| * tree-vect-patterns.c (type_conversion_p): Likewise. |
| (vect_recog_vector_vector_shift_pattern): Likewise. |
| (check_bool_pattern): Likewise. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. |
| (vect_analyze_slp_cost_1): Likewise. |
| * tree-vect-stmts.c (process_use): Likewise. |
| (vect_get_vec_def_for_operand): Do not handle reductions. |
| (vect_get_vec_defs): Adjust. |
| (vectorizable_mask_load_store): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_simd_clone_call): Likewise. |
| (vect_get_loop_based_defs): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (vect_is_simple_cond): Likewise. |
| (vectorizable_condition): Likewise. |
| (vect_is_simple_use): Remove unused parameters. |
| (vect_is_simple_use_1): Adjust and rename. |
| |
| 2015-10-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67915 |
| * match.pd: Handle comparisons of addresses of STRING_CSTs. |
| * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build. |
| * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC |
| stmt folding in favor of GIMPLE one. |
| |
| 2015-10-14 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/67815 |
| * tree-ssa-reassoc.c (attempt_builtin_copysign): New function. |
| (reassociate_bb): Call it. |
| |
| 2015-10-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): |
| Reset info at start. |
| (vect_analyze_group_access_1): Add debug print. |
| * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ... |
| (vect_compute_single_scalar_iteration_cost): ... to this. |
| (vect_analyze_loop_2): Adjust. |
| * tree-vect-slp.c (struct _slp_oprnd_info): Move from ... |
| * tree-vectorizer.h: ... here. |
| (add_stmt_info_to_vec): Remove. |
| * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec. |
| |
| 2015-10-14 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * targhooks.c (default_target_option_pragma_parse): Do not warn if |
| called on behalf of "#pragma GCC pop_options". |
| |
| 2015-10-14 Tom de Vries <tom@codesourcery.com> |
| |
| * cfganal.c (verify_no_unreachable_blocks): New function. |
| (inverted_post_order_compute) [ENABLE_CHECKING]: Call |
| verify_no_unreachable_blocks. |
| cfganal.h (verify_no_unreachable_blocks): Declare. |
| |
| 2015-10-13 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * common.opt: Add flag_checking. |
| * system.h (CHECKING_P): Define. |
| |
| 2015-10-13 Jakub Jelinek <jakub@redhat.com> |
| Aldy Hernandez <aldyh@redhat.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| |
| * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR, |
| BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR, |
| BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR, |
| BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR, |
| BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR, |
| BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR, |
| BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT, |
| BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG, |
| BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL, |
| BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New. |
| (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR, |
| BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR, |
| BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove. |
| * cgraph.h (enum cgraph_simd_clone_arg_type): Add |
| SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP, |
| SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and |
| SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP. |
| (struct cgraph_simd_clone_arg): Adjust comment. |
| * coretypes.h (struct gomp_ordered): New forward decl. |
| * gimple.c (gimple_build_omp_critical): Add CLAUSES argument, |
| set critical clauses to it. |
| (gimple_build_omp_ordered): Return gomp_ordered * instead of |
| gimple *. Add CLAUSES argument, set ordered clauses to it. |
| (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and |
| GIMPLE_OMP_ORDERED. |
| * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to |
| GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS. |
| * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP. Add another bit |
| to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber |
| GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP. Adjust |
| GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO. |
| Add another bit to GF_OMP_TARGET_KIND_MASK mask. Add |
| GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA, |
| renumber |
| GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}. |
| (gomp_critical): Add clauses field. |
| (gomp_ordered): New struct. |
| (is_a_helper <gomp_ordered *>::test): New inline. |
| (gimple_build_omp_critical): Add CLAUSES argument. |
| (gimple_build_omp_ordered): Likewise. Return gomp_ordered * |
| instead of gimple *. |
| (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr, |
| gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses, |
| gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses, |
| gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New |
| inline functions. |
| * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop. |
| (dump_gimple_omp_target): Handle enter data and exit data. |
| (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here. |
| (dump_gimple_omp_critical): Print clauses. |
| (dump_gimple_omp_ordered): New function. |
| (dump_gimple_omp_task): Handle taskloop. |
| (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for |
| GIMPLE_OMP_ORDERED. |
| * gimple-walk.c (walk_gimple_op): Walk clauses on |
| GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED. |
| * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY. |
| (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE. |
| (struct gimplify_omp_ctx): Add loop_iter_var, |
| target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays |
| and target_firstprivatize_array_bases fields. |
| (delete_omp_context): Release loop_iter_var. |
| (gimplify_bind_expr): Handle ORT_NONE. |
| (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of |
| ORT_COMBINED_TARGET. |
| (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and |
| OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}. |
| (omp_firstprivatize_variable): Handle ORT_NONE. Adjust check for |
| ORT_TARGET for the addition of ORT_COMBINED_TARGET. Handle |
| ctx->target_map_scalars_firstprivate. |
| (omp_add_variable): Handle ORT_NONE. Allow map clause together with |
| data sharing clauses. For data sharing clause with VLA decl |
| on omp target/target data don't add firstprivate for the pointer. |
| Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P. |
| (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for |
| the addition of ORT_COMBINED_TARGET. |
| (omp_notice_variable): Handle ORT_NONE. Adjust check for ORT_TARGET |
| for the addition of ORT_COMBINED_TARGET. Handle implicit mapping of |
| pointers as zero length array sections and |
| ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate |
| data sharing. |
| (omp_check_private): Handle omp_member_access_dummy_var vars. |
| (find_decl_expr): New function. |
| (gimplify_scan_omp_clauses): Add CODE argument. For OMP_CLAUSE_IF |
| complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code. |
| Handle OMP_CLAUSE_GANG separately. Handle |
| OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN} |
| clauses. Diagnose linear clause on combined |
| distribute {, parallel for} simd construct, unless it is the loop |
| iterator. Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER. |
| Handle map clauses with COMPONENT_REF. Initialize |
| ctx->target_map_scalars_firstprivate, |
| ctx->target_firstprivatize_array_bases and |
| ctx->target_map_pointers_as_0len_arrays. Add firstprivate for |
| linear clause even to target region if combined. Remove |
| map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from |
| OMP_TARGET_{,ENTER_,EXIT_}DATA. For GOMP_MAP_FIRSTPRIVATE_POINTER |
| map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias. |
| Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}. Handle |
| OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. |
| For linear clause on worksharing loop combined with parallel add |
| shared clause on the parallel. Handle OMP_CLAUSE_REDUCTION |
| with MEM_REF OMP_CLAUSE_DECL. Set DECL_NAME on |
| omp_member_access_dummy_var vars. Add lastprivate clause to outer |
| taskloop if needed. |
| (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY. |
| If gimplify_omp_ctxp->target_firstprivatize_array_bases, use |
| GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of |
| GOMP_MAP_POINTER. |
| (gimplify_adjust_omp_clauses): Add CODE argument. Handle removal |
| of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen |
| in target body. Handle removal of struct mapping if struct is not |
| seen in target body. Remove GOMP_MAP_STRUCT map clause on |
| OMP_TARGET_EXIT_DATA. Adjust check for ORT_TARGET for the |
| addition of ORT_COMBINED_TARGET. Use GOMP_MAP_FIRSTPRIVATE_POINTER |
| instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases |
| for VLAs. Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map |
| clause appear together. Handle |
| OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. Don't remove map |
| clause if it has map-type-modifier always. Handle |
| OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN} |
| clauses. |
| (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task): |
| Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses |
| callers. |
| (gimplify_omp_for): Likewise. Handle OMP_TASKLOOP. Initialize |
| loop_iter_var. Use OMP_FOR_ORIG_DECLS. Fix handling of lastprivate |
| iterators in doacross loops. |
| (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and |
| gimplify_adjust_omp_clauses callers. Use ORT_COMBINED_TARGET |
| for OMP_TARGET_COMBINED. Adjust check for ORT_TARGET |
| for the addition of ORT_COMBINED_TARGET. |
| (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and |
| gimplify_adjust_omp_clauses callers. Handle OMP_TARGET_ENTER_DATA |
| and OMP_TARGET_EXIT_DATA. |
| (gimplify_omp_ordered): New function. |
| (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and |
| OMP_TARGET_EXIT_DATA. Use gimplify_omp_ordered for OMP_ORDERED. |
| Gimplify clauses on OMP_CRITICAL. |
| * internal-fn.c (expand_GOMP_SIMD_ORDERED_START, |
| expand_GOMP_SIMD_ORDERED_END): New functions. |
| * internal-fn.def (GOMP_SIMD_ORDERED_START, |
| GOMP_SIMD_ORDERED_END): New internal functions. |
| * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START, |
| BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START, |
| BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START, |
| BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START, |
| BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START, |
| BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START, |
| BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START, |
| BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START, |
| BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT, |
| BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT, |
| BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP, |
| BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins. |
| (BUILT_IN_GOMP_TASK): Add INT argument to the end. |
| (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41, |
| adjust type. |
| (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to |
| GOMP_target_data_41, adjust type. |
| (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to |
| GOMP_target_update_41, adjust type. |
| * omp-low.c (struct omp_region): Adjust comments, add ord_stmt |
| field. |
| (struct omp_for_data): Add ordered and simd_schedule fields. |
| (omp_member_access_dummy_var, unshare_and_remap_1, |
| unshare_and_remap, is_taskloop_ctx): New functions. |
| (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx. |
| (extract_omp_for_data): Handle taskloops and doacross loops |
| and simd schedule modifier. |
| (omp_adjust_chunk_size): New function. |
| (get_ws_args_for): Use it. |
| (lookup_sfield): Change first argument to splay_tree_key, |
| add overload with first argument tree. |
| (maybe_lookup_field): Likewise. |
| (use_pointer_for_field): Handle omp_member_access_dummy_var. |
| (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in |
| task_shared_vars, clear TREE_ADDRESSABLE on the copy. |
| (build_outer_var_ref): Add LASTPRIVATE argument, handle |
| taskloops and omp_member_access_dummy_var vars. |
| (build_sender_ref): Change first argument to splay_tree_key, |
| add overload with first argument tree. |
| (install_var_field): For mask & 8 use &DECL_UID as key instead |
| of the tree itself. |
| (fixup_child_record_type): Const qualify *.omp_data_i. |
| (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE, |
| C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses, |
| OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and |
| OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause |
| on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE. |
| (create_omp_child_function): Set TREE_READONLY on .omp_data_i. |
| (find_combined_for): Allow searching for different GIMPLE_OMP_FOR |
| kinds. |
| (add_taskreg_looptemp_clauses): New function. |
| (scan_omp_parallel): Use it. |
| (scan_omp_task): Likewise. |
| (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. |
| For taskloop, move fields for the first two _LOOPTEMP_ clauses first. |
| (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA |
| and GF_OMP_TARGET_KIND_EXIT_DATA. Formatting fixes. Allow the |
| sandwiched taskloop constructs. Type check |
| OMP_CLAUSE_DEPEND_{KIND,SOURCE}. Allow ordered simd inside of simd |
| region. Diagnose depend(source) or depend(sink:...) on |
| target constructs or task/taskloop. |
| (handle_simd_reference): Use get_name. |
| (lower_rec_input_clauses): Likewise. Ignore all |
| OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct. |
| Allow _LOOPTEMP_ clause on GOMP_TASK. Unshare new_var |
| before passing it to omp_clause_{default,copy}_ctor. Handle |
| OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL. Set |
| lastprivate_firstprivate flag for linear that needs copyin and |
| copyout. Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA. |
| (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE |
| on taskloop lookup decl in outer context. Pass true to |
| build_outer_var_ref lastprivate argument. Handle |
| OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global |
| outside of outer taskloop for. |
| (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF |
| OMP_CLAUSE_DECL. |
| (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop |
| GOMP_TASK. Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. Handle |
| omp_member_access_dummy_var vars. Handle OMP_CLAUSE_REDUCTION |
| with MEM_REF OMP_CLAUSE_DECL. Use new lookup_sfield overload. |
| (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL |
| abstract origin. Handle omp_member_access_dummy_var vars. |
| (expand_parallel_call): Use expand_omp_build_assign. |
| (expand_task_call): Handle taskloop construct expansion. Add |
| REGION argument. Use GOMP_TASK_* defines instead of hardcoded |
| integers. Add priority argument to GOMP_task* calls. Or in |
| GOMP_TASK_FLAG_PRIORITY into flags if priority is present for |
| GOMP_task call. |
| (expand_omp_build_assign): Add prototype. Add AFTER |
| argument, if true emit statements after *GSI_P and continue linking. |
| (expand_omp_taskreg): Adjust expand_task_call caller. |
| (expand_omp_for_init_counts): Rename zero_iter_bb argument to |
| zero_iter1_bb and first_zero_iter to first_zero_iter1, add |
| zero_iter2_bb and first_zero_iter2 arguments, handle computation |
| of counts even for ordered loops. |
| (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt. |
| (expand_omp_ordered_source, expand_omp_ordered_sink, |
| expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New |
| functions. |
| (expand_omp_for_generic): Use omp_adjust_chunk_size. Handle linear |
| clauses on worksharing loop. Handle DOACROSS loop expansion. |
| (expand_omp_for_static_nochunk): Handle linear clauses on |
| worksharing loop. Adjust expand_omp_for_init_counts |
| callers. |
| (expand_omp_for_static_chunk): Likewise. Use omp_adjust_chunk_size. |
| (expand_omp_simd): Handle addressable fd->loop.v. Adjust |
| expand_omp_for_init_counts callers. |
| (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New |
| functions. |
| (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop. |
| Handle doacross loops. |
| (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and |
| GF_OMP_TARGET_KIND_EXIT_DATA. Pass flags and depend arguments to |
| GOMP_target_{41,update_41,enter_exit_data} libcalls. |
| (expand_omp): Don't expand ordered depend constructs here, record |
| ord_stmt instead for later expand_omp_for_generic. |
| (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and |
| GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend |
| clause as stand-alone directive. |
| (lower_omp_ordered_clauses): New function. |
| (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND |
| don't lower anything. |
| (lower_omp_for_lastprivate): Use last _looptemp_ clause |
| on taskloop for comparison. |
| (lower_omp_for): Handle taskloop constructs. Adjust OMP_CLAUSE_DECL |
| and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during |
| expansion for linear adjustments. |
| (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. |
| (lower_depend_clauses): Assert not seeing sink/source depend kinds. |
| Set TREE_ADDRESSABLE on array. Change first argument from gimple * |
| to tree * pointing to the stmt's clauses. |
| (lower_omp_taskreg): Adjust lower_depend_clauses caller. |
| (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA |
| and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses, |
| GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT} |
| map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR |
| clauses. Always use short kind and 8-bit align shift. |
| (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro. |
| (struct lower_omp_regimplify_operands_data): New type. |
| (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands): |
| New functions. |
| (lower_omp_1): Use lower_omp_regimplify_operands instead of |
| gimple_regimplify_operands. |
| (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and |
| GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend |
| clause as stand-alone directive. |
| (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND. |
| (simd_clone_mangle): Mangle the various linear kinds |
| per the new ABI. |
| (simd_clone_adjust_argument_types): Handle |
| SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP. |
| (simd_clone_init_simd_arrays): Don't do anything for uval. |
| (simd_clone_adjust): Handle |
| SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like |
| SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. |
| Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP. |
| * omp-low.h (omp_member_access_dummy_var): New prototype. |
| * passes.def (pass_simduid_cleanup): Schedule another copy of the |
| pass after all optimizations. |
| * tree.c (omp_clause_code_name): Add entries for |
| OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT} |
| and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}. |
| (omp_clause_num_ops): Likewise. Bump number of OMP_CLAUSE_REDUCTION |
| arguments to 5 and for OMP_CLAUSE_ORDERED to 1. |
| (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and |
| OMP_CLAUSE_REDUCTION 5 arguments. Handle |
| OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT} |
| and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD} |
| clauses. |
| * tree-core.h (enum omp_clause_linear_kind): New. |
| (struct tree_omp_clause): Change type of map_kind |
| from unsigned char to unsigned int. Add subcode.if_modifier |
| and subcode.linear_kind fields. |
| (enum omp_clause_code): Add |
| OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT} |
| and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}. |
| (OMP_CLAUSE_REDUCTION): Document |
| OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER. |
| (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}. |
| * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand. |
| (OMP_CRITICAL): Move before OMP_SINGLE. Add OMP_CRITICAL_CLAUSES |
| operand. |
| (OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES |
| operand. |
| (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree |
| codes. |
| * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP. |
| (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned |
| char. |
| (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd. |
| (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix. |
| (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA. |
| (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED, |
| OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER, |
| OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES, |
| OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV, |
| OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD, |
| OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER, |
| OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES, |
| OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES, |
| OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR, |
| OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define. |
| * tree-inline.c (remap_gimple_stmt): Handle clauses on |
| GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL. For |
| IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops. |
| * tree-nested.c (convert_nonlocal_omp_clauses): Handle |
| OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD} |
| and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP} |
| clauses. Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER. |
| (convert_local_omp_clauses): Likewise. |
| * tree-pretty-print.c (dump_omp_clause): Handle |
| OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD} |
| and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP} |
| clauses. Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR, |
| OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND, |
| OMP_CLAUSE_DEPEND_{SOURCE,SINK}. Use "delete" for |
| GOMP_MAP_FORCE_DEALLOC. Handle |
| GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}. |
| (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA |
| and clauses on OMP_ORDERED and OMP_CRITICAL. |
| * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment. |
| Remove IFN_GOMP_SIMD_ORDERED_{START,END}. |
| (vectorize_loops): Adjust comments. |
| (pass_simduid_cleanup::execute): Likewise. |
| * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle |
| SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP. |
| * wide-int.h (wi::gcd): New. |
| |
| 2015-10-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (classify_argument): Use CEIL where applicable. |
| (ix86_function_arg_advance): Ditto. |
| (ix86_function_arg): Ditto. |
| (ix86_gimplify_va_arg): Ditto. |
| (ix86_class_max_nregs): Ditto. |
| (inline_memory_move_cost): Ditto. |
| (ix86_set_reg_reg_cost): Ditto. |
| * config/i386/i386.h (HARD_REGNO_NREGS): Ditto. |
| |
| 2015-10-13 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/67912 |
| * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs. |
| |
| 2015-10-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using |
| ROUND_UP macro and UNITS_PER_WORD * 2. |
| * config/sparc/sparc.c (sparc_compute_frame_size): |
| Use ROUND_UP and ROUND_DOWN macros where applicable. |
| (function_arg_record_value, function_arg_record_value_1) |
| (function_arg_record_value_1): Ditto. |
| (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset |
| alignment to double-word. |
| (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize. |
| (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate |
| rounded_size. |
| |
| 2015-10-13 Nikolai Bozhenov <n.bozhenov@samsung.com> |
| |
| * rtl.h (print_insn): Fix prototype. |
| |
| 2015-10-13 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or |
| -1. Add assert that returned entry matches phi argument. |
| (parallelize_loops): Move calls to init_stmt_vec_info_vec and |
| free_stmt_vec_info_vec ... |
| (gather_scalar_reductions): ... here. Initialize gimple_uids of phis |
| with -1. |
| |
| 2014-10-13 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| PR tree-optimization/67909, 67947 |
| * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE |
| really skip the inner loop. |
| |
| 2015-10-13 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths): |
| Allow single block jump threading paths. |
| |
| 2015-10-13 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67476 |
| * doc/invoke.texi (@item parloops-schedule): New item. |
| * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5. |
| * tree-parloops.c: Include params-enum.h. |
| (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE. |
| |
| 2015-10-13 Tom de Vries <tom@codesourcery.com> |
| |
| * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h. |
| * params-enum.h: New file. |
| * opts.c (handle_param): Handle case that param arg is a string. |
| * params-list.h: Handle DEFPARAMENUM5 in params.def. |
| * params.c (find_param): New function, factored out of ... |
| (set_param_value): ... here. |
| (param_string_value_p): New function. |
| * params.h (struct param_info): Add value_names field. |
| (find_param, param_string_value_p): Declare. |
| |
| 2015-10-13 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67476 |
| * omp-low.c (expand_omp_for_generic): Handle original loop tree. |
| |
| 2015-10-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate |
| the data dependence vector. |
| (vect_peeling_hash_insert): Get the peeling hash table as argument. |
| (vect_peeling_hash_get_lowest_cost): Likewise. |
| (vect_enhance_data_refs_alignment): Adjust. |
| (struct _vect_peel_info, struct _vect_peel_extended_info, |
| struct peel_info_hasher): Move from ... |
| * tree-vectorizer.h: ... here. |
| (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove. |
| (LOOP_VINFO_PEELING_HTAB): Likewise. |
| (struct _loop_vec_info): Remove min_profitable_iters and |
| peeling_htab members. |
| * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors |
| here. |
| (destroy_loop_vec_info): Adjust. |
| (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS. |
| (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS |
| to estimate alias versioning cost. |
| * tree-vect-slp.c (vect_analyze_slp_cost): Dump header. |
| |
| 2015-10-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (real_isinteger): Declare. |
| * real.c (real_isinteger): New function. |
| * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y) |
| if y is an even integer. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| revert: |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| * cgraphbuild.c (compute_call_stmt_bb_frequency): Use |
| counts when these are more informative. |
| |
| 2015-10-12 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function. |
| (fsm_find_control_stmt_paths): Change name of first argument to |
| more accurately relfect what it really is. Handle simplification |
| of GIMPLE_COND after finding a thread path for NAME. |
| * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow |
| nontrivial conditions to be handled by FSM threader. |
| (thread_through_normal_block): Extract the name to looup via |
| FSM threader from COND_EXPR. |
| |
| * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove |
| restriction that traced SSA_NAME is a user variable. |
| |
| 2015-10-12 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67476 |
| * omp-low.c (expand_omp_for_generic): Add missing phis. |
| |
| 2015-10-12 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67476 |
| * omp-low.c (expand_omp_for_generic): Handle simple latch. |
| |
| 2015-10-12 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Update builtins |
| tables: add tbl3 and tbx4. |
| * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New. |
| (aarch64_tbx4v8qi): New. |
| * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8) |
| (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8): |
| Rewrite using builtin functions. |
| * config/aarch64/iterators.md (UNSPEC_TBX): New. |
| |
| 2015-10-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using |
| ROUND_UP macro. |
| * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush): |
| Use ROUND_UP and ROUND_DOWN macros where applicable. |
| (rs6000_darwin64_record_arg_flush): Ditto. |
| (rs6000_function_arg): Use ROUND_UP to calculate align_words. |
| (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate |
| rounded_size. |
| |
| 2015-10-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove. |
| (AARCH64_ROUND_DOWN): Ditto. |
| * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP. |
| |
| 2015-10-12 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/67783 |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add |
| code that analyzes IVs on each stmt but in a cheaper way avoiding |
| quadratic behavior. |
| |
| 2015-10-12 Nick Clifton <nickc@redhat.com> |
| |
| * config/msp430/msp430.c (msp430_mcu_names): Rename to |
| msp430_mcu_data, add fields for ISA and hardware multiply |
| support. Import latest data from the devices.csv file. |
| (msp430_override_option): Use the data from the new array. |
| (msp430_use_f5_series_hwmult): Likewise. |
| (use_32bit_hwmult): Likewise. |
| (msp430_no_hwmult): Likewise. |
| * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new |
| MCU names. |
| * doc/invoke.texi (MSP430 Options): Note that if the MCU name is |
| not recognised then no hardware multiply support is assumed and |
| that only the MSP430 ISA is allowed. |
| |
| 2015-10-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_loop_operations): Move cost |
| related code ... |
| (vect_analyze_loop_2): ... here. |
| |
| 2015-10-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/67557 |
| * expr.c (store_field): Call store_constructor directly when |
| storing a CONSTRUCTOR into a target smaller than its type. |
| Guard against unsafe bitwise copy. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphbuild.c (compute_call_stmt_bb_frequency): Use |
| counts when these are more informative. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-profile.c (tree_profiling): Do not clear |
| pure/const when not instrumenting. |
| (pass tree_profile): Add dump of symtab. |
| |
| 2015-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing |
| addresses. |
| (fold_addr_of_array_ref_difference): Likewise. |
| |
| 2015-10-11 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into |
| tree-ssa-threadbackward.c. |
| (fsm_find_control_statement_thread_paths): Likewise. |
| (thread_through_normal_block): Break out FSM bits and move them |
| into a new function in tree-ssa-threadbackward.c. Call new function |
| instead. |
| Minimize header file usage. |
| * tree-ssa-threadbackward.h: New file. |
| * tree-ssa-threadbackward.c: Likewise. |
| * Makefile.in (OBJS): Add tree-ssa-threadbackward.o |
| |
| 2015-10-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro. |
| |
| 2015-10-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/67864 |
| * bb-reorder (reorder_basic_blocks_simple): Prefer existing |
| fallthrough edges for conditional jumps. Don't sort candidate |
| edges if not optimizing for speed. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h (REVERSE_CONDITION): New default definition. |
| * jump.c (reversed_comparison_code_parts): Adjust. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to |
| check HARD_FRAME_POINTER_IS_ARG_POINTER. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h (FRAME_ADDR_RTX): New default definition. |
| * builtins.c (expand_builtin_return_addr): Adjust. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition. |
| * builtins.c (expand_builtin_return_addr): Adjust. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h (SETUP_FRAME_ADDRESSES): New default definition. |
| * builtins.c (expand_builtin_return_addr): Adjust. |
| * doc/tm.texi: Likewise. |
| * doc/tm.texi.in: Likewise. |
| * except.c (expand_builtin_unwind_init): Likewise. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * builtins.c (expand_builtin_return_addr): Adjust. |
| * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition. |
| |
| 2015-10-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree.c (type_with_interoperable_signedness): New. |
| (gimple_canonical_types_compatible_p): Use it. |
| * tree.h (type_with_interoperable_signedness): Declare |
| |
| 2015-10-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF |
| and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks |
| when OEP_ADDRESS_OF is se. |
| |
| 2015-10-10 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c (scop_get_dependences): Add dump of the |
| data dependence graph. |
| * graphite-poly.c (print_isl_union_map): New. |
| (debug_isl_union_map): New. |
| * graphite-poly.h (print_isl_union_map): Declare. |
| (debug_isl_union_map): Declare. |
| |
| 2015-10-10 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-poly.c (print_iteration_domain): Remove verbosity. |
| Remove OpenScop formatting. |
| (print_iteration_domains): Same. |
| (debug_iteration_domain): Same. |
| (debug_iteration_domains): Same. |
| (print_pdr): Same. |
| (debug_pdr): Same. |
| (dump_gbb_cases): Same. |
| (dump_gbb_conditions): Same. |
| (print_pdrs): Same. |
| (debug_pdrs): Same. |
| (print_pbb_body): Same. |
| (print_pbb): Same. |
| (print_scop_params): Same. |
| (print_scop_context): Same. |
| (print_scop): Same. |
| (debug_pbb_domain): Same. |
| (debug_pbb): Same. |
| (debug_scop_context): Same. |
| (debug_scop): Same. |
| (debug_scop_params): Same. |
| * graphite-poly.h: Same. |
| * graphite.c (graphite_transform_loops): Same. |
| |
| 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> () |
| call that isn't needed. |
| |
| 2015-10-09 Jeff Law <law@redhat.com> |
| |
| * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate |
| rather than moving each name to the freelist individually. |
| |
| 2015-10-09 Steve Ellcey <sellcey@imgtec.com> |
| |
| * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs. |
| * frame-header-opt.c: New file. |
| * config/mips/mips-proto.h (mips_register_frame_header_opt): |
| Add prototype. |
| * config/mips/mips.c (mips_compute_frame_info): Check |
| optimize_call_stack flag. |
| (mips_option_override): Register new frame_header_opt pass. |
| (mips_frame_info, mips_int_mask, mips_shadow_set, |
| machine_function): Move these types to... |
| * config/mips/mips.h: here. |
| (machine_function): Add does_not_use_frame_header and |
| optimize_call_stack fields. |
| * config/mips/t-mips (frame-header-opt.o): Add new make rule. |
| * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt): |
| Document new flags. |
| * config/mips/mips.opt (mframe-header-opt): Add new option. |
| |
| 2015-10-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c |
| (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use |
| ROUND_DOWN where applicable. |
| |
| 2015-10-09 Jeff Law <law@redhat.com> |
| |
| * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the |
| correct statement. |
| |
| 2015-10-09 Renlin Li <renlin.li@arm.com> |
| |
| * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for |
| operands[0] and operands[2]. |
| (neon_vtrn<mode>_insn): Likewise. |
| (neon_vzip<mode>_insn): Likewise. |
| |
| 2015-10-09 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * match.pd: ((X inner_op C0) outer_op C1) New pattern. |
| ((X & C2) << C1): Expand to... |
| (X {&,^,|} C2 << C1): ...This. |
| ((X & C2) >> C1): Expand to... |
| (X {&,^,|} C2 >> C1): ...This. |
| |
| 2015-10-09 Alexander Fomin <alexander.fomin@intel.com> |
| |
| PR target/67895 |
| * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"): |
| Adjust embedded rounding/SAE specifier position. |
| (define_insn "sse_cvtsi2ssq<round_name>"): Likewise. |
| (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise. |
| (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise. |
| (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise. |
| (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"): |
| Likewise. |
| (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise. |
| |
| 2015-10-09 Martin Jambor <mjambor@suse.cz> |
| |
| tree-optimization/67794 |
| * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish |
| between types of state,ents but accept original definitions as a |
| parameter. |
| (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to |
| iterate over definitions. |
| |
| 2015-10-09 James Norris <jnorris@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_offload_options): New. |
| (TARGET_OFFLOAD_OPTIONS): New. |
| |
| 2015-10-09 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/67891 |
| * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test. |
| |
| PR middle-end/67766 |
| * function.c (expand_function_end): Move return value |
| promotion past the handling of PARALLELs and CONCATs. |
| |
| PR rtl-optimization/67828 |
| * tree-ssa-loop-unswitch.c: Include tree-ssa.h. |
| (tree_may_unswitch_on): Don't unswitch on expressions |
| involving undefined values. |
| |
| 2015-10-09 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (print_operand): Fix formatting. |
| (dt_node::append_simplify): Warn for multiple simplifiers |
| that match the same pattern. |
| * match.pd (log (exp @0)): Remove duplicates. |
| |
| 2015-10-09 Richard Biener <rguenth@suse.de> |
| |
| PR target/67366 |
| * gimple-fold.c (optabs-query.h): Include |
| (gimple_fold_builtin_memory_op): Allow unaligned stores |
| when movmisalign_optabs are available. |
| |
| 2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/67366 |
| * config/arm/arm.md (movmisalign<mode>): New. |
| * config/arm/iterators.md (HSI): New. |
| |
| 2015-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67891 |
| * gimple-match.h (gimple_simplified_result_is_gimple_val): |
| New helper. |
| (gimple_resimplify1): Declare. |
| (gimple_resimplify2): Likewise. |
| (gimple_resimplify3): Likewise. |
| * gimple-match-head.c (gimple_resimplify1): Export. |
| (gimple_resimplify2): Likewise. |
| (gimple_resimplify3): Likewise. |
| (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val. |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. |
| * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1 |
| to avoid creating stmts without VN info. |
| |
| 2015-10-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-icf.c (sem_item::compare_symbol_references): Fix use |
| of availability. |
| |
| 2015-10-08 Jeff Law <law@redhat.com> |
| |
| * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef |
| and release_ssa_name in two places. |
| (gimple_stringop_fixed_value): Similarly. |
| |
| * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to |
| release_defs. |
| |
| * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to |
| unlink_stmt_vdef and release_ssa_name_fn. |
| |
| * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to |
| release_defs. |
| |
| 2015-10-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_compute_frame_layout): Round up the |
| SSE register save area to 16 bytes only if the incoming stack |
| boundary is no less than 16 bytes. |
| |
| 2015-10-08 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to |
| release_ssa_name. Fix typo in comment. |
| |
| 2015-10-08 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.h (struct machine_function): Add comment. |
| * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions |
| may return pointer as well as in memory. |
| (nvptx_output_return): Likewise. |
| |
| 2015-10-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete. |
| (fold_builtin_1): Update accordingly. Handle constant arguments here. |
| * match.pd: Add rules previously handled by fold_builtin_sqrt |
| and fold_builtin_cbrt. |
| |
| 2015-10-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param. |
| * doc/invoke.texi (--param max-ssa-name-query-depth): Document. |
| * fold-const.h (tree_unary_nonnegative_warnv_p) |
| (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p) |
| (tree_expr_nonnegative_warnv_p): Add depth parameters. |
| * fold-const.c: Include gimple-fold.h and params.h. |
| (tree_ssa_name_nonnegative_warnv_p): New function. |
| (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p) |
| (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p) |
| (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p): |
| Add a depth parameter and increment it for recursive calls to |
| tree_expr_nonnegative_warnv_p. Use tree_ssa_name_nonnegative_warnv_p |
| to handle SSA names. |
| * gimple-fold.h (gimple_val_nonnegative_real_p): Delete. |
| (gimple_stmt_nonnegative_warnv_p): Declare. |
| * tree-vrp.c (remove_range_assertions): Remove assert that condition |
| cannot be proven false. |
| (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p) |
| (gimple_stmt_nonnegative_warnv_p): Move to... |
| * gimple-fold.c: ...here. Add depth parameters and pass them |
| down to the tree routines. Accept statements that aren't |
| assignments or calls but just return false for them. |
| (gimple_val_nonnegative_real_p): Delete. |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use |
| tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p. |
| Check HONOR_NANs first. |
| |
| 2015-10-08 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.c (meet_with_1): Make the argument of abs signed. Remove |
| unnecessary MIN. |
| |
| 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi |
| in the tail of outer-loop. |
| |
| 2015-10-08 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always |
| return UI_NONE. |
| |
| 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and |
| "cfghooks.h", add prototypes for introduced new functions. |
| (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all |
| checks on ability of loop unswitching to tree_unswitch_single_loop; |
| invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending |
| on innermost loop check. |
| (tree_unswitch_single_loop): Add all required checks on ability of |
| loop unswitching under zero recursive level guard. |
| (tree_unswitch_outer_loop): New function. |
| (find_loop_guard): Likewise. |
| (empty_bb_without_guard_p): Likewise. |
| (used_outside_loop_p): Likewise. |
| (get_vop_from_header): Likewise. |
| (hoist_guard): Likewise. |
| (check_exit_phi): Likewise. |
| |
| 2015-10-08 Marek Polacek <polacek@redhat.com> |
| |
| * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each |
| ops element. |
| |
| 2015-10-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR c/65345 |
| * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use |
| create_tmp_var_raw instead of create_tmp_var. |
| |
| 2015-10-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * expr.c (store_expr_with_bounds): Handle aggregate moves from |
| BLKmode. |
| * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL |
| to define gimple type system; compare aggregates only by size. |
| |
| 2015-10-07 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here. |
| * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it |
| here instead. Tighten test to avoid setting LOOPS_NEED_FIXUP |
| unnecessarily. |
| |
| 2015-10-07 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS. |
| * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same. |
| (generate_isl_schedule): Same. |
| * graphite-optimize-isl.c (scop_get_domains): Same. |
| (apply_schedule_map_to_scop): Same. |
| * graphite-poly.c (print_iteration_domains): Same. |
| (remove_gbbs_in_scop): Same. |
| (new_scop): Same. |
| (free_scop): Same. |
| (print_scop): Same. |
| * graphite-poly.h (struct scop): Rename bbs to pbbs. |
| (SCOP_BBS): Remove. |
| * graphite-scop-detection.c (compare_bb_depths): Remove. |
| (graphite_sort_dominated_info): Remove. |
| (try_generate_gimple_bb): Move out of scop_detection. |
| (all_non_dominated_preds_marked_p): Remove. |
| (build_scop_bbs_1): Remove. |
| (build_scop_bbs): Remove. |
| (nb_pbbs_in_loops): Do not use SCOP_BBS. |
| (find_scop_parameters): Same. |
| (sese_dom_walker): Rename gather_bbs. |
| (before_dom_children): Call try_generate_gimple_bb and collect gbb |
| and pbb. |
| (build_scops): Call gather_bbs. |
| * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS. |
| (add_conditions_to_constraints): Same. |
| (build_scop_iteration_domain): Same. |
| (build_scop_drs): Same. |
| (new_pbb_from_pbb): Same. |
| * sese.c (new_sese_info): Create bbs. |
| * sese.h (struct sese_info_t): Add bbs. |
| |
| 2015-10-07 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit |
| encoding in 64-bit mode. |
| |
| 2015-10-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/66697 |
| * config/i386/i386.c (ix86_option_override_internal): Always use |
| 8-byte minimum stack boundary in 64-bit mode. |
| (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY. |
| (ix86_emit_save_reg_using_mov): Support unaligned SSE store. |
| Add a REG_CFA_EXPRESSION note if needed. |
| (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load. |
| (ix86_handle_force_align_arg_pointer_attribute): New. |
| (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check. |
| (ix86_attribute_table): Set ix86_force_align_arg_pointer_string |
| with ix86_handle_force_align_arg_pointer_attribute. |
| * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD. |
| |
| 2015-10-07 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-scop-detection.c (parameter_index_in_region): Remove |
| use of SESE_ADD_PARAMS. |
| (find_scop_parameters): Same. |
| * sese.c (new_sese_info): Same. |
| * sese.h (struct sese_info_t): Remove add_params. |
| (SESE_ADD_PARAMS): Remove. |
| |
| 2015-10-07 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use |
| an sese_info_p. |
| (copy_def): Same. |
| (copy_internal_parameters): Same. |
| (translate_isl_ast_to_gimple): Use an sese_l. |
| (build_iv_mapping): Same. |
| * graphite-poly.c (new_sese): Rename new_sese_info. |
| (free_sese): Rename free_sese_info. |
| * graphite-poly.h (struct scop): Use an sese_info_p. |
| (scop_set_region): Same. |
| * graphite-scop-detection.c (struct sese_l): Moved... |
| (get_entry_bb): Moved... |
| (get_exit_bb): Moved... |
| (parameter_index_in_region_1): Use an sese_info_p. |
| (parameter_index_in_region): Same. |
| (scan_tree_for_params): Same. |
| (find_params_in_bb): Same. |
| (sese_dom_walker): Use an sese_l. |
| * graphite-sese-to-poly.c (remove_invariant_phi): Same. |
| (reduction_phi_p): Same. |
| (parameter_index_in_region_1): Use an sese_info_p. |
| (propagate_expr_outside_region): Use an sese_l. |
| * graphite.c: Replace uses of SCOP_REGION. |
| * sese.c (sese_record_loop): Use an sese_info_p. |
| (build_sese_loop_nests): Same. |
| (sese_build_liveouts_use): Same. |
| (sese_build_liveouts_bb): Same. |
| (sese_build_liveouts_bb): Same. |
| (sese_bad_liveouts_use): Same. |
| (sese_reset_debug_liveouts_bb): Same. |
| (sese_build_liveouts): Same. |
| (new_sese): Renamed new_sese_info. |
| (free_sese): Renamed free_sese_info. |
| (set_rename): Use an sese_info_p. |
| (graphite_copy_stmts_from_block): Same. |
| (copy_bb_and_scalar_dependences): Same. |
| (outermost_loop_in_sese_1): Use an sese_l. |
| (outermost_loop_in_sese): Same. |
| (if_region_set_false_region): Use an sese_info_p. |
| (move_sese_in_condition): Same. |
| (scalar_evolution_in_region): Use an sese_l. |
| * sese.h (struct sese_l): ... here. |
| (SESE_ENTRY): Remove. |
| (SESE_ENTRY_BB): Remove. |
| (SESE_EXIT): Remove. |
| (SESE_EXIT_BB): Remove. |
| (sese_contains_loop): Use an sese_info_p. |
| (sese_nb_params): Same. |
| (bb_in_sese_p): Use an sese_l. |
| (stmt_in_sese_p): Same. |
| (defined_in_sese_p): Same. |
| (loop_in_sese_p): Same. |
| (sese_loop_depth): Same. |
| (struct ifsese_s): Use an sese_info_p. |
| (gbb_loop_at_index): Use an sese_l. |
| (nb_common_loops): Same. |
| (scev_analyzable_p): Same. |
| |
| 2015-10-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_conditional_register_usage): Use |
| CALL_USED_REGISTERS_MASK. |
| * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro. |
| |
| 2015-10-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/67385 |
| * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET. |
| * configure: Regenerated. |
| |
| 2015-10-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/67850 |
| * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ... |
| (ix86_set_current_function): This. |
| (TARGET_EXPAND_TO_RTL_HOOK): Removed. |
| |
| 2015-10-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>. |
| (vinfo_for_stmt): Adjust. |
| (set_vinfo_for_stmt): Likewise. |
| * tree-vectorizer.c (stmt_vec_info_vec): Likewise. |
| * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise. |
| * tree-vect-loop.c (new_loop_vec_info): Remove special-casing |
| of inner loop. |
| (vect_analyze_loop_1): Remove. |
| (vect_analyze_loop_form_1): Avoid building a loop_vec_info for |
| inner loop when vectorizing an outer loop by splitting out from ... |
| (vect_analyze_loop_form): ... here. |
| |
| 2015-10-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR c/65345 |
| * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): |
| Use create_tmp_var_raw instead of create_tmp_var. |
| |
| 2015-10-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros. |
| (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare. |
| * real.c (CACHED_FRACTION): New helper macro. |
| (dconst_third_ptr): Use it. |
| (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New. |
| * builtins.c (fold_builtin_sqrt): Use dconst_quarter and |
| dconst_sixth. |
| (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth. |
| |
| 2015-10-06 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/67816 |
| * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed |
| from remove_jump_threads_starting_at. Accept an edge rather than |
| a basic block. |
| * tree-ssa-threadupdate.c (removed_edges): New hash table. |
| (remove_jump_threads_including): Note edges that get removed from |
| the CFG for later pruning of jump threading paths including them. |
| (thread_through_all_blocks): Remove paths which include edges that |
| have been removed. |
| * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including |
| on each outgoing edges when optimizing away a control statement. |
| |
| 2015-10-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * reorg.c (emit_delay_sequence): Store list of delay slot insns |
| in a vector instead of rtx_insn_list. |
| (add_to_delay_list): Likewise. |
| (delete_from_delay_slot): Likewise. |
| (optimize_skip): Likewise. |
| (redirect_with_delay_list_safe_p): Likewise. |
| (check_annul_list_true_false): Likewise. |
| (steal_delay_list_from_target): Likewise. |
| (steal_delay_list_from_fallthrough): Likewise. |
| (redundant_insn): Likewise. |
| (fill_simple_delay_slots): Likewise. |
| (fill_slots_from_thread): Likewise. |
| (fill_eager_delay_slots): Likewise. |
| (relax_delay_slots): Likewise. |
| |
| 2015-10-06 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p): |
| For -mgpopt=local, also exclude unintialized common symbols. |
| * doc/invoke.texi (Nios II Options): Document the change. |
| |
| 2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| * config/aarch64/iterators.md (vwcore): Add missing cases for |
| V4HF/V8HF modes. |
| |
| 2015-10-06 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-poly.c (new_scop): Initialize drs. |
| * graphite-poly.h (struct dr_info): New. |
| (struct scop): Add drs. |
| * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info. |
| (pdr_add_memory_accesses): Same. |
| (build_poly_dr): Same. |
| (build_alias_set): Same. |
| (build_scop_drs): Same. |
| (build_pbb_drs): Remove. |
| * tree-data-ref.c (create_data_ref): Do not initialize alias_set. |
| * tree-data-ref.h (data_reference): Remove alias_set. |
| |
| 2015-10-06 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-poly.c (free_data_refs_aux): Remove. |
| (free_gimple_poly_bb): Do not call free_data_refs_aux. |
| * graphite-poly.h (struct base_alias_pair): Remove. |
| * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of |
| base_alias_pair and dr->aux. |
| (build_alias_set): Same. |
| * tree-data-ref.c (create_data_ref): Initialize alias_set. |
| * tree-data-ref.h (data_reference): Add alias_set. |
| |
| 2015-10-06 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-poly.c (new_poly_dr): Remove dr_base_object_set. |
| Do not set PDR_BASE_OBJECT_SET. |
| * graphite-poly.h (poly_dr): Same. |
| (PDR_BASE_OBJECT_SET): Remove. |
| (new_poly_dr): Update decl. |
| * graphite-sese-to-poly.c (build_poly_dr): Update call to |
| new_poly_dr. |
| (write_alias_graph_to_ascii_dimacs): Remove. |
| (write_alias_graph_to_ascii_dot): Remove. |
| (write_alias_graph_to_ascii_ecc): Remove. |
| (dr_same_base_object_p): Remove. |
| (build_alias_set_optimal_p): Rename build_alias_set. Remove dead |
| code. |
| (build_base_obj_set_for_drs): Remove. |
| (dump_alias_graphs): Remove. |
| (build_scop_drs): Remove dead code. |
| |
| 2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/67808 |
| * config/rs6000/rs6000.md (extenddftf2): In the expander, only |
| allow registers, but provide insns for the combiner to create for |
| loads from memory. Separate VSX code from non-VSX code. For |
| non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename |
| externaldftf2_internal to externaldftf2_fprs. Reorder constraints |
| so that registers come before memory operations. Drop support from |
| converting DFmode to TFmode, if the DFmode value is in a GPR |
| register. |
| (extenddftf2_fprs): Likewise. |
| (extenddftf2_internal): Likewise. |
| (extenddftf2_vsx): Likewise. |
| (extendsftf2): In the expander, only allow registers, but provide |
| insns for the combiner to create for stores and loads. |
| |
| 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED |
| from the decl parameter. |
| |
| 2015-10-06 Nathan Sidwell <nathan@codesourcery.com> |
| |
| PR 67861 |
| * gimple-fold.c (gimple_fold_builtin): Add break after |
| BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding. |
| |
| 2015-10-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx |
| to scop->isl_context. |
| |
| 2015-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment. |
| (output_probe_stack_range): Rotate the loop and simplify. |
| (thumb1_expand_prologue): Tweak sorry message. |
| * config/arm/arm.md (probe_stack): Use bare string. |
| |
| 2015-10-06 Nick Clifton <nickc@redhat.com> |
| |
| * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file. |
| |
| 2015-10-06 Nick Clifton <nickc@redhat.com> |
| |
| * config/msp430/msp430.c (ATTR_NOINIT): New constant. |
| (ATTR_PERSIST): New constant. |
| (msp430_data_attr): New function - verifies an attribute that only |
| applies to variables. |
| (msp430_attributes): Add noinit and persistent attributes. |
| (noinit_section): New variable. |
| (presis_section): New variable. |
| (TARGET_ASM_INIT_SECTIONS): Define. |
| (msp430_init_sections): New function - initialises the noinit and |
| persist section variables. |
| (msp430_select_section): Add support for noinit and persist |
| attributes. |
| (msp430_section_type_flags): Likewise. |
| * doc/extend.texi: Document the reent, critical, wakeup, noinit |
| and persistent attributes. |
| |
| 2015-10-05 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-dependences.c (scop_get_transformed_schedule): Remove. |
| (no_violations): Remove. |
| (subtract_commutative_associative_deps): Remove. |
| (compute_deps): Do not call subtract_commutative_associative_deps. |
| (transform_is_safe): Remove. |
| (graphite_legal_transform): Remove. |
| * graphite-poly.h (graphite_legal_transform): Remove. |
| |
| 2015-10-05 Aditya Kumar <hiraditya@msn.com> |
| |
| * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops |
| which are in this region are passed so gcc_assert and remove redundant |
| computation. |
| * sese.c (sese_build_liveouts): Pass only those bbs which are not |
| in region. |
| (sese_bad_liveouts_use): Only BBs which are not in region are passed so |
| gcc_assert on that and remove unnecessary computation. |
| (sese_build_liveouts_use): Same. |
| |
| 2015-10-05 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-dependences.c (scop_get_reads): Renamed scop->context |
| to scop->param_context. |
| (scop_get_must_writes): Same. |
| (scop_get_may_writes): Same. |
| (scop_get_original_schedule): Same. |
| (scop_get_transformed_schedule): Same. |
| (subtract_commutative_associative_deps): Same. |
| * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same. |
| (generate_isl_context): Same. |
| (generate_isl_schedule): Same. |
| (scop_to_isl_ast): Same. |
| (graphite_regenerate_ast_isl): Same. |
| * graphite-optimize-isl.c (scop_get_domains): Same. |
| (optimize_isl): Renamed scop->context to scop->param_context. |
| * graphite-poly.c (new_poly_bb): Change the type of argument to |
| gimple_poly_bb_p. |
| (new_scop): Renamed scop->context to scop->param_context. |
| (free_scop): Same. |
| (print_scop_context): Same. |
| * graphite-poly.h (new_poly_dr): Change the type of argument from |
| void* to data_reference_p. |
| (struct poly_bb): Change the type of black_box to gimple_poly_bb_p. |
| (new_poly_bb): Change the type of argument from void* to |
| gimple_poly_bb_p. |
| (pbb_set_black_box): Same. |
| (struct scop): Rename context to param_context, ctx to isl_context. |
| * graphite-scop-detection.c (scop_detection::build_scop_bbs_1): |
| Move declarations closer to assignment. |
| (find_params_in_bb): Same. |
| (find_scop_parameters): Same. |
| * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize): |
| Global to be used for statement IDs. |
| (isl_id_for_pbb): Use ssa_name_version_typesize. |
| (simple_copy_phi_p): Move declarations closer to assignment. |
| (build_pbb_scattering_polyhedrons): Same. |
| (build_scop_scattering): Same. |
| (isl_id_for_ssa_name): Same. |
| (extract_affine_name): Same. |
| (extract_affine_int): Same. |
| (extract_affine): Same. |
| (set_scop_parameter_dim): Use renamed member. |
| (build_loop_iteration_domains): Same. |
| (add_param_constraints): Same. |
| (build_scop_iteration_domain): Same. |
| (pdr_add_data_dimensions): Same. |
| (build_poly_dr): Same. |
| (build_scop_drs): Move declarations closer to assignment. |
| (analyze_drs_in_stmts): Same. |
| (insert_out_of_ssa_copy): Same. |
| (insert_out_of_ssa_copy_on_edge): Same. |
| (propagate_expr_outside_region): Same. |
| (rewrite_phi_out_of_ssa): Same. |
| (rewrite_degenerate_phi): Same. |
| (rewrite_reductions_out_of_ssa): Same. |
| (rewrite_cross_bb_scalar_dependence): Same. |
| (handle_scalar_deps_crossing_scop_limits): Same. |
| (rewrite_cross_bb_scalar_deps): Same. |
| * graphite.c (graphite_transform_loops): Use renamed member. |
| |
| 2015-10-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR c/65345 |
| * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use |
| create_tmp_var_raw instead of create_tmp_var. |
| |
| 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR c/65345 |
| * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv): |
| Use create_tmp_var_raw instead of create_tmp_var. |
| |
| 2015-10-06 Alexander Fomin <alexander.fomin@intel.com> |
| |
| PR target/67849 |
| * config/i386/sse.md (define_split vec_select/V8FI): Restrict |
| split for upper-bank registers when target does not support |
| AVX512VL. |
| (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict |
| split when target does not support AVX512VL. |
| |
| 2015-10-06 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR c/65345 |
| * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): |
| Adjust to use create_tmp_var_raw instead of create_tmp_var. |
| |
| 2015-10-06 Nick Clifton <nickc@redhat.com> |
| |
| * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for |
| multiplication. |
| |
| 2015-10-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> |
| |
| * config.gcc (i[34567]86-*-linux* | ...): Add znver1. |
| (case ${target}): Add znver1. |
| * config/i386/cpuid.h(bit_CLZERO): Define. |
| * config/i386/driver-i386.c: (host_detect_local_cpu): Let |
| -march=native recognize znver1 processors. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Add |
| znver1, clzero def_and_undef. |
| * config/i386/i386.c (struct processor_costs znver1_cost): New. |
| (m_znver1): New definition. |
| (m_AMD_MULTIPLE): Includes m_znver1. |
| (processor_target_table): Add znver1 entry. |
| (ix86_target_string) : Add clzero entry. |
| (static const char *const cpu_names): Add znver1 entry. |
| (ix86_option_override_internal): Add znver1 instruction sets. |
| (PTA_CLZERO) : New definition. |
| (ix86_option_override_internal): Handle new clzerooption. |
| (ix86_issue_rate): Add znver1. |
| (ix86_adjust_cost): Add znver1. |
| (ia32_multipass_dfa_lookahead): Add znver1. |
| (has_dispatch): Add znver1. |
| * config/i386/i386.h (TARGET_znver1): New definition. |
| (TARGET_CLZERO): Define. |
| (TARGET_CLZERO_P): Define. |
| (struct ix86_size_cost): Add TARGET_ZNVER1. |
| (enum processor_type): Add PROCESSOR_znver1. |
| * config/i386/i386.md (define_attr "cpu"): Add znver1. |
| (set_attr znver1_decode): New definitions for znver1. |
| * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1. |
| (mclzero): New. |
| * config/i386/mmx.md (set_attr znver1_decode): New definitions |
| for znver1. |
| * config/i386/sse.md (set_attr znver1_decode): Likewise. |
| * config/i386/x86-tune.def: Add znver1 tunings. |
| * config/i386/znver1.md: Introduce znver1 cpu and include new md file. |
| * doc/invoke.texi: Add details about znver1 |
| |
| 2015-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67859 |
| * tree-ssa-pre.c (create_expression_by_pieces): Properly |
| discard not inserted stmts. |
| |
| 2015-10-06 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Template Instantiation): Reorder options and |
| de-emphasize -frepo. |
| * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in |
| example instead of -frepo. |
| |
| 2015-10-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR c/65345 |
| * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to |
| use create_tmp_var_raw rather than create_tmp_var. |
| |
| 2015-10-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vec_info): New base class for... |
| (_loop_vec_info): ... this and ... |
| (_bb_vec_info): ... this. |
| (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info, |
| vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment, |
| vect_analyze_data_ref_accesses, vect_analyze_data_refs, |
| vect_schedule_slp, vect_analyze_slp, vect_pattern_recog, |
| vect_destroy_datarefs): Adjust interface to take a vec_info * |
| rather than both a loop_vec_info and a bb_vec_info argument. |
| * tree-vect-data-refs.c (vect_compute_data_refs_alignment, |
| vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment, |
| vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses, |
| vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust |
| accordingly. |
| * tree-vect-loop.c (new_loop_vec_info): Initialize base class. |
| (destroy_loop_vec_info, vect_analyze_loop_2, |
| vect_is_simple_reduction_1, get_initial_def_for_induction, |
| vect_create_epilog_for_reduction, vectorizable_reduction, |
| vectorizable_live_operation, vect_transform_loop): Adjust. |
| * tree-vect-patterns.c (type_conversion_p, |
| vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern, |
| vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern, |
| vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern, |
| check_bool_pattern, vect_recog_bool_pattern, |
| vect_mark_pattern_stmts, vect_pattern_recog): Likewise. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs, |
| vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1, |
| vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info, |
| vect_slp_analyze_bb_1, vect_schedule_slp): Likewise. |
| (new_bb_vec_info): Initialize base classs. |
| * tree-vect-stmts.c (record_stmt_cost, process_use, |
| vect_get_vec_def_for_operand, vect_finish_stmt_generation, |
| vectorizable_mask_load_store, vectorizable_call, |
| vectorizable_simd_clone_call, vectorizable_conversion, |
| vectorizable_assignment, vectorizable_shift, |
| vectorizable_operation, vectorizable_store, |
| vectorizable_load, vect_is_simple_cond, vectorizable_condition, |
| new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise. |
| * tree-vectorizer.c (vect_destroy_datarefs): Likewise. |
| |
| 2015-10-05 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR c/65345 |
| * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use |
| create_tmp_var_raw rather than create_tmp_var. |
| |
| 2015-10-05 Marek Polacek <polacek@redhat.com> |
| |
| * tree-ssa-loop-im.c |
| (move_computations_dom_walker::before_dom_children): Don't set |
| SSA_NAME_ANTI_RANGE_P. |
| * tree-ssa-phiopt.c (value_replacement): Likewise. |
| |
| 2015-10-05 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7. |
| |
| 2015-10-05 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-poly.c (new_gimple_poly_bb): ... here. |
| (free_data_refs_aux): ... here. |
| (free_gimple_poly_bb): ... here. |
| (remove_gbbs_in_scop): ... here. |
| (new_scop): Call new_sese. |
| (free_scop): Call remove_gbbs_in_scop and free_sese. |
| * graphite-poly.h (base_alias_pair): ... here. |
| (new_gimple_poly_bb): Declare. |
| (free_gimple_poly_bb): Declare. |
| * graphite-scop-detection.c (parameter_index_in_region_1): |
| (parameter_index_in_region): ... here. |
| (scan_tree_for_params): ... here. |
| (find_params_in_bb): ... here. |
| (find_scop_parameters): ... here. |
| (build_scops): Call find_scop_parameters. |
| * graphite-sese-to-poly.c (free_gimple_poly_bb): Move... |
| (free_scops): Move... |
| (single_pred_cond_non_loop_exit): Move... |
| (sese_dom_walker::before_dom_children): Move... |
| (sese_dom_walker::after_dom_children): Move... |
| (build_poly_scop): Move... |
| * graphite-sese-to-poly.h (base_alias_pair): Move... |
| * graphite.c (free_scops): ... here. |
| |
| 2015-10-05 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h. |
| (trivially_empty_bb_p): Move... |
| (same_close_phi_node): Move... |
| (new_gimple_poly_bb): Move... |
| (compare_bb_depths): Move... |
| (graphite_sort_dominated_info): Move... |
| (remove_duplicate_close_phi): Move... |
| (make_close_phi_nodes_unique): Move... |
| (canonicalize_loop_closed_ssa): Move... |
| (canonicalize_loop_closed_ssa_form): Move... |
| (loop_ivs_can_be_represented): Move... |
| (single_pred_cond_non_loop_exit): Move... |
| (graphite_can_represent_init): Move... |
| (graphite_can_represent_scev): Move... |
| (stmt_has_simple_data_refs_p): Move... |
| (stmt_has_side_effects): Move... |
| (graphite_can_represent_stmt): Move... |
| (scop_detection): ... here. |
| (sese_dom_walker): ... and here. |
| (build_scops): Call all moved functions. |
| * graphite-sese-to-poly.c (try_generate_gimple_bb): Move... |
| (all_non_dominated_preds_marked_p): Move... |
| (build_scop_bbs_1): Move... |
| (build_scop_bbs): Move... |
| (set_scop_parameter_dim): Move... |
| (nb_pbbs_in_loops): Move... |
| (build_poly_scop): Do not call all the moved functions. |
| |
| 2015-10-05 Martin Jambor <mjambor@suse.cz> |
| Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (ipcp_alignment_lattice): New type. |
| (ipcp_param_lattices): Use the above to represent alignment. |
| (ipcp_alignment_lattice::print): New function. |
| (print_all_lattices): Use it to print alignment information. |
| (ipcp_alignment_lattice::top_p): New function. |
| (ipcp_alignment_lattice::bottom_p): Likewise. |
| (ipcp_alignment_lattice::set_to_bottom): Likewise. |
| (ipcp_alignment_lattice::meet_with_1): Likewise. |
| (ipcp_alignment_lattice::meet_with): Two new overloaded functions. |
| (set_all_contains_variable): Use set_to_bottom of alignment lattice. |
| (initialize_node_lattices): Likewise. |
| (propagate_alignment_accross_jump_function): Work with the new class |
| for alignment lattices. |
| (propagate_constants_accross_call): Pass only the alignment lattice to |
| propagate_alignment_accross_jump_function. |
| (ipcp_store_alignment_results): Work with the new class for alignment |
| lattices. |
| |
| 2015-10-05 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/67821 |
| * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert. |
| |
| 2015-10-05 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR other/65021 |
| * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename |
| function to... |
| (mkoffload_cleanup): ... this. Adjust all users. |
| (maybe_unlink): Look at save_temps and verbose flags instead of |
| debug flag. |
| (main): Parse "-save-temps" flag. |
| (generate_target_descr_file, generate_target_offloadend_file) |
| (generate_host_descr_file, prepare_target_image): Pass it on. |
| * config/nvptx/mkoffload.c (tool_cleanup): Implement. |
| (mkoffload_cleanup): New function. |
| (maybe_unlink): Look at save_temps and verbose flags instead of |
| debug flag. |
| (main): Instead of calling utils_cleanup, register atexit handler |
| for mkoffload_cleanup. |
| (main): Parse "-save-temps" flag. |
| (compile_native, main): Pass it on. |
| * lto-wrapper.c (compile_offload_image): Likewise. |
| |
| 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * gimple.h (gimple_op_ptr): Require a non const gimple *. |
| (gimple_assign_lhs_ptr): Likewise. |
| (gimple_assign_rhs1_ptr): Likewise. |
| (gimple_assign_rhs2_ptr): Likewise. |
| (gimple_assign_rhs3_ptr): Likewise. |
| (gimple_call_lhs_ptr): Likewise. |
| (gimple_call_fn_ptr): Likewise. |
| (gimple_call_chain_ptr): Likewise. |
| (gimple_call_arg_ptr): Likewise. |
| (gimple_cond_lhs_ptr): Likewise. |
| (gimple_cond_rhs_ptr): Likewise. |
| (gimple_switch_index_ptr): Likewise. |
| (gimple_return_retval_ptr): Likewise. |
| |
| 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * gimple.h (gimple_asm_input_op_ptr): Remove. |
| (gimple_asm_output_op_ptr): Likewise. |
| |
| 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * gimple.h (gimple_location_ptr): Remove. |
| * tree-vrp.c (check_all_array_refs): Adjust. |
| |
| 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree-ssa-operands.c (build_uses): store tree * instead of |
| tree. |
| (finalize_ssa_uses): Adjust. |
| (append_use): Likewise. |
| (verify_ssa_operands): Likewise. |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (build_real_truncate): Declare. |
| * tree.c (build_real_truncate): New function. |
| (strip_float_extensions): Use it. |
| * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt) |
| (fold_builtin_hypot, fold_builtin_pow): Likewise. |
| * match.pd: Likewise. |
| |
| 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w". |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete. |
| * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p) |
| (aarch64_print_operand, aarch64_float_const_representable_p) |
| (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE |
| instead of REAL_VALUE_FROM_CONST_DOUBLE. |
| * config/arc/arc.c (arc_print_operand): Likewise. |
| * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index) |
| (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const) |
| (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits): |
| Likewise. |
| * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8) |
| (consttable_16): Likewise. |
| * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise. |
| * config/avr/avr.c (avr_print_operand): Likewise. |
| * config/bfin/bfin.md: Likewise (in a define_split). |
| * config/c6x/c6x.md: Likewise (in a define_split). |
| * config/cr16/cr16.c (cr16_const_double_ok): Likewise. |
| (cr16_print_operand): Likewise. |
| * config/cris/cris.c (cris_print_operand): Likewise. |
| * config/epiphany/epiphany.c (epiphany_print_operand): Likewise. |
| * config/fr30/fr30.c (fr30_print_operand): Likewise. |
| (fr30_const_double_is_zero): Likewise. |
| * config/frv/frv.c (frv_print_operand, output_move_single): Likewise. |
| * config/frv/frv.md: Likewise (in a define_split). |
| * config/frv/predicates.md (int_2word_operand): Likewise. |
| * config/h8300/h8300.c (h8300_print_operand): Likewise. |
| * config/i386/i386.c (standard_80387_constant_p): Likewise. |
| (ix86_print_operand, ix86_split_to_parts): Likewise. |
| * config/i386/i386.md: Likewise (in a define_split). |
| * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise. |
| * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise. |
| * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise. |
| * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p) |
| (print_operand): Likewise. |
| * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise. |
| * config/mep/mep.md: Likewise (in define_split). |
| * config/microblaze/microblaze.c (microblaze_const_double_ok) |
| (print_operand): Likewise. |
| * config/mips/mips.md (consttable_float): Likewise. |
| * config/mmix/mmix.c (mmix_intval): Likewise. |
| * config/mn10300/mn10300.c (mn10300_print_operand): Likewise. |
| * config/nvptx/nvptx.c (nvptx_print_operand): Likewise. |
| * config/pa/pa.c (pa_singlemove_string): Likewise. |
| * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise. |
| (pdp11_asm_print_operand, legitimate_const_double_p): Likewise. |
| * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove) |
| (output_toc): Likewise. |
| * config/rs6000/rs6000.md: Likewise (in define_splits). |
| * config/rx/rx.c (rx_print_operand): Likewise. |
| * config/s390/s390.c (s390_output_pool_entry): Likewise. |
| * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise. |
| * config/sh/sh.md (consttable_sf, consttable_df): Likewise |
| (and also in define_splits). |
| * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise. |
| (fp_high_losum_p): Likewise. |
| * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise. |
| (*movsf_high): Likewise. |
| * config/spu/spu.c (const_double_to_hwint): Likewise. |
| * config/v850/v850.c (const_double_split): Likewise. |
| * config/vax/vax.c (vax_float_literal): Likewise. |
| * config/visium/visium.c (visium_expand_copysign): Likewise. |
| * config/visium/visium.md: Likewise (in define_split). |
| * config/xtensa/predicates.md (const_float_1_operand): Likewise. |
| * config/xtensa/xtensa.c (print_operand): Likewise. |
| (xtensa_output_literal): Likewise. |
| * cprop.c (implicit_set_cond_p): Likewise. |
| * dwarf2out.c (insert_float): Likewise. |
| * expmed.c (expand_mult, make_tree): Likewise. |
| * expr.c (compress_float_constant): Likewise. |
| * rtlanal.c (split_double): Likewise. |
| * simplify-rtx.c (avoid_constant_pool_reference): Likewise. |
| (simplify_const_unary_operation, simplify_binary_operation_1) |
| (simplify_const_binary_operation): Likewise. |
| (simplify_const_relational_operation): Likewise. |
| * varasm.c (output_constant_pool_2): Likewise. |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value |
| instead of CONST_DOUBLE_FROM_REAL_VALUE. |
| (CONST_DOUBLE_FROM_REAL_VALUE): Delete. |
| * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value |
| instead of CONST_DOUBLE_FROM_REAL_VALUE. |
| * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise. |
| * config/i386/i386.c (standard_80387_constant_rtx): Likewise. |
| (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round) |
| (ix86_emit_swsqrtsf): Likewise. |
| * config/ia64/ia64.c (ia64_expand_builtin): Likewise. |
| * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) |
| (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise. |
| * config/pa/pa.c (pa_expand_builtin): Likewise. |
| * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise. |
| (rs6000_scale_v2df): Likewise. |
| * config/rs6000/rs6000.md (*cmptf_internal2): Likewise. |
| * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2) |
| (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise. |
| * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl) |
| (vec_ctul): Likewise. |
| * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise. |
| * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise. |
| * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise. |
| * cse.c (fold_rtx): Likewise. |
| * emit-rtl.c (immed_double_const): Likewise (in comments). |
| (init_emit_once): Likewise. |
| * expr.c (compress_float_constant, expand_expr_real_1) |
| (const_vector_from_tree): Likewise. |
| * optabs.c (expand_float, expand_fix): Likewise. |
| * reg-stack.c (reg_to_stack): Likewise. |
| * simplify-rtx.c (avoid_constant_pool_reference): Likewise. |
| (simplify_const_unary_operation, simplify_binary_operation_1) |
| (simplify_const_binary_operation, simplify_relational_operation) |
| (simplify_immed_subreg): Likewise. |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/tm.texi.in (REAL_ARITHMETIC): Delete. |
| * doc/tm.texi: Regenerate. |
| * real.h (REAL_ARITHMETIC): Delete. |
| * config/i386/i386.c (ix86_expand_lround, ix86_expand_round) |
| (ix86_expand_round_sse4): Use real_arithmetic instead of |
| REAL_ARITHMETIC. |
| * config/i386/sse.md (round<mode>2): Likewise. |
| * rtl.h (rtx_to_tree_code): Likewise (in comment). |
| * explow.c (rtx_to_tree_code): Likewise (in comment). |
| * match.pd: Likewise. |
| * simplify-rtx.c (simplify_binary_operation_1): Likewise. |
| * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise. |
| (expand_pow_as_sqrts): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Remove code that |
| was conditional on REAL_ARITHMETIC being undefined. |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/tm.texi.in (REAL_VALUES_LESS): Delete. |
| * doc/tm.texi: Regenerate. |
| * real.h (real_less): Declare. |
| (REAL_VALUES_LESS): Delete. |
| * real.c (real_less): New function. |
| (real_compare): Use it. |
| * config/m68k/m68k.c (floating_exact_log2): Use real_less instead |
| of REAL_VALUES_LESS. |
| * config/microblaze/microblaze.c (microblaze_const_double_ok): |
| Likewise. |
| * fold-const.c (fold_convert_const_int_from_real): Likewise. |
| * simplify-rtx.c (simplify_const_unary_operation): Likewise. |
| (simplify_const_relational_operation): Likewise. |
| * tree-call-cdce.c (check_pow): Likewise. |
| (gen_conditions_for_pow_cst_base): Likewise. |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (REAL_VALUES_IDENTICAL): Delete. |
| * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical |
| instead of REAL_VALUES_IDENTICAL. |
| * fold-const.c (operand_equal_p): Likewise. |
| * ipa-icf.c (sem_variable::equals): Likewise. |
| * tree-complex.c (some_nonzerop): Likewise. |
| (expand_complex_multiplication): Likewise. |
| * tree.c (simple_cst_equal): Likewise. |
| * varasm.c (compare_constant): Likewise. |
| |
| 2015-10-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * real.h (real_equal): Declare. |
| (REAL_VALUES_EQUAL): Delete. |
| * real.c (real_equal): New function. |
| (real_compare): Use it. |
| * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete. |
| * doc/tm.texi: Regenerate. |
| * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use |
| real_equal instead of REAL_VALUES_EQUAL. |
| * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise. |
| * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate) |
| (fp_const_from_val): Likewise. |
| * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise. |
| * config/m68k/m68k.c (standard_68881_constant_p): Likewise. |
| (floating_exact_log2): Likewise. |
| * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise. |
| * config/vax/vax.c (vax_float_literal): Likewise. |
| * config/xtensa/predicates.md (const_float_1_operand): Likewise. |
| * cprop.c (implicit_set_cond_p): Likewise. |
| * expmed.c (expand_mult): Likewise. |
| * fold-const.c (const_binop): Likewise. |
| * simplify-rtx.c (simplify_binary_operation_1): Likewise. |
| (simplify_const_binary_operation): Likewise. |
| (simplify_const_relational_operation): Likewise. |
| * tree-call-cdce.c (check_pow): Likewise. |
| (gen_conditions_for_pow_cst_base): Likewise. |
| * tree-inline.c (estimate_num_insns): Likewise. |
| * tree-ssa-dom.c (record_equality): Likewise. |
| * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise. |
| (gimple_expand_builtin_pow): Likewise. |
| (pass_optimize_widening_mul::execute): Likewise. |
| * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. |
| * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. |
| * tree.c (real_zerop, real_onep, real_minus_onep): Likewise. |
| |
| 2015-10-05 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/67783 |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Only |
| consider loop header PHI defs as IVs. |
| |
| 2015-10-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move |
| call handling ... |
| (create_expression_by_pieces): ... here and build GIMPLE |
| calls directly. Use gimple_build API and avoid force_gimple_operand. |
| (insert_into_preds_of_block): Simplify. |
| (do_regular_insertion): Add comment. |
| |
| 2015-10-04 Jason Merrill <jason@redhat.com> |
| |
| * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute. |
| |
| 2015-10-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to |
| check for general register. |
| (ix86_emit_save_regs): Ditto. |
| (ix86_emit_save_regs_using_mov): Ditto. |
| (ix86_emit_restore_regs_using_pop): Ditto. |
| (ix86_emit_restore_regs_using_mov): Ditto. |
| |
| 2015-10-03 Marek Polacek <polacek@redhat.com> |
| |
| * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond. |
| (insn-dfatab.o): Likewise. |
| |
| 2015-10-03 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config.gcc (xtensa*-*-uclinux*): New configuration. |
| * config/xtensa/uclinux.h: New file. |
| * config/xtensa/uclinux.opt: New file. |
| |
| 2015-10-03 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/cpp.texi (Standard Predefined Macros): Document value of |
| __cplusplus for C++14. |
| |
| 2015-10-02 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * gcc.c (process_command): Use spec_machine rather than |
| spec_host_machine to build tooldir_prefix2. |
| |
| 2015-10-02 Thomas Schwinge <thomas@codesourcery.com> |
| Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/nvptx/mkoffload.c (Kind, Vis): Remove enums. |
| (Token, Stmt): Remove structs. |
| (decls, vars, fns): Remove variables. |
| (alloc_comment, append_stmt, is_keyword): Remove macros. |
| (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts) |
| (write_stmt, write_stmts, parse_insn, parse_list_nosemi) |
| (parse_init, parse_file): Remove functions. |
| (read_file): Accept a pointer to a length and store into it. |
| (process): Don't try to parse the input file, just write it out as |
| a string, but looking for maps. Also write out the length. |
| (main): Don't use "-S" to compile PTX code. |
| |
| 2015-10-02 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (optimize_stmt): Note when loop structures need |
| fixups. |
| |
| 2015-10-02 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR target/67822 |
| * config/nvptx/mkoffload.c (main): Scan the argument vector for |
| -fopenmp, and skip generating an offloading image if specified. |
| |
| 2015-10-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * system.h (ROUND_UP): New macro definition. |
| (ROUND_DOWN): Ditto. |
| * ggc-page.c (ROUND_UP): Remove local macro definition. |
| (PAGE_ALIGN): Implement using ROUND_UP macro. |
| |
| * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro. |
| * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro |
| to align values. |
| (ix86_compute_frame_layout): Ditto. |
| (ix86_expand_prologue): Ditto. |
| (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro |
| to round down values. |
| (expand_set_or_movmem_via_rep): Ditto. |
| |
| 2015-10-02 Marek Polacek <polacek@redhat.com> |
| |
| * genemit.c (gen_exp): Remove -Wduplicated-cond hack. |
| |
| 2015-10-02 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-scop-detection.c (loop_ivs_can_be_represented): New. |
| (loop_body_is_valid_scop): Call loop_ivs_can_be_represented. |
| * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb. |
| (free_gimple_bb): Renamed free_gimple_poly_bb. |
| (try_generate_gimple_bb): Hoist loop invariant code. |
| (analyze_drs_in_stmts): Same. |
| (build_scop_drs): Call renamed functions. |
| (new_pbb_from_pbb): Same. |
| (scop_ivs_can_be_represented): Delete as functionality now moved to |
| graphite-scop-detection.c |
| (build_poly_scop): Remove call to scop_ivs_can_be_represented. |
| |
| 2015-10-02 Aditya Kumar <hiraditya@msn.com> |
| |
| * graphite-scop-detection.c (stmt_has_side_effects): New function |
| outlined from stmt_simple_for_scop_p. |
| (graphite_can_represent_stmt): Same. |
| (stmt_simple_for_scop_p): Moved code out of this function for better |
| readability. |
| |
| 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.c (processor_features): Add F_AVX512VBMI, |
| F_AVX512IFMA. |
| (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA. |
| |
| 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete. |
| |
| 2015-10-02 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/67756 |
| * lra-constraints.c (match_reload): Add a new parameter. Use it |
| for creating a pseudo with the same value. |
| (curr_insn_transform): Pass a new argument to match_reload. |
| |
| 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New. |
| (expand_vec_perm_even_odd_1): Handle V64QImode. |
| (ix86_expand_vec_perm_const_1): Try expansion with |
| expand_vec_perm_even_odd_trunc as well. |
| * config/i386/sse.md (VI124_AVX512F): Rename to ... |
| (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend |
| to V54QI. |
| (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ... |
| (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend |
| to V32HI and V16SI. |
| (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name. |
| (define_expand "vec_pack_trunc_<mode>"): Update iterator name. |
| (define_expand "vec_unpacks_lo_<mode>"): Ditto. |
| (define_expand "vec_unpacks_hi_<mode>"): Ditto. |
| (define_expand "vec_unpacku_lo_<mode>"): Ditto. |
| (define_expand "vec_unpacku_hi_<mode>"): Ditto. |
| |
| 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq, |
| -mavx521vbmi, -mavx512ifma. Add missing opindex-es. |
| |
| 2015-10-02 Jason Merrill <jason@redhat.com> |
| |
| PR c/59218 |
| * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p. |
| (diagnose_tm_1_op): Also diagnose volatile accesses in |
| transaction_safe function. |
| |
| 2015-10-02 Jonathan Wakely <jwakely@redhat.com> |
| |
| * system.h (malloc.h): Don't include obsolete header. |
| |
| 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete. |
| (TLS_SECTION_ASM_FLAG): Delete. |
| |
| 2015-10-02 Marek Polacek <polacek@redhat.com> |
| |
| PR c/64249 |
| * doc/invoke.texi: Document -Wduplicated-cond. |
| * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond. |
| (insn-dfatab.o): Likewise. |
| * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond |
| warning. |
| |
| 2015-10-02 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt |
| sequences. |
| |
| 2015-10-02 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern. |
| |
| 2015-10-02 Renlin Li <renlin.li@arm.com> |
| |
| PR target/66776 |
| * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern. |
| |
| 2015-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/67786 |
| PR rtl-optimization/67787 |
| * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if |
| it modifies a reg used in the condition calculation. |
| |
| 2015-10-02 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add |
| alternatives for reads from memory and moves from general-purpose |
| registers. |
| (*aarch64_combinez_be<mode>): Likewise. |
| |
| 2015-10-02 Kai Tietz <ktietz70@googlemail.com> |
| |
| PR target/51726 |
| * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle |
| selectany within this function without need to keep attribute. |
| (i386_pe_encode_section_info): Remove selectany-code. |
| |
| 2015-10-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (has_VN_INFO): New function. |
| (free_scc_vn): Use it. |
| (visit_use): Remove dead code and refactor to use gassign |
| and use less indentation. |
| |
| 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/67788 |
| PR target/67789 |
| * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New. |
| (rs6000_cannot_copy_insn_p): New function. |
| * config/rs6000/rs6000.md (cannot_copy): New attribute. |
| (load_toc_v4_PIC_1_normal): Set cannot_copy. |
| (load_toc_v4_PIC_1_476): Ditto. |
| |
| 2015-10-01 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-scop-detection.c (struct sese_l): New conversion constructor |
| so that this type can be pushed into a vec. |
| (class scop_builder): use sese_l to collect scops. |
| (get_scops): New getter function. |
| (remove_intersecting_scops): Use sese_l instead of scops_p. |
| (intersects): Same. |
| (add_scop): Same. |
| (subsumes): Same. |
| (remove_subscops): Same. |
| (build_scops): Add scops to vec<scops_p> once all the scops have been |
| detected. |
| |
| 2015-10-01 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): |
| Renamed type from gimple_bb_p to gimple_poly_bb_p. |
| (translate_isl_ast_node_user): Same. |
| * graphite-poly.c (new_poly_bb): Same. |
| * graphite-poly.h (gbb_from_bb): Same. |
| * sese.h: Same. |
| * graphite-sese-to-poly.c (new_gimple_bb): |
| gimple_bb_p -> gimple_poly_bb_p |
| (build_scop_scattering): Same. |
| (find_params_in_bb): Same. |
| (add_conditions_to_domain): Same. |
| (sese_dom_walker::before_dom_children): Same. |
| (analyze_drs_in_stmts): Same. |
| (new_pbb_from_pbb): Same. |
| (free_data_refs_aux): New pointer to type base_alias_pair. |
| * graphite-sese-to-poly.h: Same. |
| * sese.c (if_region_set_false_region): Fixed Indentation. |
| (move_sese_in_condition): Same. |
| |
| 2015-10-01 Sebastian Pop <s.pop@samsung.com> |
| Aditya Kumar <aditya.k7@samsung.com> |
| |
| PR tree-optimization/66980 |
| * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false |
| when data reference analysis has failed. |
| |
| 2015-10-01 Sebastian Pop <s.pop@samsung.com> |
| Aditya Kumar <aditya.k7@samsung.com> |
| |
| PR tree-optimization/67754 |
| * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call |
| scev analysis on the same loop nest as analyze_drs_in_stmts. |
| * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and |
| renamed... |
| (try_generate_gimple_bb): Call outermost_loop_in_sese. |
| (analyze_drs_in_stmts): Same. |
| * sese.c (outermost_loop_in_sese): ...here. |
| |
| 2015-10-01 Sebastian Pop <s.pop@samsung.com> |
| Aditya Kumar <aditya.k7@samsung.com> |
| |
| PR tree-optimization/67754 |
| * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing |
| recursion on the inner loops. |
| |
| 2015-10-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c, |
| function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c, |
| tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c, |
| tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c, |
| tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove |
| |
| 2015-10-01 Marek Polacek <polacek@redhat.com> |
| |
| PR c/65345 |
| * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use |
| create_tmp_var_raw rather than create_tmp_var. |
| |
| 2015-10-01 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/67769 |
| * tree-ssa-phiopt.c (conditional_replacement): Call |
| reset_flow_sensitive_info_in_bb. |
| (minmax_replacement): Likewise. |
| (abs_replacement): Likewise. |
| |
| 2015-10-01 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * builtins.c: Don't include gomp-constants.h. |
| (fold_builtin_1): Don't fold acc_on_device here. |
| * gimple-fold.c: Include gomp-constants.h. |
| (gimple_fold_builtin_acc_on_device): New. |
| (gimple_fold_builtin): Call it. |
| |
| 2015-10-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont. |
| (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont. |
| |
| 2015-10-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/aarch-common-protos.h |
| (aarch_accumulator_forwarding): New. |
| (aarch_forward_to_shift_is_not_shifted_reg): Likewise. |
| * config/arm/aarch-common.c (aarch_accumulator_forwarding): New. |
| (aarch_forward_to_shift_is_not_shifted_reg): Likewise. |
| * config/arm/cortex-a53.md: Rewrite. |
| |
| 2015-10-01 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match.h (mprts_hook): Declare. |
| * gimple-match.head.c (mprts_hook): Define. |
| (maybe_push_res_to_seq): Use new hook. |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. |
| * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq. |
| (vn_ssa_aux::has_constants): Remove. |
| * tree-ssa-sccvn.c: Include gimple-match.h. |
| (VN_INFO_GET): Assert we don't re-use SSA names. |
| (vn_get_expr_for): Remove. |
| (expr_has_constants): Likewise. |
| (stmt_has_constants): Likewise. |
| (simplify_binary_expression): Likewise. |
| (simplify_unary_expression): Likewise. |
| (vn_lookup_simplify_result): New hook. |
| (visit_copy): Adjust. |
| (visit_reference_op_call): Likewise. |
| (visit_phi): Likewise. |
| (visit_use): Likewise. |
| (process_scc): Likewise. |
| (init_scc_vn): Likewise. |
| (visit_reference_op_load): Likewise. Use match-and-simplify and |
| a gimple seq for inserted expressions. |
| (try_to_simplify): Remove GENERIC stmt combining code. |
| (sccvn_dom_walker::before_dom_children): Use match-and-simplify. |
| * tree-ssa-pre.c (eliminate_insert): Adjust. |
| (eliminate_dom_walker::before_dom_children): Likewise. |
| |
| 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * doc/invoke.texi (Optimization Options): Add |
| -freorder-blocks-algorithm=. |
| (Optimize Options) <-O>: Add -freorder-blocks. |
| <-O2>: Remove -freorder-blocks. Add -freorder-blocks-algorithm=stc. |
| <-Os>: Add -freorder-blocks-algorithm=stc as not enabled. |
| <-freorder-blocks>: Also enabled at levels -O and -Os. |
| <-freorder-blocks-algorithm=>: Document new option. |
| |
| 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected |
| with flag_reorder_blocks_algorithm. |
| * common.opt (freorder-blocks-algorithm=): New flag. |
| (reorder_blocks_algorithm): New enum. |
| * flag-types.h (reorder_blocks_algorithm): New enum. |
| * opts.c (default_options_table): Use -freorder-blocks at -O1 and up, |
| and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os). |
| |
| 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * bb-reorder.c: Add intro comment. |
| (reorder_basic_blocks_software_trace_cache): Print a header to |
| the dump file. |
| (edge_order): New function. |
| (reorder_basic_blocks_simple): New function. |
| (reorder_basic_blocks): Choose between the STC and the simple |
| algorithms (always choose the former). |
| |
| 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New |
| function, factored out from ... |
| (reorder_basic_blocks): ... here. |
| |
| 2015-10-01 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-cfg.c (dump_function_to_file): Dump function attributes using |
| __attribute__(()) string. Move dumping of function attributes to before |
| function name. |
| |
| 2015-10-01 Lynn Boger <laboger@linux.vnet.ibm.com> |
| |
| PR target/66870 |
| * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define. |
| * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power |
| based on gold linker version. |
| * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if |
| HAVE_GOLD_ALTERNATE_SPLIT_STACK defined. |
| * configure, config.in: Regenerate. |
| |
| 2015-10-01 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set |
| r2_setup_needed when TARGET_SINGLE_PIC_BASE. |
| (rs6000_output_mi_thunk): Likewise. |
| |
| 2015-09-30 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/mkoffload.c (process): Change offload data format. |
| |
| 2015-09-30 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements |
| with constant conditions. |
| * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New. |
| (remove_ctrl_stmt_and_useless_edges): No longer static. |
| * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype. |
| (remove_ctrl_stmt_and_useless_edges): Likewise. |
| |
| 2015-09-30 Nathan Sidwell <nathan@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New. |
| (TARGET_GOACC_VALIDATE_DIMS): Override. |
| * target.def (TARGET_GOACC): New target hook prefix. |
| (validate_dims): New hook. |
| * targhooks.h (default_goacc_validate_dims): New. |
| * omp-low.c (oacc_validate_dims): New. |
| (execute_oacc_device_lower): New. |
| (default_goacc_validate_dims): New. |
| (pass_data_oacc_device_lower): New. |
| (pass_oacc_device_lower): New pass. |
| (make_pass_oacc_device_lower): New. |
| * tree-pass.h (make_pass_oacc_device_lower): Declare. |
| * passes.def (pass_oacc_device_lower): Add it. |
| * doc/tm.texi: Rebuilt. |
| * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook. |
| * doc/invoke.texi (oaccdevlow): Document tree dump flag. |
| |
| 2015-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR rtl-optimization/67037 |
| * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary. |
| |
| 2015-09-30 Bernd Schmidt <bernds@redhat.com> |
| |
| * gimple-ssa.h (gimple_df): Add free_ssanames_queue field. |
| * passes.c: Include tree-ssanames.h. |
| (execute_function_todo): Flush the pending free SSA_NAMEs after |
| eliminating unreachable basic blocks. |
| * tree-ssanames.c (FREE_SSANAMES_QUEUE): new. |
| (init_ssanames): Initialize FREE_SSANAMES_QUEUE. |
| (fini_ssanames): Finalize FREE_SSANAMES_QUEUE. |
| (flush_ssanames_freelist): New function. |
| (release_ssaname_fn): Put released names on the queue. |
| (pass_release_ssa_names::execute): Call flush_ssanames_freelist. |
| * tree-ssanames.h (flush_ssanames_freelist): Declare. |
| |
| 2015-09-30 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag. |
| (generate_target_descr_file, generate_target_offloadend_file) |
| (generate_host_descr_file, prepare_target_image): Pass it on. |
| * config/nvptx/mkoffload.c (main): Parse "-v" flag. |
| (compile_native, main): Pass it on. |
| * lto-wrapper.c (compile_offload_image): Likewise. |
| |
| 2015-09-30 Thomas Schwinge <thomas@codesourcery.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| Andrey Turetskiy <andrey.turetskiy@intel.com> |
| |
| * config/i386/intelmic-mkoffload.c (generate_host_descr_file) |
| (prepare_target_image, main): Refactor argv building to use |
| obstacks. |
| |
| 2015-09-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype. |
| * config/spu/spu.c (spu_expand_atomic_op): New function. |
| * config/spu/spu.md (AINT): New mode iterator. |
| (ATOMIC): New code iterator. |
| (atomic_name, atomic_pred): New code predicates. |
| ("atomic_load<mode>", "atomic_store<mode>"): New expanders. |
| ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise. |
| (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>", |
| "atomic_<atomic_name>_fetch<mode>"): Likewise. |
| |
| 2015-09-30 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore |
| debug insns. |
| (scalar_chain::convert_reg): Likewise. |
| |
| 2015-09-30 Richard Biener <rguenther@suse.de> |
| |
| * builtins.c: Add comment that no new simplifications should |
| be added here. |
| |
| 2015-09-30 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/67690 |
| * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call |
| reset_flow_sensitive_info_in_bb. |
| * tree-ssa-tail-merge.c (replace_block_by): Likewise. |
| * tree-ssanames.c: Include "gimple-iterator.h". |
| (reset_flow_sensitive_info_in_bb): New function. |
| * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare. |
| |
| 2015-09-30 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/i386/intelmic-mkoffload.c (target_ilp32): Remove |
| variable, replacing it with... |
| (offload_abi): ... this new variable. Adjust all users. |
| * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise. |
| |
| 2015-09-30 Matthias Klose <doko@ubuntu.com> |
| |
| * configure.ac: Remove extraneous ;;. |
| * configure: Regenerate. |
| |
| 2015-09-29 James Bowman <james.bowman@ftdichip.com> |
| |
| * config/ft32/predicates.md (ft32_imm_operand): New predicate. |
| * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand |
| predicate, disallow register for operand 2. |
| |
| 2015-09-29 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-dependences.c (scop_get_dependences): Moved in down |
| in order to be visible to its caller. |
| * graphite-poly.h: Removed compute_deps, and extend_schedule. |
| |
| 2015-09-29 Sebastian Pop <s.pop@samsung.com> |
| Aditya Kumar <aditya.k7@samsung.com> |
| |
| PR tree-optimization/67754 |
| * graphite-optimize-isl.c (optimize_isl): Call |
| isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14. |
| |
| 2015-09-29 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * builtins.c (expand_builtin_acc_on_device): Delete. |
| (expand_builtin): Don't call it. |
| (fold_builtin_1): Fold acc_on_device. |
| |
| 2015-09-29 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_function_arg): Fix typo in comments. |
| (ix86_nsaved_sseregs): Likewise. |
| |
| 2015-09-29 Jeff Law <law@redhat.com> |
| |
| * config/microblaze/microblaze.c (microblaze_version_to_int): Remove |
| computation of unused value. |
| |
| * config/pdp11/pdp11.c (pdp11_branch_cost): New function. |
| * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than |
| inline macro expansion. |
| |
| * config/i386/t-interix (winnt-stubs.o): Fix compilation rule. |
| |
| * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour. |
| (gen_shl_sext): Likewise. |
| * config/sh/sh.md (divsi3): Likewise. |
| (imm->ext_dest_operand splitter): Likewise. |
| |
| 2015-09-29 Sebastian Pop <s.pop@samsung.com> |
| Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-sese-to-poly.c (gsi_for_phi_node): Remove. |
| (nb_data_writes_in_bb): Remove. |
| (split_pbb): Remove. |
| (split_reduction_stmt): Remove. |
| (is_reduction_operation_p): Remove. |
| (phi_contains_arg): Remove. |
| (follow_ssa_with_commutative_ops): Remove. |
| (detect_commutative_reduction_arg): Remove. |
| (detect_commutative_reduction_assign): Remove. |
| (follow_inital_value_to_phi): Remove. |
| (edge_initial_value_for_loop_phi): Remove. |
| (initial_value_for_loop_phi): Remove. |
| (used_outside_reduction): Remove. |
| (detect_commutative_reduction): Remove. |
| (translate_scalar_reduction_to_array_for_stmt): Remove. |
| (remove_phi): Remove. |
| (dr_indices_valid_in_loop): Remove. |
| (close_phi_written_to_memory): Remove. |
| (translate_scalar_reduction_to_array): Remove. |
| (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove. |
| (rewrite_commutative_reductions_out_of_ssa_loop): Remove. |
| (rewrite_commutative_reductions_out_of_ssa): Remove. |
| (build_poly_scop): Remove call to |
| rewrite_commutative_reductions_out_of_ssa. |
| |
| 2015-09-29 Evandro Menezes <e.menezes@samsung.com> |
| |
| * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q): |
| Add new insn types for vector load and store pairs. |
| * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn |
| types "neon_ldp{,_q}". |
| * config/arm/cortex-a57.md (neon_load_c): Add insn types |
| "neon_ldp{,_q}". |
| (neon_store_complex): Add insn types "neon_stp{,_q}". |
| * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types |
| "neon_{ldp,stp}_q". |
| |
| 2015-09-29 Jeff Law <law@redhat.com> |
| |
| * config/rx/constraints.md (Int08): Fix undefined left shift |
| behaviour. |
| (Sint08, Sint16, Sint24): Likewise. |
| * config/rx/rx.c (rx_get_stack_layout): Likewise. |
| |
| * config/rl78/rl78-expand.md (movqi): Fix undefined left shift |
| behaviour. |
| |
| * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined |
| left shift behaviour. |
| * config/msp430/constraints.md ('L' constraint): Similarly. |
| ('Ys' constraint): Similarly. |
| |
| 2015-09-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67170 |
| * tree-ssa-alias.h (get_continuation_for_phi): Adjust |
| the translate function pointer parameter to get the |
| bool whether to disambiguate only by reference. |
| (walk_non_aliased_vuses): Likewise. |
| * tree-ssa-alias.c (maybe_skip_until): Adjust. |
| (get_continuation_for_phi_1): Likewise. |
| (get_continuation_for_phi): Likewise. |
| (walk_non_aliased_vuses): Likewise. |
| * tree-ssa-sccvn.c (const_parms): New bitmap. |
| (vn_reference_lookup_3): Adjust for interface change. |
| Disambiguate parameters pointing to readonly memory. |
| (free_scc_vn): Free const_parms. |
| (run_scc_vn): Initialize const_parms from a fn spec attribute. |
| |
| 2015-09-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67741 |
| * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize |
| builtin calls with correct signature. |
| |
| 2015-09-29 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR target/65105 |
| * config/i386/i386.c: Include dbgcnt.h. |
| (has_non_address_hard_reg): New. |
| (convertible_comparison_p): New. |
| (scalar_to_vector_candidate_p): New. |
| (remove_non_convertible_regs): New. |
| (scalar_chain): New. |
| (scalar_chain::scalar_chain): New. |
| (scalar_chain::~scalar_chain): New. |
| (scalar_chain::add_to_queue): New. |
| (scalar_chain::mark_dual_mode_def): New. |
| (scalar_chain::analyze_register_chain): New. |
| (scalar_chain::add_insn): New. |
| (scalar_chain::build): New. |
| (scalar_chain::compute_convert_gain): New. |
| (scalar_chain::replace_with_subreg): New. |
| (scalar_chain::replace_with_subreg_in_insn): New. |
| (scalar_chain::emit_conversion_insns): New. |
| (scalar_chain::make_vector_copies): New. |
| (scalar_chain::convert_reg): New. |
| (scalar_chain::convert_op): New. |
| (scalar_chain::convert_insn): New. |
| (scalar_chain::convert): New. |
| (convert_scalars_to_vector): New. |
| (pass_data_stv): New. |
| (pass_stv): New. |
| (make_pass_stv): New. |
| (ix86_option_override): Created and register stv pass. |
| (flag_opts): Add -mstv. |
| (ix86_option_override_internal): Likewise. |
| * config/i386/i386.md (SWIM1248x): New. |
| (*movdi_internal): Add xmm to mem alternative for TARGET_STV. |
| (and<mode>3): Use SWIM1248x iterator instead of SWIM. |
| (*anddi3_doubleword): New. |
| (*zext<mode>_doubleword): New. |
| (*zextsi_doubleword): New. |
| (<code><mode>3): Use SWIM1248x iterator instead of SWIM. |
| (*<code>di3_doubleword): New. |
| * config/i386/i386.opt (mstv): New. |
| * dbgcnt.def (stv_conversion): New. |
| |
| 2015-09-29 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-cfg.c (dump_function_to_file): Dump function attributes. |
| |
| 2015-09-29 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/67716 |
| * config/sh/sh.c (sh_override_options_after_change): New. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. |
| (sh_option_override): Move align_loops, align_jumps and |
| align_functions handling into sh_override_options_after_change. |
| |
| 2015-09-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h. |
| (nvptx_record_offload_symbol): Record function execution geometry. |
| * config/nvptx/mkoffload.c (process): Include launch geometry in |
| function data. |
| * omp-low.c (oacc_launch_pack): New. |
| (replace_oacc_fn_attrib): New. |
| (set_oacc_fn_attrib): New. |
| (get_oacc_fn_attrib): New. |
| (expand_omp_target): Create keyed varargs for GOACC_parallel call |
| generation. |
| * omp-low.h (get_oacc_fn_attrib): Declare. |
| * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New. |
| (DEF_FUNCTION_TYPE_VAR_11): Delete. |
| * tree.h (OMP_CLAUSE_EXPR): New. |
| * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name. |
| |
| 2015-09-28 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * sese.c (invariant_in_sese_p_rec): Remove unused variable. |
| |
| 2015-09-28 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX. |
| * graphite-scop-detection.c (struct sese_l): New type. |
| (get_entry_bb): API for getting entry bb of SESE. |
| (get_exit_bb): API for getting exit bb of SESE. |
| (class debug_printer): New type. Simple printer in debug mode. |
| (trivially_empty_bb_p): New. Return true when BB is empty or |
| contains only debug instructions. |
| (graphite_can_represent_expr): Call scalar_evoution_in_region |
| instead of analyze_scalar_evolution. Pass in scop instead of only |
| the scop entry. |
| (stmt_has_simple_data_refs_p): Pass in scop instead of only the |
| scop entry. |
| (stmt_simple_for_scop_p): Same. |
| (harmful_stmt_in_bb): Same. |
| (graphite_can_represent_loop): Deleted. |
| (struct scopdet_info): Deleted. |
| (scopdet_basic_block_info): Deleted. |
| (build_scops_1): Deleted. |
| (bb_in_sd_region): Deleted. |
| (find_single_entry_edge): Deleted. |
| (find_single_exit_edge): Deleted. |
| (create_single_entry_edge): Deleted. |
| (sd_region_without_exit): Deleted. |
| (create_single_exit_edge): Deleted. |
| (unmark_exit_edges): Deleted. |
| (mark_exit_edges): Deleted. |
| (create_sese_edges): Deleted. |
| (build_graphite_scops): Deleted. |
| (canonicalize_loop_closed_ssa): Recompute all dominators at the end. |
| (build_scops): Use the new scop_builder to build scops. |
| (dot_all_scops_1): Use the new pretty printer. Print loop father |
| as well. |
| (loop_body_is_valid_scop): New. Return true if loop body is a |
| valid scop. |
| (class scop_builder): New. Builds SCoPs for polyhedral |
| optimizations. |
| (scop_builder): New constructor. |
| (static sese_l invalid_sese): sese_l with invalid edges. |
| (get_sese): Get an sese (from a loop) if possible, invalid_sese |
| otherwise. |
| (get_nearest_dom_with_single_entry): Get nearest dominator of a |
| basic_block with single entry. Return NULL if we get to the |
| beginning of a function. |
| (get_nearest_pdom_with_single_exit): Get nearest post-dominator of |
| a basic_block with single exit. Return NULL if we get to the |
| beginning of a function. |
| (print_sese): Pretty-print SESE. |
| (merge_sese): Merge two SESEs if possible and return the new SESE. |
| (build_scop_depth): Start building the SCoP within a loop nest. |
| (build_scop_breadth): Start building the SCoP at a single loop |
| depth. Merge adjacent SESEs if valid. |
| (can_represent_loop_1): Returns true if Graphite can represent |
| loop inside SCoP. Helper for can_represent_loop. |
| (can_represent_loop): Returns true if Graphite can represent LOOP |
| and all its nested loops in SCoP. |
| (loop_is_valid_scop): Returns true if LOOP and all its nests |
| constitute a valid SCoP. |
| (region_has_one_loop): Returns true of a region has only one loop. |
| (add_scop): Add SCoP to the list of valid scops. Removes an |
| already existing scop if it intersects with or subsumed by this one. |
| (harmful_stmt_in_region): Returns true if SCoP has any statment |
| which cannot be represented by Graphite. |
| (subsumes): Returns true of SCoP S1 subsumes SCoP S2. |
| (remove_subscops): Remove any SCoP from the list of already found |
| SCoPs, if subsumed by S1. |
| (intersects): Return true if region bounded by SCoPs S1 and S2 |
| intersect. |
| (remove_intersecting_scops): Remove any SCoP which intersects with S1. |
| * graphite.c (print_graphite_scop_statistics): |
| (print_graphite_statistics): Print SCoP info while debugging. |
| (graphite_initialize): Early exit in case number of loops in a |
| function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or |
| basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. |
| (graphite_finalize): |
| * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION. |
| * sese.h (sese_loop_depth): Remove unnecessary gcc_assert. |
| (recompute_all_dominators): Recalculate POST_DOMINATORS. |
| * tree-cfg.c (print_loops): Print the function name while printing |
| loops. |
| |
| 2015-09-28 Aditya Kumar <aditya.k7@samsung.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/67700 |
| * graphite-sese-to-poly.c (parameter_index_in_region): Call |
| invariant_in_sese_p_rec. |
| (extract_affine): Same. |
| (rewrite_cross_bb_scalar_deps): Call update_ssa. |
| * sese.c (invariant_in_sese_p_rec): Export. Handle vdefs and vuses. |
| * sese.h (invariant_in_sese_p_rec): Declare. |
| |
| 2015-09-28 David Wohlferd <dw@LimeGreenSocks.com> |
| |
| * doc/extend.texi (Asm Labels): Break out text for data vs functions. |
| |
| 2015-09-28 Jiong Wang <jiong.wang@arm.com> |
| |
| Revert: |
| 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern. |
| * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise. |
| (aarch64_register_move_cost): Likewise. |
| (aarch64_load_symref_appropriately): Invoke the new added pattern if |
| possible. |
| * config/aarch64/constraints.md (Uc0): New constraint. |
| |
| 2015-09-28 Daniel Hellstrom <daniel@gaisler.com> |
| |
| * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon. |
| |
| 2015-09-28 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place |
| SECTION_EXCLUDE in XO mapping class. |
| |
| 2015-09-28 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/54236 |
| * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow |
| and handle ne and eq codes. |
| * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn. |
| (sh_recog_treg_set_expr): Early accept negt_reg_operand. Eearly reject |
| CONST_INT_P. Use reverse_condition. |
| (sh_split_treg_set_expr): Likewise. |
| |
| 2015-09-28 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/types.md (type): Add rotate_imm. |
| * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the |
| ROR immediate case. |
| (*rorsi3_insn_uxtw): Likewise. |
| * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm. |
| * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm. |
| * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm. |
| |
| 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/67481 |
| * ifcvt.c (contains_ccmode_rtx_p): New function. |
| (insn_valid_noce_process_p): Use it. |
| |
| 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/67456 |
| PR rtl-optimization/67464 |
| PR rtl-optimization/67465 |
| * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally |
| move in the mode of x. Handle combination of complex and simple |
| block pairs as well as the case when one is empty. |
| |
| 2015-09-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * doc/gimple.texi: Update references to gimple_statement_base. |
| * gdbhooks.py: Likewise. |
| * gimple.h: Likewise. |
| |
| 2015-09-28 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/driver-sparc.c: map LEON to leon3 |
| |
| 2015-09-28 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE |
| and make it inverse to change default |
| * config/sparc/sync.md: Only use supervisor ASI for CASA when in |
| supervisor mode |
| * doc/invoke.texi: Document change of default |
| |
| 2015-09-28 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return |
| true on %f0 for a target without FPU. |
| * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target |
| without FPU. |
| (untyped_return): Do not load %f0 for a target without FPU. |
| |
| 2015-09-28 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.md (prefetch): |
| Change the predicate of operand 0 to register_operand. |
| |
| 2015-09-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (register_sse4nonimm_operand): New |
| predicate. |
| * config/i386/sse.md (PEXTR_MODE12): New mode iterator. |
| (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode. |
| Use register_sse4nonimm_operand as operand 0 predicate. |
| (*vec_extractv8hi_sse2): Remove insn pattern. |
| (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from |
| *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns. |
| |
| 2015-09-27 Oleg Endo <olegendo@gcc.gnu.org> |
| Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/67391 |
| * config/sh/sh-protos.h (sh_lra_p): Declare. |
| * config/sh/sh.c (sh_lra_p): Make non-static. |
| * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and |
| arith_reg_operand for operands[1]. Remove TARGET_SHMEDIA case. |
| Expand into addsi3_scr if operands[2] if needed. |
| (*addsi3_compact): Rename to *addsi3_compact_lra. Use |
| arith_reg_operand for operands[1]. Allow it only when LRA is enabled. |
| (addsi3_scr, *addsi3): New insn_and_split patterns. |
| |
| 2015-09-27 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR rtl-optimization/64164 |
| PR tree-optimization/67312 |
| PR middle-end/67340 |
| PR middle-end/67490 |
| PR bootstrap/67597 |
| * cfgexpand.c (parm_in_stack_slot_p): Remove. |
| (ssa_default_def_partition): Remove. |
| (get_rtl_for_parm_ssa_default_def): Remove. |
| (set_rtl): Check that RTL assignments match expectations. |
| Loop on SUBREGs, CONCATs and PARALLELs subexprs. Set only the |
| default def location for params and results. Record SSA names |
| or types in REG and MEM attrs, respectively. |
| (set_parm_rtl): New. |
| (expand_one_ssa_partition): Drop logic that assigned MEMs with |
| unassigned addresses. |
| (adjust_one_expanded_partition_var): Don't accept NULL RTL on |
| deferred stack alloc vars. |
| (expand_used_vars): Skip partitions holding parm default defs. |
| Move adjust_one_expanded_partition_var loop... |
| (pass_expand::execute): ... here. Drop redundant assert. |
| Adjust comments before the final loop over all ssa names. |
| Require assigned rtl of parms and results to match exactly. |
| Reset its attributes to match them, not any other variables in |
| the same partition. |
| (expand_debug_expr): Use entry value for PARM's default defs |
| only iff they have zero nondebug uses. |
| * cfgexpand.h (parm_in_stack_slot_p): Remove. |
| (get_rtl_for_parm_ssa_default_def): Remove. |
| (set_parm_rtl): Declare. |
| * doc/invoke.texi: Improve wording. |
| * explow.c (promote_decl_mode): Fix promote_function_mode for |
| result decls not by reference. |
| (promote_ssa_mode): Disregard BLKmode from promote_decl, and |
| bypass TYPE_MODE to get the actual vector mode. |
| * function.c: Include tree-dfa.h. Revert 2015-08-14's and |
| 2015-08-19's changes as follows. Drop include of |
| basic-block.h and df.h. |
| (rtl_for_parm): Remove. |
| (maybe_reset_rtl_for_parm): Remove. |
| (parm_in_unassigned_mem_p): Remove. |
| (use_register_for_decl): Add logic for RESULT_DECLs matching |
| assign_parms' behavior. |
| (split_complex_args): Revert. |
| (assign_parms_augmented_arg_list): Revert. Add comment |
| referencing the logic above. |
| (assign_parm_adjust_stack_rtl): Revert. |
| (assign_parm_setup_block): Revert. Use set_parm_rtl instead |
| of SET_DECL_RTL. Set up a REG if the parm demands so. |
| (assign_parm_setup_reg): Revert. Consolidated SET_DECL_RTL |
| calls into a single set_parm_rtl. Set up a temporary RTL |
| temporarily for expand_assignment. |
| (assign_parm_setup_stack): Revert. Use set_parm_rtl. |
| (assign_parms_unsplit_complex): Revert. Use set_parm_rtl. |
| (assign_bounds): Revert. |
| (assign_parms): Revert. Use set_parm_rtl. |
| (allocate_struct_function): Relayout result and parms of |
| non-abstruct functions. |
| (expand_function_start): Revert. Use set_parm_rtl. If the |
| result is not a hard reg, create a pseudo from the promoted |
| mode of the default def. Promote static chain mode. |
| * tree-outof-ssa.c (remove_ssa_form): Drop unused |
| partition_has_default_def. Set up |
| partitions_for_parm_default_defs. |
| (finish_out_of_ssa): Remove partition_has_default_def. |
| Release partitions_for_parm_default_defs. |
| * tree-outof-ssa.h (struct ssaexpand): Remove |
| partition_has_default_def. Add |
| partitions_for_parm_default_defs. |
| * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and |
| stor-layout.h. |
| (build_ssa_conflict_graph): Fix conflict-detection of default |
| defs of even unused default defs of params and results. |
| (for_all_parms): New. |
| (create_default_def): New. |
| (register_default_def): New. |
| (coalesce_with_default): New. |
| (create_outofssa_var_map): Create default defs for all parms |
| and results, and register their partitions. Add GIMPLE_RETURN |
| operands as coalesce candidates with results. Add default |
| defs of each parm or result as coalesce candidates with its |
| other defs. Mark each result def, and each default def of |
| parms, as used_in_copy. |
| (gimple_can_coalesce_p): Call it. Call use_register_for_decl |
| with the ssa names, even anonymous ones. Drop |
| parm_in_stack_slot_p calls. Require same signedness and |
| alignment. |
| (coalesce_ssa_name): Add coalesce candidates for all defs of |
| each parm and result, even unused ones. |
| (parm_default_def_partition_arg): New type. |
| (set_parm_default_def_partition): New. |
| (get_parm_default_def_partitions): New. |
| * tree-ssa-coalesce.h (get_parm_default_def_partitions): New. |
| * tree-ssa-live.c (partition_view_init): Regard unused defs of |
| parms and results as used. |
| (verify_live_on_entry): Don't error out just because they're |
| not live. |
| |
| 2015-09-26 David Edelsohn <dje.gcc@gmail.com> |
| |
| * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition. |
| (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition. |
| (output_fde): Don't output length for debug_frame on AIX. |
| (output_call_frame_info): Don't output length for debug_frame on AIX. |
| (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not |
| HAVE_XCOFF_DWARF_EXTRAS. |
| (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not |
| HAVE_XCOFF_DWARF_EXTRAS. |
| (output_compilation_unit_header): Don't output length on AIX. |
| (output_pubnames): Don't output length on AIX. |
| (output_aranges): Delete argument. Compute length locally. Don't |
| output length on AIX. |
| (output_line_info): Don't output length on AIX. |
| (dwarf2out_finish): Don't compute aranges_length. |
| * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition. |
| (dw2_asm_output_nstring): Emit .byte not .ascii on AIX. |
| * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct |
| symbol decoration for AIX. |
| (rs6000_xcoff_debug_unwind_info): New. |
| (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op |
| for SECTION_DEBUG. |
| (rs6000_xcoff_declare_function_name): Emit different |
| .function pseudo-op when DWARF2_DEBUG. Don't call |
| xcoffout_declare_function for DWARF2_DEBUG. |
| * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO): |
| Redefine. |
| * config/rs6000/aix71.h: New. |
| * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF |
| locations support. |
| * configure: Regenerate. |
| * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with |
| DWARF support. |
| |
| 2015-09-26 Jeff Law <law@redhat.com> |
| |
| * config/arc/arc.c (arc_output_addsi): Fix left shift undefined |
| behaviour. |
| * config/arc/constraints.md (Cca, C2a): Fix left shift undefined |
| behaviour. |
| |
| * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined |
| behaviour |
| |
| * config/mips/mips.c (mips_compute_frame_info): Fix left shift |
| undefined behaviour. |
| |
| * config/cris/cris.md (asrandb): Fix left shift undefined |
| behaviour. |
| (asrandw): Likewise. |
| |
| 2015-09-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/61578 |
| * lra-constarints.c (match_reload): Check presence of the input pseudo |
| in the output operand. |
| |
| 2015-09-25 Tobias Burnus <burnus@net-b.de> |
| |
| * doc/invoke.texi (-fsanitize): Minor wording tweak. |
| |
| 2015-09-25 Tobias Burnus <burnus@net-b.de> |
| |
| * doc/invoke.texi (-fsanitize): Update URLs. |
| |
| 2015-09-25 Teresa Johnson <tejohnson@google.com> |
| |
| * opts.c (finish_options): Unset -freorder-blocks-and-partition |
| if not using profile. |
| |
| 2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR pretty-print/67567 |
| * pretty-print.c (pp_string): Add gcc_checking_assert. |
| * pretty-print.h (output_buffer_append_r): Likewise. |
| |
| 2015-09-25 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67675 |
| * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and |
| addr2 individually. Don't emit logical or insn if one is known to |
| be aligned approriately. |
| (sh_expand_cmpnstr): Likewise. |
| |
| 2015-09-25 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force |
| __builtin_aarch64_fp[sc]r arguments into a register. |
| |
| 2015-09-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc (x86_archs): Replace lakemount with lakemont. |
| (with_cpu): Likewise. |
| (with_arch): Likewise. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Replace |
| PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT. Replace |
| __tune_lakemount__ with __tune_lakemont__. |
| * config/i386/i386.c (lakemount_cost): Renamed to ... |
| (lakemont_cost): This. |
| (m_LAKEMOUNT): Renamed to ... |
| (m_LAKEMONT): This. |
| (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT. |
| (processor_target_table): Replace "lakemount" with "lakemont". |
| (processor_alias_table): Likewise. |
| (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with |
| PROCESSOR_LAKEMONT. |
| (ix86_adjust_cost): Likewise. |
| (ia32_multipass_dfa_lookahead): Likewise. |
| * config/i386/i386.h (processor_type): Likewise. |
| * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT. |
| * doc/invoke.texi: Replace lakemount with lakemont. Replace |
| Lakemount with Lakemont. |
| |
| 2015-09-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc (x86_archs): Replace iamcu with lakemount. |
| (with_cpu): Likewise. |
| (with_arch): Likewise. |
| * doc/invoke.texi: Likewise. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Replace |
| PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT. Replace |
| __tune_iamcu__ with __tune_lakemount__. |
| * config/i386/i386.c (iamcu_cost): Renamed to ... |
| (lakemount_cost): This. |
| (m_IAMCU): Renamed to ... |
| (m_LAKEMOUNT): This. |
| (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT. |
| (processor_target_table): Replace "iamcu" with "lakemount". |
| (processor_alias_table): Likewise. |
| (ix86_issue_rate): Replace PROCESSOR_IAMCU with |
| PROCESSOR_LAKEMOUNT. |
| (ix86_adjust_cost): Likewise. |
| (ia32_multipass_dfa_lookahead): Likewise. |
| * config/i386/i386.h (processor_type): Likewise. |
| * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT. |
| |
| 2015-09-24 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define. |
| * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop): |
| Declare. |
| * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes. |
| (pa_expand_compare_and_swap_loop): New. |
| (pa_maybe_emit_compare_and_swap_exchange_loop): New. |
| * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi, |
| atomic_storesf, atomic_loaddf, atomic_storedf): New expanders. |
| (atomic_loaddf_1, atomic_storedf_1): New insn patterns. |
| (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1): |
| Revise. |
| |
| 2015-09-24 Michael Collison <michael.collison@linaro.org> |
| |
| PR other/57195 |
| * read-md.c (read_name): Allow mode iterators inside angle |
| brackets in rtl expressions. |
| |
| 2015-09-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/61578 |
| * ira-color.c (update_allocno_cost): Add parameter. |
| (update_costs_from_allocno): Decrease conflict cost. Pass the new |
| parameter. |
| |
| 2015-09-24 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR driver/67640 |
| * opts-common.c (prune_options): Discard all -fdiagnostics-color |
| but the last one, which is moved to the front to be processed |
| first. |
| * opts.c (enable_warning_as_error): Reject options that do not |
| control warnings. |
| |
| 2015-09-24 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support. |
| |
| 2015-09-24 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete. |
| * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_cannot_force_const_mem): Likewise. |
| (aarch64_classify_address): Likewise. |
| (aarch64_classify_symbolic_expression): Likewise. |
| (aarch64_print_operand): Likewise. |
| (aarch64_classify_symbol): Likewise. |
| (aarch64_mov_operand_p): Likewise. |
| * config/aarch64/predicates.md (aarch64_valid_symref): Likewise. |
| (aarch64_mov_operand): Likewise. |
| |
| 2015-09-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (debug_stack_info): Invert the test |
| for info->spe_gp_size. |
| |
| 2015-09-24 Richard Biener <rguenther@suse.de> |
| |
| PR lto/67699 |
| * lto-cgraph.c (compute_ltrans_boundary): Do not stream |
| abstract origins. |
| |
| 2015-09-24 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree-object-size.c (plus_stmt_object_size) |
| (cond_expr_object_size): Change the formal parameters from gimple |
| to gimple *. |
| * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise. |
| * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static. |
| * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare. |
| |
| 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris. |
| Check for ld -type pie on Solaris 11.x and 12. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| * gcc.c (LD_PIE_SPEC): Allow redefinition. |
| |
| * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define. |
| (STARTFILE_SPEC): Use it. |
| (ENDFILE_CRTEND_SPEC): Define. |
| (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC. |
| (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC, |
| ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC. |
| [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define. |
| (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define. |
| * config/i386/sol2.h (ENDFILE_SPEC): Remove. |
| (ENDFILE_ARCH_SPEC): Define. |
| * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define. |
| |
| 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_solaris_crts): New test. |
| * configure. Regenerate. |
| * config.in: Regenerate. |
| * config/sol2.h (STARTFILE_SPEC): Simplify, provide |
| HAVE_SOLARIS_CRTS variant. |
| |
| 2015-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * tree-inline.h (count_insns_seq): Delete prototype. |
| (estimate_num_insns_seq): Define prototype. |
| * tree-inline.c (count_insns_seq): Delete. |
| (estimate_num_insns_seq): Remove static qualifier. |
| * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq |
| with estimate_num_insns_seq. |
| |
| 2015-09-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base |
| members. |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique |
| and base for MEM_REF and TARGET_MEM_REF. Handle BIT_FIELD_REF |
| offset. |
| (ao_ref_init_from_vn_reference): Record clique and base in the |
| built base. |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise |
| |
| 2015-09-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/48885 |
| * tree-ssa-structalias.c (visit_loadstore): Handle default defs |
| as not including any restrict tags from other pointers. |
| |
| 2015-09-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * gcc.c (handle_foffload_option): Don't lose the trailing NUL |
| character when appending to offload_targets. |
| |
| * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate |
| offload targets by commas, not colons. |
| * config.in: Regenerate. |
| * configure: Likewise. |
| * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that, |
| instead of setting up the default offload targets here... |
| (process_command): ..., do it here. |
| libgomp/ |
| * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload |
| targets are separated by commas. |
| * config.h.in: Regenerate. |
| |
| 2015-09-23 Thomas Schwinge <thomas@codesourcery.com> |
| Nathan Sidwell <nathan@codesourcery.com> |
| |
| * omp-low.h (omp_reduction_init_op): Declare. |
| * omp-low.c (omp_reduction_init_op): New, broken out of ... |
| (omp_reduction_init): ... here. Call it. |
| * tree-parloops.c (initialize_reductions): Use |
| omp_reduction_init_op. |
| |
| 2015-09-23 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67662 |
| * fold-const.c (fold_binary_loc): Do not reassociate two vars with |
| undefined overflow unless they will cancel out. |
| |
| 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix |
| insn emit. |
| |
| 2015-09-23 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR c/49655 |
| * opts.h (write_langs): Declare. |
| * opts-global.c (write_langs): Make it extern. |
| |
| 2015-09-23 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67391 |
| * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for |
| overlapping regs when matching the pattern. |
| |
| 2015-09-23 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_float_truncate_hi_v4sf): Rewrite as an expand. |
| (aarch64_float_truncate_hi_v4sf_le): New. |
| (aarch64_float_truncate_hi_v4sf_be): Likewise. |
| |
| 2015-09-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Build |
| representatives for all restrict qualified pointer destinations. |
| |
| 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.md (define_code_attr mshift): New. |
| (define_mode_iterator SWI1248_AVX512BW): Rename ... |
| (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ |
| only. |
| (define_insn "*k<logic><mode>"): Use new iterator name. |
| (define_insn "*<mshift><mode>3"): New. |
| |
| 2015-09-23 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| PR middle-end/67649 |
| * memory-block.h (memory_block_pool::allocate): Use valgrind API to |
| mark the block as accessible. |
| |
| 2015-09-22 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Delete |
| orig_entry_edge argument to try_shrink_wrapping. |
| * shrink-wrap.c (can_get_prologue): New function. |
| (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING. |
| (try_shrink_wrapping): Delete orig_entry_edge argument. Use |
| can_get_prologue where needed. Remove code that finds a single |
| edge for the prologue. Remove code that tests if any reg clobbered |
| by the prologue is live on the prologue edge. Remove code that finds |
| the new prologue edge after duplicating blocks. Make a new prologue |
| block and edge. |
| * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument. |
| |
| 2015-09-22 Jeff Law <law@redhat.com> |
| |
| * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined |
| behavior. |
| |
| 2015-09-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * doc/invoke.texi (-Wmultiple-inheritance, -Wvirtual-inheritance, |
| -Wtemplates, -Wnamespaces): Document. |
| |
| 2015-09-22 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67671 |
| * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict |
| pointer references as restrict. |
| |
| 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_legitimize_address): When handling |
| 'reg + reloc' cases, allow first operand to be non-REG, and use |
| force_reg() to enforce address pattern. |
| |
| 2015-09-22 Alexander Fomin <alexander.fomin@intel.com> |
| |
| PR target/67480 |
| * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New. |
| (define_mode_iterator VI12_AVX_AVX512F): New. |
| (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change |
| all iterators to VI48_AVX_AVX512F. Extract remaining modes ... |
| (define_insn "*<code><mode>3"): ... Into new pattern using |
| VI12_AVX_AVX512F iterators without masking. |
| |
| 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config.gcc: Support "skylake-avx512". |
| * config/i386/i386-c.c (ix86_target_macros_internal): Handle |
| PROCESSOR_SKYLAKE_AVX512. |
| * config/i386/i386.c (m_SKYLAKE_AVX512): Define. |
| (processor_target_table): Add "skylake-avx512". |
| (PTA_SKYLAKE_AVX512): Define. |
| (ix86_option_override_internal): Add "skylake_avx512". |
| (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL |
| F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD. |
| * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define. |
| (processor_type): Add PROCESSOR_SKYLAKE_AVX512. |
| * doc/invoke.texi (skylake-avx512): New. |
| |
| 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.md (define_insn "kunpckhi"): Fix |
| operand in pattern. |
| (define_insn "kunpcksi"): Ditto. |
| (define_insn "kunpckdi"): Ditto. |
| |
| 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.md (define_split not/xor SWI1248x): Use |
| iterator instead of fixed modes. |
| |
| 2015-09-22 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop): |
| Adjust declaration. |
| * config/aarch64/aarch64.c (aarch64_emit_bic): New. |
| (aarch64_gen_atomic_ldop): Adjust comment. Add parameter |
| out_result. Update to support update-fetch operations. |
| * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse): |
| Adjust for change to aarch64_gen_atomic_ldop. |
| (aarch64_atomic_<atomic_optab><mode>_lse): Likewise. |
| (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise. |
| (atomic_<atomic_optab>_fetch<mode>): Change to an expander. |
| (aarch64_atomic_<atomic_optab>_fetch<mode>): New. |
| (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New. |
| |
| 2015-09-22 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_atomic_ldop_supported_p): Declare. |
| * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New. |
| (enum aarch64_atomic_load_op_code): New. |
| (aarch64_emit_atomic_load_op): New. |
| (aarch64_gen_atomic_ldop): Update to support load-operate |
| patterns. |
| * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change |
| to an expander. |
| (aarch64_atomic_<atomic_optab><mode>): New. |
| (aarch64_atomic_<atomic_optab><mode>_lse): New. |
| (atomic_fetch_<atomic_optab><mode>): Change to an expander. |
| (aarch64_atomic_fetch_<atomic_optab><mode>): New. |
| (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New. |
| |
| 2015-09-22 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New. |
| (UNSPECV_ATOMIC_LDOP_OR): New. |
| (UNSPECV_ATOMIC_LDOP_BIC): New. |
| (UNSPECV_ATOMIC_LDOP_XOR): New. |
| (UNSPECV_ATOMIC_LDOP_PLUS): New. |
| (ATOMIC_LDOP): New. |
| (atomic_ldop): New. |
| (aarch64_atomic_load<atomic_ldop><mode>): New. |
| |
| 2015-09-22 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64.md |
| (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named |
| pattern. |
| |
| 2015-09-22 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop): |
| Declare. |
| * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New. |
| (aarch64_gen_atomic_ldop): New. |
| (aarch64_split_atomic_op): Fix whitespace and add a comment. |
| * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New. |
| (aarch64_compare_and_swap<mode>_lse): Fix some whitespace. |
| (atomic_exchange<mode>): Replace with an expander. |
| (aarch64_atomic_exchange<mode>): New. |
| (aarch64_atomic_exchange<mode>_lse): New. |
| (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace. |
| (aarch64_atomic_swp<mode>): New. |
| |
| 2015-09-22 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * tree-inline.c (expand_call_inline): Use inform for extra note. |
| Do not give a note with UNKNOWN_LOCATION. |
| Replace input_location with gimple_location (stmt). |
| Use true/false instead of TRUE/FALSE. |
| |
| 2015-09-22 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/67666 |
| * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct |
| with single field non-conservative. |
| |
| 2015-09-21 David S. Miller <davem@davemloft.net> |
| |
| PR/67622 |
| Revert: |
| 2015-09-11 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/constraints.md: Make "U" constraint a real register |
| constraint. |
| * config/sparc/sparc.c (TARGET_LRA_P): Define. |
| (D_MODES, DF_MODES): Add missing cast. |
| (TF_MODES, TF_MODES_NO_S): Include T_MODE. |
| (OF_MODES, OF_MODES_NO_S): Include O_MODE. |
| (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory |
| cost to 8. |
| * config/sparc/sparc.h (PROMOTE_MODE): Define. |
| * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not |
| provide these insn when flag_pic. |
| |
| 2015-09-17 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): |
| Declare. |
| * config/sparc/sparc.c (sparc_secondary_memory_needed): New |
| function. |
| * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it. |
| (HARD_REGNO_CALLER_SAVE_MODE): Define. |
| * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44) |
| (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi) |
| (embmedany_losum, embmedany_brsum, embmedany_textuhi) |
| (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not |
| provide when flag_pic. |
| |
| 2015-09-21 Jeff Law <law@redhat.com> |
| |
| * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined |
| behavior. |
| |
| 2015-09-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior. |
| |
| 2015-09-21 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (rest_of_decl_compilation): Do not call |
| dwarf2out_early_global_decl for aliases. |
| |
| 2015-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR debug/67664 |
| * dwarf2out.c (add_location_or_const_value_attribute): Remove |
| attribute parameter. Early exit if either DW_AT_const_value |
| or DW_AT_location are present already. |
| (gen_variable_die): Adjust caller. |
| (dwarf2out_late_global_decl): Likewise. |
| |
| 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67657 |
| * config/sh/sh.c (sh_remove_overlapping_post_inc, |
| sh_peephole_emit_move_insn): Add new functions. |
| * config/sh/sh-protos.h (sh_remove_overlapping_post_inc, |
| sh_peephole_emit_move_insn): Declere them. |
| * config/sh/sh.md: Use them in various peephole2 patterns. |
| |
| 2015-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67651 |
| * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero |
| address with -fno-delete-null-pointer-checks. |
| |
| 2015-09-21 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to... |
| (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract. |
| (reduc_uplus_v16qi): Remove. |
| |
| * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus". |
| (reduc_<VEC_reduc_name>_v2df): Remove. |
| (reduc_<VEC_reduc_name>_v4sf): Remove. |
| (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New. |
| |
| * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare |
| gen_ function by removing * prefix. |
| (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise. |
| |
| 2015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR middle-end/60832 |
| * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations): |
| Print i_bound without converting it to a tree. |
| |
| 2015-09-21 Bilyan Borisov <bilyan.borisov@arm.com> |
| |
| * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced |
| operands[4] operands[5] swap with std::swap, removed tmp variable. |
| (arm_evpc_neon_vzip): Replaced in0/in1 and |
| out0/out1 swaps with std::swap, removed x variable. |
| (arm_evpc_neon_vtrn): Replaced in0/int1 and |
| out0/out1 swaos with std::swap, removed x variable. |
| (arm_expand_vec_perm_const_1): Replaced |
| d->op0/d->op1 swap with std::swap, removed x variable. |
| (arm_evpc_neon_vuzp): Replaced in0/in1 and |
| out0/out1 swaps with std::swap, removed x variable. |
| |
| 2015-09-21 Jonathan Yong <10walls@gmail.com> |
| |
| * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search |
| sysroot/usr/lib/32api for additional win32 libraries, |
| fixes failing Cygwin bootstrapping. |
| |
| 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options. |
| |
| 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67126 |
| * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A. |
| (*mov_t_msb_neg): Rewrite negc pattern. |
| |
| 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup |
| immediate generation code. |
| |
| 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove |
| redundant immediate generation code. |
| |
| 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_bitmasks): Remove. |
| (AARCH64_NUM_BITMASKS): Remove. |
| (aarch64_bitmasks_cmp): Remove. |
| (aarch64_build_bitmask_table): Remove. |
| |
| 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace |
| slow immediate matching loops with a faster algorithm. |
| |
| 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using |
| faster algorithm. |
| |
| 2015-09-20 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (record_temporary_equivalences): No longer static. |
| * tree-ssa-dom.h (record_temporary_equivalences): Add prototype. |
| * tree-ssa-threadedge.c: Include tree-ssa-dom.h. |
| (thread_through_normal_block): Use record_temporary_equivalences. |
| |
| 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * coretypes.h (gimple): Change typedef to be a forward declaration. |
| * gimple.h (gimple_statement_base): rename to gimple. |
| * (all functions and types using gimple): Adjust. |
| * *.[ch]: Likewise. |
| |
| 2015-09-19 Andrew Dixie <andrewd@gentrack.com> |
| David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete. |
| (ASM_PREFERRED_EH_DATA_FORMAT): Define. |
| (EH_FRAME_THROUGH_COLLECT2): Define. |
| (EH_TABLES_CAN_BE_READ_ONLY): Define. |
| (ASM_OUTPUT_DWARF_PCREL): Define. |
| (ASM_OUTPUT_DWARF_DATAREL): Define. |
| |
| 2015-09-19 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment |
| of TARGET_ELF32. |
| |
| 2015-09-18 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped. Move |
| it here ... |
| (dom_opt_dom_walker): New private member holding the avail_exprs_stack |
| object. Update constructor. |
| (pass_dominator::execute): Corresponding chagnes to declaration |
| and initialization of avail_exprs_stack. Update constructor call |
| for dom_opt_dom_walker object. |
| (lookup_avail_expr, record_cond): Accept additional argument. Pass |
| it down to children as needed. |
| (record_equivalences_from_incoming_edge): Likewise. |
| (eliminate_redundant_computations): Likewise. |
| (record_equivalences_from_stmt): Likewise. |
| (simplify_stmt_for_jump_threading): Likewise. |
| (record_temporary_equivalences): Likewise. |
| (optimize_stmt): Likewise. |
| (dom_opt_dom_walker::thread_across_edge): Update access to |
| avail_exprs_stack object and pass it to children as needed. |
| (dom_opt_dom_walker::before_dom_children): Similarly. |
| (dom_opt_dom_walker::after_dom_children): Similarly. |
| * tree-ssa-threadedge.c (pfn_simplify): New typedef. |
| (record_temporary_equivalences_from_stmts_at_dest): Use new typedef. |
| Add avail_expr_stack argument. Pass it to children as needed. |
| (dummy_simplify): Likewise. |
| (simplify_control_stmt_condition): Likewise. |
| (thread_around_empty_blocks): Likewise. |
| (thread_through_normal_block): Likewise. |
| (thread_across_edge): Likewise. |
| * tree-ssa-threadedge.h (thread_across_edge): Update prototype. |
| * tree-vrp.c (simplify_stmt_for_jump_threading): Update. |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (const_and_copies): No longer file scoped. Move |
| it here ... |
| (dom_opt_dom_walker): New private member holding the const_and_copies |
| object. Update constructor. |
| (pass_dominator::execute): Corresponding changes to declaration |
| and initialization of const_and_copies. Update constructor call |
| for the dom_opt_dom_walker object. |
| (record_temporary_equivalences): Accept const_and_copies argument |
| pass it down to children as needed. |
| (record_equality): Likewise. |
| (record_equivalences_from_incoming_edge): Likewise. |
| (cprop_into_successor_phis, optimize_stmt): Likewise. |
| (eliminate_redundant_computations): Likewise. |
| (dom_opt_dom_walker::thread_across_edge): Update access to |
| const_and_copies object and pass it to children as needed. |
| (dom_opt_dom_walker::before_dom_children): Similarly. |
| (dom_opt_dom_walker::after_dom_children): Similarly. |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (avail_exprs): No longer file scoped. Bury |
| it into the avail_exprs_stack class. |
| (pass_dominator::execute): Corresponding changes to declaration |
| and initialization of avail_exprs. Pass avail_exprs to |
| dump_dominator_optimization_stats. |
| (record_cond): Extract avail_exprs from avail_exprs_stack. |
| (lookup_avail_expr): Similarly. |
| (htab_staticstics): Remove unnecessary prototype. Move to earlier |
| position in file. |
| (dump_dominator_optimization_stats): Make static and prototype. |
| Add argument for the hash table to dump. |
| (debug_dominator_optimization_stats): Remove. |
| * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove |
| prototype. |
| (debug_dominator_optimization_stats): Similarly. |
| * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing |
| "void" in prototype for pop_to_marker method. Add accessor method |
| for the underlying avail_exprs table. |
| |
| * tree-ssa-threadedge.c: Remove trailing whitespace. |
| |
| 2014-09-18 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to |
| unsigned. |
| (pa_ldil_cint_p): Likewise. |
| * config/pa/pa.c (pa_cint_ok_for_move): likewise. |
| (pa_ldil_cint_p): Likewise. Change signed casts to unsigned. |
| Update callers. |
| * config/pa/pa.md: Likewise. |
| |
| 2015-09-18 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o. |
| * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c. |
| (diagnostic_show_locus): Likewise. |
| (diagnostic_print_caret_line): Likewise. |
| * diagnostic-show-locus.c: New file. |
| |
| 2015-09-18 David Edelsohn <dje.gcc@gmail.com> |
| |
| * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to |
| "back" parameter. Declare label in #if block. |
| |
| 2015-09-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/67619 |
| * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy |
| the address to a register. |
| |
| 2015-09-18 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o |
| * tree-ssa-dom.c: Remove unnecessary header includes. |
| (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c |
| (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise. |
| (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise. |
| (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise. |
| (pass_phi_only_cprop::execute): Likewise. |
| (make_pass_phi_only_cprop): Likewise. |
| * tree-ssa-phionlycprop.c: New file with moved code. Eliminate |
| uses of file scoped statics by passing the required objects |
| as parameters wherever needed. |
| |
| 2015-09-18 Andrew Dixie <andrewd@gentrack.com> |
| David Edelsohn <dje.gcc@gmail.com> |
| |
| * defaults.h (EH_FRAME_SECTION_NAME): Depend on |
| EH_FRAME_THROUGH_COLLECT2. |
| * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for |
| DW_EH_PE_datarel. |
| * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section |
| even if EH_FRAME_SECTION_NAME is undefined. Restrict special |
| collect2 labels to EH_FRAME_THROUGH_COLLECT2. |
| * except.c (switch_to_exception_section): Use a read-only section |
| even if EH_FRAME_SECTION_NAME is undefined. |
| * system.h (EH_FRAME_IN_DATA_SECTION): Poison. |
| * collect2.c (write_c_file_stat): Provide dbase on AIX. |
| (scan_prog_file): Don't export __dso_handle nor |
| __gcc_unwind_dbase. |
| * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. |
| (EH_TABLES_CAN_BE_READ_ONLY): Define. |
| (ASM_OUTPUT_DWARF_PCREL): Define. |
| (ASM_OUTPUT_DWARF_DATAREL): Define. |
| (EH_FRAME_THROUGH_COLLECT2): Define. |
| (EH_FRAME_IN_DATA_SECTION): Delete. |
| * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o. |
| * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel): |
| Declare. |
| (rs6000_asm_output_dwarf_datarel): Declare. |
| * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New. |
| (rs6000_aix_asm_output_dwarf_datarel): New. |
| (rs6000_xcoff_asm_init_sections): Don't set exception_section. |
| * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete. |
| (EH_FRAME_THROUGH_COLLECT2): Define. |
| * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete. |
| (EH_FRAME_THROUGH_COLLECT2): Define. |
| (EH_TABLES_CAN_BE_READ_ONLY): Define. |
| * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete. |
| (EH_FRAME_THROUGH_COLLECT2): New. |
| (ASM_OUTPUT_DWARF_DATAREL): New. |
| * doc/tm.texi: Regenerate. |
| |
| 2015-09-18 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert |
| we're in early phase. |
| (schedule_generic_params_dies_gen): Likewise. |
| (gen_remaining_tmpl_value_param_die_attribute): Do only as much |
| work as possible, retaining unhandled cases. |
| (gen_scheduled_generic_parms_dies): Set early-dwarf flag and |
| clear out generic_type_instances at the end. |
| (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies... |
| (dwarf2out_early_finish): ... here. Do most of |
| gen_remaining_tmpl_value_param_die_attribute here. |
| |
| 2015-09-18 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/67283 |
| * tree-sra.c (type_consists_of_records_p): Rename to... |
| (scalarizable_type_p): ...this, add case for ARRAY_TYPE. |
| (completely_scalarize_record): Rename to... |
| (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to: |
| (scalarize_elem): New. |
| (analyze_all_variable_accesses): Follow renamings. |
| |
| 2015-09-18 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (add_location_or_const_value_attribute): Do nothing |
| in early-dwarf. |
| |
| 2015-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66142 |
| * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF |
| treat MEM[&x] and x the same. |
| * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove. |
| * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true |
| when we simplified sth. |
| (vn_reference_maybe_forwprop_address): Likewise. |
| (valueize_refs_1): When we simplified through |
| vn_reference_fold_indirect or vn_reference_maybe_forwprop_address |
| set valueized_anything to true. |
| (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether |
| one ref kills the other instead of just a offset-based test. |
| * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF |
| for the operand_equal_p test to compare bases and also compare |
| sizes. |
| |
| 2015-09-17 Christian Bruel <christian.bruel@st.com> |
| |
| * config/arm/arm.md (*call_value_symbol): Fix operand for interworking. |
| |
| 2015-09-17 Richard Henderson <rth@redhat.com> |
| |
| PR libstdc++/65913 |
| * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake |
| pointers that encode the alignment of the object. |
| |
| 2015-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/66790 |
| * df-problems.c (LIVE): Amend documentation. |
| |
| 2015-09-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o |
| and optabs-tree.o. |
| (GTFILES): Replace optabs.c with optabs-libfunc.c. |
| * genopinit.c (main): Add an include guard to insn-opinit.h. |
| Protect the rtx_code parts with NUM_RTX_CODE. |
| * optabs.h: Split parts out to... |
| * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files. |
| * optabs.c: Split parts out to... |
| * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files. |
| * cilk-common.c: Include optabs-query.h rather than optabs.h. |
| * fold-const.c: Likewise. |
| * target-globals.c: Likewise. |
| * tree-if-conv.c: Likewise. |
| * tree-ssa-forwprop.c: Likewise. |
| * tree-ssa-loop-prefetch.c: Likewise. |
| * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h. |
| Remove unncessary include files. |
| * tree-ssa-phiopt.c: Likewise. |
| * tree-ssa-reassoc.c: Likewise. |
| * tree-switch-conversion.c: Likewise. |
| * tree-vect-data-refs.c: Likewise. |
| * tree-vect-generic.c: Likewise. |
| * tree-vect-loop.c: Likewise. |
| * tree-vect-patterns.c: Likewise. |
| * tree-vect-slp.c: Likewise. |
| * tree-vect-stmts.c: Likewise. |
| * tree-vrp.c: Likewise. |
| * toplev.c: Include optabs-query.h and optabs-libfuncs.h |
| rather than optabs.h. |
| * expr.c: Include optabs-tree.h. |
| * function.c: Likewise. |
| |
| 2015-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/65958 |
| * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define. |
| * config/arm/arm-protos.h (output_probe_stack_range): Declare. |
| * config/arm/arm.c: Include common/common-target.h. |
| (use_return_insn): Return 0 if the static chain register was saved |
| above a non-APCS frame. |
| (arm_compute_static_chain_stack_bytes): Adjust for stack checking. |
| (struct scratch_reg): New. |
| (get_scratch_register_on_entry): New function. |
| (release_scratch_register_on_entry): Likewise. |
| (arm_emit_probe_stack_range): Likewise. |
| (output_probe_stack_range): Likewise. |
| (arm_expand_prologue): Factor out code dealing with the IP register |
| for nested function and adjust it for stack checking. |
| Invoke arm_emit_probe_stack_range if static builtin stack checking |
| is enabled. |
| (thumb1_expand_prologue): Sorry out if static builtin stack checking |
| is enabled. |
| (arm_expand_epilogue): Add the saved static chain register, if any, to |
| the amount of pre-pushed registers to pop. |
| (arm_frame_pointer_required): Return true if static stack checking is |
| enabled and we want to catch the exception with the EABI unwinder. |
| * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant. |
| (UNSPEC_PROBE_STACK_RANGE): Likewise. |
| * config/arm/arm.md (probe_stack): New insn. |
| (probe_stack_range): Likewise. |
| |
| 2015-09-17 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (parser::parse_expr): Improve error message |
| for mis-placed flags. |
| |
| 2015-09-17 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (rest_of_decl_compilation): Always call early_global_decl |
| debug hook when we created a varpool node. |
| * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call |
| dwarf2out_early_global_decl, when not just add location or |
| value attributes to existing DIEs. |
| |
| 2015-09-17 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (copysigndf3): New. |
| (copysignsf3): Likewise. |
| |
| 2015-09-17 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare. |
| * config/sparc/sparc.c (sparc_secondary_memory_needed): New function. |
| * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it. |
| (HARD_REGNO_CALLER_SAVE_MODE): Define. |
| * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44) |
| (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi) |
| (embmedany_losum, embmedany_brsum, embmedany_textuhi) |
| (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not |
| provide when flag_pic. |
| |
| 2015-09-17 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (label_ref_list_d_pool): Adjust to |
| object_allocator change. |
| |
| 2015-09-17 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/66388 |
| * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields. |
| (dump_iv): Dump no_overflow information. |
| (alloc_iv): Initialize new field for struct iv. |
| (mark_bivs): Count number of no_overflow bivs. |
| (find_deriving_biv_for_expr, record_biv_for_address_use): New |
| functions. |
| (idx_find_step): Call new functions above. |
| (add_candidate_1, add_candidate): New paramter. |
| (add_iv_candidate_for_biv): Add sizetype cand for BIV. |
| (get_computation_aff): Simplify convertion of cand for BIV. |
| (get_computation_cost_at): Step cand's base if necessary. |
| |
| 2015-09-17 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New |
| parameter. |
| (tree_simplify_using_condition): Ditto. |
| (simplify_using_initial_conditions): Ditto. |
| (loop_exits_before_overflow): Pass new argument to function |
| simplify_using_initial_conditions. Remove case for type conversions |
| simplification. |
| * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New |
| parameter. |
| * tree-scalar-evolution.c (simple_iv): Simplify type conversions |
| in iv base using loop initial conditions. |
| |
| 2015-09-16 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos. |
| (free_all_edge_infos): Use it. |
| (allocate_edge_info): Free preexisting edge info data. |
| (pass_dominator::execute): Set up initial edge info structures. |
| (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to |
| thread_across_edge. |
| * tree-ssa-threadedge.c (thread_across_edge): Accept new argument. |
| If non-null, then push/pop markers appropriately. |
| * tree-ssa-threadedge.h (thread_across_edge): Update prototype. |
| * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to |
| thread-across_edge. |
| |
| 2015-09-16 James Bowman <james.bowman@ftdichip.com> |
| |
| * config/ft32/ft32.c: Fix the memory address space predicate. |
| |
| 2015-09-16 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/67573 |
| * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand. |
| (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise. |
| |
| 2015-09-16 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * toplev.h (check_global_declaration): Remove declaration. |
| * toplev.c (check_global_declaration): Move to ... |
| * cgraphunit.c: ... here. Make it static and pass a symtab_node *. |
| (analyze_functions): Update call. |
| |
| 2015-09-16 David S. Miller <davem@davemloft.net> |
| |
| * lra-constraints.c (simplify_operand_subreg): Do not assume that |
| lowpart of a SUBREG has offset zero. |
| |
| 2015-09-16 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (enum expr_kind): Moved from here to |
| tree-ssa-scopedtables.h. |
| (struct hashable_expr, class expr_hash_elt): Likewise. |
| (struct expr_elt_hasher, class avail_exprs_stack): Likewise. |
| Move associated methods into tree-ssa-scopedtables.c. |
| (avail_expr_hash, initialize_expr_from_cond): Similarly. |
| (hashable_expr_equal_p, add_expr_commutative): Likewise. |
| (add_hashable_expr): Likewise. |
| (record_cond): Delete element directly. |
| * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add |
| private copy ctor and assignment operator methods. |
| (expr_elt_hasher): Inline trivial methods. |
| (initialize_expr_from_cond): Prototype. |
| * tree-ssa-scopedtables.c: Add necessary includes, functions and |
| methods that were previously in tree-ssa-dom.c. Improve various |
| comments. |
| |
| 2015-09-16 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation. |
| |
| 2015-09-16 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR bootstrap/67587 |
| * function.c (rest_of_handle_thread_prologue_and_epilogue): Call |
| fixup_partitions. |
| |
| 2015-09-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67253 |
| * cfgexpand.c (expand_gimple_stmt_1): Do not clobber |
| location of possibly shared trees. |
| |
| 2015-09-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67271 |
| * fold-const.c (native_encode_expr): Bail out on bogus offsets. |
| |
| 2015-09-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for |
| offset and size computations instead of HOST_WIDE_INT. |
| |
| 2015-09-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67442 |
| * fold-const.c (extract_muldiv_1): Properly extend multiplication |
| result before builting a tree via wide_int_to_tree. |
| |
| 2015-09-16 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * Makefile.in: Add memory-block.cc |
| (pool_allocator::initialize): Use fixed block size. |
| (pool_allocator::release): Use memory_block_pool. |
| (pool_allocator::allocate): Likewise. |
| * asan.c (asan_mem_ref_pool): Adjust to use common block size in all |
| object pools. |
| * cfg.c (initialize_original_copy_tables): Likewise. |
| * cselib.c (elt_list_pool, elt_loc_list_pool, |
| cselib_val_pool): Likewise. |
| * df-problems.c (df_chain_alloc): Likewise. |
| * df-scan.c (df_scan_alloc): Likewise. |
| * dse.c (cse_store_info_pool, rtx_store_info_pool, |
| read_info_type_pool, insn_info_type_pool, bb_info_pool, |
| group_info_pool, deferred_change_pool): Likewise. |
| * et-forest.c (et_nodes, et_occurrences): Likewise. |
| * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool, |
| ipcp_agg_lattice_pool): Likewise. |
| * ipa-inline-analysis.c (edge_predicate_pool): Likewise. |
| * ipa-profile.c (histogram_pool): Likewise. |
| * ipa-prop.c (ipa_refdesc_pool): Likewise. |
| * ira-build.c (live_range_pool, allocno_pool, object_pool, |
| initiate_cost_vectors, pref_pool, copy_pool): Likewise. |
| * ira-color.c (update_cost_record_pool): Likewise. |
| * lra-lives.c (lra_live_range_pool): Likewise. |
| * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise. |
| * memory-block.cc: New file. |
| * memory-block.h: New file. |
| * regcprop.c (queued_debug_insn_change_pool): Use common block size. |
| * sched-deps.c (sched_deps_init): Likewise. |
| * sel-sched-ir.c (sched_lists_pool): Likewise. |
| * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise. |
| * tree-sra.c (access_pool): Likewise. |
| * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. |
| * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise. |
| * tree-ssa-reassoc.c (operand_entry_pool): Likewise. |
| * tree-ssa-sccvn.c (allocate_vn_table): Likewise. |
| * tree-ssa-strlen.c (strinfo_pool): Likewise. |
| * tree-ssa-structalias.c (variable_info_pool): Likewise. |
| * var-tracking.c (attrs_def_pool, var_pool, valvar_pool, |
| location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise. |
| |
| 2015-09-15 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New |
| definition. |
| (DWARF_FRAME_REGISTERS): Reserve space for one extra register in |
| call0 ABI. |
| |
| 2015-09-15 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2 |
| to pass TLS call argument, according to current ABI. |
| * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or |
| callx0 for TLS call, according to current ABI. |
| |
| 2015-09-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-eh.c (lower_try_finally_dup_block): Clear location information |
| on stack restore statements. |
| (decide_copy_try_finally): Do not consider a stack restore statement as |
| coming from sources. |
| |
| 2015-09-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_expand_block_clear): Use |
| HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting. |
| |
| 2015-09-15 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors, |
| methods and private members. |
| (avail_exprs_stack): Similarly. Change type of global |
| from a pair of expr_hash_elt_t to the new class. |
| (expr_elt_hasher::hash): Corresponding changes. |
| (expr_elt_hasher::equal): Similarly. |
| (avail_expr_hash): Similarly. |
| (pass_dominator::execute): Similarly. |
| (dom_opt_dom_walker::thread_across_edge): Similarly. |
| (record_cond): Similarly. |
| (dom_opt_dom_walker::before_dom_children): Similarly. |
| (dom_opt_dom_walker::after_dom_children): Similarly. |
| (lookup_avail_expr): Likewise. |
| (initialize_hash_element): Now a expr_hash_elt constructor. |
| (initialize_hash_element_from_expr): Similarly. |
| (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt. |
| (free_expr_hash_elt): Call dtor for the element. |
| (remove_local_expressions_from_table): Now the "pop_to_marker" |
| method in the available_exprs_stack class. |
| (avail_expr_stack::record_expr): Method factored out. |
| (print_expr_hash_elt): Now a method in the expr_hash_elt class. |
| Fix formatting. |
| (hashable_expr_equal_p): Fix formatting. |
| |
| 2015-09-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * input.h (location_get_source_line): Drop "expanded_location" |
| param in favor of a file and line number. |
| * input.c (location_get_source_line): Likewise. |
| (dump_location_info): Update for change in signature of |
| location_get_source_line. |
| * diagnostic.c (diagnostic_print_caret_line): Likewise. |
| |
| 2015-09-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions. |
| Bump to 4KB for SJLJ exceptions. |
| (STACK_CHECK_PROTECT): Likewise. Bump to 8KB for SJLJ exceptions. |
| * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust. |
| * doc/tm.texi: Regenerate. |
| |
| 2015-09-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead |
| of -1 when shifting. Change type of val to unsigned HOST_WIDE_INT. |
| Update prototype. |
| |
| 2015-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67470 |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI |
| structure for PHI hoisting by inserting a forwarder block |
| if appropriate. |
| |
| 2015-09-15 Christian Bruel <christian.bruel@st.com> |
| |
| * config/arm/arm.c (TARGET_OPTION_PRINT): Define. |
| (arm_option_print): New function. |
| |
| 2015-09-15 Christian Bruel <christian.bruel@st.com> |
| |
| PR target/52144 |
| * config/arm/arm.c (arm_option_params_internal): Remove opts parameter. |
| * config/arm/arm-c.c (arm_cpu_builtins): Declare static. |
| Remove flags parameter. |
| * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P) |
| (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P) |
| (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P) |
| (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with... |
| (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX) |
| (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX) |
| (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros. |
| * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New. |
| |
| * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add |
| AARCH64_VALID_SIMD_DREG_MODE. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>, |
| aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making... |
| (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this. |
| (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>, |
| aarch64_ld4_lane<mode>): Combine together, making... |
| (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this. |
| (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>, |
| aarch64_st4_lane<mode>): Combine together, making... |
| (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this. |
| * config/aarch64/iterators.md (nregs): Add comment. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): |
| Change operand mode from <V_TWO_ELEM> to BLK. |
| (aarch64_vec_load_lanesoi_lane<mode>): Likewise. |
| (aarch64_vec_store_lanesoi_lane<mode): Likewise |
| (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size. |
| (aarch64_ld2_lane<mode>): Likewise. |
| (aarch64_st2_lane<VQ:mode>): Likewise. |
| * config/aarch64/iterators.md (V_TWO_ELEM): Remove. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>): |
| Change operand mode from <V_FOUR_ELEM> to BLK. |
| (aarch64_vec_load_lanesxi_lane<mode>): Likewise. |
| (aarch64_vec_store_lanesxi_lane<mode): Likewise. |
| (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size. |
| (aarch64_ld4_lane<mode>): Likewise. |
| (aarch64_st4_lane<mode>): Likewise. |
| * config/aarch64/iterators.md (V_FOUR_ELEM): Remove. |
| |
| 2015-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67563 |
| * gimple-fold.c (gimplify_and_update_call_from_tree): Do not |
| transfer EH info from old to new stmt. |
| (replace_call_with_value): Likewise. |
| (replace_call_with_call_and_fold): Likewise. |
| (gimple_fold_builtin_memory_op): Likewise. |
| (gimple_fold_builtin_memset): Likewise. |
| (gimple_fold_builtin_stpcpy): Likewise. |
| (gimple_fold_call): Likewise. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update |
| comment. |
| * config/aarch64/aarch64-builtins.c (ei_UP): Remove. |
| (aarch64_simd_intEI_type_node): Likewise. |
| (aarch64_simd_builtin_std_type): Remove EImode case. |
| (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node. |
| * config/aarch64/aarch64-modes.def: Remove EImode. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>): |
| Change operand mode from <V_THREE_ELEM> to BLK. |
| (aarch64_vec_load_lanesci_lane<mode>): Likewise. |
| (aarch64_vec_store_lanesci_lane<mode>): Likewise. |
| (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size. |
| (aarch64_ld3_lane<mode>): Likewise. |
| (aarch64_st3_lane<mode>): Likewise. |
| * config/aarch64/iterators.md (V_THREE_ELEM): Remove. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ): |
| Change all TImode operands to BLKmode. |
| (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX): |
| Change all EImode operands to BLKmode. |
| (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX): |
| Change all OImode operands to BLKmode. |
| |
| (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode |
| and call set_mem_size. |
| (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise. |
| |
| * config/aarch64/iterators.md (VSTRUCT_DREG): Remove. |
| |
| 2015-09-15 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename |
| to... |
| (aarch64_vec_store_lanesoi_lane<mode>): ...this. |
| |
| (vec_store_lanesci_lane<mode>): Rename to... |
| (aarch64_vec_store_lanesci_lane<mode>): ...this. |
| |
| (vec_store_lanesxi_lane<mode>): Rename to... |
| (aarch64_vec_store_lanesxi_lane<mode>): ...this. |
| |
| (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>, |
| aarch64_st4_lane<mode>): Follow renaming. |
| |
| 2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_const_operand_ok): Add missing |
| brackets. |
| |
| 2015-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR lto/67568 |
| * lto-streamer.h (lto_location_cache::current_sysp): Properly |
| initialize. |
| * lto-streamer-out.c (clear_line_info): Likewise. |
| |
| 2015-09-15 Richard Biener <rguenther@suse.de> |
| |
| * doc/match-and-simplify.texi: Fix wording. |
| |
| 2015-09-15 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip |
| unnecessary type conversion in op1. |
| |
| 2015-09-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * shrink-wrap.c (requires_stack_frame_p): Fix formatting. |
| (dup_block_and_redirect): Delete function. |
| (can_dup_for_shrink_wrapping): New function. |
| (fix_fake_fallthrough_edge): New function. |
| (try_shrink_wrapping): Rewrite function. |
| (convert_to_simple_return): Call fix_fake_fallthrough_edge. |
| |
| 2015-09-14 Rich Felker <dalias@libc.org> |
| |
| * configure.ac: Change target pattern for sh TLS support |
| test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*". |
| * configure: Regenerate. |
| |
| 2015-09-14 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real |
| type rather than void *. |
| |
| 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR fortran/67460 |
| * diagnostic.c (diagnostic_initialize): Do not set |
| some_warnings_are_errors. |
| (diagnostic_finish): Use DK_WERROR count instead. |
| (diagnostic_report_diagnostic): Do not set |
| some_warnings_are_errors. |
| * diagnostic.h (struct diagnostic_context): Remove |
| some_warnings_are_errors. |
| |
| 2015-09-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/sparc/predicates.md (const_all_ones_operand): Use |
| CONSTM1_RTX to simplify definition. |
| |
| 2015-09-14 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67061 |
| * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop. |
| Handle call insns. |
| |
| 2015-09-14 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret, |
| OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and |
| OPT_fshow_column to handled saved option cases. |
| (append_compiler_options): Do not skip the above added options. |
| |
| 2015-09-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/63304 |
| * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle |
| nopcrelative_literal_loads. |
| (aarch64_classify_address): Likewise. |
| (aarch64_constant_pool_reload_icode): Define. |
| (aarch64_secondary_reload): Handle secondary reloads for |
| literal pools. |
| (aarch64_override_options): Handle nopcrelative_literal_loads. |
| (aarch64_classify_symbol): Handle nopcrelative_literal_loads. |
| * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>): |
| Define. |
| (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. |
| * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option. |
| * config/aarch64/predicates.md (aarch64_constant_pool_symref): New |
| predicate. |
| * doc/invoke.texi (mpc-relative-literal-loads): Document. |
| |
| 2015-09-14 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR middle-end/67401 |
| * optabs.c (expand_atomic_compare_and_swap): Move result of emitting |
| sync_compare_and_swap_optab libcall to target_oval. |
| |
| 2015-09-14 Marek Polacek <polacek@redhat.com> |
| |
| * rtlanal.c (split_double): Cast to unsigned when shifting a negative |
| value. |
| * sched-int.h (UNKNOWN_DEP_COST): Likewise. |
| |
| 2015-09-11 Mark Wielaard <mjw@redhat.com> |
| |
| PR c/28901 |
| * toplev.c (check_global_declaration): Check and use |
| warn_unused_const_variable. |
| * doc/invoke.texi (Warning Options): Add -Wunused-const-variable. |
| (-Wunused-variable): Remove non-constant. For C implies |
| -Wunused-const-variable. |
| (-Wunused-const-variable): New. |
| |
| 2015-09-14 Richard Biener <rguenther@suse.de> |
| |
| * doc/match-and-simplify.texi: Update for changed syntax |
| of inner ifs and the new switch expression. |
| |
| 2015-09-14 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| * config/i386/haswell.md: New file describing Haswell pipeline. |
| * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for |
| haswell-like processors. |
| (ix86_reassociation_width): Increase reassociation width for 64-bit |
| Haswell processor family. |
| * config/i386/i386.md: Introduce haswell cpu and include new md file. |
| |
| 2015-09-14 Richard Biener <rguenther@suse.de> |
| |
| * doc/match-and-simplify.texi: Fixup some formatting issues |
| and document the 's' flag. |
| |
| 2015-09-13 Olivier Hainque <hainque@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and |
| gr6 as possible values, defaulting to gr5. Set target_cpu_default2. |
| * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define. |
| (TARGET_CPU_gr5): Likewise. |
| (TARGET_CPU_gr6): Likewise. |
| (MULTILIB_DEFAULTS): Likewise. |
| * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants |
| for mcpu=gr5 and mcpu=gr6. |
| (MULTILIB_DIRNAMES): Adjust accordingly. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef. |
| (mem_ref_p): Likewise. |
| (outermost_indep_loop): Adjust. |
| (mem_ref_in_stmt): Likewise. |
| (determine_max_movement): Likewise. |
| (mem_ref_alloc): Likewise. |
| (record_mem_ref_loc): Likewise. |
| (set_ref_stored_in_loop): Likewise. |
| (mark_ref_stored): Likewise. |
| (gather_mem_refs_stmt): Likewise. |
| (mem_refs_may_alias_p): Likewise. |
| (for_all_locs_in_loop): Likewise. |
| (struct rewrite_mem_ref_loc): Likewise. |
| (rewrite_mem_refs): Likewise. |
| (struct first_mem_ref_loc_1): Likewise. |
| (first_mem_ref_loc): Likewise. |
| (struct sm_set_flag_if_changed): Likewise. |
| (execute_sm_if_changed_flag_set): Likewise. |
| (execute_sm): Likewise. |
| (hoist_memory_references): |
| (struct ref_always_accessed): Likewise. |
| (ref_always_accessed_p): Likewise. |
| (refs_independent_p): Likewise. |
| (record_dep_loop): Likewise. |
| (ref_indep_loop_p_1): Likewise. |
| (ref_indep_loop_p_2): Likewise. |
| (ref_indep_loop_p): Likewise. |
| (can_sm_ref_p): Likewise. |
| (find_refs_for_sm): Likewise. |
| (tree_ssa_lim_finalize): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * dwarf2out.c (dw_attr_ref): Remove typedef. |
| (dw_line_info_ref): Likewise. |
| (pubname_ref): Likewise. |
| (dw_ranges_ref): Likewise. |
| (dw_ranges_by_label_ref): Likewise. |
| (comdat_type_node_ref): Likewise. |
| (get_AT): Adjust. |
| (get_AT_low_pc): Likewise. |
| (get_AT_hi_pc): Likewise. |
| (get_AT_string): Likewise. |
| (get_AT_flag): Likewise. |
| (get_AT_unsigned): Likewise. |
| (get_AT_ref): Likewise. |
| (get_AT_file): Likewise. |
| (remove_AT): Likewise. |
| (print_die): Likewise. |
| (check_die): Likewise. |
| (die_checksum): Likewise. |
| (attr_checksum_ordered): Likewise. |
| (struct checksum_attributes): Likewise. |
| (collect_checksum_attributes): Likewise. |
| (die_checksum_ordered): Likewise. |
| (same_die_p): Likewise. |
| (is_declaration_die): Likewise. |
| (clone_die): Likewise. |
| (clone_as_declaration): Likewise. |
| (copy_declaration_context): Likewise. |
| (break_out_comdat_types): Likewise. |
| (copy_decls_walk): Likewise. |
| (output_location_lists): Likewise. |
| (external_ref_hasher::hash): Likewise. |
| (optimize_external_refs_1): Likewise. |
| (build_abbrev_table): Likewise. |
| (size_of_die): Likewise. |
| (unmark_all_dies): Likewise. |
| (size_of_pubnames): Likewise. |
| (output_die_abbrevs): Likewise. |
| (output_die): Likewise. |
| (output_pubnames): Likewise. |
| (add_ranges_num): Likewise. |
| (add_ranges_by_labels): Likewise. |
| (add_high_low_attributes): Likewise. |
| (gen_producer_string): Likewise. |
| (dwarf2out_set_name): Likewise. |
| (new_line_info_table): Likewise. |
| (prune_unused_types_walk_attribs): Likewise. |
| (prune_unused_types_update_strings): Likewise. |
| (prune_unused_types): Likewise. |
| (resolve_addr): Likewise. |
| (optimize_location_lists_1): Likewise. |
| (index_location_lists): Likewise. |
| (dwarf2out_finish): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * dwarf2cfi.c (dw_trace_info_ref): Remove typedef. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree-vrp.c (struct assert_locus_d): Rename to assert_locus. |
| (dump_asserts_for): Adjust. |
| (register_new_assert_for): Likewise. |
| (process_assert_insertions): Likewise. |
| (insert_range_assertions): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table |
| and remove typedef. |
| (new_temp_expr_table): Adjust. |
| (free_temp_expr_table): Likewise. |
| (version_to_be_replaced_p): Likewise. |
| (make_dependent_on_partition): Likewise. |
| (add_to_partition_kill_list): Likewise. |
| (remove_from_partition_kill_list): Likewise. |
| (add_dependence): Likewise. |
| (finished_with_expr): Likewise. |
| (process_replaceable): Likewise. |
| (kill_expr): Likewise. |
| (kill_virtual_exprs): Likewise. |
| (mark_replaceable): Likewise. |
| (find_replaceable_in_bb): Likewise. |
| (find_replaceable_exprs): Likewise. |
| (debug_ter): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * bt-load.c (struct btr_def_group): Rename from btr_def_group_s. |
| (struct btr_user): Rename from btr_user_s. |
| (struct btr_def): Rename from btr_def_s. |
| (find_btr_def_group): Adjust. |
| (add_btr_def): Likewise. |
| (new_btr_user): Likewise. |
| (note_other_use_this_block): Likewise. |
| (compute_defs_uses_and_gen): Likewise. |
| (link_btr_uses): Likewise. |
| (build_btr_def_use_webs): Likewise. |
| (block_at_edge_of_live_range_p): Likewise. |
| (btr_def_live_range): Likewise. |
| (combine_btr_defs): Likewise. |
| (move_btr_def): Likewise. |
| (migrate_btr_def): Likewise. |
| (migrate_btr_defs): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * var-tracking.c (shared_hash_def): Rename to shared_hash. |
| (shared_hash): Remove typedef. |
| (struct dataflow_set): Adjust. |
| (shared_hash_unshare): Likewise. |
| (dataflow_set_merge): Likewise. |
| (vt_initialize): Likewise. |
| (vt_finalize): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * var-tracking.c (struct location_chain): Rename from |
| location_chain_def. |
| (struct variable_part): Adjust. |
| (variable_htab_free): Likewise. |
| (unshare_variable): Likewise. |
| (get_init_value): Likewise. |
| (get_addr_from_local_cache): Likewise. |
| (drop_overlapping_mem_locs): Likewise. |
| (val_reset): Likewise. |
| (struct variable_union_info): Likewise. |
| (variable_union): Likewise. |
| (find_loc_in_1pdv): Likewise. |
| (insert_into_intersection): Likewise. |
| (intersect_loc_chains): Likewise. |
| (canonicalize_loc_order_check): Likewise. |
| (canonicalize_values_mark): Likewise. |
| (canonicalize_values_star): Likewise. |
| (canonicalize_vars_star): Likewise. |
| (variable_merge_over_cur): Likewise. |
| (remove_duplicate_values): Likewise. |
| (variable_post_merge_new_vals): Likewise. |
| (variable_post_merge_perm_vals): Likewise. |
| (find_mem_expr_in_1pdv): Likewise. |
| (dataflow_set_preserve_mem_locs): Likewise. |
| (dataflow_set_remove_mem_locs): Likewise. |
| (variable_part_different_p): Likewise. |
| (onepart_variable_different_p): Likewise. |
| (find_src_set_src): Likewise. |
| (dump_var): Likewise. |
| (set_slot_part): Likewise. |
| (clobber_slot_part): Likewise. |
| (delete_slot_part): Likewise. |
| (vt_expand_var_loc_chain): Likewise. |
| (emit_note_insn_var_location): Likewise. |
| (vt_finalize): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * dse.c (store_info_t): Remove typedef. |
| (group_info_t): Likewise. |
| (const_group_info_t): Likewise. |
| (deferred_change_t): Likewise. |
| (get_group_info): Adjust. |
| (free_store_info): Likewise. |
| (canon_address): Likewise. |
| (clear_rhs_from_active_local_stores): Likewise. |
| (record_store): Likewise. |
| (replace_read): Likewise. |
| (check_mem_read_rtx): Likewise. |
| (scan_insn): Likewise. |
| (remove_useless_values): Likewise. |
| (dse_step1): Likewise. |
| (dse_step2_init): Likewise. |
| (dse_step2_nospill): Likewise. |
| (scan_stores_nospill): Likewise. |
| (scan_reads_nospill): Likewise. |
| (dse_step3_exit_block_scan): Likewise. |
| (dse_step3): Likewise. |
| (dse_step5_nospill): Likewise. |
| (dse_step6): Likewise. |
| |
| 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * alias.c (alias_set_entry_d): Rename to alias_set_entry. |
| (alias_set_entry): Remove typedef. |
| (alias_set_subset_of): Adjust. |
| (alias_sets_conflict_p): Likewise. |
| (init_alias_set_entry): Likewise. |
| (get_alias_set): Likewise. |
| (new_alias_set): Likewise. |
| (record_alias_subset): Likewise. |
| |
| 2015-09-13 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Downloading the source): Mark up |
| contrib/download_prerequisites properly and drop leading "./". |
| |
| 2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * config/arc/arc.h: Remove define of STRUCT_VALUE. |
| * config/lm32/lm32.h: Likewise. |
| * config/mep/mep.h: Likewise. |
| * config/visium/visium.h: Likewise. |
| * system.h: Poison STRUCT_VALUE macro. |
| |
| 2015-09-12 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH |
| CONSTANT_P operands. |
| |
| 2015-09-11 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/constraints.md: Make "U" constraint a real register |
| constraint. |
| * config/sparc/sparc.c (TARGET_LRA_P): Define. |
| (D_MODES, DF_MODES): Add missing cast. |
| (TF_MODES, TF_MODES_NO_S): Include T_MODE. |
| (OF_MODES, OF_MODES_NO_S): Include O_MODE. |
| (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory |
| cost to 8. |
| * config/sparc/sparc.h (PROMOTE_MODE): Define. |
| * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not |
| provide these insn when flag_pic. |
| |
| 2015-09-11 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47679 |
| * tree-ssa-dom.c (struct cond_equivalence): Update comment. |
| * tree-ssa-scopedtables.h (class const_and_copies): Prefix data |
| member with m_. Update inline member functions as necessary. Add |
| toplevel comment. |
| * tree-ssa-scopedtables.c: Update const_and_copies's member |
| functions to use m_ prefix to access the stack. |
| |
| 2015-09-11 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-optimize-isl.c (disable_tiling): Remove. |
| (get_schedule_for_band): Do not use disable_tiling. |
| (get_prevector_map): Delete function. |
| (enable_polly_vector): Remove. |
| (get_schedule_for_band_list): Remove dead code. |
| |
| 2015-09-11 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-optimize-isl.c (get_tile_map): Refactor. |
| (get_schedule_for_band): Same. |
| (getScheduleForBand): Same. |
| (get_prevector_map): Same. |
| (get_schedule_for_band_list): Same. |
| (get_schedule_map): Same. |
| (get_single_map): Same. |
| (apply_schedule_map_to_scop): Same. |
| (optimize_isl): Same. |
| |
| 2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/63304 |
| * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16. |
| (movtf): Delete. |
| * config/aarch64/iterators.md (GPF_TF_F16): New. |
| (GPF_F16): Delete. |
| |
| 2015-09-10 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing. |
| (nvptx_reorg): Adjust comments. |
| |
| 2015-09-15 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR bootstrap/67363 |
| * configure.ac: Check if setenv and unsetenv are declared. |
| * configure: Rebuild. |
| * config.in: Rebuild. |
| * system.h: Declare setenv and unsetenv if not declared. |
| |
| 2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (swap_web_entry): Update preceding |
| commentary to simplify permute mask adjustment equation. |
| (special_handling_values): Add SH_VPERM. |
| (const_load_sequence_p): New function. |
| (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with |
| the mask loaded from the constant pool. |
| (adjust_vperm): New function. |
| (handle_special_swappables): Call adjust_vperm. |
| (dump_swap_insn_table): Handle SH_VPERM. |
| |
| 2015-09-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * shrink-wrap.c (requires_stack_frame_p): Remove static. |
| * shrink-wrap.h (requires_stack_frame_p): Put back. |
| |
| 2015-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * reload1.c (elimination_costs_in_insn): Locally turn |
| -Wmaybe-uninitialized into a warning. |
| |
| 2015-09-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * shrink-wrap.c (requires_stack_frame_p): Make static. |
| (prepare_shrink_wrap): Likewise. |
| (dup_block_and_redirect): Likewise. |
| * shrink-wrap.h: Remove declarations of those functions. |
| |
| 2015-09-10 Mark Wielaard <mjw@redhat.com> |
| |
| * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL. |
| |
| 2015-09-10 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/67506 |
| * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add |
| missing simplify_gen_subreg. |
| |
| 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if |
| the vector element is bigger than 64 bit. |
| |
| 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>") |
| ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS. |
| |
| 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c: Add V1TImode to constant pool modes. |
| |
| 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/67439 |
| * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from |
| predicate. Set predicable_short_it attr to "no". |
| |
| 2015-09-10 Jiong Wang <jiong.wang@arm.com> |
| |
| PR rtl-optimization/67421 |
| * expr.c (expand_expr_real_2): Cost instrcution sequences when doing |
| left wide shift tranformation. |
| |
| 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * common/config/arc/arc-common.c: Remove references to A5. |
| * config/arc/arc-opts.h: Likewise. |
| * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise. |
| * config/arc/arc.opt, config/arc/constraints.md: Likewise. |
| * config/arc/t-arc-newlib: Likewise. |
| |
| 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (length): Fix attribute length for conditional |
| executed instructions with long immediate. |
| |
| 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm |
| type for second alternative. |
| |
| 2015-09-10 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * doc/invoke.texi (Downloading GCC): Mention |
| contrib/download_prerequisites script. |
| |
| 2015-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/67523 |
| * gimplify.c (gimplify_omp_for): If inner stmt is not found |
| for combined loop, assert seen_error () and return GS_ERROR. |
| |
| PR middle-end/67521 |
| * gimplify.c (gimplify_omp_for): Don't call omp_add_variable |
| if decl is already in outer->variables. |
| |
| PR middle-end/67517 |
| * gimplify.c (gimplify_scan_omp_clauses): Instead of |
| asserting that decl is not specified in octx->variables, |
| break out of the loop if it is. |
| |
| PR c++/67514 |
| * gimplify.c (gimplify_omp_for): For loop SIMD construct, if |
| iterator is not explicitly determined, but is defined inside |
| of the combined workshare region, handle it like if it has |
| DECL_EXPR in OMP_FOR_PRE_BODY. |
| |
| 2015-09-09 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (call_operation): Move bound out of loop. |
| (*cmp<mode>): Add assembler spacing. |
| (setcc_int<mode>, set_cc_float<mode>): Likewise. |
| * config/nvptx/nvptx.c (nvptx_option_override): Override debug |
| level. |
| (write_func_decl_from_insn): Refactor argument loops & comma emission. |
| (nvptx_expand_call): Likewise. |
| (nvptx_output_call_insn): Likewise. |
| (nvptx_reorg_subreg): Add spacing. |
| |
| 2015-09-09 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/67512 |
| * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison |
| for comparisons. |
| |
| 2015-09-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/53184 |
| * doc/invoke.texi ([Wsubobject-linkage]): Document. |
| |
| 2015-09-09 Tom de Vries <tom@codesourcery.com> |
| |
| * params-list.h: Add missing copyright notice. |
| |
| 2015-09-09 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use |
| sel_truesi, not andsi. |
| |
| 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (*subsi3_compare0): Rename to... |
| (subsi3_compare0): ... This. |
| (modsi3): New define_expand. |
| * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case |
| when operand is power of 2. |
| |
| 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (mod<mode>3): New define_expand. |
| (*neg<mode>2_compare0): Rename to... |
| (neg<mode>2_compare0): ... This. |
| * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case): |
| Move check for speed inside the if-then-elses. Reflect |
| CSNEG sequence in MOD by power of 2 case. |
| |
| 2015-09-09 Alan Modra <amodra@gmail.com> |
| |
| PR target/67378 |
| * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find |
| reload replacement for PRE_MODIFY address reg. |
| |
| 2015-09-09 Sebastian Pop <s.pop@samsung.com> |
| |
| PR tree-optimization/53852 |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect. |
| * graphite-optimize-isl.c (optimize_isl): Stop computation when |
| PARAM_MAX_ISL_OPERATIONS is reached. |
| * params.def (PARAM_MAX_ISL_OPERATIONS): Add. |
| * graphite-dependences.c (extend_schedule): Remove gcc_asserts on |
| result equal to isl_stat_ok as the status now can be isl_error_quota. |
| (subtract_commutative_associative_deps): Same. |
| (compute_deps): Same. |
| |
| 2015-09-08 Aditya Kumar <hiraditya@msn.com> |
| Sebastian Pop <s.pop@samsung.com> |
| |
| * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): |
| Return the parameter if it was saved in corresponding |
| parameter_rename_map of the region. |
| (copy_def): Copy def from sese region to the newly created region. |
| (copy_internal_parameters): Copy all the internal parameters defined |
| within a region to the newly created region. |
| (graphite_regenerate_ast_isl): Copy parameters to the new region before |
| translating isl to gimple. |
| * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if |
| the loop-nest does not have any data-references. |
| (build_graphite_scops): Create a scop only when there is at least one |
| loop inside it. |
| (contains_only_close_phi_nodes): Deleted. |
| (print_graphite_scop_statistics): Deleted |
| (print_graphite_statistics): Deleted |
| (limit_scops): Deleted. |
| (build_scops): Removed call to limit_scops. |
| * sese.c (new_sese): Construct. |
| (free_sese): Destruct. |
| (sese_add_exit_phis_edge): update_stmt after exit phi edge has been |
| added. |
| (set_rename): Pass sese region so that parameters inside the region can |
| be added to its parameter_rename_map. |
| (rename_uses): Pass sese region. |
| (graphite_copy_stmts_from_block): Do not copy parameters that have been |
| generated in the header of the scop. For each SSA_NAME in the |
| parameter_rename_map rename its usage. |
| (invariant_in_sese_p_rec): Return false if tree t is defined outside |
| sese region. |
| (scalar_evolution_in_region): If the tree t is invariant just return t. |
| * sese.h: Added a parameter renamne map (parameter_rename_map_t) to |
| struct sese to keep track of all the parameters which need renaming. |
| * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has |
| any data-refs. |
| * tree-data-ref.h: Declaration of loop_nest_has_data_refs. |
| |
| 2015-09-08 Tom de Vries <tom@codesourcery.com> |
| |
| * Makefile.in (generated_files): Add params.list. |
| (params.list, s-params.list): Add rule. |
| * params.h (enum compiler_param): Include params-list.h. Move define |
| DEFPARAM, include params.def and undef DEFPARAM ... |
| * params-list.h: ... here. New file. |
| |
| 2015-09-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * pretty-print.h (printer_fn): Fix typo in comment. |
| |
| 2015-09-07 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference. |
| (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag. |
| (arm_neon_fp16_hw): New. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * fold-const.c (native_interpret_real): Fix HFmode for bigendian where |
| UNITS_PER_WORD >= 4. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>, |
| aarch64_simd_vec_unpacks_hi_<mode>): New insn. |
| (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn. |
| (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand. |
| (aarch64_float_extend_lo_v2df): Rename to... |
| (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF. |
| |
| * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf. |
| (float_extend_lo): Add v4sf. |
| |
| * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New. |
| * config/aarch64/iterators.md (VQ_HSF): New iterator. |
| (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF. |
| (Vwide): New mode_attr. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, |
| aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>, |
| aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>, |
| vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add |
| V4HF and V8HF variants to iterator. |
| |
| * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases. |
| |
| * config/aarch64/iterators.md (VDQF_F16): New. |
| (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16, |
| vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16, |
| vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32, |
| vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32, |
| vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16, |
| vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16, |
| vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32, |
| vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32, |
| vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16, |
| vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16, |
| vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16, |
| vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16, |
| vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16, |
| vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16, |
| vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16, |
| vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16, |
| vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16, |
| vld1q_dup_f16): New. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf): |
| Reparameterize to... |
| (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF. |
| (aarch64_float_truncate_hi_v4sf): Reparameterize to... |
| (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF. |
| |
| * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add |
| v8hf variant. |
| (float_truncate_lo_): Use BUILTIN_VDF iterator. |
| |
| * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New. |
| |
| * config/aarch64/iterators.md (VDF, Vdtype): New. |
| (VWIDE, Vmwtype): Add cases for V4HF and V2SF. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode. |
| * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New. |
| (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types): |
| Add __builtin_aarch64_simd_hf. |
| * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t, |
| float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t, |
| vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16, |
| vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16, |
| vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16, |
| vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16, |
| vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16, |
| vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16, |
| vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New. |
| |
| * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype, |
| V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF. |
| (VDC, Vdbl): Add V4HF. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support |
| V4HFmode and V8HFmode. |
| (aarch64_split_simd_move): Add case for V8HFmode. |
| * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define. |
| (aarch64_simd_builtin_std_type): Handle HFmode. |
| (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t. |
| |
| * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>, |
| aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator. |
| (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator. |
| |
| * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t, |
| Float16x8_t. |
| |
| * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16. |
| * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t): |
| New typedefs. |
| (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16, |
| vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16, |
| vst1q_lane_f16): New. |
| * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode. |
| (VALLDI_F16, VALL_F16): New. |
| (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q): |
| Add cases for V4HF and V8HF. |
| (VDBL, VRL2, VRL3, VRL4): Add V4HF case. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/arm/arm-builtins.c (VAR11, VAR12): New. |
| * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup, |
| vld4_dup): Add v4hf variant. |
| (vget_high, vget_low): Add v8hf variant. |
| (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3, |
| vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add |
| v4hf and v8hf variants. |
| |
| * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New. |
| (VDX): Add V4HF. |
| (V_DOUBLE): Add case for V4HF. |
| (VQX): Add V8HF. |
| (V_HALF): Add case for V8HF. |
| (VDQX): Add V4HF, V8HF. |
| (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result, |
| V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF. |
| |
| * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>, |
| neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal, |
| vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>, |
| neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>, |
| neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>, |
| neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>, |
| vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>, |
| neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>, |
| neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2. |
| |
| (neon_vcreate, neon_vreinterpretv8qi<mode>, |
| neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>, |
| neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>): |
| Change VDX to VD_RE. |
| |
| (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>, |
| neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>): |
| Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS. |
| |
| * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t, |
| float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16, |
| vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, |
| vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16, |
| vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16, |
| vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16, |
| vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16, |
| vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16, |
| vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16, |
| vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16, |
| vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32, |
| vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64, |
| vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16, |
| vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16, |
| vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16, |
| vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16, |
| vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16, |
| vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16): |
| New. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode. |
| |
| * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode. |
| |
| * config/arm/arm-builtins.c (v8hf_UP): New. |
| (arm_init_simd_builtin_types): Initialise Float16x8_t. |
| |
| * config/arm/arm-simd-builtin-types.def (Float16x8_t): New. |
| |
| * config/arm/arm_neon.h (float16x8_t): New typedef. |
| |
| 2015-09-08 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16, |
| vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16, |
| vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16, |
| vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64, |
| vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16, |
| vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16, |
| vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16, |
| vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16, |
| vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16, |
| vreinterpret_u16_f16, vreinterpret_u32_f16): New. |
| |
| 2015-09-07 Ilya Verbin <ilya.verbin@intel.com> |
| |
| * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all |
| non-alphanumeric characters in the symbol name. |
| |
| 2015-09-07 Marek Polacek <polacek@redhat.com> |
| |
| PR inline-asm/67448 |
| * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as |
| a memory input. |
| |
| 2015-09-07 Marek Polacek <polacek@redhat.com> |
| |
| * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning. |
| |
| 2015-09-04 Paolo Bonzini <bonzini@gnu.org> |
| |
| * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do |
| not warn. |
| |
| 2015-09-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/67452 |
| * tree-ssa-live.c: Include cfgloop.h. |
| (remove_unused_locals): Clear loop->simduid if simduid is about |
| to be removed from cfun->local_decls. |
| |
| 2015-09-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> |
| |
| PR target/65210 |
| * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low |
| attribute as well. |
| |
| 2015-09-04 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction. |
| |
| 2015-09-04 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove |
| unnecessary constructor. It's now trivial and implemented inside... |
| * tree-ssa-scopedtables.h (const_and_copies): Implement trivial |
| constructor. Add comments to various methods. Remove unused |
| private fields. |
| * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes. |
| * tree-vrp.c (identify_jump_threads): Likewise. |
| * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor |
| indentation issues. |
| (thread_across_edge): Similarly. |
| (record_temporary_equivalences_from_stmts_at_dest): Remove unused |
| arguments in constructor call. |
| |
| 2015-09-04 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> |
| |
| * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the |
| temp path contains a '-'. |
| |
| 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Petr Murzin <petr.murzin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386-builtin-types.def |
| (VOID_PFLOAT_HI_V8DI_V16SF_INT): New. |
| (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto. |
| (VOID_PINT_HI_V8DI_V16SI_INT): Ditto. |
| (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto. |
| * config/i386/i386.c |
| (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF, |
| IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI, |
| IX86_BUILTIN_SCATTERALTDIV16SI. |
| (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df, |
| __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di, |
| __builtin_ia32_scatteraltdiv8si. |
| (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF, |
| IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI, |
| IX86_BUILTIN_SCATTERALTDIV16SI. |
| (ix86_vectorize_builtin_scatter): New. |
| (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as |
| ix86_vectorize_builtin_scatter. |
| |
| 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com> |
| Petr Murzin <petr.murzin@intel.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New. |
| * doc/tm.texi: Regenerate. |
| * target.def: Add scatter builtin. |
| * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it |
| for loads/stores in case of gather/scatter accordingly. |
| (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of |
| STMT_VINFO_GATHER_P(S). |
| (vect_check_gather): Rename to ... |
| (vect_check_gather_scatter): this. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use |
| STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P. |
| (vect_check_gather_scatter): Use it instead of vect_check_gather. |
| (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter |
| variable and new checkings for it accordingly. |
| * tree-vect-stmts.c |
| (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of |
| STMT_VINFO_GATHER_P(S). |
| (vect_check_gather_scatter): Use it instead of vect_check_gather. |
| (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P. |
| |
| 2015-09-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New |
| define_insn. |
| (mulv16qi3): New define_expand. |
| |
| 2015-09-03 Martin Sebor <msebor@redhat.com> |
| |
| PR c/66516 |
| * doc/extend.texi (Other Builtins): Document when the address |
| of a built-in function can be taken. |
| |
| 2015-09-03 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (flush_limbo_die_list): Split out from ... |
| (dwarf2out_early_finish): ... here. |
| (dwarf2out_finish): Do not call dwarf2out_early_finish but |
| flush_limbo_die_list. Assert we have no deferred asm names. |
| |
| 2015-09-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * optabs.c (expand_binop): Don't create a broadcast vector with a |
| source element wider than the inner mode. |
| |
| 2015-09-03 Richard Biener <rguenther@suse.de> |
| |
| * varasm.c (output_constant): Use fold_convert instead of |
| wide_int_to_tree. |
| |
| 2015-09-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/65637 |
| * omp-low.c (expand_omp_for_static_chunk): Handle case that |
| fin_bb has 2 predecessors. |
| |
| 2015-09-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/65637 |
| * omp-low.c (find_phi_with_arg_on_edge): New function. |
| (expand_omp_for_static_chunk): Fix inner loop phi. |
| |
| 2015-09-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/65637 |
| * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case |
| that head is NULL. |
| |
| 2015-09-03 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb. |
| |
| 2015-09-03 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/invoke.texi (parloops-chunk-size): Add item. |
| * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM. |
| * tree-parloops.c: Include params.h. |
| (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if |
| param parloops-chunk-size is used. |
| |
| 2015-09-03 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| PR middle-end/67351 |
| * fold-const.c (fold_binary_loc) : Move |
| Transform (x >> c) << c into x & (-1<<c) or |
| transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned |
| types using simplify and match. |
| * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier. |
| (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier |
| |
| 2015-09-03 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/66705 |
| * tree-ssa-structalias.c (ctor_for_analysis): New function. |
| (create_variable_info_for_1): Use ctor_for_analysis instead |
| of get_constructor. |
| (create_variable_info_for): Likewise. |
| |
| 2015-09-02 Charles Baylis <charles.baylis@linaro.org> |
| |
| PR ipa/67280 |
| * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external |
| in new callgraph edge. |
| |
| 2015-09-02 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/59810 |
| PR target/63652 |
| PR target/63653 |
| * config/aarch64/aarch64-simd.md |
| (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call |
| gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>. |
| (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call |
| gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>. |
| |
| 2015-09-02 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define. |
| * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise. |
| (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target. |
| |
| 2015-09-02 Alan Modra <amodra@gmail.com> |
| |
| PR target/67417 |
| * config/rs6000/predicates.md (current_file_function_operand): Don't |
| return true for weak symbols. |
| * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise. |
| |
| 2015-09-01 Matthew Fortune <matthew.fortune@imgtec.com> |
| Andrew Bennett <andrew.bennett@imgtec.com> |
| |
| * config/mips/mips-opts.h (mips_cb_setting): New enum. |
| * config/mips/mips-protos.h: Add definitions for |
| mips_output_jump and mips_output_equal_conditional_branch |
| * config/mips/mips.c (MIPS_JR): Change to support the |
| JIC instruction. |
| (mips_emit_compare): Add support for the MIPS R6 conditional |
| compact branches. |
| (mips_process_sync_loop): Likewise. |
| (mips_output_order_conditional_branch): Likewise. |
| (mips16_build_call_stub): Change MIPS_CALL to |
| mips_output_jump. |
| (mips_print_operand_punctuation): Update 's' case to only |
| apply to micromips r2. |
| (mips_adjust_insn_length): Add support for forbidden slot |
| hazards. |
| (mips_avoid_hazard): Likewise. |
| (mips_reorg_process_insns): Likewise. |
| (mips_output_jump): New function. |
| (mips_output_equal_conditional_branch): Likewise. |
| (mips_output_conditional_branch): Use jrc/bc if compact |
| branch support is enabled. Ensure the forbidden slots |
| between the two branch instructions is filled with a nop. |
| (mips_option_override): Add support to process the compact |
| branch option and set the correct defaults. Prevent |
| non-explict relocs being using for MIPS R6. |
| (mips_trampoline_init): Add compact branch support. |
| (mips_mult_zero_zero_cost): Allow zero initialisation of |
| accumulators with TARGET_DSP. |
| * config/mips/mips.h (TARGET_CB_NEVER): New define. |
| (TARGET_CB_MAYBE): New define. |
| (TARGET_CB_ALWAYS): New define. |
| (ISA_HAS_DELAY_SLOTS): New define. |
| (ISA_HAS_COMPACT_BRANCHES): New define. |
| (ISA_HAS_JRC): New define. |
| (MIPS_BRANCH_C): New define. |
| (MIPS_CALL): Removed. |
| (MICROMIPS_J): Removed. |
| * config/mips/mips.md (compact_form): New attr. |
| (hazard): Add support for forbidden slots. |
| (define_delay): Add support for compact branches. |
| (*branch_order<mode>): Likewise. |
| (*branch_order<mode>_inverted): Likewise. |
| (*branch_equality<mode>): Likewise. |
| (*branch_equality<mode>_inverted): Likewise. |
| (*jump_absolute): Likewise. |
| (*jump_pic): Likewise. |
| (indirect_jump): Use mips_output_jump to produce assembly output. |
| (tablejump_<mode>"): Likewise. |
| (*<optab>"): Likewise. |
| (<optab>_internal): Likewise. |
| (sibcall_internal): Likewise. |
| (sibcall_value_internal): Likewise. |
| (sibcall_value_multiple_internal): Likewise. |
| (call_internal): Likewise. |
| (call_split): Likewise. |
| (call_internal_direct): Likewise. |
| (call_direct_split): Likewise. |
| (call_value_internal): Likewise. |
| (call_value_split): Likewise. |
| (call_value_internal_direct): Likewise. |
| (call_value_direct_split): Likewise. |
| (call_value_multiple_internal): Likewise. |
| (call_value_multiple_split): Likewise. |
| (mips_get_fcsr_mips16_<mode>): Likewise. |
| (mips_set_fcsr_mips16_<mode>): Likewise. |
| (tls_get_tp_mips16_<mode>): Likewise. |
| * config/mips/mips.opt: Add -mcompact-branches option. |
| * config/mips/predicates.md (order_operator): Ensure the |
| conditional compact branches are only used if the ISA them. |
| * doc/invoke.texi: Document -mcompact-branches option. |
| |
| 2015-09-01 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/61578 |
| * lra-lives.c (process_bb_lives): Process move pseudos with the |
| same value for copies and preferences |
| * lra-constraints.c (match_reload): Create match reload pseudo |
| with the same value from single dying input pseudo. |
| |
| 2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com> |
| |
| PR target/67405 |
| * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check. |
| |
| 2015-09-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * trans-mem.c: Add contributed-by. |
| * trans-mem.h: Same. |
| |
| 2015-09-01 Richard Biener <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_1): For expanding TERed defs |
| set the current location to that of the def if not UNKNOWN. |
| |
| 2015-09-01 David Sherwood <david.sherwood@arm.com> |
| |
| * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier. |
| |
| 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * ifcvt.c (struct noce_if_info): Add then_simple, else_simple, |
| then_cost, else_cost fields. Change branch_cost field to unsigned int. |
| (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence. |
| Include rtl-iter.h. |
| (noce_simple_bbs): New function. |
| (noce_try_move): Bail if basic blocks are not simple. |
| (noce_try_store_flag): Likewise. |
| (noce_try_store_flag_constants): Likewise. |
| (noce_try_addcc): Likewise. |
| (noce_try_store_flag_mask): Likewise. |
| (noce_try_cmove): Likewise. |
| (noce_try_minmax): Likewise. |
| (noce_try_abs): Likewise. |
| (noce_try_sign_mask): Likewise. |
| (noce_try_bitop): Likewise. |
| (bbs_ok_for_cmove_arith): New function. |
| (noce_emit_all_but_last): Likewise. |
| (noce_emit_insn): Likewise. |
| (noce_emit_bb): Likewise. |
| (noce_try_cmove_arith): Handle non-simple basic blocks. |
| (insn_valid_noce_process_p): New function. |
| (contains_mem_rtx_p): Likewise. |
| (bb_valid_for_noce_process_p): Likewise. |
| (noce_process_if_block): Allow non-simple basic blocks |
| where appropriate. |
| |
| 2015-08-31 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * tree-ssa-dom.c (record_equivalences_from_phis, |
| record_equivalences_from_stmt, optimize_stmt): Use dom_valueize. |
| (lookup_avail_expr): Likewise, and remove comment and unused temp. |
| |
| 2015-09-01 Nick Clifton <nickc@redhat.com> |
| |
| * config/msp430/msp430.opt (mcpu): Fix typo. |
| |
| 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_set_current_function): |
| Re-layout any vector parameters have non-simd layout. |
| * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param): |
| Delete. |
| (aarch64_simd_expand_args): Delete call to the above. |
| |
| 2015-08-31 Mike Frysinger <vapier@gentoo.org> |
| |
| * doc/invoke.texi (asan-stack): Add space before option. |
| |
| 2015-08-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree.h (zerop): New function. |
| * tree.c (zerop): Likewise. |
| (element_precision): Handle expressions. |
| * match.pd (define_predicates): Add zerop. |
| (x <= +Inf): Fix comment. |
| (abs (x) == 0, A & C == C, A & C != 0): Converted from ... |
| * fold-const.c (fold_binary_loc): ... here. Remove. |
| |
| 2015-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67381 |
| * genmatch.c (dt_node::gen_kids): Also treat matches as barrier. |
| |
| 2015-08-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (SIN, COS, TAN, COSH): Reorder for consistency. |
| (CEXPI): New operator list. |
| (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)), |
| imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))): |
| Converted from ... |
| * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove. |
| |
| 2015-08-31 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-loop-manip.c (find_uses_to_rename_stmt) |
| (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags |
| parameter. |
| (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function. |
| (rewrite_into_loop_closed_ssa_1): New function, factored out of ... |
| (rewrite_into_loop_closed_ssa): ... here. |
| (replace_uses_in_dominated_bbs): Remove function. |
| (rewrite_virtuals_into_loop_closed_ssa): Reimplement using |
| rewrite_into_loop_closed_ssa_1. |
| |
| 2015-08-31 Michael Matz <matz@suse.de> |
| |
| * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly |
| enter entry and exit blocks for reverse post order. |
| |
| 2015-08-31 Richard Biener <rguenther@suse.de> |
| |
| * lto-streamer.h (lto_location_cache::cached_location::sysp): Add. |
| (lto_location_cache::current_sysp): Likewise. |
| (output_block::current_sysp): Likewise. |
| * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp. |
| (lto_location_cache::apply_location_cache): Properly record |
| system header locations. |
| (lto_location_cache::input_location): Input whether a file |
| is a system header. |
| * lto-streamer-out.c (lto_output_location): Stream whether a file |
| is a system header. |
| |
| 2015-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/67363 |
| * gcc.c (env_manager::xput): Replace strndup by xstrndup. |
| |
| 2015-08-31 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-loop-manip.c (find_uses_to_rename_use) |
| (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename): |
| Improve function header comments. |
| |
| 2015-08-30 Michael Collison <michael.collison@linaro.org> |
| |
| PR other/67320 |
| * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct |
| standard names |
| |
| 2015-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (swap_web_entry): Enlarge |
| special_handling bitfield. |
| (special_handling_values): Add SH_XXPERMDI and SH_CONCAT. |
| (rtx_is_swappable_p): Add handling for vec_select/vec_concat form |
| that represents a general xxpermdi. |
| (insn_is_swappable_p): Add handling for vec_concat of two |
| doublewords, which maps to a specific xxpermdi. |
| (adjust_xxpermdi): New function. |
| (adjust_concat): Likewise. |
| (handle_special_swappables): Call adjust_xxpermdi and |
| adjust_concat. |
| (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT. |
| |
| 2015-08-30 Rich Felker <dalias@libc.org> |
| |
| * config.gcc (supported_defaults): Handle sh[123456ble]*-*-* |
| case instead of sh[123456ble]-*-*. |
| |
| 2015-08-29 Anatoly Sokolov <aesok@post.ru> |
| |
| * ira.c (print_unform_and_important_classes, |
| print_translated_classes): Remove reg_class_names static array. |
| (print_unform_and_important_classes): Rename to ... |
| (print_uniform_and_important_classes): ... this. |
| (ira_debug_allocno_classes): Update accordingly. |
| |
| 2015-08-29 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/46193 |
| * omp-low.c (omp_reduction_init): Handle pointer type for min or max |
| clause. |
| |
| 2015-08-28 Jeff Law <law@redhat.com> |
| |
| PR lto/66752 |
| * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are |
| unable to find X NE 0 in the tables, return X as the simplified |
| condition. |
| (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are |
| in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH |
| to VISISTED_BBS. |
| * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags |
| after removing the control flow statement and unnecessary edges. |
| |
| 2015-08-28 Alan Lawrence <alan.lawrence@arm.com> |
| |
| Revert: |
| 2015-08-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/67283 |
| * tree-sra.c (type_consists_of_records_p): Rename to... |
| (scalarizable_type_p): ...this, add case for ARRAY_TYPE. |
| |
| (completely_scalarize_record): Rename to... |
| (completely_scalarize): ...this, add ARRAY_TYPE case, move some |
| code to: |
| (scalarize_elem): New. |
| |
| 2015-08-28 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename |
| SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE. |
| (aarch64_symbol_type): Likewise. |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): |
| Likewise. |
| (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_print_operand): Likewise. |
| (aarch64_classify_tls_symbol): Likewise. |
| |
| 2015-08-28 Richard Biener <rguenther@suse.de> |
| |
| * cgraphunit.c (symbol_table::compile): Move early debug generation |
| and finish... |
| (symbol_table::finalize_compilation_unit): ... back here and |
| add a !seen_error () guard. |
| |
| 2015-08-27 Sebastian Pop <s.pop@samsung.com> |
| |
| * toplev.c (process_options): Do not use flag_loop_block, |
| flag_loop_interchange, and flag_loop_strip_mine. Add check for |
| flag_loop_optimize_isl. |
| |
| 2015-08-27 Sebastian Pop <s.pop@samsung.com> |
| |
| * Makefile.in (OBJS): Remove graphite-blocking.o and |
| graphite-interchange.o. |
| * common.opt (floop-strip-mine, floop-interchange, floop-block): |
| Alias of floop-nest-optimize. |
| * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block): |
| Document as alias of -floop-nest-optimize. |
| * graphite-blocking.c: Remove. |
| * graphite-interchange.c: Remove. |
| * graphite-optimize-isl.c: Include dumpfile.h. |
| (getScheduleForBand): Add dump for tiled loops. Use |
| PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant. |
| * graphite-poly.c (scop_max_loop_depth): Remove. |
| (print_scattering_function_1): Remove. |
| (print_scattering_function): Remove. |
| (print_scattering_functions): Remove. |
| (debug_scattering_function): Remove. |
| (debug_scattering_functions): Remove. |
| (apply_poly_transforms): Remove use of flag_loop_block, |
| flag_loop_strip_mine, and flag_loop_interchange. |
| (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and |
| PBB_ORIGINAL. |
| (print_pdr_access_layout): Remove. |
| (print_pdr): Print ISL representation. |
| (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE, |
| SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE. |
| (free_scop): Same. |
| (openscop_print_pbb_domain): Remove. |
| (print_pbb): Remove call to print_scattering_function. |
| (openscop_print_scop_context): Remove. |
| (print_scop_context): Do not print matrices anymore. |
| (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and |
| SCOP_TRANSFORMED_SCHEDULE. |
| (print_isl_set): Add printing of a new line. |
| (print_isl_map): Same. |
| (print_isl_aff): Same. |
| (print_isl_constraint): Same. |
| (loop_to_lst): Remove. |
| (scop_to_lst): Remove. |
| (lst_indent_to): Remove. |
| (print_lst): Remove. |
| (debug_lst): Remove. |
| (dot_lst_1): Remove. |
| (dot_lst): Remove. |
| (reverse_loop_at_level): Remove. |
| (reverse_loop_for_pbbs): Remove. |
| * graphite-poly.h (pdr_dim_iter_domain): Remove. |
| (pdr_nb_params): Remove. |
| (pdr_alias_set_dim): Remove. |
| (pdr_subscript_dim): Remove. |
| (pdr_iterator_dim): Remove. |
| (pdr_parameter_dim): Remove. |
| (same_pdr_p): Remove. |
| (struct poly_scattering): Remove. |
| (struct poly_bb): Remove _original, _transformed, _saved. |
| (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove. |
| (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove. |
| (PBB_NB_LOCAL_VARIABLES): Remove. |
| (PBB_NB_SCATTERING_TRANSFORM): Remove. |
| (schedule_to_scattering): Remove. |
| (number_of_write_pdrs): Remove. |
| (pbb_dim_iter_domain): Remove. |
| (pbb_nb_params): Remove. |
| (pbb_nb_scattering_orig): Remove. |
| (pbb_nb_scattering_transform): Remove. |
| (pbb_nb_dynamic_scattering_transform): Remove. |
| (pbb_nb_local_vars): Remove. |
| (pbb_iterator_dim): Remove. |
| (pbb_parameter_dim): Remove. |
| (psco_scattering_dim): Remove. |
| (psct_scattering_dim): Remove. |
| (psct_local_var_dim): Remove. |
| (psco_iterator_dim): Remove. |
| (psct_iterator_dim): Remove. |
| (psco_parameter_dim): Remove. |
| (psct_parameter_dim): Remove. |
| (psct_dynamic_dim): Remove. |
| (psct_static_dim): Remove. |
| (psct_add_local_variable): Remove. |
| (new_lst_loop): Remove. |
| (new_lst_stmt): Remove. |
| (free_lst): Remove. |
| (copy_lst): Remove. |
| (lst_add_loop_under_loop): Remove. |
| (lst_depth): Remove. |
| (lst_dewey_number): Remove. |
| (lst_dewey_number_at_depth): Remove. |
| (lst_pred): Remove. |
| (lst_succ): Remove. |
| (lst_find_pbb): Remove. |
| (find_lst_loop): Remove. |
| (lst_find_first_pbb): Remove. |
| (lst_empty_p): Remove. |
| (lst_find_last_pbb): Remove. |
| (lst_contains_p): Remove. |
| (lst_contains_pbb): Remove. |
| (lst_create_nest): Remove. |
| (lst_remove_from_sequence): Remove. |
| (lst_remove_loop_and_inline_stmts_in_loop_father): Remove. |
| (lst_niter_for_loop): Remove. |
| (pbb_update_scattering): Remove. |
| (lst_update_scattering_under): Remove. |
| (lst_update_scattering): Remove. |
| (lst_insert_in_sequence): Remove. |
| (lst_replace): Remove. |
| (lst_substitute_3): Remove. |
| (lst_distribute_lst): Remove. |
| (lst_remove_all_before_including_pbb): Remove. |
| (lst_remove_all_before_excluding_pbb): Remove. |
| (struct scop): Remove original_schedule, transformed_schedule, and |
| saved_schedule. |
| (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove. |
| (SCOP_SAVED_SCHEDULE): Remove. |
| (poly_scattering_new): Remove. |
| (poly_scattering_free): Remove. |
| (poly_scattering_copy): Remove. |
| (store_scattering_pbb): Remove. |
| (store_lst_schedule): Remove. |
| (restore_lst_schedule): Remove. |
| (store_scattering): Remove. |
| (restore_scattering_pbb): Remove. |
| (restore_scattering): Remove. |
| * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): |
| Remove scattering_dimensions. Do not use pbb_dim_iter_domain: |
| compute the scattering polyhedron dimension from the dimension of |
| pbb->domain. |
| (build_scop_scattering): Update call to |
| build_pbb_scattering_polyhedrons. |
| (build_poly_scop): Remove call to scop_to_lst. |
| * graphite.c (graphite_transform_loops): Add call to print_scop. |
| (gate_graphite_transforms): Remove use of flag_loop_block, |
| flag_loop_interchange, and flag_loop_strip_mine. |
| |
| 2015-08-27 Sebastian Pop <s.pop@samsung.com> |
| |
| * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize. |
| * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of |
| -floop-nest-optimize. |
| * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove. |
| (generate_luj_sepclass): Remove. |
| (generate_luj_options): Remove. |
| (set_options): Remove opt_luj. |
| (scop_to_isl_ast): Remove opt_luj. |
| * graphite-optimize-isl.c (getScheduleForBand): Remove check for |
| flag_loop_unroll_jam. |
| (getPrevectorMap_full): Remove. |
| (getScheduleForBandList): Remove map_sepcl. |
| (getScheduleMap): Same. |
| (apply_schedule_map_to_scop): Remove sepcl. |
| (optimize_isl): Same. |
| * graphite-poly.c (apply_poly_transforms): Remove check for |
| flag_loop_unroll_jam. |
| (new_poly_bb): Remove map_sepclass. |
| * graphite-poly.h (struct poly_bb): Same. |
| * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam. |
| * params.def (PARAM_LOOP_UNROLL_JAM_SIZE) |
| (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove. |
| * toplev.c (process_options): Remove flag_loop_unroll_jam. |
| |
| 2015-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/67317 |
| * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern. |
| (addqi3_cc): Ditto. |
| (UNSPEC_ADD_CARRY): Remove. |
| (addqi3_cconly_overflow): New expander. |
| (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow. |
| Adjust for changed add<mode>3_carry. |
| (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry. |
| (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry. |
| (<plusminus_insn><mode>3_carry): Remove expander. |
| (*<plusminus_insn><mode>3_carry): Split insn pattern to |
| add<mode>3_carry and sub<mode>3_carry. |
| (plusminus_carry_mnemonic): Remove code attribute. |
| (add<mode>3_carry): Canonicalize insn pattern. |
| (*addsi3_carry_zext): Ditto. |
| (sub<mode>3_carry): Ditto. |
| (*subsi3_carry_zext): Ditto. |
| (adcx<mode>3): Remove insn pattern. |
| (addcarry<mode>): New insn pattern. |
| (subborrow<mode>): Ditto. |
| * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use |
| gen_addqi3_cconly_overflow instead of gen_addqi3_cc. |
| (ix86_expand_builtin) <case IX86_BUILTIN_SBB32, |
| case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32, |
| case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi, |
| CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi. |
| Rewrite expander to not clobber carry flag chains. |
| |
| 2015-08-27 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift |
| instead of a rotate. |
| |
| 2015-08-27 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/67005 |
| * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing |
| an entry into an irreducible region. |
| |
| 2015-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * configure: Regenerate. |
| |
| 2015-08-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| PR tree-optimization/67283 |
| * tree-sra.c (type_consists_of_records_p): Rename to... |
| (scalarizable_type_p): ...this, add case for ARRAY_TYPE. |
| |
| (completely_scalarize_record): Rename to... |
| (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to: |
| (scalarize_elem): New. |
| |
| 2015-08-27 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * tree-sra.c (completely_scalarize_var): Rename to... |
| (create_total_scalarization_access): ... Here. Drop call to |
| completely_scalarize_record. |
| |
| (analyze_all_variable_accesses): Replace completely_scalarize_var |
| with create_total_scalarization_access and completely_scalarize_record. |
| |
| 2015-08-27 Alan Modra <amodra@gmail.com> |
| |
| PR target/67356 |
| * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0" |
| for operand 1. |
| |
| 2015-08-27 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (rest_of_decl_compilation): Guard early_global_decl |
| call with !seen_error (). |
| * cgraphunit.c (symbol_table::finalize_compilation_unit): Move |
| early debug generation and finish... |
| (symbol_table::compile): ... here to put it after a !seen_error () |
| guard. |
| |
| 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on |
| Solaris 12+. |
| |
| 2015-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB. |
| (*cb<optab><mode>1): Likewise. |
| (*tb<optab><mode>1): Likewise. |
| (*cb<optab><mode>1): Likewise. |
| * config/aarch64/iterators.md (inv_cb): New code attribute. |
| (inv_tb): Likewise. |
| * config/aarch64/aarch64.c (aarch64_gen_far_branch): New. |
| * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New. |
| |
| 2015-08-27 Richard Biener <rguenther@suse.de> |
| |
| * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P. |
| |
| 2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after |
| trap to fix ICE. |
| |
| 2015-08-26 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert): |
| Add declaration. |
| |
| * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a |
| comment. |
| (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit |
| floating point in VSX registers. |
| (rs6000_output_move_128bit): Always print out the set insn if we |
| can't generate an appropriate 128-bit move. |
| (rs6000_generate_compare): Add support for IEEE 128-bit floating |
| point in VSX registers comparisons. |
| (rs6000_expand_float128_convert): Likewise. |
| |
| * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New |
| predicate for only GPR hard registers. |
| |
| * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point |
| modes to iterators. Add new iterators for moving 128-bit values in |
| scalar FPR registers and VSX registers. |
| (FMOVE128): Likewise. |
| (FMOVE128_FPR): Likewise. |
| (FMOVE128_GPR): Likewise. |
| (FMOVE128_VSX): Likewise. |
| (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point |
| in VSX registers. |
| (IFKF): Likewise. |
| (IBM128): Likewise. |
| (TFIFKF): Likewise. |
| (RELOAD): Add IEEE 128-bit floating point modes. |
| (signbittf2): Convert TF insns to add support for new IEEE 128-bit |
| floating point in VSX registers modes. |
| (signbit<mode>2, IBM128 iterator): Likewise. |
| (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise. |
| (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise. |
| (negtf2): Likewise. |
| (neg<mode>2, TFIFKF iterator): Likewise. |
| (negtf2_internal): Likewise. |
| (abstf2): Likewise. |
| (abs<mode>2, TFIFKF iterator): Likewise. |
| (ieee_128bit_negative_zero): New IEEE 128-bit floating point in |
| VSX insn support for negate, absolute value, and negative absolute |
| value. |
| (ieee_128bit_vsx_neg<mode>2): Likewise. |
| (ieee_128bit_vsx_neg<mode>2_internal): Likewise. |
| (ieee_128bit_vsx_abs<mode>2): Likewise. |
| (ieee_128bit_vsx_abs<mode>2_internal): Likewise. |
| (ieee_128bit_vsx_nabs<mode>2): Likewise. |
| (ieee_128bit_vsx_nabs<mode>2_internal): Likewise. |
| (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit |
| floating point in VSX registers. |
| (unpack<mode>_dm): Likewise. |
| (unpack<mode>_nodm): Likewise. |
| (pack<mode>): Likewise. |
| (unpackv1ti): Likewise. |
| (unpack<mode>, FMOVE128_VSX iterator): Likewise. |
| (packv1ti): Likewise. |
| (pack<mode>, FMOVE128_VSX iterator): Likewise. |
| (extenddftf2): Add support for IEEE 128-bit floating point in VSX |
| registers. |
| (extenddftf2_internal): Likewise. |
| (trunctfdf2): Likewise. |
| (trunctfdf2_internal2): Likewise. |
| (fix_trunc_helper): Likewise. |
| (fix_trunctfdi2"): Likewise. |
| (floatditf2): Likewise. |
| (floatuns<mode>tf2): Likewise. |
| (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise. |
| (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise. |
| (fix_trunc<IFKF:mode><SDI:mode>2): Likewise. |
| (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise. |
| (float<SDI:mode><IFKF:mode>2): Likewise. |
| (floatuns<SDI:mode><IFKF:mode>2): Likewise. |
| |
| 2015-08-26 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New. |
| |
| 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC. |
| (tlsie_tiny_<mode>): New define_insn. |
| (tlsie_tiny_sidi): Likewise. |
| * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define |
| SYMBOL_TINY_TLSIE. |
| (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE. |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support |
| SYMBOL_TINY_TLSIE. |
| (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_print_operand): Likewise. |
| (arch64_classify_tls_symbol): Likewise. |
| |
| 2015-08-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-arches.def: Replace single value flags with |
| an initializer built from ARM_FSET_MAKE_CPU1. |
| * config/arm/arm-cores.def: Likewise. |
| * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1 |
| derivation from the ARM_CORE macro definition, use the given value |
| instead. |
| (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the |
| ARM_ARCH macro definition, use the given value instead. |
| |
| 2015-08-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a |
| feature set. |
| (struct builtin_description): Replace field mask with field |
| features. |
| (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags. |
| (IWMMXT2_BUILTIN): Likewise. |
| (IWMMXT2_BUILTIN2): Likewise. |
| (FP_BUILTIN): Likewise. |
| (CRC32_BUILTIN): Likewise. |
| (CRYPTO_BUILTIN): Likewise. |
| (iwmmx_mbuiltin): Likewise. |
| (iwmmx2_mbuiltin): Likewise. |
| (arm_init_iwmmxt_builtins): Likewise. Also, update for change to |
| struct builtin_description. |
| |
| 2015-08-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro. |
| (struct builtin_description): Change type of mask to unsigned |
| long. |
| * config/arm/arm-protos.h (insn_flags): Declare as type |
| arm_feature_set. |
| (tune_flags): Likewise. |
| * config/arm/arm.c (feature_count): New. |
| (insn_flags): Define as type arm_feature_set. |
| (tune_flags): Likewise. |
| (struct processors): Define field flags as type arm_feature_set. |
| (all_cores): Update for change to struct processors. |
| (all_architectures): Likewise. |
| (arm_option_check_internal): Use arm_feature_set and ARM_FSET |
| macros. |
| (arm_option_override_internal): Likewise. |
| (arm_option_override): Likewise. |
| |
| 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default |
| tls size for tiny, small, large memory model. |
| (aarch64_load_symref_appropriately): Support new symbol types. |
| (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_print_operand): Likewise. |
| (aarch64_classify_tls_symbol): Likewise. |
| * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise. |
| (aarch64_symbol_type): Likewise. |
| * config/aarch64/aarch64.md (tlsle): Deleted. |
| (tlsle12_<mode>): New define_insn. |
| (tlsle24_<mode>): Likewise. |
| (tlsle32_<mode>): Likewise. |
| (tlsle48_<mode>): Likewise. |
| * doc/sourcebuild.texi (AArch64-specific attributes): Document |
| "aarch64_tlsle32". |
| |
| 2015-08-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-protos.h (FL_NONE): New. |
| (FL_ANY): New. |
| (arm_feature_set): New. |
| (ARM_FSET_MAKE): New. |
| (ARM_FSET_MAKE_CPU1): New. |
| (ARM_FSET_MAKE_CPU2): New. |
| (ARM_FSET_CPU1): New. |
| (ARM_FSET_CPU2): New. |
| (ARM_FSET_EMPTY): New. |
| (ARM_FSET_ANY): New. |
| (ARM_FSET_HAS_CPU1): New. |
| (ARM_FSET_HAS_CPU2): New. |
| (ARM_FSET_HAS_CPU): New. |
| (ARM_FSET_ADD_CPU1): New. |
| (ARM_FSET_ADD_CPU2): New. |
| (ARM_FSET_DEL_CPU1): New. |
| (ARM_FSET_DEL_CPU2): New. |
| (ARM_FSET_UNION): New. |
| (ARM_FSET_INTER): New. |
| (ARM_FSET_XOR): New. |
| (ARM_FSET_EXCLUDE): New. |
| (AFM_FSET_IS_EMPTY): New. |
| (ARM_FSET_CPU_SUBSET): New. |
| |
| 2015-08-26 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename |
| SYMBOL_TLSLE to SYMBOL_TLSLE24. |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): |
| Likewise. |
| (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_print_operand): Likewise. |
| (aarch64_classify_symbol): Likewise. |
| |
| 2015-08-26 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.opt (mtls-size): New entry. |
| * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function. |
| (aarch64_override_options_internal): Call initialize_aarch64_tls_size. |
| * doc/invoke.texi (AArch64 Options): Document -mtls-size. |
| |
| 2015-08-26 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each |
| ARM_CORE entry. Fix some white-space. |
| * config/arm/arm.c: Remove FL_FOR_ARCH derivation from |
| ARM_CORE definition. |
| |
| 2015-08-26 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| * fold-const.c (fold_binary_loc) : Move Optimize |
| root(x)*root(y) as root(x*y) to match.pd. |
| Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd. |
| Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd. |
| Move Optimize a/root(b/c) into a*root(c/b) to match.pd. |
| Move Optimize x/expN(y) into x*expN(-y) to match.pd. |
| * match.pd (mult (root:s @0) (root:s @1)): New simplifier. |
| (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier. |
| (mult (exps:s @0) (exps:s @1)) : New simplifier. |
| (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier. |
| (rdiv @0 (exps:s @1)) : New simplifier. |
| |
| 2015-08-25 Joseph Myers <joseph@codesourcery.com> |
| |
| * gcc.c (driver::finalize): Only assign to extra_specs if |
| [EXTRA_SPECS]. |
| |
| 2015-08-25 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/67330 |
| * varasm.c (declare_weak): Return after giving an error. |
| |
| 2015-08-25 David Malcolm <dmalcolm@redhat.com> |
| |
| * gcc-main.c (main): Add params to driver ctor. |
| * gcc.c (class env_manager): New. |
| (env): New global. |
| (env_manager::init): New. |
| (env_manager::get): New. |
| (env_manager::xput): New. |
| (env_manager::restore): New. |
| Poison getenv and putenv. |
| (DEFAULT_TARGET_SYSTEM_ROOT): New. |
| (target_system_root): Update initialization to use |
| DEFAULT_TARGET_SYSTEM_ROOT. |
| (struct spec_list): Add field "default_ptr". |
| (INIT_STATIC_SPEC): Initialize new field "default_ptr". |
| (init_spec): Likewise. |
| (set_spec): Clear field "default_ptr". |
| (read_specs): Free "spec" and "buffer". |
| (xputenv): Reimplement in terms of env_manager. |
| (process_command): Replace ::getenv calls with calls to the |
| env_manager singleton. |
| (process_brace_body): Free string in three places. |
| (driver::driver): New. |
| (driver::~driver): New. |
| (used_arg): Convert from a function to... |
| (class used_arg_t): ...this class, and... |
| (used_arg): ...this new global instance. |
| (used_arg_t::finalize): New function. |
| (getenv_spec_function): Add "const" to local "value". Replace |
| ::getenv call with call to the env_manager singleton. |
| (path_prefix_reset): New function. |
| (driver::finalize): New function. |
| * gcc.h (driver::driver): New. |
| (driver::~driver): New. |
| (driver::finalize): New. |
| |
| 2015-08-25 Nathan Sidwell <nathan@acm.org> |
| |
| * optabs.c (emit_indirect_jump): Don't try an emit a jump if the |
| target doesn't have one. |
| |
| 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/67346 |
| * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch. |
| |
| 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/67344 |
| * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to |
| a define_insn, remove second alternative. |
| |
| 2015-08-25 Thomas Schwinge <thomas@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * gcc.c (struct switchstr): Expand comment. |
| |
| 2015-08-25 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat. |
| (nvptx_reorg_subreg): Pass insn pattern to asm_operands. |
| |
| 2015-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67306 |
| * genmatch.c (expr::gen_transform): Verify the result of |
| builtin_decl_implicit. |
| (dt_simplify::gen_1): Likewise. |
| |
| 2015-08-25 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/constraints.md: Also list Cs and US ARM-specific |
| constraints as used. |
| |
| 2015-08-24 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/66609 |
| * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle |
| UNSPEC_PCREL. |
| (nonpic_symbol_mentioned_p): Likewise. |
| (sh_delegitimize_address): Likewise. |
| (sh_function_ok_for_sibcall): Take into account weak symbols. |
| (sh_expand_sym_label2reg): New. |
| * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare. |
| * config/sh/sh.md (UNSPEC_PCREL): New enum. |
| (call_pcrel): Use sh_expand_sym_label2reg. |
| (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise. |
| (symPCREL_label2reg) New expand. |
| |
| 2015-08-24 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-poly.c: Change type of region from void* to sese. |
| * graphite-poly.h (struct scop): Changing the type of scop::region |
| from void* to sese. Change accessor macro accordingly. |
| * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro. |
| |
| 2015-08-24 Aditya Kumar <aditya.k7@samsung.com> |
| |
| * graphite-scop-detection.c (stmt_simple_for_scop_p): |
| Constrain only on INTEGER_TYPE. |
| |
| 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/67211 |
| * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set |
| -mefficient-unaligned-vsx on ISA 2.7. |
| |
| * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert |
| option to a masked option. |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework |
| logic for -mefficient-unaligned-vsx so that it is set via an arch |
| ISA option, instead of being set if -mtune=power8 is set. Move |
| -mefficient-unaligned-vsx and -mallow-movmisalign handling to be |
| near other default option handling. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genflags.c (gen_macro): Delete. |
| (gen_proto): Don't create GEN.*CALL.* macros. |
| * gensupport.h (get_file_location): Declare. |
| * gensupport.c (rtx_locs): New variable. |
| (read_md_rtx): Record rtx locations. |
| (get_file_location): New function. |
| * target-insns.def (call, call_pop, call_value, call_value_pop) |
| (sibcall, sibcall_value): New patterns. |
| * gentarget-def.c (parse_argument): New function. |
| (def_target_insn): Use it. Handle optional operands. Raise an |
| error if an .md pattern has the wrong number of operands for the |
| pattern name. Remove the names of unused operands from the prototype. |
| * builtins.c (expand_builtin_apply): Use targetm functions |
| instead of HAVE_call_value and GEN_CALL_VALUE. |
| * calls.c (emit_call_1): Likewise. Remove support for sibcall_pop |
| and sibcall_value_pop. |
| * config/aarch64/aarch64.md (untyped_call): Use gen_call instead |
| of GEN_CALL. |
| * config/alpha/alpha.md (untyped_call): Likewise. |
| * config/iq2000/iq2000.md (untyped_call): Likewise. |
| * config/m68k/m68k.md (untyped_call): Likewise. |
| * config/mips/mips.md (untyped_call): Likewise. |
| * config/pa/pa.md (untyped_call): Likewise. |
| * config/rs6000/rs6000.md (untyped_call): Likewise. |
| * config/sparc/sparc.md (untyped_call): Likewise. |
| * config/tilegx/tilegx.md (untyped_call): Likewise. |
| * config/tilepro/tilepro.md (untyped_call): Likewise. |
| * config/visium/visium.md (untyped_call): Likewise. |
| * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use |
| gen_call_value instead of GEN_CALL_VALUE. |
| * config/arm/arm.md (untyped_call): Likewise. |
| * config/cr16/cr16.c (cr16_function_arg): Remove reference to |
| GEN_CALL. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete. |
| (have_cbranchcc4): New variable. |
| (cc_in_cond, noce_emit_cmove, noce_get_alt_condition) |
| (noce_get_condition): Use it instead of HAVE_cbranchcc4. |
| (if_convert): Initialize have_cbranchcc4. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (expand_cmpstrn): Rename to... |
| (expand_cmpstrn_or_cmpmem): ...this. |
| (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly. |
| (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem. |
| Remove mode argument. |
| (expand_builtin): Update accordingly. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.c (expand_cmpstr, expand_cmpstrn): New functions. |
| (expand_builtin_strcmp, expand_builtin_strncmp): Use them. Remove |
| references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si. |
| * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2. |
| Add predicates for operands 0 and 3. |
| * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length |
| operand. |
| * config/sh/sh.md (cmpstrnsi): Change the length predicate from |
| immediate_operand to nonmemory_operand. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * df-scan.c (df_insn_info_init_fields): New function, split out |
| from... |
| (df_insn_create_insn_record): ...here. |
| (df_insn_info_free_fields): New function, split out from... |
| (df_insn_info_delete): ...here. |
| (df_insn_rescan): Use the new functions instead of freeing and |
| reallocating the df_insn_info. |
| |
| 2015-08-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * doc/install.texi (Binaries): Remove links no longer valid. |
| |
| 2015-08-24 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/mkoffload.c (process): Replace |
| GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver. |
| |
| 2015-08-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/67329 |
| * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9. |
| |
| 2015-08-24 Renlin Li <renlin.li@arm.com> |
| |
| * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare. |
| * config/arm/arm.c (arm_valid_symbolic_address_p): Define. |
| * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p. |
| * config/arm/constraints.md ("j"): Add check for high code. |
| |
| 2015-08-24 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/65468 |
| * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if |
| chunk_size is one. |
| |
| 2015-08-24 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (walk_args_for_param): Revert previous |
| change to nvptx_type_from_mode call. Use arg_promotion for both |
| split and non-split args. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target-insns.def (movstr): New pattern. |
| * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete. |
| (expand_movstr): Use targetm rather than HAVE_movstr/ |
| CODE_FOR_movstr. |
| |
| 2015-08-24 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix |
| cast syntax. |
| |
| 2015-08-24 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-tuning-flags.def: Remove all index to |
| AARCH64_EXTRA_TUNING_OPTION. |
| * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): |
| New enum. |
| (aarch64_extra_tuning_flags): Base the shifted value on the index |
| instead of the argument to AARCH64_EXTRA_TUNING_OPTION. |
| * config/aarch64/aarch64.c: Remove the last argument to |
| AARCH64_EXTRA_TUNING_OPTION. |
| |
| 2015-08-23 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg |
| decls. |
| (nvptx_declare_function_name): Insert formatting tabs for |
| consistency. |
| |
| 2015-08-23 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to |
| parm_decl, rather than generating a dummy default def in cfun. |
| * tree-cfg.c (replace_ssa_name): Assume no default defs. Make sure |
| ssa_name from cfun and child_fn do not share a stmt as def stmt. |
| (move_stmt_op): Handle PARM_DECl. |
| (gather_ssa_name_hash_map_from): New function. |
| (move_sese_region_to_fn): Add default defs for function params, and add |
| them to vars_map. Release copied ssa names. |
| * tree-cfg.h (gather_ssa_name_hash_map_from): Declare. |
| |
| 2015-08-23 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Rename vect_no_int_max with |
| vect_no_int_min_max. Update description. |
| |
| 2015-08-22 Andrew Pinski <apinski@cavium.com> |
| |
| * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_fusion_pairs_index): New enum. |
| (aarch64_fusion_pairs): Base the shifted value on the index instead |
| Rewrite AARCH64_FUSE_ALL to be based on the end index. |
| of the argument to AARCH64_FUSION_PAIR. |
| * config/aarch64/aarch64.c: Remove the last argument to |
| AARCH64_FUSION_PAIR. |
| |
| 2015-08-22 Mikhail Maltsev <maltsevm@gmail.com> |
| |
| * dominance.c (new_zero_array): Define. |
| (dom_info): Redefine as class with proper encapsulation. |
| (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block): |
| Add new members. |
| (dom_info::dom_info, ~dom_info): Define. Use new/delete for memory |
| allocations/deallocations. Pass function as parameter (instead of |
| using cfun). |
| (dom_info::get_idom): Define accessor method. |
| (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval, |
| link_roots, calc_idoms): Redefine as class members. Do not use cfun. |
| (calculate_dominance_info): Adjust to use dom_info class. |
| (verify_dominators): Likewise. |
| |
| 2015-08-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| * print-rtl.c (print_rtx): Check the correct range for |
| flag_dump_unnumbered_links to behave as documented. |
| |
| PR rtl-optimization/67227 |
| PR rtl-optimization/64164 |
| * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better. |
| (nonoverlapping_memrefs_p): Test offsets and sizes when given |
| identical gimple_reg exprs. |
| |
| 2015-08-21 Nathan Sidwell <nathan@acm.org> |
| |
| * config/nvptx/nvptx.md (allocate_stack): Emit sorry during |
| expansion. |
| * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at |
| crtl->stack_alignment_needed to determine alignment. |
| (nvptx_get_drap_rtx): New. |
| (TARGET_GET_DRAP_RTX): Override. |
| * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set. |
| |
| 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*. |
| |
| 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * configure.ac: Remove uwin* cases. |
| * config.build: Remove cases for i370-*-opened*, i370-*-mvs*, |
| i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*, |
| i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*, |
| i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta. |
| * config.host: Remove cases for i370-*-opened*, i370-*-mvs*, |
| i[34567]86-*-uwin*, powerpc-*-beos*. |
| |
| 2015-08-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gencodes.c (gencodes): Print the comma for the preceding |
| enum value rather than the current one. Use aliased enum values |
| rather than #defines for compiled-out patterns. |
| (main): Update accordingly. Replace LAST_INSN_CODE with |
| NUM_INSN_CODES. |
| * lra.c (insn_code_data): Update accordingly. |
| (finish_insn_code_data_once, get_static_insn_data): Likewise. |
| * recog.h (target_recog): Likewise. |
| (preprocess_insn_constraints): Change parameter to unsigned int. |
| * recog.c (preprocess_insn_constraints): Likewise. |
| (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES. |
| * tree-vect-stmts.c (vectorizable_operation): Simplify. |
| |
| 2015-08-21 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR rtl-optimization/61657 |
| * loop-iv.c (iv_number_of_iterations): Declare up and down as |
| unsigned. Remove superflous uint64_t cast. |
| |
| 2014-08-21 Felix Yang <felix.yang@huawei.com> |
| Jiji Jiang <jiangjiji@huawei.com> |
| |
| * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL |
| argument and get builtin function code directly from CALL. |
| (gimple_stringop_fixed_value): Modified accordingly. |
| (gimple_stringops_transform, gimple_stringops_values_to_profile): |
| Modified accordingly and only accept BUILT_IN_NORMAL string operations. |
| |
| 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390-builtins.def: Fix value range of vec_load_bndry. |
| |
| 2015-08-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x |
| to match.pd. |
| Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd. |
| Move Optimize tan(x)*cos(x) as sin(x) to match.pd. |
| Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd. |
| Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd. |
| Move Optimize sin(x)/cos(x) as tan(x) to match.pd. |
| Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd. |
| Move Optimize sin(x)/tan(x) as cos(x) to match.pd. |
| Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd. |
| Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd. |
| Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd. |
| |
| * match.pd (SIN ) : New Operator. |
| (TAN) : New Operator. |
| (mult (SQRT@1 @0) @1) : New simplifier. |
| (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier. |
| (mult:c (TAN:s @0) (COS:s @0)) : New simplifier. |
| (mult:c (TAN:s @0) (COS:s @0)) : New simplifier. |
| (rdiv (SIN:s @0) (COS:s @0)) : New simplifier. |
| (rdiv (COS:s @0) (SIN:s @0)) : New simplifier. |
| (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier. |
| (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier. |
| (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier. |
| (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier. |
| (rdiv @0 (POW:s @1 @2)) : New simplifier. |
| |
| 2015-08-21 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break |
| loop if EXPR is simplified to const value. |
| |
| 2015-08-21 Yury Gribov <y.gribov@samsung.com> |
| |
| * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types. |
| |
| 2015-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67285 |
| * gimple-fold.c (replace_stmt_with_simplification): Assert |
| seq is empty when replacing a call with itself but different |
| arguments. |
| * gimple-match-head.c (maybe_push_res_to_seq): When pushing |
| a call require that it is const. |
| |
| 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * defaults.h (CONSTANT_ALIGNMENT): New macro definition. |
| * builtins.c (get_object_alignment_2): Adjust. |
| * varasm.c (align_variable): Likewise. |
| (get_variable_align): Likewise. |
| (build_constant_desc): Likewise. |
| (force_const_mem): Likewise. |
| * doc/tm.texi.in: Likewise. |
| * doc/tm.texi: Regenerate. |
| |
| 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * genconfig.c (main): Always define HAVE_cc0. |
| * recog.c (rest_of_handle_peephole2): Adjust. |
| |
| 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * reorg.c (relax_delay_slots): Don't use #if to check value of |
| HAVE_cc0. |
| |
| 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION. |
| * targhooks.c (default_have_conditional_execution): Adjust. |
| |
| 2015-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (rtvec_all_equal_p): Declare. |
| (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions. |
| * rtl.c (rtvec_all_equal_p): New function. |
| * expmed.c (expand_mult): Use unwrap_const_vec_duplicate. |
| * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p) |
| (aarch64_simd_dup_constant): Use const_vec_duplicate_p. |
| * config/arm/arm.c (neon_vdup_constant): Likewise. |
| * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise. |
| * config/tilegx/constraints.md (W, Y): Likewise. |
| * config/tilepro/constraints.md (W, Y): Likewise. |
| * config/spu/spu.c (spu_legitimate_constant_p): Likewise. |
| (classify_immediate): Use unwrap_const_vec_duplicate. |
| * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise. |
| (reg_or_v2s8bit_operand): Likewise. |
| * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise. |
| (reg_or_v4s8bit_operand): Likewise. |
| |
| 2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_pmsum_be): New #define. |
| (vec_shasigma_be): New #define. |
| * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2. |
| (VPMSUMH): Likewise. |
| (VPMSUMW): Likewise. |
| (VPMSUMD): Likewise. |
| (VPMSUM): New BU_P8V_OVERLOAD_2. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New |
| entries for VEC_MADD and VEC_VPMSUM. |
| |
| 2015-08-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_insert_attributes): In diagnostic essage: |
| Multiply argument avr_n_flash by 64 to match unit of "KiB". |
| (avr_pgm_check_var_decl): Same. |
| |
| 2015-08-20 Alan Lawrence <alan.lawrence@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move |
| initialization of HFmode scalar type (float16_t) to... |
| (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization |
| code. |
| |
| (arm_init_builtins): Call arm_init_fp16_builtins earlier and always. |
| |
| * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on |
| having an -mfp16-format. |
| |
| 2015-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/predicates.md (vector_all_ones_operand): Use |
| CONSTM1_RTX to simplify definition. |
| |
| 2015-08-20 Richard Biener <rguenther@suse.de> |
| |
| * toplev.c (compile_file): Remove loop calling late_global_decl |
| on all symbols. |
| * varpool.c (varpool_node::assemble_decl): Call late_global_decl |
| on decls we assembled. |
| |
| 2015-08-20 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * common/config/aarch64/aarch64-common.c |
| (AARCH64_CPU_NAME_LENGTH): Delete. |
| (aarch64_option_extension): New. |
| (all_extensions): Likewise. |
| (processor_name_to_arch): Likewise. |
| (arch_to_arch_name): Likewise. |
| (all_cores): New. |
| (all_architectures): Likewise. |
| (aarch64_get_extension_string_for_isa_flags): Likewise. |
| (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to |
| architecture names. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_get_extension_string_for_isa_flags): New. |
| * config/aarch64/aarch64.c (aarch64_print_extension): Delete. |
| (aarch64_option_print): Get the string to print from |
| aarch64_get_extension_string_for_isa_flags. |
| (aarch64_declare_function_name): Likewise. |
| * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to... |
| (MCPU_TO_MARCH_SPEC): This. |
| (ASM_CPU_SPEC): Use it. |
| (BIG_LITTLE_SPEC_FUNCTIONS): Rename to... |
| (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This. |
| (EXTRA_SPEC_FUNCTIONS): Use it. |
| |
| 2015-08-20 Simon Dardis <simon.dardis@imgtec.com> |
| |
| * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy |
| expansion when !ISA_HAS_LWL_LWR. |
| (mips_block_move_straight): Update the size of elements copied to |
| account for alignment when !ISA_HAS_LWL_LWR. |
| * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro. |
| |
| 2015-08-19 Jiong Wang <jiong.wang@arm.com> |
| |
| * expr.c (expand_expr_real_2): Check gimple statement during |
| LSHIFT_EXPR expand. |
| |
| 2015-08-19 Magnus Granberg <zorry@gentoo.org> |
| |
| * common.opt (fstack-protector): Initialize to -1. |
| (fstack-protector-all): Likewise. |
| (fstack-protector-strong): Likewise. |
| (fstack-protector-explicit): Likewise. |
| * configure.ac: Add --enable-default-ssp. |
| * defaults.h (DEFAULT_FLAG_SSP): New. Default SSP to strong. |
| * opts.c (finish_options): Update opts->x_flag_stack_protect if it is |
| -1. |
| * doc/install.texi: Document --enable-default-ssp. |
| * config.in: Regenerated. |
| * configure: Likewise. |
| |
| 2015-08-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR rtl-optimization/64164 |
| * cfgexpand.c (parm_maybe_byref_p): Renamed to... |
| (parm_in_stack_slot_p): ... this. Disregard mode, what |
| matters is whether the parm will live in a pseudo or a stack |
| slot. |
| (expand_one_ssa_partition): Deal with params without a default |
| def. Disregard mode. |
| * cfgexpand.h: Renamed function declaration. |
| * tree-ssa-coalesce.c: Adjust. |
| * function.c (split_complex_args): Allocate stack slot for |
| unassigned parms before splitting. |
| (parm_in_unassigned_mem_p): New. Use it instead of |
| parm_maybe_byref_p throughout this file. |
| (assign_parm_setup_block): Use it. Accept pseudos in the |
| expand-assigned rtl. |
| (assign_parm_setup_reg): Drop BLKmode requirement. |
| (assign_parm_setup_stack): Allocate and fill in the address of |
| unassigned MEM parms. |
| |
| 2015-08-19 David Sherwood <david.sherwood@arm.com> |
| |
| * genmodes.c (emit_mode_unit_size_inline): New function. |
| (emit_mode_unit_precision_inline): New function. |
| (emit_insn_modes_h): Emit new #define. Emit new functions. |
| (emit_mode_unit_size): New function. |
| (emit_mode_unit_precision): New function. |
| (emit_mode_adjustments): Add mode_unit_size adjustments. |
| (emit_insn_modes_c): Emit new arrays. |
| * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to |
| use new inline methods. |
| |
| 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (bit_count): Delete prototype |
| and definition. |
| (aarch64_print_operand): Use popcount_hwi instead of the above. |
| |
| 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def: Delete obsolete |
| comment. |
| |
| 2015-08-19 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/67133 |
| * gimple-ssa-isolate-paths.c |
| (insert_trap_and_remove_trailing_statements): Rename to ... |
| (insert_trap): ... this. Don't remove trailing statements; split |
| block instead. |
| (find_explicit_erroneous_behaviour): Don't remove all outgoing edges. |
| |
| 2015-08-19 Mikael Morin <mikael@gcc.gnu.org> |
| |
| PR other/67042 |
| * hwint.h (sext_hwi): Switch to unsigned for the left shift, and |
| conditionalize the whole on __GNUC__. Add fallback code |
| depending neither on undefined nor implementation-defined behaviour. |
| |
| 2015-08-19 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace |
| whitespaces with tab. |
| |
| 2015-08-19 Florian Weimer <fweimer@redhat.com> |
| |
| * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context): |
| Move Name_Id_Set instantiation to the Prj package, to avoid trampolines. |
| * prj-proc.adb (Process.Process_Expression_Variable_Decl): |
| Move Name_Ids instantiation to the Prj.Proc package, to avoid |
| trampolines. |
| |
| 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (bounds_check): Use %wd print format |
| for HOST_WIDE_INT arguments. |
| |
| 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c, |
| dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h, |
| mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c, |
| signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c, |
| tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c, |
| tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c, |
| tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c, |
| tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c, |
| tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless |
| typedefs. |
| |
| 2015-08-18 trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c, |
| function.c, graphite-scop-detection.c, haifa-sched.c, |
| ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c, |
| tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c, |
| varasm.c: Remove typedefs of structs. |
| |
| 2015-08-18 Bill Schmidt <wschmidt@vnet.linux.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_adde): New define. |
| (vec_addec): Likewise. |
| (vec_double): Likewise. |
| (vec_bperm): Likewise. |
| (vec_gb): Likewise. |
| * config/rs6000/rs6000-builtin.def (ADDE): New |
| BU_ALTIVEC_OVERLOAD_3. |
| (ADDEC): Likewise. |
| (DOUBLE): New BU_VSX_OVERLOAD_1. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new |
| entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE, |
| ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC, |
| VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH, |
| ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR, |
| ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR, |
| ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL, |
| P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC, |
| and P8V_BUILTIN_VEC_VBPERMQ. |
| |
| 2015-08-18 Jason Merrill <jason@redhat.com> |
| |
| * print-tree.c (print_node): Handle TREE_BINFO. |
| |
| 2015-08-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| PR middle-end/36757 |
| * builtins.c (expand_builtin_signbit): Add asserts to make sure |
| we can expand BUILT_IN_SIGNBIT inline. |
| * builtins.def (BUILT_IN_SIGNBIT): Make type-generic. |
| * doc/extend.texi: Document the type-generic __builtin_signbit. |
| |
| 2015-08-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/67218 |
| * simplify-rtx.c (exact_int_to_float_conversion_p): New function. |
| (simplify_unary_operation_1): Use it. |
| |
| 2015-08-18 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/67222 |
| * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN |
| if the call isn't valid. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using |
| gimple_call_builtin_p. |
| (call_may_clobber_ref_p_1): Likewise. |
| (stmt_kills_ref_p): Likewise. |
| |
| 2015-08-18 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype. |
| * config/mips/mips.c (mips_hard_regno_rename_ok): New function. |
| (mips_hard_regno_scratch_ok): Likewise. |
| (TARGET_HARD_REGNO_SCRATCH_OK): Define macro. |
| * config/mips/mips.h (HARD_REGNO_RENAME_OK): New. |
| |
| 2015-08-18 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-niter.c (refine_value_range_using_guard): New. |
| (determine_value_range): Call refine_value_range_using_guard for |
| each loop initial condition to improve value range. |
| |
| 2015-08-17 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/i386/i386.c: Remove include of fibheap.h. |
| |
| 2015-08-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67221 |
| * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP. |
| (sccvn_dom_walker::before_dom_children): Mark backedges of |
| non-executable blocks as not executable. |
| |
| 2015-08-17 David Sherwood <david.sherwood@arm.com> |
| |
| * config/arm/arm.c (neon_element_bits): Replace call to |
| GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m). |
| * config/arm/neon.md (neon_vget_lane<mode>): Likewise. |
| (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise |
| (neon_vdup_lane<mode>): Likewise. |
| * config/i386/i386.c (ix86_expand_int_vcond): Likewise. |
| (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise. |
| (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise. |
| * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. |
| * config/spu/spu.c (arith_immediate_p): Likewise. |
| * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise. |
| * expr.c (expand_expr_real_2): Likewise. |
| * optabs.c (shift_amt_for_vec_perm_mask): Likewise. |
| * simplify-rtx.c (simplify_immed_subreg): Likewise. |
| * tree-cfg.c (verify_gimple_assign_ternary): Likewise. |
| * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise. |
| New variable. |
| * fold-const.c (fold_binary_loc): Replace call to |
| GET_MODE_PRECISION (GET_MODE_INNER (m)) with |
| GET_MODE_UNIT_PRECISION (m). |
| |
| 2015-08-17 Mike Stump <mikestump@comcast.net> |
| |
| * config/arm/arm.c (arm_block_move_unaligned_straight): |
| Emit normal move instead of unaligned load when source or destination |
| are appropriately aligned. |
| |
| 2015-08-17 Richard Biener <rguenther@suse.de> |
| Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| PR middle-end/16107 |
| * match.pd (div (coss (op @0) : New simplifier. |
| |
| 2015-08-14 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR rtl-optimization/64164 |
| PR bootstrap/66978 |
| PR middle-end/66983 |
| PR rtl-optimization/67000 |
| PR middle-end/67034 |
| PR middle-end/67035 |
| * Makefile.in (OBJS): Drop tree-ssa-copyrename.o. |
| * tree-ssa-copyrename.c: Removed. |
| * opts.c (default_options_table): Drop -ftree-copyrename. Add |
| -ftree-coalesce-vars. |
| * passes.def: Drop all occurrences of pass_rename_ssa_copies. |
| * common.opt (ftree-copyrename): Ignore. |
| (ftree-coalesce-inlined-vars): Likewise. |
| * doc/invoke.texi: Remove the ignored options above. |
| * gimple-expr.h (gimple_can_coalesce_p): Move declaration |
| * tree-ssa-coalesce.h: ... here. |
| * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other |
| headers required by it. |
| * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing |
| across variables when flag_tree_coalesce_vars. Check register |
| use and promoted modes to allow coalescing. Do not coalesce |
| maybe-byref parms with SSA_NAMEs of other variables, or |
| anonymous SSA_NAMEs. Moved to tree-ssa-coalesce.c. |
| * tree-ssa-live.c (struct tree_int_map_hasher): Move along |
| with its member functions to tree-ssa-coalesce.c. |
| (var_map_base_init): Likewise. Renamed to |
| compute_samebase_partition_bases. |
| (partition_view_normal): Drop want_bases parameter. |
| (partition_view_bitmap): Likewise. |
| * tree-ssa-live.h: Adjust declarations. |
| * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h. |
| (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's |
| default defs at the entry point. |
| (dump_part_var_map): New. |
| (compute_optimized_partition_bases): New, called by... |
| (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead |
| of compute_samebase_partition_bases. Adjust. |
| * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs. |
| * cfgexpand.c (leader_merge, parm_maybe_byref_p): New. |
| (ssa_default_def_partition): New. |
| (get_rtl_for_parm_ssa_default_def): New. |
| (align_local_variable, add_stack_var): Support anonymous SSA |
| names. |
| (defer_stack_allocation): Likewise. Declare earlier. |
| (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA |
| vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too. |
| Do no record deferred-allocation marker in |
| SA.partition_to_pseudo. |
| (expand_stack_vars): Adjust check for the marker in it. |
| (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop |
| redundant MEM attr setting. |
| (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed |
| from... |
| (expand_one_stack_var): ... this. New wrapper to check and |
| skip already expanded SSA partitions. |
| (record_alignment_for_reg_var): New, factored out of... |
| (expand_one_var): ... this. |
| (expand_one_ssa_partition): New. |
| (adjust_one_expanded_partition_var): New. |
| (expand_one_register_var): Check and skip already expanded SSA |
| partitions. |
| (expand_used_vars): Don't create DECLs for anonymous SSA |
| names. Expand all SSA partitions, then adjust all SSA names. |
| (pass::execute): Replace the loops that set |
| SA.partition_to_pseudo from partition leaders and cleared |
| DECL_RTL for multi-location variables, and that which used to |
| rename vars and set attrs, with one that clears DECL_RTL and |
| checks that PARMs and RESULTs default_defs match DECL_RTL. |
| * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare. |
| * emit-rtl.c: Include stor-layout.h. |
| (set_reg_attrs_for_parm): Handle NULL decl. |
| (set_reg_attrs_for_decl_rtl): Take mode from expression if |
| it's not a DECL. |
| * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME |
| rather than its possibly-NULL DECL. |
| * explow.c (promote_ssa_mode): New. |
| * explow.h (promote_ssa_mode): Declare. |
| * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs. |
| (read_complex_part): Export. |
| * expr.h (read_complex_part): Declare. |
| * cfgexpand.h (parm_maybe_byref_p): Declare. |
| * function.c: Include cfgexpand.h. |
| (use_register_for_decl): Handle SSA_NAMEs, anonymous or not. |
| (use_register_for_parm_decl): Wrapper for the above to |
| special-case the result_ptr. |
| (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def. |
| (split_complex_args): Take assign_parm_data_all argument. |
| Pass it to rtl_for_parm. Set up rtl and context for split |
| args. Reset complex parm before fetching its default decl |
| rtl. |
| (assign_parms_unsplit_complex): Use the default-def complex |
| parm rtl if it matches the components. |
| (assign_parms_augmented_arg_list): Adjust. |
| (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with |
| multiple locations. Recognize split complex args. |
| (assign_parm_adjust_stack_rtl): Add all and parm arguments, |
| for rtl_for_parm. For SSA-assigned parms, zero stack_parm. |
| (assign_parm_setup_block): Prefer SSA-assigned location, and |
| fill in its address if the memory location of a maybe-byref |
| parm was not assigned by cfgexpand. |
| (assign_parm_setup_reg): Likewise. Adjust its mode as |
| needed. Use entry_parm for equiv if stack_parm is NULL. Make |
| sure passed_pointer parms don't need conversion. Copy address |
| or value as needed. |
| (assign_parm_setup_stack): Prefer SSA-assigned location. |
| (assign_parms): Maybe reset DECL_RTL of params. Adjust stack |
| rtl before testing for pointer bounds. Special-case result_ptr. |
| (expand_function_start): Maybe reset DECL_RTL of result. |
| Prefer SSA-assigned location for result and static chain. |
| Factor out DECL_RESULT and SET_DECL_RTL. Convert static chain |
| to Pmode if needed, from H.J. Lu <hongjiu.lu@intel.com>. |
| * tree-outof-ssa.c (insert_value_copy_on_edge): Handle |
| anonymous SSA names. Use promote_ssa_mode. |
| (get_temp_reg): Likewise. |
| (remove_ssa_form): Adjust. |
| * stor-layout.c (layout_decl): Don't set mem attributes of |
| non-MEMs. |
| * var-tracking.c (dataflow_set_clear_at_call): Take call_insn |
| and get its reg_usage for reg invalidation. |
| (compute_bb_dataflow): Pass it insn. |
| (emit_notes_in_bb): Likewise. |
| |
| 2015-08-14 Marek Polacek <polacek@redhat.com> |
| |
| * tree-core.h (tree_base): Fix typo. |
| |
| 2015-08-14 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/67133 |
| * gimple.c (infer_nonnull_range_by_attribute): Check that the |
| nonnull argument position is not outside function arguments. |
| |
| 2015-08-14 Matthew Wahab <matthew.wahab@arm.com> |
| |
| PR target/67143 |
| * config/aarch64/atomics.md (atomic_<optab><mode>): Replace |
| 'lconst_atomic' with 'const_atomic'. |
| (atomic_fetch_<optab><mode>): Likewise. |
| (atomic_<optab>_fetch<mode>): Likewise. |
| * config/aarch64/iterators.md (lconst-atomic): Move below |
| 'const_atomic'. |
| (const_atomic): New. |
| |
| 2015-08-14 Thomas Schwinge <thomas@codesourcery.com> |
| Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_option_override): Don't override |
| debug options. |
| * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define. |
| (DWARF2_DEBUGGING_INFO): Don't define. |
| * debug.h (dwarf2_lineno_debug_hooks): Declare. |
| * toplev.c (process_options): Add a case for it. |
| * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable. |
| (dwarf2out_init): Skip most initializations if |
| DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that |
| case. |
| * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if |
| DWARF2_LINENO_DEBUGGING_INFO. |
| * opts.c (set_debug_level): Likewise. |
| |
| 2015-08-14 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/types.md (is_neon_type): Add missing types. |
| |
| 2015-08-14 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Add support |
| for skylake. |
| * config/i386/i386.c (PTA_SKYLAKE): New macros. |
| (processor_alias_table): Add skylake description. |
| (enum processor_model): Add skylake processor. |
| (arch_names_table): Add skylake record. |
| * doc/invoke.texi: Add skylake item. |
| |
| 2015-08-13 Andrew MacLeod <amacleod@redhat.com> |
| |
| * ira-int.h: Include recog.h. |
| * ira-build.c: Don't include recog.h. |
| * ira-color.c: Likewise. |
| * ira-conflicts.c: Likewise. |
| * ira-costs.c: Likewise. |
| * ira-emit.c: Likewise. |
| * ira-lives.c: Likewise. |
| * ira.c: Likewise. |
| * sched-deps.c: Likewise. |
| * sel-sched.c: Likewise. |
| * target-globals.c: Likewise. |
| |
| 2015-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR bootstrap/55035 |
| * reload1.c (elimination_costs_in_insn): Make it obvious to the |
| compiler that the n_dups and n_operands loop bounds are invariant. |
| |
| 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate |
| expressions in A and B. |
| |
| 2015-08-13 Richard Biener <rguenther@suse.de> |
| |
| * tree.c (nonnull_arg_p): Move from ... |
| * tree-vrp.c (nonnull_arg_p): ... here. |
| * tree.h (nonnull_arg_p): Declare. |
| * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init |
| here, register ptr != 0 for nonnull_arg_p pointer arguments. |
| Properly initialize static chain and by-reference result pointer. |
| (run_scc_vn): Adjust. |
| |
| 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for |
| TUNE_I6400. |
| |
| 2015-08-13 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_gen_atomic_cas): Declare. |
| * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): |
| Choose appropriate instruction pattern for the target. |
| (aarch64_gen_atomic_cas): New. |
| * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New. |
| (atomic_compare_and_swap<mode>_1): Rename to |
| aarch64_compare_and_swap<mode>. Fix some indentation. |
| (aarch64_compare_and_swap<mode>_lse): New. |
| (aarch64_atomic_cas<mode>): New. |
| |
| 2015-08-13 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New. |
| (TARGET_LSE): New. |
| |
| 2015-08-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67191 |
| * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove |
| assert we value-numbered last stmts operand because it can validly |
| trigger for unreachable code. |
| |
| 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/67103 |
| * ifcvt.c (noce_try_store_flag_constants): Move |
| x = (-(test != 0) & (b - a)) + a transformation to... |
| (noce_try_cmove): ... Here. Try it if normal conditional |
| move fails. |
| |
| 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com> |
| |
| * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64 |
| pseudo-processors. |
| * config/mips/mips.md (processor): Remove w32 and w64. |
| |
| 2015-08-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66502 |
| PR tree-optimization/67167 |
| * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include |
| backedge arguments. |
| (vn_phi_lookup): Adjust. |
| (vn_phi_insert): Likewise. |
| (visit_phi): Prefer to value-number to another PHI node |
| over value-numbering to a PHI argument. |
| (init_scc_vn): Mark DFS back edges. |
| |
| 2015-08-13 Richard Biener <rguenther@suse.de> |
| |
| * gimple.h (gcall::code_): New constant static member. |
| (gcond::code_): Likewise. |
| * gimple.c (gcall::code_): Define. |
| (gcond::code_): Likewise. |
| (is_a_helper <const gcond *>): Add. |
| (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload |
| and forward to a new gcall overload with less checking and a |
| cheaper way to access the operand. |
| (gimple_call_lhs_ptr): Likewise. |
| (gimple_call_set_lhs): Likewise. |
| (gimple_call_internal_p): Likewise. |
| (gimple_call_with_bounds_p): Likewise. |
| (gimple_call_set_with_bounds): Likewise. |
| (gimple_call_internal_fn): Likewise. |
| (gimple_call_set_ctrl_altering): Likewise. |
| (gimple_call_ctrl_altering_p): Likewise. |
| (gimple_call_fntype): Likewise. |
| (gimple_call_fn): Likewise. |
| (gimple_call_fn_ptr): Likewise. |
| (gimple_call_set_fndecl): Likewise. |
| (gimple_call_fndecl): Likewise. |
| (gimple_call_chain): Likewise. |
| (gimple_call_num_args): Likewise. |
| (gimple_call_arg): Likewise. |
| (gimple_call_arg_ptr): Likewise. |
| (gimple_call_set_arg): Likewise. |
| (gimple_call_noreturn_p): Likewise. |
| (gimple_cond_code): Likewise. |
| (gimple_cond_lhs): Likewise. |
| (gimple_cond_rhs): Likewise. |
| (gimple_has_lhs): Reduce checking. |
| |
| 2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> |
| |
| PR middle-end/25529 |
| * match.pd (div (mult @0 @1) @1) : New simplifier. |
| |
| 2015-08-12 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/67071 |
| * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New |
| predicate to allow construction of vector constants using the |
| VSLDOI vector shift instruction. |
| |
| * config/rs6000/rs6000-protos.h (vspltis_shifted): Add |
| declaration. |
| |
| * config/rs6000/rs6000.c (vspltis_shifted): New function to return |
| the number of bytes to be shifted left and filled in with either |
| all zero or all one bits. |
| (gen_easy_altivec_constant): Call vsplitis_shifted if no other |
| methods exist. |
| (output_vec_const_move): On power8, generate XXLORC to generate |
| a vector constant with all 1's. Do a split if we need to use a |
| VSLDOI instruction. |
| |
| * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to |
| properly test for the MSB. |
| |
| * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for |
| vector constants that can be created with VSLDOI. |
| |
| 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| revert: |
| * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c, |
| gimple-ssa-strength-reduction.c, graphite.c, init-regs.c, |
| ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c, |
| omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c, |
| tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c, |
| tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c, |
| tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c, |
| tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c, |
| vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous |
| |
| 2015-08-12 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/constraints.md (define_constraint "Y"): New |
| constraint. |
| * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools. |
| * config/xtensa/linux.h (ASM_SPEC): Likewise. |
| * config/xtensa/predicates.md (move_operand): Match constants |
| and symbols in the presence of TARGET_AUTO_LITPOOLS. |
| * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow |
| immediate references to TLS data. |
| (xtensa_emit_move_sequence): Don't force constants to memory in |
| the presence of TARGET_AUTO_LITPOOLS. |
| (print_operand): Add 'y' format, same as default, but capable of |
| printing SF mode constants as well. |
| * config/xtensa/xtensa.md (movsi_internal, movhi_internal) |
| (movsf_internal): Add movi pattern that loads literal. |
| (movsf, movdf): Don't force constants to memory in the presence |
| of TARGET_AUTO_LITPOOLS. |
| (movdf_internal): Add 'Y' constraint. |
| * config/xtensa/xtensa.opt (mauto-litpools): New option. |
| * doc/invoke.text (Xtensa options): Document -mauto-litpools. |
| |
| 2015-08-12 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm-fpus.def: Replace booleans with feature flags. |
| Update comment. |
| * config/arm/arm.c (ARM_FPU): Update macro. |
| * config/arm/arm.h (TARGET_NEON_FP16): Update feature test. |
| (TARGET_FP16): Likewise. |
| (TARGET_CRYPTO): Likewise. |
| (TARGET_NEON): Likewise. |
| (struct arm_fpu_desc): Remove fields neon, fp16 and crypto. Add |
| field features. |
| |
| 2015-08-12 Tom de Vries <tom@codesourcery.com> |
| |
| PR other/67092 |
| PR other/67098 |
| * doc/install.texi: Remove --with_host_libstdcxx item. Update |
| --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items |
| accordingly. Mention default for --with-stage1-ldflags. |
| |
| 2015-08-12 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm.h (arm_fpu_feature_set): New. |
| (ARM_FPU_FSET_HAS): New. |
| (FPU_FL_NONE): New. |
| (FPU_FL_NEON): New. |
| (FPU_FL_FP16): New. |
| (FPU_FL_CRYPTO): New. |
| |
| 2015-08-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break |
| after -mcmodel=large -fPIC sorry. |
| |
| 2015-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize |
| comparison operand order and commutative ternary op operand order. |
| (sccvn_dom_walker::cond_stack): New state to track temporary |
| expressions. |
| (sccvn_dom_walker::after_dom_children): Remove tempoary expressions |
| no longer valid. |
| (sccvn_dom_walker::record_cond): Add a single temporary conditional |
| expression. |
| (sccvn_dom_walker::record_conds): Add a temporary conditional |
| expressions and all related expressions also true/false. |
| (sccvn_dom_walker::before_dom_children): Record temporary |
| expressions based on the controlling condition of a single |
| predecessor. When trying to simplify a conditional statement |
| lookup expressions we might have inserted earlier. |
| |
| 2015-08-12 Yvan Roux <yvan.roux@linaro.org> |
| |
| PR target/67127 |
| * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking |
| to ARM core registers. |
| |
| 2015-08-12 Nathan Sidwell <nathan@acm.org> |
| |
| * tree-vrp.c (simplify_min_or_max_using_ranges): New. |
| (simplify_stmt_using_ranges): Simplify MIN and MAX exprs. |
| |
| 2015-08-12 Simon Dardis <simon.dardis@imgtec.com> |
| |
| * config/mips/mips.c (mips_store_data_bypass_p): Bring code into |
| line with comments. |
| * config/mips/sb1.md: Update usage of mips_store_data_bypass_p. |
| |
| 2015-08-12 Richard Biener <rguenther@suse.de> |
| |
| * gimple.h (remove_pointer): New trait. |
| (GIMPLE_CHECK2): New inline template function. |
| (gassign::code_): New constant static member. |
| (is_a_helper<const gassign *>): Add. |
| (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload |
| and forward to a new gassign overload with less checking and a |
| cheaper way to access the operand. |
| (gimple_assign_lhs_ptr): Likewise. |
| (gimple_assign_set_lhs): Likewise. |
| (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1): |
| Likewise. |
| (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2): |
| Likewise. |
| (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3): |
| Likewise. |
| (gimple_assign_rhs_code): Likewise. |
| * gimple.c (gassign::code_): Define. |
| |
| 2015-08-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): |
| Eliminate edges marked as not executable by SCCVN. |
| * tree-ssa-sccvn.c: Include gimple-iterator.h. |
| (cond_dom_walker): Rename to sccvn_dom_walker. |
| (sccvn_dom_walker::before_dom_children): Value-number defs |
| of all stmts. |
| (run_scc_vn): Remove loop value-numbering all SSA names. |
| Drop not visited SSA names to varying. |
| |
| 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c, |
| gimple-ssa-strength-reduction.c, graphite.c, init-regs.c, |
| ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c, |
| omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c, |
| tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c, |
| tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c, |
| tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c, |
| tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c, |
| vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous |
| |
| 2015-08-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/66954 |
| * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL |
| to enum feature_priority and feature_list. |
| (fold_builtin_cpu): Add F_PCLMUL to enum processor_features |
| and isa_names_table. |
| |
| 2015-08-11 Yuri Rumyantsev <ysrumyan@gmail.com> |
| |
| * tree-vect-stmts.c (vectorizable_shift): Add missed test on |
| vect_induction_def. |
| |
| 2015-08-11 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR c/66098 |
| PR c/66711 |
| * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into |
| account when deciding what was the command-line status. |
| |
| 2015-08-11 Nathan Sidwell <nathan@acm.org> |
| |
| * tree-vrp.c (simplify_abs_using_ranges): Simplify. |
| |
| * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if |
| we're not the only contributor to target phi. |
| |
| 2015-08-11 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after |
| FIXED_REG0. |
| |
| 2015-08-11 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-cfg.c (move_sese_region_to_fn): Add todo comment. |
| |
| 2015-08-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (processor_alias_table): Replace CPU_KNL |
| with CPU_SLM. |
| * config/i386/i386.md (cpu): Remove knl. |
| |
| 2015-08-10 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR libgomp/65742 |
| PR middle-end/66332 |
| * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit |
| open-coded sequence. |
| * omp-low.c (oacc_process_reduction_data): Remove handline of |
| GOMP_DEVICE_HOST_NONSHM. |
| |
| * lto-streamer-in.c (lto_input_mode_table): Adjust to |
| GET_MODE_INNER changes. |
| |
| 2015-08-10 Thomas Schwinge <thomas@codesourcery.com> |
| Ilya Verbin <ilya.verbin@intel.com> |
| |
| * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator. |
| |
| 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| * doc/options.texi (EnabledBy): Document that the argument must be |
| a Common option. |
| * doc/invoke.texi (Wnull-dereference): Move after Wnonnull. |
| Not enabled by -Wall. |
| * optc-gen.awk: Give nicer error messages. Detect if the argument |
| of EnabledBy is not a Common option. |
| * common.opt (Wnull-dereference): Not enabled by -Wall. |
| * opt-functions.awk (lang_enabled_by): Nicer error messages. |
| |
| 2015-08-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Treat |
| model == 0x4f as Broadwell. |
| |
| 2015-08-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/67028 |
| * combine.c (simplify_comparison): Fix comment. Rearrange code. |
| Add test to see if a const_int fits in the new mode. |
| |
| 2015-08-07 DJ Delorie <dj@redhat.com> |
| |
| * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts. |
| |
| 2015-08-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/67029 |
| * ira-color.c: Include "recog.h" before including "ira-int.h". |
| * target-globals.c: Likewise. |
| * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an |
| adds an alternative_mask argument and use it instead of |
| preferred_alternatives. |
| * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ... |
| * ira-int.h (ira_implicitly_set_insn_hard_regs): Here. |
| * sched-deps.c: Include "ira-int.h" after including "ira.h". |
| (sched_analyze_insn): Update call to |
| ira_implicitly_set_insn_hard_regs. |
| * sel-sched.c: Include "ira-int.h" after including "ira.h". |
| (implicit_clobber_conflict_p): Update call to |
| ira_implicitly_set_insn_hard_regs. |
| |
| 2015-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * Makefile.in (.INTERMEDIATE): Add gpl.pod. |
| |
| 2015-08-07 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/67002 |
| * config/sh/sh.c (sh_recog_treg_set_expr): Return false when |
| currently_expanding_to_rtl is set. |
| |
| 2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com> |
| |
| * configure.ac: Define LIBICONV_DEP with in-tree libiconv. |
| * configure: Regenerate. |
| |
| 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern. |
| * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise. |
| (aarch64_register_move_cost): Likewise. |
| (aarch64_load_symref_appropriately): Invoke the new added pattern if |
| possible. |
| * config/aarch64/constraints.md (Uc0): New constraint. |
| |
| 2015-08-06 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/constraints.md (Usf): Add the test of |
| aarch64_is_noplt_call_p. |
| |
| 2015-08-06 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New |
| declaration. |
| * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function. |
| * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios. |
| (call_symbol): Likewise. |
| |
| 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com> |
| |
| * tree-vect-patterns.c (vect_recog_mult_pattern): New function |
| for vectorizing multiplication patterns. |
| * tree-vectorizer.h: Adjust the number of patterns. |
| |
| 2015-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*vec_concatv2df): Declare added |
| alternatives as sselog type. |
| |
| 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for |
| all GPRs. |
| |
| 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_tbegin): Expand either |
| tbegin_1_z13 or tbegin_1 depending on VX flag. |
| * config/s390/s390.md ("tbegin_1_z13"): New expander. |
| |
| 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.opt: Clarify description for -mzvector |
| * doc/invoke.texi: Add documentation for -mhtm, -mvx, and |
| -mzvector. |
| |
| 2015-08-06 Richard Biener <rguenther@suse.de> |
| |
| * gimple.h (gimple_call_set_fn): Access op member directly. |
| (gimple_call_chain_ptr): Likewise. |
| (gimple_call_set_chain): Likewise. |
| (gimple_cond_lhs_ptr): Likewise. |
| (gimple_cond_set_lhs): Likewise. |
| (gimple_cond_rhs_ptr): Likewise. |
| (gimple_cond_set_rhs): Likewise. |
| (gimple_cond_true_label): Likewise. |
| (gimple_cond_set_true_label): Likewise. |
| (gimple_cond_set_false_label): Likewise. |
| (gimple_cond_false_label): Likewise. |
| (gimple_label_label): Likewise. |
| (gimple_label_set_label): Likewise. |
| (gimple_goto_set_dest): Likewise. |
| (gimple_asm_input_op): Likewise. |
| (gimple_asm_input_op_ptr): Likewise. |
| (gimple_asm_set_input_op): Likewise. |
| (gimple_asm_output_op): Likewise. |
| (gimple_asm_output_op_ptr): Likewise. |
| (gimple_asm_set_output_op): Likewise. |
| (gimple_asm_clobber_op): Likewise. |
| (gimple_asm_set_clobber_op): Likewise. |
| (gimple_asm_label_op): Likewise. |
| (gimple_asm_set_label_op): Likewise. |
| (gimple_switch_index): Likewise. |
| (gimple_switch_index_ptr): Likewise. |
| (gimple_return_retval_ptr): Likewise. |
| (gimple_return_retval): Likewise. |
| (gimple_return_set_retval): Likewise. |
| (gimple_switch_set_index): Likewise. Remove superfluous GIMPLE_CHECK. |
| (gimple_switch_label): Likewise. |
| (gimple_switch_set_label): Likewise. |
| |
| 2015-08-06 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify |
| bool comparison canonicalization and restrict to integers. |
| |
| 2015-08-05 Andrew MacLeod <amacleod@redhat.com> |
| |
| * coretypes.h (enum symbol_visibility): Relocate here. |
| * flag-types.h (enum symbol_visibility): Remove. |
| * tree-core.h (enum symbol_visibility): Remove. |
| |
| 2015-08-05 Lynn Boger <laboger@linux.vnet.ibm.com> |
| |
| PR target/66870 |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Check |
| for no_split_stack function attribute along with |
| flag_split_stack. |
| (rs6000_expand_split_stack_prologue): Likewise. |
| |
| 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| Jeff Law <law@redhat.com> |
| |
| PR c/16351 |
| * doc/invoke.texi (Wnull-dereference): New. |
| * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range. |
| * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): |
| Warn for potential NULL dereferences. |
| (find_explicit_erroneous_behaviour): Warn for NULL dereferences. |
| * ubsan.c (instrument_nonnull_arg): Call |
| infer_nonnull_range_by_attribute. |
| (instrument_nonnull_return): Likewise. |
| * common.opt (Wnull-dereference); New. |
| * gimple.c (infer_nonnull_range): Remove bool arguments. |
| (infer_nonnull_range_by_dereference): New. |
| (infer_nonnull_range_by_attribute): New. |
| * gimple.h: Update declarations. |
| |
| 2015-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gensupport.c (sequence_num): Replace with... |
| (insn_sequence_num, split_sequence_num, peephole2_sequence_num): |
| ...these new variables. |
| (init_rtx_reader_args_cb): Update accordingly. |
| (get_num_code_insns): Likewise. |
| (read_md_rtx): Rework to use a while loop and get_c_test. |
| Use the new counters. Remove redundant DEFINE_SUBST case. |
| * genoutput.c (gen_split): Delete. |
| (main): Don't call it. |
| |
| 2015-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gensupport.h (get_c_test): Declare. |
| * gensupport.c (get_c_test): New function. |
| * genconditions.c (main): Use it. |
| * genrecog.c (validate_pattern): Likewise. |
| (match_pattern_1): Likewise. Remove c_test argument. |
| (match_pattern): Update accordingly and remove c_test argument. |
| (main): Update accordingly. |
| |
| 2015-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gensupport.h (get_num_insn_codes): Declare. |
| * gensupport.c (get_num_insn_codes): New function. |
| * genattrtab.c (optimize_attrs): Rename max_insn_code to |
| num_insn_codes. |
| (main): Likewise. Use get_num_insn_codes. |
| * gencodes.c (main): Remove "last" and use get_num_insn_codes. |
| |
| 2015-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/66311 |
| * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value |
| is zero- rather than sign-extended. |
| |
| 2015-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target-insns.def (can_extend): Delete. |
| |
| 2015-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67121 |
| * tree-if-conv.c (combine_blocks): Clear range-info produced |
| by stmts no longer executed conditionally. |
| |
| 2015-08-05 Nick Clifton <nickc@redhat.com> |
| |
| * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization |
| to allow identical far pointers to remain. |
| |
| 2015-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67120 |
| * match.pd: Compare address bases with == if they are decls |
| or SSA names, not operand_equal_p. Otherwise fail. |
| |
| 2015-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67055 |
| * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle |
| NULL gimple_block. |
| |
| * g++.dg/torture/pr67055.C: New testcase. |
| |
| 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.md (define_attr "isa"): Addd avx512vl and |
| noavx512vl. |
| (define_attr "enabled"): Handle avx521vl and noavx512vl. |
| * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split |
| AVX-512 alternative out of SSE. |
| (define_insn "*vec_concatv2df"): Ditto. |
| |
| 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into |
| CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into |
| CODE_FOR_avx_ptestv4di. |
| * config/i386/sse.md (define_mode_iterator V_AVX): New. |
| (define_mode_attr sse4_1): Extend to other 128/256-bit modes. |
| (define_insn "avx_ptest256"): Merge this ... |
| (define_insn "sse4_1_ptest"): And this ... |
| (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator. |
| |
| 2015-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67109 |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Check |
| against too big groups. Print whether this is a load or store |
| group. Rename from ... |
| (vect_analyze_group_access): ... this which is now a wrapper |
| dissolving an invalid group. |
| (vect_analyze_data_ref_accesses): Print whether this is a load |
| or store group. |
| |
| 2015-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/67107 |
| * match.pd: Guard const_binop result checking against NULL_TREE |
| result. |
| |
| 2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| * cse.c (cse_insn): Restoring old behaviour for src_eqv |
| when dest and value in the REG_EQUAL are same and dest |
| is STRICT_LOW_PART. |
| |
| 2015-08-04 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/moxie/moxie.h (PRINT_OPERAND, |
| PRINT_OPERAND_ADDRESS): Remove macros. |
| * config/moxie/moxie-protos.h (moxie_print_operand, |
| moxie_print_operand_address): Remove declaration. |
| * config/moxie/moxie.c (TARGET_PRINT_OPERAND, |
| TARGET_PRINT_OPERAND_ADDRESS): Define. |
| (moxie_print_operand, moxie_print_operand_address): Make static. |
| |
| 2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| PR target/66731 |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL. |
| (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math. |
| |
| 2015-08-04 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in |
| generated code. |
| (dt_operand::gen_gimple_expr): Adjust. |
| |
| 2015-08-04 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize |
| bool compares on RHS. |
| * match.pd: Add X ==/!= !X is false/true pattern. |
| |
| 2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com> |
| |
| * config/aarch64/aarch64.c: Change inner loop statement cost |
| to be consistent with other targets. |
| |
| 2015-08-04 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian |
| targets. |
| |
| 2015-08-04 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete. |
| (machine_function): Remove pseudos field. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p): |
| Exit early and use target_option_current_node if processing current |
| pragma. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * doc/extend.texi (AArch64 Function Attributes): New node. |
| (AArch64 Pragmas): Likewise. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p): |
| Initialize simd builtins if TARGET_SIMD. |
| * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): |
| Make sure that the builtins are initialized only once no matter how |
| many times the function is called. |
| (aarch64_init_builtins): Unconditionally initialize crc builtins. |
| (aarch64_relayout_simd_param): New function. |
| (aarch64_simd_expand_args): Use above during argument expansion. |
| * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize |
| simd builtins if TARGET_SIMD. |
| * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New |
| prototype. |
| (aarch64_relayout_simd_types): Likewise. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs. |
| * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define. |
| (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove |
| static keyword. |
| (aarch64_reset_previous_fndecl): New function. |
| (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of |
| the string. |
| * config/aarch64/aarch64-c.c: New file. |
| * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top. |
| Push and pop options at beginning and end. Remove ifdef |
| __ARM_FEATURE_CRC32. |
| * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON. |
| Add pragma +nothing+simd and +nothing+crypto where appropriate. |
| * config/aarch64/t-aarch64 (aarch64-c.o): New rule. |
| * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins): |
| Define prototype. |
| (aarch64_register_pragmas): Likewise. |
| (aarch64_reset_previous_fndecl): Likewise. |
| (aarch64_process_target_attr): Likewise. |
| (aarch64_override_options_internal): Likewise. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p): |
| New function. |
| (aarch64_can_inline_p): Likewise. |
| (TARGET_CAN_INLINE_P): Define. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * common/config/aarch64/aarch64-common.c (aarch64_handle_option): |
| Remove static. Handle OPT_mgeneral_regs_only, |
| OPT_mfix_cortex_a53_835769, OPT_mstrict_align, |
| OPT_momit_leaf_frame_pointer. |
| * config/aarch64/aarch64.c: Include opts.h and diagnostic.h |
| (aarch64_attr_opt_type): New enum. |
| (aarch64_attribute_info): New struct. |
| (aarch64_handle_attr_arch): New function. |
| (aarch64_handle_attr_cpu): Likewise. |
| (aarch64_handle_attr_tune): Likewise. |
| (aarch64_handle_attr_isa_flags): Likewise. |
| (aarch64_attributes): New table. |
| (aarch64_process_one_target_attr): New function. |
| (num_occurences_in_str): Likewise. |
| (aarch64_process_target_attr): Likewise. |
| (aarch64_option_valid_attribute_p): Likewise. |
| (TARGET_OPTION_VALID_ATTRIBUTE_P): Define. |
| * config/aarch64/aarch64-protos.h: Include input.h |
| (aarch64_handle_option): Declare prototype. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define. |
| * config/aarch64/aarch64.c: Include target-globals.h |
| (aarch64_previous_fndecl): New variable. |
| (aarch64_set_current_function): New function. |
| (TARGET_SET_CURRENT_FUNCTION): Define. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable. |
| (explicit_arch): Likewise. |
| (x_aarch64_isa_flags): Likewise. |
| (mgeneral-regs-only): Mark as Save. |
| (mfix-cortex-a53-835769): Likewise. |
| (mcmodel=): Likewise. |
| (mstrict-align): Likewise. |
| (momit-leaf-frame-pointer): Likewise. |
| (mtls-dialect): Likewise. |
| (master=): Likewise. |
| * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define. |
| (aarch64_isa_flags): Remove extern declaration. |
| * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool |
| to indicate success or failure. |
| (aarch64_validate_march): Likewise. |
| (aarch64_validate_mtune): Likewise. |
| (aarch64_isa_flags): Delete. |
| (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags |
| instead of aarch64_isa_flags. |
| (aarch64_get_tune_cpu): New function. |
| (aarch64_get_arch): Likewise. |
| (aarch64_override_options): Use above and set up explicit_tune_core |
| and explicit_arch. |
| (aarch64_print_extension): Move earlier in file. Add isa_flags |
| argument and use that instead of the global aarch64_isa_flags. |
| (aarch64_option_save): New function. |
| (aarch64_option_restore): Likewise. |
| (aarch64_option_print): Likewise. |
| (aarch64_declare_function_name): Likewise. |
| (aarch64_start_file): Delete. |
| (TARGET_ASM_FILE_START): Do not define. |
| (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define. |
| * config/aarch64/aarch64-protos.h (aarch64_declare_function_name): |
| Declare prototype. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize |
| flag_omit_leaf_frame_pointer to 2. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always |
| define to 0 or 1. |
| (TARGET_FIX_ERR_A53_835769): New macro. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove |
| handling of opts->x_aarch64_fix_a53_err835769. |
| (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather |
| than aarch64_fix_a53_err835769. |
| * config/aarch64/aarch64-elf-raw.h: Update for above changes. |
| * config/aarch64/aarch64-linux.h: Likewise. |
| |
| 2015-08-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_int_movcc): Check result of |
| ix86_expand_int_movcc as boolean. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.opt (aarch64_arch_string): Delete. |
| (aarch64_cpu_string): Likewise. |
| (aarch64_tune_string): Likewise. |
| * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum. |
| (aarch64_parse_extension): Return aarch64_parse_opt_result. |
| Add extra argument to put result into. |
| (aarch64_parse_arch): Likewise. Do not set selected_cpu. |
| (aarch64_parse_cpu): Add arguments to put results into. Return |
| aarch64_parse_opt_result. |
| (aarch64_parse_tune): Likewise. |
| (aarch64_override_options_after_change_1): New function. |
| (aarch64_override_options_internal): New function. |
| (aarch64_validate_mcpu): Likewise. |
| (aarch64_validate_march): Likewise. |
| (aarch64_validate_mtune): Likewise. |
| (aarch64_override_options): Update to reflect above changes. |
| Move some logic into aarch64_override_options_internal. |
| Initialize target_option_default_node and target_option_current_node. |
| (aarch64_override_options_after_change): Move logic into |
| aarch64_override_options_after_change_1 and call it with global_options. |
| (initialize_aarch64_code_model): Take a gcc_options pointer and use the |
| flag values from that. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define |
| __ARM_ARCH_8A directly rather than with cpp_define_formatted. |
| * config/aarch64/aarch64.c (struct processor): Add arch field. |
| (all_architectures): Handle above, move above all_cores. |
| (all_cores): Handle above. |
| (aarch64_parse_arch): Handle above changes. |
| * config/aarch64/aarch64-arches.def (armv8-a): Extend according to |
| above. Update comments. |
| (armv8.1-a): Likewise. |
| * config/aarch64/aarch64-cores.def: Update according to above. |
| * config/aarch64/aarch64-opts.h (aarch64_arch): New enum. |
| * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to |
| aarch64_arch_driver_info. |
| |
| 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (struct processor): Add ident field. |
| Rename core sched_core. |
| (all_cores): Handle above changes. |
| (all_architectures): Likewise. |
| (aarch64_parse_arch): Likewise. |
| (aarch64_override_options): Likewise. |
| |
| 2015-08-04 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove |
| dispatching to fold_binary for GIMPLE_BINARY_RHS and for |
| comparisons embedded in [VEC_]COND_EXPRs. |
| |
| 2015-08-03 Abe Skolnik <a.skolnik@samsung.com> |
| |
| * tree-if-conv.c: Fix various typos in comments. |
| * tree-vect-stmts.c: Likewise. |
| |
| 2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR tree-optimization/67043 |
| * loop-invariant.c (move_invariant_reg): Recompute luids in loop |
| preheader after hoisting invariant in it. |
| (find_defs): Force recomputation of all luids. |
| |
| 2015-08-03 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/htm.md (tabort.): Restrict the source operand to |
| using a base register. |
| |
| 2015-08-03 David Malcolm <dmalcolm@redhat.com> |
| |
| * main.c (main): Pass in NULL for toplev's external_timer. |
| * timevar.c: Include coretypes.h. |
| (class timer::named_items): New. |
| (timer::named_items::named_items): New. |
| (timer::named_items::~named_items): New. |
| (timer::named_items::push): New. |
| (timer::named_items::pop): New. |
| (timer::named_items::print): New. |
| (timer::timer): Initialize field "m_jit_client_items". |
| (timer::~timer): New. |
| (timer::push): Move bulk of implementation to... |
| (timer::push_internal): ...here. New function. |
| (timer::pop): Move bulk of implementation to... |
| (timer::pop_internal): ...here. New function. |
| (timer::push_client_item): New. |
| (timer::pop_client_item): New. |
| (timer::print_row): New function, taken from timer::print. |
| (timer::print): Print "GCC items" header if we also have client |
| items. Move row-printing to timer::print_row. Print any client |
| items. |
| (timer::get_topmost_item_name): New method. |
| * timevar.def (TV_JIT_ACQUIRING_MUTEX): New. |
| (TV_JIT_CLIENT_CODE): New. |
| * timevar.h (timer::push_client_item): New declaration. |
| (timer::pop_client_item): New declaration. |
| (timer::get_topmost_item_name): New method. |
| (timer::push_internal): New declaration. |
| (timer::pop_internal): New declaration. |
| (timer::print_row): New declaration. |
| (timer::named_items): New declaration. |
| (timer::m_jit_client_items): New field. |
| (timer): Add friend class named_items. |
| (auto_timevar::auto_timevar): Add timer param. |
| (auto_timevar::~auto_timevar): Use field "m_timer". |
| (auto_timevar::m_timer): New field. |
| * toplev.c (initialize_rtl): Add g_timer as param when |
| constructing auto_timevar instance. |
| (toplev::toplev): Add "external_timer" param, and use it to |
| initialize the "g_timer" global if non-NULL. |
| (toplev::~toplev): If this created "g_timer", delete it. |
| * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param |
| with "external_timer" timer *. |
| |
| 2015-08-03 Alexander Basov <coohpt@gmail.com> |
| |
| PR middle-end/64744 |
| PR middle-end/48470 |
| PR middle-end/43404 |
| * cfgexpand.c (expand_one_var): Add check if stack is going to |
| be used in naked function. |
| * expr.c (expand_expr_addr_expr_1): Remove excess checking |
| whether expression should not reside in MEM. |
| * function.c (use_register_for_decl): Do not use registers for |
| non-register things (volatile, float, BLKMode) in naked functions. |
| |
| 2015-08-03 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/67060 |
| * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber. |
| Adjust splits to match new pattern. |
| |
| 2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode. |
| (VEC_M): Likewise. |
| (VEC_N): Likewise. |
| (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating |
| point in VSX registers. |
| |
| * config/rs6000/constraints.md (wb constraint): Document unused |
| w<x> constraint. |
| (we constraint): Likewise. |
| (wo constraint): Likewise. |
| (wp constraint): New constraint for IEEE 128-bit floating point in |
| VSX registers. |
| (wq constraint): Likewise. |
| |
| * config/rs6000/predicates.md (easy_fp_constant): Add support for |
| IEEE 128-bit floating point in VSX registers. |
| (easy_scalar_constant): Likewise. |
| |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new |
| constraints (wp, wq) for IEEE 128-bit floating point in VSX |
| registers. |
| (rs6000_init_hard_regno_mode_ok): Likewise. |
| |
| * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit |
| floating point in VSX registers. |
| (VSX_L): Likewise. |
| (VSX_M): Likewise. |
| (VSX_M2): Likewise. |
| (VSm): Likewise. |
| (VSs): Likewise. |
| (VSr): Likewise. |
| (VSa): Likewise. |
| (VSv): Likewise. |
| (vsx_le_permute_<mode>): Add support to properly swap bytes for |
| IEEE 128-bit floating point in VSX registers on little endian. |
| (vsx_le_undo_permute_<mode>): Likewise. |
| (vsx_le_perm_load_<mode>): Likewise. |
| (vsx_le_perm_store_<mode>): Likewise. |
| (splitters for IEEE 128-bit fp moves): Likewise. |
| |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and |
| wq constraints. |
| |
| * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit |
| floating point in VSX registers. |
| (VM2): Likewise. |
| |
| * doc/md.text (Machine Constraints): Document wp and wq |
| constraints on PowerPC. |
| |
| 2015-08-03 Jeff Law <law@redhat.com> |
| |
| PR middle-end/66314 |
| PR gcov-profile/66899 |
| * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly |
| iterate over the jump threading paths when an element in the |
| jump threading paths array is eliminated. |
| |
| 2015-08-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first. |
| |
| 2015-08-03 Patrick Palka <ppalka@gcc.gnu.org> |
| |
| * tree-ssa-uninit.c (find_uninit_use): Declare and pass to |
| is_use_properly_guarded the variable def_preds. Free its |
| contents before returning. |
| (prune_uninit_phi_opnds_in_unrealizable_paths): Same. |
| (is_use_properly_guarded): Replace local variable def_preds with |
| a parameter. Adjust accordingly. Only update *def_preds if it's |
| the empty vector. |
| |
| 2015-08-03 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (simplify::for_subst_vec): New member. |
| (binary_ok): New helper for for lowering. |
| (lower_for): Delay substituting operators into result expressions |
| if we can merge the results eventually again. |
| (capture_info::walk_result): Adjust for user_id appearing as |
| result expression operator. |
| (expr::gen_transform): Likewise. |
| (dt_simplify::gen_1): Likewise. |
| (dt_simplify::gen): Pass not substituted operators to tail |
| functions or initialize local variable with it. |
| (decision_tree::gen): Adjust function signature. |
| * match.pd: Fix tests against global code and add default |
| cases to switch stmts. |
| |
| 2015-08-03 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_simplify::gen): Create captures array |
| with an initializer. |
| |
| 2015-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * configure.ac: Set aliasing_flags to -fno-strict-aliasing if |
| the host compiler is affected by placement new aliasing bug. |
| * configure: Regenerate. |
| * Makefile.in (ALIASING_FLAGS): New variable. |
| (ALL_CXXFLAGS): Add $(ALIASING_FLAGS). |
| |
| 2015-08-03 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| PR target/66731 |
| * config/arm/vfp.md (negmuldf3_vfp): Add new pattern. |
| (negmulsf3_vfp): Likewise. |
| (muldf3negdf_vfp): Disable for -frounding-math. |
| (mulsf3negsf_vfp): Likewise. |
| * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL, |
| fix MULT cost with -frounding-math. |
| |
| 2015-08-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * ifcvt.c (noce_try_store_flag_constants): Make logic of the case |
| when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more |
| explicit. Prefer to add the flag whenever possible. |
| (noce_process_if_block): Try noce_try_store_flag_constants before |
| noce_try_cmove. |
| |
| 2015-08-03 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t): |
| New hash-map to record equivalent transforms. |
| (dt_node::analyze): Populate the equivalent transforms hash-map. |
| (dt_simplify::info): Add reference to hash-map entry. |
| (dt_simplify::gen): If we have split out a function for the |
| transform, generate a call to it. |
| (sinfo_hashmap_traits::hash): New function. |
| (compare_op): New helper function for ... |
| (sinfo_hashmap_traits::equal_keys): ... this new function. |
| (decision_tree::gen): Split out common equivalent transforms |
| into functions. |
| |
| 2015-08-03 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (fold_gimple_assign): Remove folding of |
| the comparison in COND_EXPRs. |
| |
| 2015-08-03 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs |
| on the rhs of assignments first simplify the embedded |
| GENERIC condition. |
| |
| 2015-08-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66917 |
| * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned |
| field. |
| (DR_VECT_AUX): New macro. |
| (set_dr_misalignment): Adjust. |
| (dr_misalignment): Likewise. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): |
| Compute whether the base is at least element aligned. |
| * tree-vect-stmts.c (ensure_base_align): Adjust. |
| (vectorizable_store): If the base is not element aligned |
| preserve alignment of the original access if misalignment is unknown. |
| (vectorizable_load): Likewise. |
| |
| 2015-08-02 Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (Wframe-address): Document it. |
| * doc/extend.texi (__builtin_frame_address, __builtin_return_address): |
| Clarify possible effects of calling the functions with non-zero |
| arguments and mention -Wframe-address. |
| * builtins.c (expand_builtin_frame_address): Handle -Wframe-address. |
| |
| 2015-08-01 Michael Collison <michael.collison@linaro.org |
| Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/arm.md (*arm_smin_cmp): New pattern. |
| (*arm_umin_cmp): Likewise. |
| |
| 2015-08-01 Caroline Tice <cmtice@google.com> |
| |
| PR 66521 |
| * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New |
| global variables. |
| (vtbl_find_mangled_name): New function. |
| (vtbl_register_mangled_name): New function. |
| (vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "<anon>", look up |
| mangled name in mangled name vectors. |
| (find_or_create_vtbl_map_node): Ditto. |
| (var_is_used_for_virtual_call_p): Add recursion_depth parameter; |
| update recursion_depth on function entry; pass it to every recursive |
| call; automatically exit if depth > 25 (give up looking at that point). |
| (verify_bb_vtables): Initialize recursion_depth and pass it to |
| var_is_used_for_virtual_call_p. |
| * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New |
| global variable decls. |
| (vtbl_register_mangled_name): New extern function decl. |
| |
| 2015-08-01 Tom de Vries <tom@codesourcery.com> |
| |
| * tree.c (operation_can_overflow, operation_no_trapping_overflow): New |
| function. |
| * tree.h (operation_can_overflow, operation_no_trapping_overflow): |
| Declare. |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Use |
| operation_no_trapping_overflow. Allow non-overflow operations. |
| * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow |
| operations. |
| |
| 2015-07-31 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/67049 |
| * config/sh/sh.md (GOTaddr2picreg): Fix typo. |
| |
| 2015-07-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (*if_neg_move): Convert to insn_and_split. |
| Enable for TARGET_32BIT. |
| (*if_move_neg): Likewise. |
| |
| 2015-07-31 Nick Clifton <nickc@redhat.com> |
| |
| * config/m32r/m32r.c (m32r_attribute_identifier): New function. |
| Returns true for __model__. |
| (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define. |
| |
| 2015-07-31 Alan Modra <amodra@gmail.com> |
| |
| PR target/66870 |
| * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used. |
| (rs6000_emit_prologue): Set it. |
| (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used. |
| |
| 2015-07-31 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2 |
| -> X == (C1 ^ C2) which is already implemented in match.pd. |
| Remove redundant dispatching to fold_relational_const. |
| Move unordered self and NaN compares ... |
| * match.pd: ... as patterns here. Remove some stray captures |
| and add a comment. |
| |
| 2015-07-31 Petr Murzin <petr.murzin@intel.com> |
| |
| * config/i386/i386.c |
| (bdesc_special_args): Convert mask type from signed to unsigned for |
| masked builtins. |
| (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF, |
| UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI, |
| V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT, |
| V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF, |
| V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE, |
| V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI, |
| V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF, |
| V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF, |
| V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI, |
| HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF, |
| V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI, |
| V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI, |
| V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI, |
| V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI, |
| V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF, |
| V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF, |
| V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF, |
| V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF, |
| V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI, |
| V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI, |
| V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI, |
| HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI, |
| VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI, |
| V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI. |
| * config/i386/i386-builtin-types.def |
| (V16QI_FTYPE_V16SI): Remove. |
| (V8DF_FTYPE_V8SI): Ditto. |
| (V8HI_FTYPE_V8DI): Ditto. |
| (V8SI_FTYPE_V8DI): Ditto. |
| (V8SF_FTYPE_V8DF): Ditto. |
| (V8SF_FTYPE_V8DF_V8SF_QI): Ditto. |
| (V16HI_FTYPE_V16SI): Ditto. |
| (V16SF_FTYPE_V16HI): Ditto. |
| (V16SF_FTYPE_V16HI_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SI): Ditto. |
| (V4DI_FTYPE_V4DI): Ditto. |
| (V16SI_FTYPE_V16SF): Ditto. |
| (V16SF_FTYPE_FLOAT): Ditto. |
| (V8DF_FTYPE_DOUBLE): Ditto. |
| (V8DI_FTYPE_INT64): Ditto. |
| (V8DI_FTYPE_V4DI): Ditto. |
| (V16QI_FTYPE_V8DI): Ditto. |
| (UINT_FTYPE_V4SF): Ditto. |
| (UINT64_FTYPE_V4SF): Ditto. |
| (UINT_FTYPE_V2DF): Ditto. |
| (UINT64_FTYPE_V2DF): Ditto. |
| (V16SI_FTYPE_V16SI): Ditto. |
| (V8DI_FTYPE_V8DI): Ditto. |
| (V16SI_FTYPE_PV4SI): Ditto. |
| (V16SF_FTYPE_PV4SF): Ditto. |
| (V8DI_FTYPE_PV2DI): Ditto. |
| (V8DF_FTYPE_PV2DF): Ditto. |
| (V4DI_FTYPE_PV2DI): Ditto. |
| (V4DF_FTYPE_PV2DF): Ditto. |
| (V16SI_FTYPE_PV2SI): Ditto. |
| (V16SF_FTYPE_PV2SF): Ditto. |
| (V8DI_FTYPE_PV4DI): Ditto. |
| (V8DF_FTYPE_PV4DF): Ditto. |
| (V8SF_FTYPE_FLOAT): Ditto. |
| (V4SF_FTYPE_FLOAT): Ditto. |
| (V4DF_FTYPE_DOUBLE): Ditto. |
| (V8SF_FTYPE_PV4SF): Ditto. |
| (V8SI_FTYPE_PV4SI): Ditto. |
| (V4SI_FTYPE_PV2SI): Ditto. |
| (V8SF_FTYPE_PV2SF): Ditto. |
| (V8SI_FTYPE_PV2SI): Ditto. |
| (V16SF_FTYPE_PV8SF): Ditto. |
| (V16SI_FTYPE_PV8SI): Ditto. |
| (V8DI_FTYPE_V8SF): Ditto. |
| (V4DI_FTYPE_V4SF): Ditto. |
| (V2DI_FTYPE_V4SF): Ditto. |
| (V64QI_FTYPE_QI): Ditto. |
| (V32HI_FTYPE_HI): Ditto. |
| (V8UHI_FTYPE_V8UHI): Ditto. |
| (V16UHI_FTYPE_V16UHI): Ditto. |
| (V32UHI_FTYPE_V32UHI): Ditto. |
| (V2UDI_FTYPE_V2UDI): Ditto. |
| (V4UDI_FTYPE_V4UDI): Ditto. |
| (V8UDI_FTYPE_V8UDI): Ditto. |
| (V4USI_FTYPE_V4USI): Ditto. |
| (V8USI_FTYPE_V8USI): Ditto. |
| (V16USI_FTYPE_V16USI): Ditto. |
| (V2DF_FTYPE_V2DF_UINT64): Ditto. |
| (V2DI_FTYPE_V2DF_V2DF): Ditto. |
| (V2UDI_FTYPE_V4USI_V4USI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DI): Ditto. |
| (V4SF_FTYPE_V4SF_UINT64): Ditto. |
| (V4SI_FTYPE_V4SF_V4SF): Ditto. |
| (V16SF_FTYPE_V16SF_V16SI): Ditto. |
| (V64QI_FTYPE_V32HI_V32HI): Ditto. |
| (V32HI_FTYPE_V16SI_V16SI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto. |
| (V32HI_FTYPE_V64QI_V64QI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI): Ditto. |
| (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto. |
| (V16SI_FTYPE_V16SI_V4SI): Ditto. |
| (V16SI_FTYPE_V16SI_V16SI): Ditto. |
| (V16SI_FTYPE_V32HI_V32HI): Ditto. |
| (V16SI_FTYPE_V16SI_SI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI): Ditto. |
| (V4UDI_FTYPE_V8USI_V8USI): Ditto. |
| (V8DI_FTYPE_V16SI_V16SI): Ditto. |
| (V8DI_FTYPE_V8DI_V2DI): Ditto. |
| (QI_FTYPE_QI): Ditto. |
| (SI_FTYPE_SI): Ditto. |
| (DI_FTYPE_DI): Ditto. |
| (QI_FTYPE_QI_QI): Ditto. |
| (QI_FTYPE_QI_INT): Ditto. |
| (HI_FTYPE_HI_INT): Ditto. |
| (SI_FTYPE_SI_INT): Ditto. |
| (DI_FTYPE_DI_INT): Ditto. |
| (HI_FTYPE_V16QI_V16QI): Ditto. |
| (SI_FTYPE_V32QI_V32QI): Ditto. |
| (DI_FTYPE_V64QI_V64QI): Ditto. |
| (QI_FTYPE_V8HI_V8HI): Ditto. |
| (HI_FTYPE_V16HI_V16HI): Ditto. |
| (SI_FTYPE_V32HI_V32HI): Ditto. |
| (QI_FTYPE_V4SI_V4SI): Ditto. |
| (QI_FTYPE_V8SI_V8SI): Ditto. |
| (QI_FTYPE_V2DI_V2DI): Ditto. |
| (QI_FTYPE_V4DI_V4DI): Ditto. |
| (QI_FTYPE_V8DI_V8DI): Ditto. |
| (HI_FTYPE_V16SI_V16SI): Ditto. |
| (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto. |
| (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto. |
| (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto. |
| (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto. |
| (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto. |
| (V8DF_FTYPE_V8SF_V8DF_QI): Ditto. |
| (V8DI_FTYPE_V8DF_V8DI_QI): Ditto. |
| (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto. |
| (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto. |
| (V16SF_FTYPE_V16SI_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto. |
| (V8SI_FTYPE_V8DF_V8SI_QI): Ditto. |
| (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto. |
| (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto. |
| (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto. |
| (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto. |
| (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto. |
| (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto. |
| (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto. |
| (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto. |
| (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto. |
| (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto. |
| (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto. |
| (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto. |
| (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto. |
| (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto. |
| (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto. |
| (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto. |
| (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto. |
| (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto. |
| (V16SI_FTYPE_V16SF_V16SI_HI): Ditto. |
| (V8DI_FTYPE_V8SF_V8DI_QI): Ditto. |
| (V8SF_FTYPE_V8DI_V8SF_QI): Ditto. |
| (V8DF_FTYPE_V8DI_V8DF_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto. |
| (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto. |
| (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto. |
| (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto. |
| (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto. |
| (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto. |
| (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto. |
| (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto. |
| (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto. |
| (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto. |
| (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto. |
| (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto. |
| (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto. |
| (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned. |
| (V4SF_FTYPE_V4DF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V8HI_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8HI_V8SF_QI): Ditto. |
| (V16SI_FTYPE_V16SI_V16SI_HI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_QI): Ditto. |
| (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto. |
| (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto. |
| (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto. |
| (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto. |
| (V4SI_FTYPE_V2DF_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto. |
| (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto. |
| (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto. |
| (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto. |
| (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto. |
| (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto. |
| (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto. |
| (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto. |
| (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto. |
| (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto. |
| (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto. |
| (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto. |
| (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto. |
| (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto. |
| (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto. |
| (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto. |
| (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto. |
| (HI_FTYPE_HI): Ditto. |
| (HI_FTYPE_V16QI): Ditto. |
| (SI_FTYPE_V32QI): Ditto. |
| (DI_FTYPE_V64QI): Ditto. |
| (QI_FTYPE_V8HI): Ditto. |
| (HI_FTYPE_V16HI): Ditto. |
| (SI_FTYPE_V32HI): Ditto. |
| (QI_FTYPE_V4SI): Ditto. |
| (QI_FTYPE_V8SI): Ditto. |
| (HI_FTYPE_V16SI): Ditto. |
| (QI_FTYPE_V2DI): Ditto. |
| (QI_FTYPE_V4DI): Ditto. |
| (QI_FTYPE_V8DI): Ditto. |
| (V16QI_FTYPE_HI): Ditto. |
| (V32QI_FTYPE_SI): Ditto. |
| (V64QI_FTYPE_DI): Ditto. |
| (V8HI_FTYPE_QI): Ditto. |
| (V16HI_FTYPE_HI): Ditto. |
| (V32HI_FTYPE_SI): Ditto. |
| (V4SI_FTYPE_QI): Ditto. |
| (V4SI_FTYPE_HI): Ditto. |
| (V8SI_FTYPE_QI): Ditto. |
| (V8SI_FTYPE_HI): Ditto. |
| (V2DI_FTYPE_QI): Ditto. |
| (V4DI_FTYPE_QI): Ditto. |
| (HI_FTYPE_HI_HI): Ditto. |
| (SI_FTYPE_SI_SI): Ditto. |
| (DI_FTYPE_DI_DI): Ditto. |
| (HI_FTYPE_V16QI_V16QI_HI): Ditto. |
| (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto. |
| (SI_FTYPE_V32QI_V32QI_SI): Ditto. |
| (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto. |
| (DI_FTYPE_V64QI_V64QI_DI): Ditto. |
| (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto. |
| (QI_FTYPE_V8HI_V8HI_QI): Ditto. |
| (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto. |
| (HI_FTYPE_V16HI_V16HI_HI): Ditto. |
| (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto. |
| (SI_FTYPE_V32HI_V32HI_SI): Ditto. |
| (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto. |
| (QI_FTYPE_V4SI_V4SI_QI): Ditto. |
| (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto. |
| (QI_FTYPE_V8SI_V8SI_QI): Ditto. |
| (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto. |
| (QI_FTYPE_V2DI_V2DI_QI): Ditto. |
| (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto. |
| (QI_FTYPE_V4DI_V4DI_QI): Ditto. |
| (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto. |
| (QI_FTYPE_V8DI_V8DI_QI): Ditto. |
| (HI_FTYPE_V16SI_V16SI_HI): Ditto. |
| (QI_FTYPE_V8DI_V8DI_INT): Ditto. |
| (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto. |
| (HI_FTYPE_V16SI_V16SI_INT): Ditto. |
| (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto. |
| (QI_FTYPE_V8DF_V8DF_INT): Ditto. |
| (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto. |
| (HI_FTYPE_V16SF_V16SF_INT): Ditto. |
| (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto. |
| (QI_FTYPE_V2DF_V2DF_INT): Ditto. |
| (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto. |
| (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto. |
| (QI_FTYPE_V4SF_V4SF_INT): Ditto. |
| (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto. |
| (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto. |
| (V16SI_FTYPE_HI): Ditto. |
| (V8DI_FTYPE_QI): Ditto. |
| (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto. |
| (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V4SF_V2DF_QI): Ditto. |
| (V2DF_FTYPE_V4SI_V2DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4SF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4SI_V4DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V8SI_V8DF_QI): Ditto. |
| (V2DI_FTYPE_V4SI_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V8HI_V2DI_QI): Ditto. |
| (V4DI_FTYPE_V4DF_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V2DF_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto. |
| (V8DI_FTYPE_V8SI_V8DI_QI): Ditto. |
| (V8DI_FTYPE_V8HI_V8DI_QI): Ditto. |
| (V8DI_FTYPE_V16QI_V8DI_QI): Ditto. |
| (V2DI_FTYPE_V16QI_V2DI_QI): Ditto. |
| (V4DI_FTYPE_V16QI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V4DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V4SI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_V8HI_V4DI_QI): Ditto. |
| (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto. |
| (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto. |
| (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto. |
| (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto. |
| (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto. |
| (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto. |
| (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto. |
| (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto. |
| (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto. |
| (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_QI): Ditto. |
| (V4SF_FTYPE_V4SI_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_V8SI_V8SF_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V16SF_HI): Ditto. |
| (V4SI_FTYPE_V16QI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V8HI_V4SI_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V8HI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V16QI_V8SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto. |
| (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V8SF_V16SF_HI): Ditto. |
| (V16SF_FTYPE_V4SF_V16SF_HI): Ditto. |
| (V8DF_FTYPE_V4DF_V8DF_QI): Ditto. |
| (V8DF_FTYPE_V2DF_V8DF_QI): Ditto. |
| (V16SI_FTYPE_V8SI_V16SI_HI): Ditto. |
| (V16SI_FTYPE_V4SI_V16SI_HI): Ditto. |
| (V16SI_FTYPE_SI_V16SI_HI): Ditto. |
| (V16SI_FTYPE_V16HI_V16SI_HI): Ditto. |
| (V16SI_FTYPE_V16QI_V16SI_HI): Ditto. |
| (V8DI_FTYPE_V4DI_V8DI_QI): Ditto. |
| (V4SI_FTYPE_V4DF_V4SI_QI): Ditto. |
| (V8DI_FTYPE_V2DI_V8DI_QI): Ditto. |
| (V8DI_FTYPE_DI_V8DI_QI): Ditto. |
| (V16QI_FTYPE_V16SI_V16QI_HI): Ditto. |
| (V16QI_FTYPE_V8DI_V16QI_QI): Ditto. |
| (V32HI_FTYPE_V32HI_V32HI_SI): Ditto. |
| (V32HI_FTYPE_V32QI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V16HI_V16HI_HI): Ditto. |
| (V16HI_FTYPE_V16QI_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V16QI_V8HI_QI): Ditto. |
| (V8SF_FTYPE_V4SF_V8SF_QI): Ditto. |
| (V4DF_FTYPE_V2DF_V4DF_QI): Ditto. |
| (V8SI_FTYPE_V4SI_V8SI_QI): Ditto. |
| (V8SI_FTYPE_SI_V8SI_QI): Ditto. |
| (V4SI_FTYPE_V4SI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_SI_V4SI_QI): Ditto. |
| (V4DI_FTYPE_V2DI_V4DI_QI): Ditto. |
| (V4DI_FTYPE_DI_V4DI_QI): Ditto. |
| (V2DI_FTYPE_V2DI_V2DI_QI): Ditto. |
| (V2DI_FTYPE_DI_V2DI_QI): Ditto. |
| (V64QI_FTYPE_V64QI_V64QI_DI): Ditto. |
| (V64QI_FTYPE_V16QI_V64QI_DI): Ditto. |
| (V64QI_FTYPE_QI_V64QI_DI): Ditto. |
| (V32QI_FTYPE_V32QI_V32QI_SI): Ditto. |
| (V32QI_FTYPE_V16QI_V32QI_SI): Ditto. |
| (V32QI_FTYPE_QI_V32QI_SI): Ditto. |
| (V16QI_FTYPE_V16QI_V16QI_HI): Ditto. |
| (V16QI_FTYPE_QI_V16QI_HI): Ditto. |
| (V32HI_FTYPE_V8HI_V32HI_SI): Ditto. |
| (V32HI_FTYPE_HI_V32HI_SI): Ditto. |
| (V16HI_FTYPE_V8HI_V16HI_HI): Ditto. |
| (V16HI_FTYPE_HI_V16HI_HI): Ditto. |
| (V8HI_FTYPE_V8HI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_HI_V8HI_QI): Ditto. |
| (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto. |
| (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto. |
| (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto. |
| (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto. |
| (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto. |
| (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto. |
| (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto. |
| (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto. |
| (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto. |
| (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto. |
| (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto. |
| (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto. |
| (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto. |
| (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto. |
| (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto. |
| (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto. |
| (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto. |
| (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto. |
| (V16HI_FTYPE_V16SI_V16HI_HI): Ditto. |
| (V8SI_FTYPE_V8DI_V8SI_QI): Ditto. |
| (V8HI_FTYPE_V8DI_V8HI_QI): Ditto. |
| (V16QI_FTYPE_V8HI_V16QI_QI): Ditto. |
| (V16QI_FTYPE_V16HI_V16QI_HI): Ditto. |
| (V16QI_FTYPE_V4SI_V16QI_QI): Ditto. |
| (V16QI_FTYPE_V8SI_V16QI_QI): Ditto. |
| (V8HI_FTYPE_V4SI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V8SI_V8HI_QI): Ditto. |
| (V16QI_FTYPE_V2DI_V16QI_QI): Ditto. |
| (V16QI_FTYPE_V4DI_V16QI_QI): Ditto. |
| (V8HI_FTYPE_V2DI_V8HI_QI): Ditto. |
| (V8HI_FTYPE_V4DI_V8HI_QI): Ditto. |
| (V4SI_FTYPE_V2DI_V4SI_QI): Ditto. |
| (V4SI_FTYPE_V4DI_V4SI_QI): Ditto. |
| (V32QI_FTYPE_V32HI_V32QI_SI): Ditto. |
| (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto. |
| (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto. |
| (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto. |
| (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto. |
| (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto. |
| (VOID_FTYPE_PV8DF_V8DF_QI): Ditto. |
| (VOID_FTYPE_PV8SI_V8DI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V8DI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV4SI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV4SI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V8SI_QI): Ditto. |
| (VOID_FTYPE_PV8HI_V4SI_QI): Ditto. |
| (VOID_FTYPE_PV4DF_V4DF_QI): Ditto. |
| (VOID_FTYPE_PV2DF_V2DF_QI): Ditto. |
| (VOID_FTYPE_PV16SF_V16SF_HI): Ditto. |
| (VOID_FTYPE_PV8SF_V8SF_QI): Ditto. |
| (VOID_FTYPE_PV4SF_V4SF_QI): Ditto. |
| (VOID_FTYPE_PV8DI_V8DI_QI): Ditto. |
| (VOID_FTYPE_PV4DI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV2DI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV16SI_V16SI_HI): Ditto. |
| (VOID_FTYPE_PV16HI_V16SI_HI): Ditto. |
| (VOID_FTYPE_PV16QI_V16SI_HI): Ditto. |
| (VOID_FTYPE_PV16QI_V8SI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V4SI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V8DI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V4DI_QI): Ditto. |
| (VOID_FTYPE_PV16QI_V2DI_QI): Ditto. |
| (VOID_FTYPE_PV8SI_V8SI_QI): Ditto. |
| (VOID_FTYPE_PV4SI_V4SI_QI): Ditto. |
| (VOID_FTYPE_PV32HI_V32HI_SI): Ditto. |
|