| 2011-09-29 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for |
| Darwin >= 9. |
| |
| 2011-09-28 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, |
| UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to... |
| (UNSPEC_FCMP): New unspec. |
| (gcond): New code iterator. |
| (gcond_name): New code attr. |
| (GCM): New mode iterator. |
| (gcm_name): New mode attr. |
| (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators. |
| |
| 2011-09-28 Oleg Endo <oleg.endo@t-online.de> |
| |
| PR target/49486 |
| * config/sh/sh.md (negdi2): Move expansion into split to |
| allow more combination options. Add T_REG clobber. |
| (abssi2): New expander. |
| (*negdi2, *abssi2, *negabssi2): New insns. |
| (cneg): Change from insn to insn_and_split. Rename to |
| negsi_cond. Add alternative for non-SH4. |
| |
| 2011-09-28 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete. |
| (neon_move_hi_quad_<mode>): Likewise. |
| (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves. |
| |
| 2011-09-28 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/predicates.md (rx_minmax_operand): New predicate. |
| Accepts immediates and a restricted subset of MEMs. |
| * config/rx/rx.md (int_modes): New iterator. |
| (smaxsi3, sminsi3): Delete and replace with... |
| (smax<int_mode>3, smin<int_mode>3): New patterns. |
| (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns. |
| |
| 2011-09-28 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50460 |
| * fold-const.c (try_move_mult_to_index): Handle &a.array the |
| same as &a.array[0]. |
| |
| 2011-09-28 Kai Tietz <ktietz@redhat.com> |
| |
| * configure.ac: Add test for new section attribute |
| specifier "e" via define HAVE_GAS_SECTION_EXCLUDE. |
| * config.in: Regenerated. |
| * configure: Regenerated. |
| * config/i386/winnt.c (i386_pe_asm_named_section): Emit |
| new section flag "e" for excluded sections, if supported. |
| Otherwise we mark section withc SECTION_EXCLUDE flag |
| as never-load. |
| |
| 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-27 Sriraman Tallam <tmsriram@google.com> |
| |
| * output.h (SECTION_EXCLUDE): New macro. |
| * varasm.c (default_elf_asm_named_section): Check for |
| SECTION_EXCLUDE. |
| |
| 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * fwprop.c (forward_propagate_and_simplify): After checking |
| reg/subreg combinations, check whether the modes are the same. |
| |
| 2011-09-27 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_add_cfa_restore): New function. |
| (mips16e_save_restore_reg): Use it. |
| (mips_restore_reg): Likewise. Split double FPRs for |
| REG_CFA_RESTORE notes. |
| |
| 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/50386 |
| PR middle-end/50326 |
| * tree-sra.c (build_ref_for_model): Use the type of the field as |
| the type of the COMPONENT_REF. |
| |
| 2011-09-27 Jeff Law <law@redhat.com> |
| |
| * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale |
| non-jumping insns by REG_BR_PROB_BASE and the maximum cost |
| by SCALE. |
| (find_if_case_1): Use the probability of the THEN clause when |
| determining if speculation is profitable. |
| (find_if_case_2): Similarly for the ELSE clause. |
| |
| 2011-09-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * common.opt: Add -foptimize-strlen option. |
| * Makefile.in (OBJS): Add tree-ssa-strlen.o. |
| (tree-sssa-strlen.o): Add dependencies. |
| * opts.c (default_options_table): Enable -foptimize-strlen |
| by default at -O2 if not -Os. |
| * passes.c (init_optimization_passes): Add pass_strlen |
| after pass_object_sizes. |
| * timevar.def (TV_TREE_STRLEN): New timevar. |
| * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter. |
| * tree-pass.h (pass_strlen): Declare. |
| * tree-ssa-strlen.c: New file. |
| * c-decl.c (merge_decls): If compatible stpcpy prototype |
| is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. |
| |
| 2011-09-27 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43864 |
| * tree-ssa-tail-merge.c: New file. |
| (struct same_succ_def): Define. |
| (same_succ, const_same_succ): New typedef. |
| (struct bb_cluster_def): Define. |
| (bb_cluster, const_bb_cluster): New typedef. |
| (struct aux_bb_info): Define. |
| (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define. |
| (gvn_uses_equal): New function. |
| (same_succ_print, same_succ_print_traverse, update_dep_bb) |
| (stmt_update_dep_bb, local_def, same_succ_hash) |
| (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete) |
| (same_succ_reset): New function. |
| (same_succ_htab, same_succ_edge_flags) |
| (deleted_bbs, deleted_bb_preds): New var. |
| (debug_same_succ): New function. |
| (worklist): New var. |
| (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ) |
| (init_worklist, delete_worklist, delete_basic_block_same_succ) |
| (same_succ_flush_bbs, purge_bbs, update_worklist): New function. |
| (print_cluster, debug_cluster, update_rep_bb) |
| (add_bb_to_cluster, new_cluster, delete_cluster): New function. |
| (all_clusters): New var. |
| (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors) |
| (merge_clusters, set_cluster): New function. |
| (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate) |
| (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi) |
| (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect) |
| (find_clusters_1, find_clusters): New function. |
| (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function. |
| (update_bbs): New var. |
| (apply_clusters): New function. |
| (update_debug_stmt, update_debug_stmts): New function. |
| (tail_merge_optimize): New function. |
| tree-pass.h (tail_merge_optimize): Declare. |
| * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize. |
| * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o. |
| (tree-ssa-tail-merge.o): New rule. |
| * opts.c (default_options_table): Set OPT_ftree_tail_merge by default at |
| OPT_LEVELS_2_PLUS. |
| * tree-ssa-sccvn.c (vn_valueize): Move to ... |
| * tree-ssa-sccvn.h (vn_valueize): Here. |
| * timevar.def (TV_TREE_TAIL_MERGE): New timevar. |
| * common.opt (ftree-tail-merge): New switch. |
| * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS) |
| (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter. |
| * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge. |
| (-ftree-tail-merge, max-tail-merge-comparisons) |
| (max-tail-merge-iterations): New item. |
| |
| 2011-09-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows. |
| |
| 2011-09-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle parameters |
| passed by reference; handle loads from non-SSA scalars and update comments. |
| |
| 2011-09-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/50249 |
| * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument |
| instead of opnum and type. All callers changed. Remove useless |
| declaration. |
| Search forward for other reloads of the same type for the same operand |
| using the same register; if any are found, return false. |
| (reload_regs_reach_end_p): Same argument changes; all callers changed. |
| |
| 2011-09-27 Andi Kleen <ak@linux.intel.com> |
| Jan Hubicka <jh@suse.cz> |
| |
| * doc/invoke.texi (ffat-lto-objects): Document. |
| * toplev.c (compile_file): Do not output assembly when doing slim lto; |
| Output __gnu_slim_lto when doing slim lto. |
| * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto. |
| (cgraph_optimize): Return early when doing slim lto. |
| * opts.c (finish_options): Complain about lack of linker plugin |
| when doing slim lto. |
| * common.opt (ffat-lto-objects): New. |
| |
| 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * ipa-inline-analysis.c (predicate_probability): Avoid comparison |
| between signed and unsigned. |
| |
| 2011-09-27 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block |
| vectorization. |
| (vectorizable_type_promotion): Likewise. |
| (vect_analyze_stmt): Call vectorizable_type_demotion and |
| vectorizable_type_promotion for basic blocks. |
| (supportable_widening_operation): Don't assume loop vectorization. |
| * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for |
| basic blocks. Update vectorization factor for basic block |
| vectorization. |
| (vect_analyze_slp_instance): Allow multiple types for basic block |
| vectorization. Recheck unrolling factor after construction of SLP |
| instance. |
| |
| 2011-09-27 Richard Guenther <rguenther@suse.de> |
| |
| * tree-object-size.c (compute_object_sizes): Fix dumping of |
| folded statement. |
| |
| 2011-09-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50363 |
| * tree-ssa-pre.c (create_expression_by_pieces): Handle |
| pointer conversions in POINTER_PLUS_EXPRs properly. |
| |
| 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi) |
| (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di) |
| (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si) |
| (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands |
| that produce subreg moves. Define using VQX iterators. |
| |
| 2011-09-27 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (ashrqi3): Split alternative "n" |
| into its remaining parts C03, C04, C05, C06, C07 and describe |
| impact in CC by attribute "cc" appropriately. |
| * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0 |
| by digging RTX. |
| |
| 2011-09-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE |
| from 3 x MAX_MACHINE_MODE. |
| (CONSTM1_RTX): Define. |
| * emit-rtl.c (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE |
| from 3 x MAX_MACHINE_MODE. |
| (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are |
| CONSTM1_RTX. |
| (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and |
| MODE_VECTOR_INT modes. |
| * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>: |
| Optimize if one operand is CONSTM1_RTX. |
| * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x |
| into mask | x. |
| |
| 2011-09-26 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode. |
| (fcmp{le,ne,gt,eq}{16,32}): Likewise. |
| * config/sparc/visintrin.h: Update edge and pixel-compare |
| intrinsics to return 'long' instead of 'int'. |
| * doc/extend.texi: Update documentation to match. |
| * config/sparc/sparc.c (eligible_for_return_delay): When leaf or |
| flat, allow any instruction. Otherwise, when V9 allow parallels |
| which consist only of sets to registers outside of %o0 to %o5. |
| (sparc_vis_init_builtins): Update VIS builtin types for edge |
| and pixel-compare. |
| |
| * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS |
| is enabled, mark %gsr as global. |
| * config/sparc/sparc.md (UNSPEC_WRGSR): Delete. |
| (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec. |
| |
| * config/sparc/sparc-c.c: New file implementing sparc_target_macros, |
| which will now define __VIS and __VIS__ when -mvis is enabled. |
| * config/sparc/t-sparc: Likewise. |
| * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs, |
| and add t-sparc to tmake_file for all sparc targets. |
| * config/sparc/sparc-protos.h (sparc_target_macros): Declare. |
| * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it. |
| |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit |
| builtins for VIS vector addition and subtraction. |
| * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s, |
| __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s, |
| __vis_fpsub32, __vis_fpsub32s): New. |
| * doc/extend.texi: Document new VIS intrinsics. |
| |
| 2011-09-26 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536. |
| * config/avr/avr.c (avr_out_compare): Print shorter sequence for |
| EQ/NE comparisons against +/-1 in the case of unused-after, |
| non-ld-regs target. |
| |
| 2011-09-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-fold.c (gimplify_and_update_call_from_tree): Set |
| gctx.into_ssa after push_gimplify_context. |
| |
| * gimple.c (gimple_build_call_valist): New function. |
| * gimple.h (gimple_build_call_valist): New prototype. |
| * tree-ssa-propagate.c (finish_update_gimple_call): New function. |
| (update_gimple_call): Likewise. |
| (update_call_from_tree): Use finish_update_gimple_call. |
| * tree-ssa-propagate.h (update_gimple_call): New prototype. |
| |
| 2011-09-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50472 |
| * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold |
| volatile references. |
| |
| 2011-09-26 Bingfeng Mei <bmei@broadcom.com> |
| |
| * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P. |
| * target.def: (addr_space_subset_p): Likewise. |
| |
| 2011-09-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-alias.h (pt_solution_singleton_p): Declare. |
| * tree-ssa-structalias.c (pt_solution_singleton_p): New function. |
| * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution |
| of new var. |
| |
| 2011-09-26 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50465 |
| * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn. |
| * config/avr/avr.md (*reload_insi, *reload_insf): Change call to |
| output_reload_insisf. |
| (adjust_len): Set default to "no". |
| Remove alternative "yes". Add alternatives: "mov8", "mov16", |
| "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi", |
| "lshrhi", "ashlsi, "ashrsi", "lshrsi". |
| (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3, |
| *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3, |
| *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const, |
| *lshrsi3_const): Set attribute "adjust_len". |
| * config/avr/avr.c (output_reload_insisf): Remove parameter "insn". |
| (output_movsisf): Don't pass insn to output_reload_insisf. |
| (adjust_insn_length): Handle new alternatives to adjust_len. |
| Remove handling of ADJUST_LEN_YES. Clean-up code. |
| |
| 2011-09-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of |
| may_trap_p to detect loads that may trap of fault. |
| |
| 2011-09-26 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (output_reload_inhi): Change prototype. |
| * config/avr/avr.md (adjust_len): Add "reload_in16" alternative. |
| (*reload_inhi): Use it. Adapt call to output_reload_inhi to new |
| prototype. |
| (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L". |
| * config/avr/avr.c: Rename output_reload_insisf_1 to |
| output_reload_in_const. |
| (avr_popcount_each_byte): Handle SFmode, too. |
| (output_reload_in_const): Change so it can handle HI loads, too. |
| Use avr_popcount_each_byte to work out if scratch register must be |
| created on the fly. |
| (output_reload_inhi): Rewrite using output_reload_in_const and... |
| (output_movhi): ...use it to print constants' loads. |
| (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code. |
| |
| 2011-09-25 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/constraints.md (C, P, Z): New constraints for |
| const_doube, const_int, and const_vector "all ones" values. |
| Make unused constraint letters comment match reality. |
| * config/sparc/predicates.md (const_all_ones_operand, |
| register_or_zero_or_all_ones_operand): New predicates. |
| * config/sparc/sparc.c (sparc_expand_move): Allow all ones |
| as well as zero constants when VIS. |
| (sparc_legitimate_constant_p): Likewise. |
| * config/sparc/sparc.md (movsi_insn): Add fones alternative. |
| (movsf_insn): Likewise |
| (movdi_insn_sp64): Add fone alternative. |
| (movdf_insn_sp32_v9): Likewise. |
| (movdf_insn_sp64): Likewise. |
| |
| * configure.ac: Add feature check to make sure the assembler |
| supports the FMAF, HPC, and VIS 3.0 instructions found on |
| Niagara-3 and later cpus. |
| * configure: Rebuild. |
| * config.in: Likewise. |
| * config/sparc/sparc.opt: New option '-mfmaf'. |
| * config/sparc/sparc.md: Add float fused multiply-add patterns. |
| * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro. |
| (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed. |
| * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC, |
| ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise. |
| * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on |
| by default for Niagara-3 and later. Turn it off if TARGET_FPU is |
| disabled. |
| (sparc_rtx_costs): Handle 'FMA'. |
| * doc/invoke.texi: Document -mfmaf. |
| |
| 2011-09-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Treat |
| TYPE_RESTRICT REFERENCE_TYPE parameters like restricted |
| DECL_BY_REFERENCE parameters. |
| |
| 2011-09-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore |
| if there is no outgoing edge. |
| |
| * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and |
| integral types. |
| |
| 2011-09-25 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part |
| of vect_analyze_bb here. |
| (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1. |
| |
| 2011-09-25 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-data-ref.c (dr_analyze_innermost): Add new argument. |
| Allow not simple iv if analyzing basic block. |
| (create_data_ref): Update call to dr_analyze_innermost. |
| (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise. |
| * tree-loop-distribution.c (generate_memset_zero): Likewise. |
| * tree-predcom.c (find_looparound_phi): Likewise. |
| * tree-data-ref.h (dr_analyze_innermost): Add new argument. |
| |
| 2011-09-24 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103. |
| (SPARC_GSR_REG): Define. |
| (FIXED_REGISTERS): Mark GSR as fixed. |
| (CALL_USED_REGISTERS): Mark GSR as call used. |
| (HARD_REGNO_NREGS): GSR is always 1 register. |
| (REG_CLASS_CONTENTS): Add GSR to ALL_REGS. |
| (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end. |
| (REGISTER_NAMES): Add "%gsr". |
| * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): |
| Delete. |
| (UNSPEC_WRGSR): New unspec. |
| (GSR_REG): New constant. |
| (type): Add new insn type 'gsr'. |
| (fpack16_vis, fpackfix_vis, fpack32_vis, |
| faligndata<V64I:MODE>_vis)): Add use of GSR_REG. |
| (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64, |
| rdgsr_v8plus): New expanders and insns. |
| (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement |
| using patterns which show that this is a plus in addition to a |
| modification of GSR_REG, instead of an unspec. |
| * config/sparc/ultra1_2.md: Handle 'gsr'. |
| * config/sparc/ultra3.md: Likewise. |
| * config/sparc/niagara.md: Likewise. |
| * config/sparc/niagara2.md: Likewise. |
| * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out |
| end of table. |
| (sparc_option_override): Make -mvis imply -mv8plus. |
| (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries |
| for %gsr. |
| (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and |
| __builtin_vis_read_gsr. |
| (sparc_expand_buildin): Handle builtins that take one argument and |
| return void. |
| (sparc_fold_builtin): Never fold writes to %gsr. |
| * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New. |
| * doc/extend.texi: Document new VIS intrinsics. |
| |
| 2011-09-23 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (inline_call): Add comment. |
| * ipa-inline.h (inline_param_summary): New structure and vector. |
| (struct inline_edge_summary): Add param field. |
| * ipa-inline-analysis.c (CHANGED): New constant. |
| (add_clause): Handle CHANGED and NOT_CONSTANT. |
| (predicate_probability): New function. |
| (dump_condition): Dump CHANGED predicate. |
| (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker |
| of unknown function wide invariant. |
| (evaluate_conditions_for_edge): Handle change probabilities. |
| (inline_edge_duplication_hook): Copy param summaries. |
| (inline_edge_removal_hook): Free param summaries. |
| (dump_inline_edge_summary): Fix dumping of indirect edges and callee sizes; |
| dump param summaries. |
| (will_be_nonconstant_predicate): Use CHANGED predicate. |
| (record_modified_bb_info): New structure. |
| (record_modified): New function. |
| (param_change_prob): New function. |
| (estimate_function_body_sizes): Compute param summaries. |
| (estimate_edge_size_and_time): Add probability argument. |
| (estimate_node_size_and_time): Add inline_param_summary argument; |
| handle predicate probabilities. |
| (remap_predicate): Fix formating. |
| (remap_edge_change_prob): New function. |
| (remap_edge_summaries): Rename from ...; use remap_edge_change_prob. |
| (remap_edge_predicates): ... this one. |
| (inline_merge_summary): Remap edge summaries; handle predicate probabilities; |
| remove param summaries after we are done. |
| (do_estimate_edge_time): Update. |
| (do_estimate_edge_growth): Update. |
| (read_inline_edge_summary): Read param info. |
| (inline_read_summary): Fix formating. |
| (write_inline_edge_summary): Write param summaries. |
| |
| 2011-09-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_print_operand): Handle %~. |
| (ix86_print_operand_punct_valid_p): Return true also for '~'. |
| * config/i386/sse.md (i128): New mode_attr. |
| (vec_extract_hi_<mode>, vec_extract_hi_<mode>, |
| avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full, |
| *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>, |
| vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the |
| patterns, use "<sseinsnmode>" for "mode" attribute. |
| (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi, |
| vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use |
| %~128 in the patterns, use "OI" for "mode" attribute. |
| |
| 2011-09-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| * config/avr/avr.md (adjust_len): Add alternatives "tsthi", |
| "tstsi", "compare". |
| (*cmpqi_sign_extend): Use s8_operand. |
| (*cmphi, *cmpsi): Rewrite using avr_out_compare. |
| * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove |
| prototypes. |
| (out_tsthi, out_tstsi): Remove prototypes. |
| (avr_out_tsthi, avr_out_tstsi): New prototypes. |
| * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions. |
| (avr_asm_len): Negative length now sets *plen to -length. |
| (compare_sign_p): Return bool instead of int. |
| (compare_diff_p, compare_eq_p): Ditto and make static. |
| (avr_out_tsthi): New function. |
| (avr_out_tstsi): New function. |
| (avr_out_compare): New function. |
| (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI, |
| ADJUST_LEN_COMPARE. |
| |
| 2011-09-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| * config/avr/avr.md: (adjust_len): Add alternative "out_plus". |
| (addsi3): Rewrite using QI scratch register. Adjust text |
| peepholes using plus:SI. |
| (*addsi3_zero_extend.hi): New insn. |
| (*subsi3_zero_extend.hi): New insn. |
| (*subhi3_zero_extend1): Set attribute "cc" to "set_czn". |
| (*subsi3_zero_extend): Ditto. |
| (subsi3): Change predicate #2 to register_operand. |
| * config/avr/avr-protos.h (avr_out_plus): New prototype. |
| (avr_out_plus_1): New static function. |
| (avr_out_plus): New function. |
| (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS. |
| |
| 2011-09-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For |
| GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX. |
| |
| 2011-09-23 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_define): Treat a single character in single quotes, |
| or a string, as an operand. |
| |
| 2011-09-23 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (jump_func_type): Updated comments. |
| (ipa_known_type_data): New type. |
| (ipa_jump_func): Use it to describe known type jump functions. |
| * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to |
| reflect the new known type jump function contents. |
| (compute_known_type_jump_func): Likewise. |
| (combine_known_type_and_ancestor_jfs): Likewise. |
| (try_make_edge_direct_virtual_call): Likewise. |
| (ipa_write_jump_function): Likewise. |
| (ipa_read_jump_function): Likewise. |
| * ipa-cp.c (ipa_value_from_known_type_jfunc): New function. |
| (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc. |
| (propagate_accross_jump_function): Likewise. |
| |
| 2011-09-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50446 |
| * config/avr/avr.md (rotlqi3): Support all offsets 0..7. |
| (rotlqi3_4): Turn insn into expander. |
| (*rotlqi3): New insn. |
| (rotlhi3, rotlsi3): Support rotate left/right by 1. |
| (*rotlhi2.1, *rotlhi2.15): New insns. |
| (*rotlsi2.1, *rotlsi2.31): New insns. |
| * config/avr/constraints.md (C03, C05, C06, C07): New constraints. |
| |
| 2011-09-23 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch |
| and processors. |
| |
| 2011-09-22 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * ipa-prop.c (ipa_print_node_jump_functions): Fix typos. |
| |
| 2011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * reload.c (find_reloads): Set operand_mode to Pmode for address |
| operands consisting of just a CONST_INT. |
| |
| 2011-09-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50482 |
| * config/i386/i386.c (ix86_expand_sse_movcc): When generating |
| blendv, force op_true to register if it doesn't satisfy |
| nonimmediate_operand predicate. |
| |
| 2011-09-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR middle-end/50113 |
| PR middle-end/50061 |
| * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to |
| get the locate.where_pad value for register-only arguments. |
| * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling. |
| (arm_pad_reg_upward): Handle null types. |
| |
| 2011-09-22 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c: Fix overly long lines. |
| |
| 2011-09-22 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (inline_call): Always update jump functions |
| after inlining. |
| * ipa-inline.c (ipa_inline): Likewise; do not call |
| ipa_create_all_structures_for_iinln. |
| (ipa_inline): Always free jump functions. |
| * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack. |
| (remap_edge_predicates): Fix pasto. |
| (inline_merge_summary): Remove nlined edge predicate; remove hack. |
| (inline_analyze_function): Always initialize jump functions. |
| (inline_generate_summary): Likewise. |
| (inline_write_summary): Always write jump functions when ipa-cp |
| is not doing that. |
| (inline_read_summary): Always read jump functions when ipa-cp |
| is not doing that. |
| * ipa-prop.c (iinlining_processed_edges): Remove. |
| (update_indirect_edges_after_inlining): Do not use |
| iinlining_processed_edges; instead set param_index to -1. |
| (propagate_info_to_inlined_callees): Only try to indirect inlining |
| when asked to do so; update jump functions of indirect calls, too; |
| remove jump functions of the inlined edge. |
| (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges. |
| (ipa_create_all_structures_for_iinln): Remove. |
| (ipa_free_all_structures_after_iinln): Do not free |
| iinlining_processed_edges. |
| * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove. |
| |
| 2011-09-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/predicates.md (expandable_comparison_operator): New |
| predicate, extracted from... |
| (arm_comparison_operator): ...here. |
| * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4) |
| (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc) |
| (movdfcc): Use expandable_comparison_operator. |
| |
| 2011-09-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50447 |
| PR target/50465 |
| * config/avr/avr-protos.h (avr_out_bitop): New prototype. |
| (avr_popcount_each_byte): New prototype. |
| * config/avr/avr.c (avr_popcount): New static function. |
| (avr_popcount_each_byte): New function. |
| (avr_out_bitop): New function. |
| (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to |
| avr_out_bitop. Cleanup code. |
| * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints. |
| (Ca4, Co4, Cx4): New constraints. |
| * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute |
| alternative. |
| (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop. |
| (andsi3, iorsi3, xorsi3): Ditto. |
| (*iorhi3_clobber, *iorsi3_clobber): Remove insns. |
| |
| 2011-09-22 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50451 |
| * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for |
| constant operands in reduction. |
| (vect_get_slp_defs): Don't create vector operand for NULL scalar |
| operand. |
| |
| 2011-09-22 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark |
| fpack16, fpack32, fpackfix as const. |
| |
| * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG, |
| I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New |
| constants. Use them everywhere. |
| |
| 2011-09-22 Oleg Endo <oleg.endo@t-online.de> |
| |
| * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs. |
| Added AND special case. Adapted comments. |
| (sh_rtx_costs): Added XOR and IOR case. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analsis.c (compute_inline_parameters): Set |
| cfun and current_function_decl. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow |
| handled components in parameter of builtin_constant_p. |
| (will_be_nonconstant_predicate): Allow loads of non-SSA parameters. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (relative_time_benefit): Fix wrong bracketting. |
| * ipa-inline.h (estimate_edge_time): Fix pasto. |
| * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping. |
| |
| 2011-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_sse_movcc): Use |
| blendvps, blendvpd and pblendvb if possible. |
| |
| 2011-09-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50464 |
| * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change |
| operand 1 predicate to register_operand and operand 2 predicate |
| to nonimmediate_operand. |
| * config/i386/i386.c (ix86_expand_sse_movcc): When generating |
| xop_pcmov, force op_true to register. Also, force op_false to |
| register if it doesn't satisfy nonimmediate_operand predicate. |
| |
| 2011-09-21 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/bmi2intrin.h (_mulx_u64): New. |
| (_mulx_u32): Ditto. |
| |
| 2011-09-21 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/50433 |
| * ipa-inline-analysis.c (eliminated_by_inlining_prob): |
| Use get_base_address. |
| |
| 2011-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use |
| nonimmediate_operand instead of register_operand predicate for operands |
| 1 and 2, force them into registers if expanding them as comparison. |
| (<code><mode>3 umaxmin:VI124_128 expander): Similarly. For UMAX |
| V8HImode force into register just operand 1. |
| |
| 2011-09-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/45099 |
| * config/avr/avr.c (avr_function_arg_advance): Change error to |
| warning if a fixed register is needed as function argument. |
| |
| 2011-09-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50449 |
| PR target/50465 |
| * config/avr/avr.md (adjust_len): New insn attribute. |
| (*reload_insi, *reload_insf): Use it. |
| (*movsi, *movsf): Use new interface of output_movsisf. |
| * config/avr/avr-protos.h (output_movsisf): Change prototype. |
| * config/avr/avr.c (output_movsisf): Ditto. |
| (adjust_insn_length): Use insn attribute "adjust_len" to adjust |
| lengths of insns *reload_insi, *reload_insf. |
| (output_reload_insisf_1): New static function. |
| (output_reload_insisf): Use it. |
| |
| 2011-09-21 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.c (def_builtin): Change from macro into function. |
| (def_builtin_const): New. |
| (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins |
| other than alignaddr and falignaddr. |
| |
| * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT, |
| UNSPEC_FCMPEQ): New unspec codes. |
| (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis, |
| fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for |
| new pixel compare VIS patterns. |
| * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32, |
| __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32, |
| __vis_fcmpeq16, __vis_fcmpeq32): New. |
| * doc/extend.texi: Document new pixel compare VIS intrinsics. |
| |
| 2011-09-21 Tom de Vries <tom@codesourcery.com> |
| |
| * final.c (final): Handle if JUMP_LABEL is not LABEL_P. |
| |
| 2011-09-20 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec. |
| (aligneddrl<P:mode>_vis): New pattern. |
| (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, |
| edge32l_vis): Adjust to take Pmode arguments, and return SImode. |
| * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new |
| alignaddrl insn, and adjust edge operations for updated types. |
| * config/sparc/visintrin.h: Likewise. |
| * doc/extend.texi: Make typing in VIS documentation match reality. |
| |
| 2011-09-20 Terry Guo <terry.guo@arm.com> |
| |
| * config/arm/arm-arches.def: Add armv6s-m. |
| * config/arm/arm-tables.opt: Regenerate. |
| |
| 2011-09-20 Wei Guozhi <carrot@google.com> |
| |
| PR rtl-optimization/49452 |
| * postreload.c (reload_combine): Invalidate use information when across |
| volatile insn. |
| |
| 2011-09-19 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg): |
| Remove maintenance overhead. |
| (haifa_sched_init, sched_finish): Update. |
| |
| 2011-09-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX |
| to calculate unit, prefix_rep and prefix_data16 attributes. |
| (*mov<mode>_internal): Ditto for unit attribute. |
| (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes. |
| (*movv2sf_internal): Ditto. |
| * config/i386/sse.md (VI1248_256): Remove mode iterator. |
| (avx2_eq<mode>3): Use VI_256 instead of VI1248_256. |
| (*avx2_eq<mode>3): Ditto. |
| (avx2_gt<mode>3): Ditto. |
| |
| 2011-09-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (maxmin): New code iterator. |
| * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander |
| from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin |
| code iterator. |
| (*avx2_<maxmin:code><mode>3): Macroize isn from |
| *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using |
| maxmin code iterator. |
| (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3. |
| (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and |
| <umaxmin:code>v16qi3. |
| |
| 2011-09-19 Alan Modra <amodra@gmail.com> |
| Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/50341 |
| * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not |
| split the load of the indirect function's TOC from the call to |
| prevent the compiler from moving the load of the new TOC above |
| code that references the current function's TOC. |
| (call_indirect_aix<ptrsize>_internal): Ditto. |
| (call_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_value_indirect_aix<ptrsize>): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal): Ditto. |
| (call_value_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal2): Ditto. |
| |
| 2011-09-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (*sse4_1_extractps): Change into |
| define_insn_and_split, add =x 0 n and =x x n alternatives |
| and split them after reload. |
| |
| 2011-09-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4. |
| |
| 2011-09-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs. |
| |
| 2011-09-19 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50413 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize |
| a basic block if one of its data-refs can't be analyzed. |
| |
| 2011-09-19 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/predicates.md (shift_amount_operand): Check constant |
| shift count is in range. |
| (const_shift_operand): Remove. |
| |
| 2011-09-18 Eric Botcazou <ebotcazou@adacore.com> |
| Iain Sandoe <developer@sandoe-acoustics.co.uk> |
| |
| PR target/50091 |
| * config/rs6000/rs6000.md (probe_stack): Use explicit operand. |
| * config/rs6000/rs6000.c (output_probe_stack_range): Likewise. |
| |
| 2011-09-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/bmiintrin.h: Remove tmp. |
| * config/i386/tbmintrin.h: Likewise. |
| |
| 2011-09-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50414 |
| * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and |
| MIN_EXPR. |
| |
| 2011-09-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50412 |
| * tree-vect-data-refs.c (vect_analyze_group_access): Fail for |
| acceses that require epilogue loop if vectorizing outer loop. |
| |
| 2011-09-17 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L, |
| UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L): |
| New unspecs. |
| (define_attr type): New type 'edge'. |
| (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis, |
| edge32l_vis): New patterns. |
| * config/sparc/ultra1_2.md: Add insn reservation for 'edge'. |
| * config/sparc/ultra3.md: Likewise. |
| * config/sparc/niagara.md: Likewise. |
| * config/sparc/niagara2.md: Likewise. |
| * config/sparc/sparc.d (sparc_vis_init_builtins): Generate |
| builtins for VIS edge instructions. |
| * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l) |
| (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New |
| intrinsics. |
| (__v8qi, __v4qi): Make unsigned. |
| (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi, |
| __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al, |
| __vis_fpack32): Fix types. |
| * doc/extend.texi: Document new 'edge' VIS intrinsics. |
| |
| * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer |
| divide costs. |
| (niagara3_costs): New. |
| (sparc_option_override): Use it. |
| * gcc/config/sparc/niagara2.md: Adjust with more accurate |
| Niagara-3 reservations. |
| |
| 2011-09-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI. |
| (sse2_avx, sseinsnmode): Add V2TI. |
| (REDUC_SMINMAX_MODE): New mode iterator. |
| (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf, |
| reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove. |
| (reduc_<code>_<mode>): New smaxmin and umaxmin expanders. |
| (sse2_lshrv1ti3): Rename to... |
| (<sse2_avx2>_lshr<mode>3): ... this. Use VIMAX_AVX2 mode |
| iterator. Move before umaxmin expanders. |
| * config/i386/i386.h (VALID_AVX256_REG_MODE, |
| SSE_REG_MODE_P): Accept V2TImode. |
| * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode, |
| V16HImode, V8SImode and V4DImode. |
| |
| * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode |
| and V4DImode. |
| (ix86_build_signbit_mask): Likewise. |
| (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode. |
| (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3 |
| instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3. |
| * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to... |
| (<code><mode>3) ... this. |
| (avx2_<code><mode>3 smaxmin expand): Rename to... |
| (<code><mode>3) ... this. |
| (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator. |
| (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and |
| VI8_AVX2 mode iterator. |
| (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and |
| VI8_AVX2 mode iterator. |
| (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>): |
| New expanders. |
| |
| 2011-09-17 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-16 David S. Miller <davem@davemloft.net> |
| |
| * config/sparc/visintrin.h: New file. |
| * config.gcc: Add it to extra_headers on sparc. |
| |
| 2011-09-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ... |
| (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode. |
| * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf, |
| reduc_smin_v4sf): Adjust callers. |
| (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): |
| New expanders. |
| |
| * config/i386/sse.md (vec_extract_hi_<mode>, |
| vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use |
| vextracti128 instead of vextractf128 for -mavx2 and |
| integer vectors. For V4DFmode fix up mode attribute. |
| (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors. |
| (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF |
| instead of V8SF mode attribute. |
| (avx2_extracti128): Change into define_expand. |
| * config/i386/i386.c (ix86_expand_vector_extract): Handle |
| 32-byte vector modes if TARGET_AVX. |
| |
| 2011-09-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern. |
| (umulqi3_highpart, smulqi3_highpart): Ditto. |
| (*maddqihi4.const, *umaddqihi4.uconst): Ditto. |
| (*msubqihi4.const, *umsubqihi4.uconst): Ditto. |
| (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto. |
| |
| 2011-09-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50358 |
| * config/avr/avr.md (*ashiftqihi2.signx.1): New insn. |
| (*maddqi4, *maddqi4.const): New insns. |
| (*msubqi4, *msubqi4.const): New insns. |
| * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases |
| PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for |
| HImode by 1 in the case of multiplying with a CONST_INT. |
| Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI. |
| |
| 2011-09-15 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/50430 |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on |
| error_mark_node in the DECL_INITIAL of vtable. |
| |
| 2011-09-15 Diego Novillo <dnovillo@google.com> |
| |
| * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from |
| @SYSROOT_CFLAGS_FOR_TARGET@. |
| * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot. |
| * configure: Regenerate. |
| (site.exp): Add definition of TEST_ALWAYS_FLAGS. |
| Remove setting of GCC_UNDER_TEST. |
| |
| 2011-09-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (output_fp_compare): Return %v prefixed |
| instruction mnemonics for TARGET_AVX. |
| |
| * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in |
| "type" attribute calculation. |
| (*movdf_internal): Ditto. |
| (*movsf_internal): Ditto. |
| |
| 2011-09-15 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro. |
| |
| 2011-09-15 Jason Merrill <jason@redhat.com> |
| |
| PR c++/50361 |
| * expr.c (count_type_elements): Handle NULLPTR_TYPE. |
| |
| 2011-09-15 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (add_condition): Add conditions parameter; |
| simplify obviously true clauses. |
| (and_predicates, or_predicates): Add conditions parameter. |
| (inline_duplication_hoook): Update. |
| (mark_modified): New function. |
| (unmodified_parm): New function. |
| (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate, |
| set_switch_stmt_execution_predicate, will_be_nonconstant_predicate): |
| Use unmodified_parm. |
| (estimate_function_body_sizes): Update. |
| (remap_predicate): Update. |
| |
| 2011-09-15 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow |
| read-after-read dependencies in basic block SLP. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| * config/rs6000/constraints.md: Likewise. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/microblaze/microblaze.md: Use match_test rather than |
| eq/ne symbol_ref throughout file. |
| |
| 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-14 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/50251 |
| * explow.c (emit_stack_restore): Set crtl->need_drap if |
| stack_restore is emitted. |
| |
| 2011-09-14 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm.c (arm_override_options): Add unaligned_access |
| support. |
| (arm_file_start): Emit attribute for unaligned access as appropriate. |
| * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD) |
| (UNSPEC_UNALIGNED_STORE): Add constants for unspecs. |
| (insv, extzv): Add unaligned-access support. |
| (extv): Change to expander. Likewise. |
| (extzv_t1, extv_regsi): Add helpers. |
| (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu) |
| (unaligned_storesi, unaligned_storehi): New. |
| (*extv_reg): New (previous extv implementation). |
| * config/arm/arm.opt (munaligned_access): Add option. |
| * config/arm/constraints.md (Uw): New constraint. |
| * expmed.c (store_bit_field_1): Adjust bitfield numbering according |
| to size of access, not size of unit, when BITS_BIG_ENDIAN != |
| BYTES_BIG_ENDIAN. Don't use bitfield accesses for |
| volatile accesses when -fstrict-volatile-bitfields is in effect. |
| (extract_bit_field_1): Likewise. |
| |
| 2011-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * simplify-rtx.c (simplify_subreg): Check that the inner mode is |
| a scalar integer before applying integer-only optimisations to |
| inner arithmetic. |
| |
| 2011-09-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/mips/mips.c (mips_expand_epilogue): Generate a |
| simple_return only if the return address is in r31. |
| |
| 2011-09-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * cfgcleanup.c (try_head_merge_bb): If get_condition returns |
| NULL for a jump that is a cc0 insn, pick the previous insn for |
| move_before. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mn10300/mn10300.md: Use match_test rather than eq/ne |
| symbol_ref throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| * config/arm/neon.md: Likewise. |
| * config/arm/vfp.md: Likewise. |
| * config/arm/thumb2.md: Likewise. |
| * config/arm/cortex-m4.md: Likewise. |
| |
| 2011-09-13 Sevak Sargsyan <sevak.sargsyan@ispras.ru> |
| |
| * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New |
| define_insn patterns for combine. |
| |
| 2011-09-13 Giuseppe Scrivano <gscrivano@gnu.org> |
| |
| * reorg.c: Always define make_return_insns. |
| |
| 2011-09-13 Jan Hubicka <jh@suse.cz> |
| |
| PR other/49533 |
| * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output. |
| |
| 2011-09-13 Jan Hubicka <jh@suse.cz> |
| |
| PR other/49533 |
| * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos. |
| |
| 2011-09-13 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. |
| (ARM_TARGET2_DWARF_FORMAT): Provide default definition. |
| * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h. |
| * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h. |
| * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code |
| enabling unwind tables. |
| (c6x_debug_unwind_info): New function. |
| (TARGET_ARM_EABI_UNWINDER): Define. |
| (TARGET_DEBUG_UNWIND_INFO): Define. |
| * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define. |
| (TARGET_EXTRA_CFI_SECTION): Remove. |
| * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set. |
| * ginclude/unwind-arm-common.h: New file. |
| |
| 2011-09-13 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50358 |
| * config/avr/predicates.md (const_1_to_6_operand): New predicate. |
| * config/avr/avr.md: (extend_s): New code attribute. |
| (mul_r_d): New code attribute. |
| (*maddqihi4, *umaddqihi4): New insns. |
| (*msubqihi4, *umsubqihi4): New insns. |
| (*usmaddqihi4, *sumaddqihi4): New insns. |
| (*usmsubqihi4, *susubdqihi4): New insns. |
| (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits. |
| (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits. |
| (*umsubqihi4.uconst.ashift): New insn-and-split. |
| (*msubqihi4.sconst.ashift): New insn-and-split. |
| (*sumaddqihi4.uconst): New insn-and-split. |
| (*sumsubqihi4.uconst): New insn-and-split. |
| * config/avr/avr.c (avr_rtx_costs): Report costs of above in case |
| PLUS:HI and MINUS:HI. |
| |
| 2011-09-13 Revital Eres <revital.eres@linaro.org> |
| |
| modulo-sched.c (remove_node_from_ps): Return void instead of bool. |
| (optimize_sc): Adjust call to remove_node_from_ps. |
| (sms_schedule): Add print info. |
| |
| 2011-09-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * rtl.c (copy_rtx): Do not handle frame_related, jump or call |
| flags specially. |
| |
| 2011-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/50010 |
| * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between |
| NOTE_INSN_CFI notes, with the exception of |
| NOTE_INSN_SWITCH_TEXT_SECTIONS. |
| |
| 2011-09-12 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_epilogue): New structure. |
| (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when |
| restoring registers. |
| (mips_epilogue_emit_cfa_restores): New function. |
| (mips_epilogue_set_cfa): Likewise. |
| (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring |
| the current CFA register from the stack, redefine the CFA in terms |
| of the stack pointer. |
| (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information |
| to the epilogue instructions. |
| |
| 2011-09-12 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p |
| argument. |
| (mips16e_build_save_restore): Update accordingly. |
| |
| 2011-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/50212 |
| * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): |
| Skip also lps with NULL landing_pad or non-LABEL_P landing_pad. |
| |
| PR debug/50299 |
| * calls.c (load_register_parameters): Use use_reg_mode instead |
| of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE |
| entry. |
| (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument |
| for stack CALL_INSN_FUNCTION_USAGE uses. |
| * expr.h (use_reg_mode): New prototype. |
| (use_reg): Changed into inline around use_reg_mode. |
| * expr.c (use_reg): Renamed to... |
| (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST |
| mode to that mode instead of VOIDmode. |
| * var-tracking.c (prepare_call_arguments): Don't track parameters |
| whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible |
| to it using lowpart_subreg. Convert VALUE and REG/MEM to the |
| EXPR_LIST mode. |
| |
| 2011-09-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/43746 |
| * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define. |
| (progmem_section): New Variable. |
| (avr_asm_init_sections): Initialize it. |
| (TARGET_ASM_SELECT_SECTION): Define to... |
| (avr_asm_select_section): ... this new Function. |
| (avr_replace_prefix): New Function. |
| (avr_asm_function_rodata_section): Use it. |
| (avr_insert_attributes): Don't add section attribute for PROGMEM. |
| (avr_section_type_flags): Use avr_progmem_p instead of section |
| name to detect if object is in PROGMEM. |
| (avr_asm_named_section): Set section name prefix for objects in |
| PROGMEM. |
| |
| 2011-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/50352 |
| * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the |
| sprintf format string. |
| |
| 2011-09-12 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50343 |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check |
| that the reduction is over an SSA name before checking its definition. |
| |
| 2011-09-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| |
| 2011-09-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref |
| throughout file. |
| * config/mips/sb1.md: Likewise. |
| * config/mips/predicates.md: Replace (match_test "!...") |
| with (not (match_test "...")) |
| * config/mips/constraints.md: Likewise. |
| |
| 2011-09-09 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm-cores.def (generic-armv7-a): New architecture. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/arm.c (arm_file_start): Output .arch directive when |
| user passes -mcpu=generic-*. |
| (arm_issue_rate): Add genericv7a support. |
| * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec. |
| (ASM_CPU_SPEC): New define. |
| * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec). |
| * config/arm/semi.h (ASM_SPEC): Likewise. |
| * doc/invoke.texi (ARM Options): Document -mcpu=generic-* |
| and -mtune=generic-*. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50328 |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one |
| constant or default-def operand. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (create_expression_by_pieces): Fold the |
| last statement. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator |
| instead of a statement. |
| * gimple-fold.c (fold_stmt_inplace): Likewise. |
| * sese.c (graphite_copy_stmts_from_block): Adjust. |
| * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use |
| fold_stmt. |
| (forward_propagate_addr_into_variable_array_index): Likewise. |
| (forward_propagate_addr_expr_1): adjust. |
| (associate_plusminus): Likewise. |
| (ssa_forward_propagate_and_combine): Likewise. |
| * tree-ssa-mathopts.c (replace_reciprocal): Adjust. |
| (execute_cse_reciprocals): Likewise. |
| * tree-ssa.c (insert_debug_temp_for_var_def): Adjust. |
| |
| 2011-09-09 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_split_and_operand_count): |
| Return a positive value to indicate that the bits at the |
| bottom of the register should be cleared. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (swap_tree_operands): Always adjust |
| existing operand positions. |
| |
| 2011-09-09 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50333 |
| * tree-data-ref.c (split_constant_offset): Do not try to handle |
| ternary ops. |
| |
| 2011-09-08 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR tree-optimization/50318 |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct |
| typo in use of mult_rhs1 and mult_rhs2. |
| |
| 2011-09-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes. |
| (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template. |
| |
| 2011-09-08 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/arm/arm.md (push_multi): Emit predicates. |
| (push_fp_multi): Likewise. |
| * config/arm/arm.c (vfp_output_fstmd): Likewise. |
| |
| 2011-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/33255 - Support -Wunused-local-typedefs warning |
| * c-decl.c (lookup_name): Use the new maybe_record_typedef_use. |
| (pushdecl): Use the new record_locally_defined_typedef. |
| (store_parm_decls): Allocate cfun->language. |
| (finish_function): Use the new maybe_warn_unused_local_typedefs, |
| and free cfun->language. |
| (c_push_function_context): Allocate cfun->language here only if needed. |
| (c_pop_function_context): Likewise, mark cfun->language |
| for collection only when it should be done. |
| * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes. |
| * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new |
| maybe_record_local_typedef_use. |
| * doc/invoke.texi: Update documentation for |
| -Wunused-local-typedefs. |
| |
| 2011-09-08 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| * config/i386/i386-protos.h (ix86_lea_outperforms): New. |
| (ix86_avoid_lea_for_add): Likewise. |
| (ix86_avoid_lea_for_addr): Likewise. |
| (ix86_split_lea_for_addr): Likewise. |
| |
| * config/i386/i386.c (LEA_MAX_STALL): New. |
| (increase_distance): Likewise. |
| (insn_defines_reg): Likewise. |
| (insn_uses_reg_mem): Likewise. |
| (distance_non_agu_define_in_bb): Likewise. |
| (distance_agu_use_in_bb): Likewise. |
| (ix86_lea_outperforms): Likewise. |
| (ix86_ok_to_clobber_flags): Likewise. |
| (ix86_avoid_lea_for_add): Likewise. |
| (ix86_avoid_lea_for_addr): Likewise. |
| (ix86_split_lea_for_addr): Likewise. |
| (distance_non_agu_define): Search in pred BBs added. |
| (distance_agu_use): Search in succ BBs added. |
| (IX86_LEA_PRIORITY): Value changed from 2 to 0. |
| (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL. |
| (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision. |
| |
| * config/i386/i386.md: Split added to transform non destructive |
| add into move and add. |
| (lea_1): transformed into insn_and_split to avoid AGU stalls. |
| (lea<mode>_2): Likewise. |
| |
| 2011-09-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/50287 |
| * ipa-split.c (split_function): Do not create SSA names for |
| non-gimple-registers. |
| |
| 2011-09-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/19831 |
| * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also |
| skip builtins with vdefs that do not really store something. |
| (propagate_necessity): For calls to free that we can associate |
| with an allocation function do not mark the freed pointer |
| definition necessary. |
| (eliminate_unnecessary_stmts): Remove a call to free if |
| the associated call to an allocation function is not necessary. |
| |
| 2011-09-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/19831 |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark |
| allocation functions as necessary. |
| |
| 2011-09-08 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin-driver.c (darwin_find_version_from_kernel): New routine |
| cut from ... |
| (darwin_default_min_version): Amended to provide defaults |
| for the cross directory case. |
| (darwin_driver_init): call darwin_default_min_version unconditionally. |
| * config/darwin.h (DEF_MIN_OSX_VERSION): New. |
| * config/darwin9.h: Likewise. |
| * config/darwin10.h: Likewise. |
| * config/rs6000/darwin7.h: Likewise. |
| |
| 2011-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50310 |
| * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return |
| code early if TARGET_AVX. |
| (ix86_expand_fp_vcond): Handle LTGT and UNEQ. |
| |
| 2011-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector |
| duplicates. |
| |
| PR target/50310 |
| * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up |
| "mode" attribute computation. |
| |
| 2011-09-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (struct du_head): Make nregs signed. |
| (closed_chains): Remove. |
| (create_new_chain): Return the new chain. |
| (chain_from_id): New static function. |
| (dump_def_use_chain): Change argument to be an int, indicating |
| the first ID to print. All callers changed. |
| (merge_overlapping_regs): Use chain_from_id. Assert that |
| chains don't conflict with themselves. |
| (rename_chains): Take no argument. Iterate over id_to_chain |
| rather to find chains to rename. Clear tick before the main loop. |
| (struct incoming_reg_info): New struct. |
| (struct bb_rename_info): New struct. |
| (init_rename_info, set_incoming_from_chain, merge_chains): New |
| static functions. |
| (regrename_analyze): New static function, broken out of |
| regrename_optimize. Record and make use of open chain information |
| at basic block boundaries, and merge chains where possible. |
| (scan_rtx_reg): Make this_nregs signed. Don't update |
| closed_chains. |
| (build_def_use): Return a bool to indicate success. All callers |
| changed. Don't initialize global data here. |
| (regrename_optimize): Move most code out of here into |
| regrename_analyze. |
| * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set, |
| range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New |
| static inline functions. |
| * vec.h (FOR_EACH_VEC_ELT_FROM): New macro. |
| |
| * bb-reorder.c (insert_section_boundary_note): Don't check |
| optimize_function_for_speed_p. |
| (gate_handle_partition_blocks): Do it here instead. |
| (gate_handle_reorder_blocks): Move preliminary checks here ... |
| (rest_of_handle_reorder_blocks): ... from here. |
| |
| 2011-09-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/50301 |
| * ipa-cp.c (find_more_values_for_callers_subset): Check jump |
| function index bounds. |
| (perhaps_add_new_callers): Likewise. |
| |
| 2011-09-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/49911 |
| * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced |
| enumerations to the corresponding plain integer type. |
| |
| 2011-09-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50319 |
| * tree-if-conv.c (set_bb_predicate): Assert we only set |
| canonical predicates. |
| (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR |
| around canonical predicates. |
| (predicate_bbs): Do not re-gimplify already canonical |
| predicates. Properly unshare them though. |
| (find_phi_replacement_condition): Simplify. |
| |
| 2011-09-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/49030 |
| * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare. |
| * config/arm/arm.c (maybe_get_arm_condition_code): New function, |
| reusing the old code from get_arm_condition_code. Return ARM_NV |
| for invalid comparison codes. |
| (get_arm_condition_code): Redefine in terms of |
| maybe_get_arm_condition_code. |
| * config/arm/predicates.md (arm_comparison_operator): Use |
| maybe_get_arm_condition_code. |
| |
| 2011-09-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): |
| Canonicalize negated predicates by swapping edges. |
| (forward_propagate_into_cond): Likewise. |
| |
| 2011-09-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50213 |
| * tree-flow.h (simple_iv_increment_p): Declare. |
| * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle |
| POINTER_PLUS_EXPR. |
| * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do |
| not propagate simple IV counter increments. |
| |
| 2011-09-07 Eric Botcazou <ebotcazou@adacore.com> |
| Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (compute_save_world_info): Test |
| cfun->has_nonlocal_label to determine if the out-of-line save |
| world call may be used. |
| |
| 2011-09-07 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump |
| label on the parallel part of the insn. |
| |
| 2011-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/50191 |
| * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try |
| avoid_constant_pool_reference first instead of last. |
| |
| 2011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * doc/configfiles.texi (Configuration Files): Update documentation |
| about tm_p.h and remove FIXME comment. |
| |
| 2011-09-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG. |
| (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX. |
| |
| 2011-09-06 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin10.h Remove duplicate LIB_SPEC. |
| |
| 2011-09-06 Enkovich Ilya <ilya.enkovich@intel.com> |
| |
| PR middle-end/44382 |
| * target.def (reassociation_width): New hook. |
| |
| * doc/tm.texi.in (reassociation_width): Likewise. |
| |
| * doc/tm.texi (reassociation_width): Likewise. |
| |
| * doc/invoke.texi (tree-reassoc-width): New param documented. |
| |
| * hooks.h (hook_int_uint_mode_1): New default hook. |
| |
| * hooks.c (hook_int_uint_mode_1): Likewise. |
| |
| * config/i386/i386.h (ix86_tune_indices): Add |
| X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. |
| |
| (TARGET_REASSOC_INT_TO_PARALLEL): New. |
| (TARGET_REASSOC_FP_TO_PARALLEL): Likewise. |
| |
| * config/i386/i386.c (initial_ix86_tune_features): Add |
| X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL. |
| |
| (ix86_reassociation_width): New function. |
| |
| * params.def (PARAM_TREE_REASSOC_WIDTH): New param added. |
| |
| * tree-ssa-reassoc.c (get_required_cycles): New function. |
| (get_reassociation_width): Likewise. |
| (swap_ops_for_binary_stmt): Likewise. |
| (rewrite_expr_tree_parallel): Likewise. |
| |
| (rewrite_expr_tree): Refactored. Part of code moved into |
| swap_ops_for_binary_stmt. |
| |
| (reassociate_bb): Now checks reassociation width to be used and |
| call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47025 |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END |
| uses nothing. |
| (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like |
| BUILT_IN_FREE. |
| (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument |
| definitely points to. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): |
| BUILT_IN_VA_START doesn't let its va_list argument escape. |
| * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does |
| not make any previous stores necessary. |
| |
| 2011-09-06 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-inline.h (struct inline_summary): Move versionable flag... |
| * cgraph.h (struct cgraph_local_info): ...here |
| * ipa-cp.c (determine_versionability): Use the new versionable flag. |
| (determine_versionability): Likewise. |
| (ipcp_versionable_function_p): Likewise. |
| (ipcp_generate_summary): Likewise. |
| * ipa-inline-analysis.c (dump_inline_summary): Do not dump the |
| versionable flag. |
| (compute_inline_parameters): Do not clear the versionable flag. |
| (inline_read_section): Do not stream the versionable flag. |
| (inline_write_summary): Likewise. |
| * lto-cgraph.c (lto_output_node): Stream the versionable flag. |
| (input_overwrite_node): Likewise. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48149 |
| * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug. |
| (vn_valueize): Move earlier. |
| (valueize_expr): Use vn_valueize. |
| (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR |
| operands. |
| (simplify_unary_expression): Simplify. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48317 |
| * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true |
| trailing array. |
| (sizeof_vn_nary_op): New inline function. |
| (vn_nary_op_lookup_pieces): Adjust. |
| (vn_nary_op_insert_pieces): Likewise. |
| * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length. |
| (init_vn_nary_op_from_pieces): Adjust signature. Deal with |
| any number of operands. |
| (vn_nary_length_from_stmt): New function. |
| (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling. |
| (vn_nary_op_lookup_pieces): Adjust signature and allocate properly |
| sized temporary. |
| (vn_nary_op_lookup): Likewise. |
| (vn_nary_op_lookup_stmt): Likewise. |
| (vn_nary_op_insert_into): Likewise. |
| (vn_nary_op_insert_stmt): Likewise. |
| (visit_use): Handle CONSTRUCTOR as nary. |
| * tree-ssa-pre.c (phi_translate_1): Adjust. |
| (create_expression_by_pieces): Likewise. |
| (compute_avail): Likewise. |
| |
| 2011-09-06 Ira Rosen <ira.rosen@linaro.org> |
| |
| * config/arm/arm.c (arm_preferred_simd_mode): Check |
| TARGET_NEON_VECTORIZE_DOUBLE instead of |
| TARGET_NEON_VECTORIZE_QUAD. |
| (arm_autovectorize_vector_sizes): Likewise. |
| * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse |
| mask of mvectorize-with-neon-double. Add RejectNegative. |
| (mvectorize-with-neon-double): New. |
| |
| 2011-09-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching. |
| |
| 2011-09-06 Tom de Vries <tom@codesourcery.com> |
| |
| * recog.c (asm_labels_ok): New function. |
| (check_asm_operands): Use asm_labels_ok. |
| |
| 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/49606 |
| * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode. |
| (PMODE_INSN): New macro. |
| * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN. |
| (mips_got_load, mips_expand_synci_loop): Likewise. |
| (mips_save_gp_to_cprestore_slot): Handle SImode and DImode |
| cprestore patterns. |
| (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode |
| copygp_mips16 patterns. |
| (mips_expand_prologue): Handle SImode and DImode potential_cprestore |
| and use_cprestore patterns. |
| (mips_override_options): Check for incompatible -mabi and -mlong |
| combinations. |
| * config/mips/mips.md (unspec_got<mode>): Rename to... |
| (unspec_got_<mode>): ...this. |
| (copygp_mips16): Use the Pmode iterator. |
| (potential_cprestore, cprestore, use_cprestore): Likewise. |
| (clear_cache, indirect_jump): Use PMODE_INSN. |
| (indirect_jump<mode>): Rename to... |
| (indirect_jump_<mode>): ...this. |
| (tablejump): Use PMODE_INSN. |
| (tablejump<mode>): Rename to... |
| (tablejump_<mode>): ...this. |
| (exception_receiver): Handle restore_gp_si and restore_gp_di. |
| (restore_gp): Use the Pmode iterator. |
| * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use |
| PMODE_INSN. |
| |
| 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off. |
| Fix the type of the BIT_AND_EXPR. |
| |
| 2011-09-05 David S. Miller <davem@davemloft.net> |
| |
| * config.host: Add driver-sparc.o and sparc/x-sparc on |
| native sparc*-*-linux* builds. |
| * config/sparc/driver-sparc.c: Correct Linux strings. |
| * config/sparc/linux.h: Add DRIVER_SELF_SPECS. |
| * config/sparc/linux64.h: Likewise. |
| * doc/invoke.texi: Document that Linux also supports |
| -mcpu=native and -mtune=native on sparc. |
| |
| * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3, |
| PROCESSOR_NIAGARA4): New. |
| * config/sparc/sparc.opt: Handle new processor types. |
| * config/sparc/sparc.md: Add to "cpu" attribute. |
| * config/sparc/sparc.h (TARGET_CPU_niagara3, |
| TARGET_CPU_niagara4): New, treat as niagara2. |
| * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2. |
| * config/sparc/sol2.h: Likewise. |
| * config/sparc/niagara2.md: Schedule niagara3 like niagara2. |
| * config/sparc/sparc.c (sparc_option_override): Add |
| niagara3 and niagara4 handling. |
| (sparc32_initialize_trampoline): Likewise. |
| (sparc64_initialize_trampoline): Likewise. |
| (sparc_use_sched_lookahead): Likewise. |
| (sparc_issue_rate): Likewise. |
| (sparc_register_move_cost): Likewise. |
| * config/sparc/driver-sparc.c (cpu_names): Use niagara3 |
| and niagara4 as appropriate. |
| * doc/invoke.texi: Document new processor types. |
| * config.gcc: Recognize niagara3 and niagara4 in --with-cpu |
| and --with-tune options. |
| |
| * config/sparc/sol2-64.h: Move ... |
| * config/sparc/default-64.h: ... to here. Update comment. |
| * config.gcc: Update Solaris sparc to use default-64.h, also |
| prefix this header into the list on sparc64-*-linux. |
| * config/sparc/linux64.h (TARGET_DEFAULT): Only override if |
| TARGET_64BIT_DEFAULT is defined. Remove commented out reference |
| to MASK_HARD_QUAD. |
| |
| 2011-09-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/50289 |
| * config/avr/avr.c (sequent_regs_live): Don't recognize sequences |
| that contain global register variable. |
| |
| 2011-09-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace. |
| |
| 2011-09-05 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (layout_type): Use size_binop for array size |
| calculations. |
| |
| 2011-09-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (progmem_section): Remove Declaration. |
| * config/avr/avr.c (progmem_section): Make static and rename to |
| progmem_swtable_section. |
| (avr_output_addr_vec_elt): No need to switch sections. |
| (avr_asm_init_sections): Use output_section_asm_op as section |
| callback for progmem_swtable_section. |
| (avr_output_progmem_section_asm_op): Remove Function. |
| (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define. |
| (avr_asm_function_rodata_section): New static Function. |
| * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output |
| alignment 2**1 for jump tables. |
| |
| 2011-09-04 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that |
| parameter is SSA name. |
| |
| 2011-09-04 Richard Guenther <rguenther@suse.de> |
| |
| Revert |
| 2011-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE |
| special-casing. |
| |
| 2011-09-04 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR debug/49901 |
| * config/darwin.h (DEBUG_MACRO_SECTION): New macro. |
| |
| 2011-09-04 Jakub Jelinek <jakub@redhat.com> |
| Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50208 |
| * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an |
| argument. Check that def_stmt is inside the loop. |
| (vect_recog_widen_mult_pattern): Update calls to |
| vect_handle_widen_mult_by_cons. |
| (vect_operation_fits_smaller_type): Check that def_stmt is |
| inside the loop. |
| |
| 2011-09-04 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.c (vect_print_dump_info): Print line |
| number when dumping to a file. |
| (vectorize_loops): Add new messages to dump file. |
| |
| 2011-09-03 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_jump_func_t): New typedef. |
| (struct ipa_edge_args): Removed field argument_count, field |
| jump_functions turned into a vector. |
| (ipa_set_cs_argument_count): Removed. |
| (ipa_get_cs_argument_count): Updated to work on vectors. |
| (ipa_get_ith_jump_func): Likewise. |
| * ipa-prop.c (ipa_count_arguments): Removed. |
| (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access |
| jump functions. Update caller. |
| (compute_pass_through_member_ptrs): Likewise. |
| (compute_cst_member_ptr_arguments): Likewise. |
| (ipa_compute_jump_functions_for_edge): Get number of arguments from |
| the statement, allocate vector. |
| (ipa_compute_jump_functions): Do not call ipa_count_arguments. |
| (duplicate_ipa_jump_func_array): Removed. |
| (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count. |
| (ipa_read_node_info): Allocate vector. |
| |
| 2011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/50232 |
| * config/pa/pa.md (return): Define "return" insn pattern. |
| (epilogue): Use it when no epilogue is needed. |
| * config/pa/pa.c (pa_can_use_return_insn): New function. |
| * config/pa/pa-protos.h (pa_can_use_return_insn): Declare. |
| |
| 2011-09-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgexpand.c (add_stack_var): Assert that the alignment is not zero. |
| * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change. |
| Force at least BITS_PER_UNIT alignment on the new variable. |
| |
| 2011-09-02 Gary Funck <gary@intrepid.com> |
| |
| * opts.c (print_specific_help): Fix off-by-one compare in |
| assertion check. |
| * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, |
| CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): |
| Increase by +5 to allow for more languages. |
| * optc-gen.awk: Generate #if that ensures that the number of |
| languages is within the implementation-defined limit. |
| |
| 2011-09-02 Michael Matz <matz@suse.de> |
| |
| PR middle-end/50260 |
| * ipa-split.c (split_function): Call add_referenced_var. |
| |
| * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann. |
| (cond_if_else_store_replacement_1): Ditto. |
| * tree-ssa-pre.c (get_representative_for): Ditto. |
| (create_expression_by_pieces): Ditto. |
| (insert_into_preds_of_block): Ditto. |
| * tree-sra.c (create_access_replacement): Ditto. |
| (get_replaced_param_substitute): Ditto. |
| |
| 2011-09-02 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New |
| automata_options. |
| (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit. |
| (l1w, s1w, l2w, s2w): Define in the main automaton. |
| (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New |
| units. |
| * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member. |
| (c6x_unit_names): Add the new units. |
| (c6x_unit_codes): New static array. |
| (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1, |
| UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1, |
| UNIT_QID_SIDE_OFFSET): New macros. |
| (RESERVATION_S2): Adjust value. |
| (c6x_option_override): Compute c6x_unit_codes. |
| (assign_reservations): Take the unit_mask of the last instruction |
| into account. Detect floating point reservations by looking for |
| the new units. Don't assign reservations if the field is already |
| nonzero. |
| (struct c6x_sched_context): Add member prev_cycle_state_ctx. |
| (init_sched_state): Initialize it. |
| (c6x_clear_sched_context): Free it. |
| (insn_set_clock): Clear reservation. |
| (prev_cycle_state): New static variable. |
| (c6x_init_sched_context): Save it. |
| (c6x_sched_init): Allocate space for it and clear it. |
| (c6x_sched_dfa_pre_cycle_insn): New static function. |
| (c6x_dfa_new_cycle): Save state at the start of a new cycle. |
| (c6x_variable_issue): Only record units in the unit_mask that |
| were not set at the start of the cycle. |
| (c6x_variable_issue): Compute and store the unit_mask from the |
| current state. |
| (reorg_split_calls): Ensure the new information remains correct. |
| (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT, |
| TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define. |
| * config/c6x/c6x.h (CPU_UNITS_QUERY): Define. |
| * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_): |
| Add special reservations. |
| * config/c6x/c6x-sched.md: Regenerate. |
| |
| 2011-09-02 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_node_params): Removed fields |
| called_with_var_arguments and node_versionable. |
| (ipa_set_called_with_variable_arg): Removed. |
| (ipa_is_called_with_var_arguments): Likewise. |
| * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert. |
| (determine_versionability): Do not check for type attributes and va |
| builtins. Record versionability into inline summary. |
| (initialize_node_lattices): Do not check |
| ipa_is_called_with_var_arguments. |
| (propagate_constants_accross_call): Likewise, ignore arguments we do |
| not have PARM_DECLs for, set variable flag for parameters that were |
| not passed a value. |
| (create_specialized_node): Dump info that we cannot change signature. |
| * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable |
| number of arguments. |
| (ipa_make_edge_direct_to_target): Likewise. |
| (ipa_update_after_lto_read): Likewise. |
| (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag. |
| * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if |
| they were remapped. |
| |
| 2011-09-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/27460 |
| PR middle-end/29269 |
| * doc/md.texi (vcond): Document. |
| * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion |
| optab with two modes. |
| * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu. |
| (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu. |
| (vcond_optab): Adjust. |
| (vcondu_optab): Likewise. |
| (expand_vec_cond_expr_p): Adjust prototype. |
| * optabs.c (get_vcond_icode): Adjust. |
| (expand_vec_cond_expr_p): Likewise. |
| (expand_vec_cond_expr): Likewise. |
| * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison |
| vector type. |
| (vectorizable_condition): Allow differing types for comparison |
| and result. |
| * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode |
| for the comparison. |
| * config/i386/sse.md (vcond<mode>): Split to |
| vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>, |
| vcond<V_128:mode><VI124_128:mode> and |
| vcondu<V_128:mode><VI124_128:mode>. |
| (vcondv2di): Change to vcond<VI8F_128:mode>v2di. |
| (vconduv2di): Likewise. |
| * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>. |
| (vcondu<mode>): Likewise. |
| * config/ia64/vect.md (vcond<mode>): Likewise. |
| (vcondu<mode>): Likewise. |
| (vcondv2sf): Likewise. |
| * config/mips/mips-ps-3d.md (vcondv2sf): Likewise. |
| * config/rs6000/paired.md (vcondv2sf): Likewise. |
| * config/rs6000/vector.md (vcond<mode>): Likewise. |
| (vcondu<mode>): Likewise. |
| * config/spu/spu.md (vcond<mode>): Likewise. |
| (vcondu<mode>): Likewise. |
| |
| 2011-09-02 Richard Guenther <rguenther@suse.de> |
| |
| * pretty-print.h (pp_unsigned_wide_integer): New. |
| * tree-pretty-print.c (dump_generic_node): Print unsigned |
| host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer. |
| |
| 2011-09-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/49987 |
| * config/rs6000/rs6000.c (paired_expand_vector_init): Check for |
| valid CONST_VECTOR operands. |
| (rs6000_expand_vector_init): Likewise. |
| |
| 2011-09-02 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta. |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use |
| BINFO_VTABLE. Parameter delta removed, all callers updated. |
| * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead |
| BINFO_VTABLE. |
| * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated |
| all calls. |
| * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed |
| handling of thunk_delta. |
| * ipa-cp.c (get_indirect_edge_target): Removed parameter delta. |
| (devirtualization_time_bonus): Do not handle thunk deltas. |
| (ipcp_discover_new_direct_edges): Likewise. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. |
| (try_make_edge_direct_simple_call): Likewise. |
| (try_make_edge_direct_virtual_call): Likewise. |
| * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark |
| parameter set as unused. |
| (output_edge_opt_summary): Likewise. Mark both parameters as unused. |
| * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark |
| parameter set as unused. |
| (output_edge_opt_summary): Likewise. Mark both parameters as unused. |
| (input_edge_opt_summary): Likewise. |
| * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream |
| BINFO_VIRTUALS at all. |
| * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise. |
| |
| 2011-09-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0). |
| (ccp_fold_stmt): Continue replacing args when folding alloca fails. |
| |
| 2011-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR |
| handling here, from ... |
| (expand_expr_real_1): ... here. |
| * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR |
| and VEC_COND_EXPR. |
| * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR |
| a GIMPLE_TERNARY_RHS. |
| * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR |
| and VEC_COND_EXPR here ... |
| (verify_gimple_assign_single): ... not here. |
| * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding. |
| * tree-object-size.c (cond_expr_object_size): Adjust. |
| (collect_object_sizes_for): Likewise. |
| * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs. |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify. |
| (ssa_forward_propagate_and_combine): Adjust. |
| * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR |
| as ternary. |
| * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust. |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise. |
| * tree-vect-stmt.c (vectorizable_condition): Likewise. |
| * tree-vrp.c (extract_range_from_cond_expr): Likewise. |
| (extract_range_from_assignment): Likewise. |
| |
| 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/i386/i386.md: Use (match_test ...) for attribute tests. |
| * config/i386/mmx.md: Likewise. |
| * config/i386/sse.md: Likewise. |
| * config/i386/predicates.md (call_insn_operand): Use |
| (not (match_test "...")) instead of (match_test "!...") |
| * config/i386/constraints.md (w): Likewise. |
| |
| 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/md.texi: Describe the use of match_tests in attribute tests. |
| * rtl.def (MATCH_TEST): Update commentary. |
| * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag) |
| (write_test_expr, walk_attr_value): Handle MATCH_TEST. |
| |
| 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. |
| (attr_string): Use copy_md_ptr_loc. |
| |
| 2011-08-31 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/49886 |
| * ipa-inline-analysis.c (compute_inline_parameters): Set |
| can_change_signature of noes with typde attributes. |
| * ipa-split.c (split_function): Do not skip any arguments if |
| can_change_signature is set. |
| |
| 2011-08-31 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias |
| check removed. |
| |
| 2011-08-31 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE |
| special-casing. |
| |
| 2011-08-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals. |
| |
| 2011-08-31 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43513 |
| * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule. |
| * tree-ssa-ccp.c (params.h): Include. |
| (fold_builtin_alloca_for_var): New function. |
| (ccp_fold_stmt): Use fold_builtin_alloca_for_var. |
| |
| 2011-08-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_valid_target_attribute_inner_p): |
| Handle FMA option. |
| |
| 2011-08-30 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2, |
| b3 and b4 unsigned. |
| |
| 2011-08-30 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (arm_gen_constant): Set can_negate correctly |
| when code is SET. |
| |
| 2011-08-30 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48571 |
| * gimple.h (maybe_fold_offset_to_address): Remove. |
| (maybe_fold_offset_to_reference): Likewise. |
| (maybe_fold_stmt_addition): Likewise. |
| (may_propagate_address_into_dereference): Likewise. |
| * tree-inline.c (remap_gimple_op_r): Do not reconstruct |
| array references. |
| * gimple-fold.c (canonicalize_constructor_val): Likewise. |
| Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF |
| addresses instead. |
| (may_propagate_address_into_dereference): Remove. |
| (maybe_fold_offset_to_array_ref): Likewise. |
| (maybe_fold_offset_to_reference): Likewise. |
| (maybe_fold_offset_to_address): Likewise. |
| (maybe_fold_stmt_addition): Likewise. |
| (fold_gimple_assign): Do not reconstruct array references but |
| instead canonicalize invariant POINTER_PLUS_EXPRs to invariant |
| MEM_REF addresses. |
| (gimple_fold_stmt_to_constant_1): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. |
| * gimplify.c (gimplify_conversion): Likewise. |
| (gimplify_expr): Likewise. |
| |
| 2011-08-30 Ilya Tocar <ilya.tocar@intel.com> |
| |
| * config/i386/fmaintrin.h: New. |
| * config.gcc: Add fmaintrin.h. |
| * config/i386/i386.c |
| (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New. |
| <IX86_BUILTIN_VFMADDSD3>: Likewise. |
| * config/i386/sse.md (fmai_vmfmadd_<mode>): New. |
| (*fmai_fmadd_<mode>): Likewise. |
| (*fmai_fmsub_<mode>): Likewise. |
| (*fmai_fnmadd_<mode>): Likewise. |
| (*fmai_fnmsub_<mode>): Likewise. |
| * config/i386/immintrin.h: Add fmaintrin.h. |
| |
| 2011-08-30 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * genautomata.c (NO_COMB_OPTION): New macro. |
| (no_comb_flag): New static variable. |
| (gen_automata_option): Handle NO_COMB_OPTION. |
| (comb_vect_p): False if no_comb_flag. |
| (add_vect): Move computation of min/max values. Return early if |
| no_comb_flag. |
| * doc/md.texi (automata_option): Document no-comb-vect. |
| |
| * config/i386/i386.c (get_pc_thunk_name): Change prefix to |
| "__x86.get_pc_thunk". |
| |
| * bb-reorder.c (insert_section_boundary_note): Only do it if |
| we reordered the blocks; i.e. not if !optimize_function_for_speed_p. |
| |
| 2011-08-30 Christian Bruel <christian.bruel@st.com> |
| |
| * coverage.c (coverage_init): Check flag_branch_probabilities instead of |
| flag_profile_use. |
| |
| 2011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default |
| to off. Document switch. |
| * doc/invoke.texi (-msave-toc-indirect): Ditto. |
| |
| 2011-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * gthr-posix.h (__gthread_active_p): Do not use preprocessor |
| conditionals and comments inside macro arguments. |
| |
| 2011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (constant_boolean_node): Adjust prototype. |
| * fold-const.c (fold_convert_loc): Move aggregate conversion |
| leeway down. |
| (constant_boolean_node): Make value parameter boolean, add |
| vector type handling. |
| (fold_unary_loc): Use constant_boolean_node. |
| (fold_binary_loc): Preserve types properly when folding |
| COMPLEX_EXPR <__real x, __imag x>. |
| * gimplify.c (gimplify_expr): Handle vector comparison. |
| * tree.def (EQ_EXPR, ...): Document behavior on vector typed |
| comparison. |
| * tree-cfg.c (verify_gimple_comparison): Verify vector typed |
| comparisons. |
| |
| 2011-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48722 |
| * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs, |
| reset_used_flags also in CALL_INSN_FUNCTION_USAGE. |
| (verify_rtl_sharing): Likewise and verify_rtx_sharing |
| in there too. |
| (unshare_all_rtl_in_chain): For CALL_INSNs |
| copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE. |
| |
| 2011-08-29 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location |
| on the built ADDR_EXPR. |
| |
| 2011-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/50215 |
| * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn |
| before adding ENTRY_VALUE to val->locs. |
| |
| 2011-08-28 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR bootstrap/50218 |
| * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize |
| comp. |
| |
| 2011-08-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/rtl.texi (simple_return): Document. |
| (parallel, PATTERN): Here too. |
| * doc/md.texi (return): Mention it's allowed to expand to simple_return |
| in some cases. |
| (simple_return): Document standard pattern. |
| * gengenrtl.c (special_rtx): SIMPLE_RETURN is special. |
| * final.c (final_scan_insn): Use ANY_RETURN_P on body. |
| * reorg.c (function_return_label, function_simple_return_label): |
| New static variables, replacing... |
| (end_of_function_label): ... this. |
| (simplejump_or_return_p): New static function. |
| (optimize_skip, steal_delay_list_from_fallthrough, |
| fill_slots_from_thread): Use it. |
| (relax_delay_slots): Likewise. Use ANY_RETURN_P on body. |
| (rare_destination, follow_jumps): Use ANY_RETURN_P on body. |
| (find_end_label): Take a new arg which is one of the two return |
| rtxs. Depending on which, set either function_return_label or |
| function_simple_return_label. All callers changed. |
| (make_return_insns): Make both kinds. |
| (dbr_schedule): Adjust for two kinds of end labels. |
| * function.c (emit_return_into_block): Set JUMP_LABEL properly. |
| * genemit.c (gen_exp): Handle SIMPLE_RETURN. |
| (gen_expand, gen_split): Use ANY_RETURN_P. |
| * df-scan.c (df_uses_record): Handle SIMPLE_RETURN. |
| * rtl.def (SIMPLE_RETURN): New code. |
| * ifcvt.c (find_if_case_1): Be more careful about |
| redirecting jumps to the EXIT_BLOCK. |
| * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p, |
| returnjump_p_1): Handle SIMPLE_RETURNs. |
| * print-rtl.c (print_rtx): Likewise. |
| * rtl.c (copy_rtx): Likewise. |
| * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P. |
| * combine.c (simplify_set): Likewise. |
| * resource.c (find_dead_or_set_registers, mark_set_resources): |
| Likewise. |
| * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1, |
| copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs. |
| (init_emit_regs): Initialize simple_return_rtx. |
| * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to |
| force_nonfallthru_and_redirect. |
| * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN. |
| (GR_SIMPLE_RETURN): New enum value. |
| (simple_return_rtx): New macro. |
| * basic-block.h (force_nonfallthru_and_redirect): Adjust |
| declaration. |
| * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label |
| argument. All callers changed. Be careful about what kinds of |
| returnjumps to generate. |
| * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb, |
| ix86_pad_short_function): Likewise. |
| * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds |
| of return. |
| * config/mips/mips.md (any_return): New code_iterator. |
| (optab): Add cases for return and simple_return. |
| (return): Expand to a simple_return. |
| (simple_return): New pattern. |
| (*<optab>, *<optab>_internal for any_return): New patterns. |
| (return_internal): Remove. |
| * config/mips/mips.c (mips_expand_epilogue): Make the last insn |
| a simple_return_internal. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*absneg<mode>2): Fix split condition. |
| (vec_extract_lo_<mode>): Prevent both operands in memory. |
| (vec_extract_lo_v16hi): Ditto. |
| (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note. |
| (*sse2_mulv4si3): Ditto. |
| (mulv2di3): Ditto. |
| * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV |
| notes to REG_EQUAL. |
| |
| 2011-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50202 |
| * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note |
| when all outputs are unused. |
| (sse4_2_pcmpistr): Ditto. |
| |
| 2011-08-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (round<mode>2): New expander. |
| * config/i386/i386.c (enum ix86_builtins): Add |
| IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}. |
| (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256} |
| descriptions. |
| (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins. |
| (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor. |
| |
| 2011-08-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/50083 |
| * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert |
| only when TARGET_C99_FUNCTIONS. |
| <BUILT_IN_NEARBYINT{,F,L}>: Ditto. |
| <BUILT_IN_RINT{,F,L}>: Ditto. |
| |
| 2011-08-26 Michael Matz <matz@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/50165 |
| * lto-streamer-in.c (canon_file_name): Initialize new_slot->len; |
| don't call strlen twice, use memcpy. |
| |
| 2011-08-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/bmi2intrin.h: Allow in <immintrin.h>. |
| * config/i386/bmiintrin.h: Likewise. |
| * config/i386/lzcntintrin.h: Likewise. |
| |
| * config/i386/immintrin.h: Include <lzcntintrin.h>, |
| <bmiintrin.h> and <bmi2intrin.h>. |
| |
| 2011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/50166 |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main. |
| * configure: Regenerate. |
| |
| 2011-08-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/50179 |
| * c-typeck.c (c_process_expr_stmt): Skip over nops and |
| call mark_exp_read even if exprv is ADDR_EXPR. |
| |
| 2011-08-26 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * df-problems.c (df_note_bb_compute): Pass uses rather than defs |
| to df_set_dead_notes_for_mw. |
| |
| 2011-08-26 Richard Guenther <rguenther@suse.de> |
| |
| * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF]. |
| |
| 2011-08-26 Zdenek Dvorak <ook@ucw.cz> |
| Tom de Vries <tom@codesourcery.com> |
| |
| * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field. |
| (struct ivopts_data): Add loop_single_exit_p field. |
| (niter_for_exit): Change parameter desc_p into return value. Return |
| desc if desc->may_be_zero. Free desc if unused. |
| (niter_for_single_dom_exit): Change return type. |
| (find_induction_variables): Handle changed return type of |
| niter_for_single_dom_exit. Dump may_be_zero. |
| (add_candidate_1): Keep original base and step type for IP_ORIGINAL. |
| (set_use_iv_cost): Add and handle comp parameter. |
| (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add |
| comp argument to set_use_iv_cost. |
| (strip_wrap_conserving_type_conversions, expr_equal_p) |
| (difference_cannot_overflow_p, iv_elimination_compare_lt): New function. |
| (may_eliminate_iv): Add comp parameter. Handle new return type of |
| niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt. |
| (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost |
| and may_eliminate_iv. |
| (rewrite_use_compare): Move call to iv_elimination_compare to ... |
| (may_eliminate_iv): Here. |
| (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p. |
| |
| 2011-08-26 Tom de Vries <tom@codesourcery.com> |
| |
| * tree-pretty-print (dump_generic_node): Test for NULL_TREE before |
| accessing TREE_TYPE. |
| |
| 2011-08-26 Jiangning Liu <jiangning.liu@arm.com> |
| |
| * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well. |
| (*ior_scc_scc_cmp): Likewise |
| (*and_scc_scc): Likewise. |
| (*and_scc_scc_cmp): Likewise. |
| (*and_scc_scc_nodom): Likewise. |
| (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2. |
| |
| 2011-08-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * rtlanal.c (nonzero_bits1): Handle CLRSB. |
| |
| 2011-08-26 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (string_constant): Handle &MEM_REF. |
| |
| 2011-08-26 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (struct four_ints): New type. |
| (count_insns_for_constant): Delete function. |
| (find_best_start): Delete function. |
| (optimal_immediate_sequence): New function. |
| (optimal_immediate_sequence_1): New function. |
| (arm_gen_constant): Move constant splitting code to |
| optimal_immediate_sequence. |
| Rewrite constant negation/invertion code. |
| |
| 2011-08-26 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm-protos.h (const_ok_for_op): Add prototype. |
| * config/arm/arm.c (const_ok_for_op): Add support for addw/subw. |
| Remove prototype. Remove static function type. |
| * config/arm/arm.md (*arm_addsi3): Add addw/subw support. |
| Add arch attribute. |
| * config/arm/constraints.md (Pj, PJ): New constraints. |
| |
| 2011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New. |
| ("cortex_a9_multiply_long"): New and use above. Handle all |
| long multiply cases. |
| ("cortex_a9_multiply"): Handle smmul and smmulr. |
| ("cortex_a9_mac"): Handle smmla. |
| |
| 2011-08-25 Richard Henderson <rth@redhat.com> |
| |
| PR 50132 |
| PR 49864 |
| * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for |
| non-constant stack adjutment. |
| * expr.c (find_args_size_adjust): Break out from ... |
| (fixup_args_size_notes): ... here. |
| * rtl.h (find_args_size_adjust): Declare. |
| |
| 2011-08-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3, |
| sse4 and sse4_noavx. |
| (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx. |
| (*pushdf_rex64): Change Y2 register constraint to x. |
| (*movdf_internal_rex64): Ditto. |
| (*zero_extendsidi2_rex64): Ditto. |
| (*movdi_internal): Change Y2 register constraint to x |
| and update "isa" attribute. |
| (*pushdf): Ditto. |
| (*movdf internal): Ditto. |
| (zero_extendsidi2_1): Ditto. |
| (*truncdfdf_mixed): Ditto. |
| (*truncxfdf2_mixed): Ditto. |
| * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2 |
| register constraint to x. |
| (*movv2sf_internal_rex64): Ditto. |
| (*mov<mode>_internal): Change Y2 register constraint to x |
| and add "isa" attribute. |
| (*movv2sf_internal): Ditto. |
| (*vec_extractv2si_1): Ditto. |
| * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register |
| constraints to x and update "isa" attribute. |
| (*vec_interleave_highv2df): Change Y3 registerconstraint |
| to x and update "isa" attribute. |
| (*vec_interleave_lowv2df): Ditto. |
| (*vec_concatv2df): Change Y2 register constraint to x and |
| update "isa" attribute. |
| (sse2_loadld): Ditto. |
| (*vec_extractv2di_1): Ditto. |
| (*vec_dupv4si): Ditto. |
| (*vec_dupv2di): Ditto. |
| (*vec_concatv4si): Ditto. |
| (vec_concatv2di): Ditto. |
| * config/i386/constraints.md (Y2): Remove. |
| (Y3): Ditto. |
| (Y4): Ditto. |
| |
| 2011-08-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use, |
| dump_def_use_chain): Don't declare. |
| (mark_conflict, create_new_chain): Move before users. |
| (regrename_optimize): Move to near end of file. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr-protos.h (byte_immediate_operand): Remove Prototype. |
| (secondary_input_reload_class): Remove Prototype. |
| * config/avr/avr.c (byte_immediate_operand): Remove Function. |
| * config/avr/avr.md (setmemhi): Use u8_operand. |
| (strlenhi): Use const0_rtx for comparison. |
| * config/avr/avr.h (avr_reg_order): Remove Declaration. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (reg_class_tab): Make local to |
| avr_regno_reg_class. Return smallest register class available. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (STR_PREFIX_P): New Define. |
| (avr_asm_declare_function_name): Use it. |
| (avr_asm_named_section): Use it. |
| (avr_section_type_flags): Use it. |
| |
| 2011-08-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/md.texi (automata_option): Document collapse-ndfa. |
| * genautomata.c (COLLAPSE_OPTION): New macro. |
| (collapse_flag): New static variable. |
| (struct description): New member normal_decls_num. |
| (struct automaton): New members advance_ainsn and collapse_ainsn. |
| (gen_automata_option): Check for COLLAPSE_OPTION. |
| (collapse_ndfa_insn_decl): New static variable. |
| (add_collapse_ndfa_insn_decl, special_decl_p): New functions. |
| (find_arc): If insn is the collapse-ndfa insn, accept any arc we find. |
| (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if |
| necessary. Use normal_decls_num rather than decls_num, remove |
| test for special decls. |
| (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p. |
| (make_automaton); Likewise. Use the new advance_cycle_insn member |
| of struct automaton. |
| (create_composed_state): Disallow advance-cycle arcs if collapse_flag |
| is set. |
| (NDFA_to_DFA): Don't create composed states for the collapse-ndfa |
| transition. Create the necessary transitions for it. |
| (create_ainsns): Return void. Take an automaton_t argument, and |
| update its ainsn_list, advance_ainsn and collapse_ainsn members. All |
| callers changed. |
| (COLLAPSE_NDFA_VALUE_NAME): New macro. |
| (output_tables): Output code to define it. |
| (output_internal_insn_code_evaluation): Output code to accept |
| const0_rtx as collapse-ndfa transition. |
| (output_default_latencies, output_print_reservation_func, |
| output_print_description): Reorganize loops to use normal_decls_num |
| as loop bound; remove special case for advance_cycle_insn_decl. |
| (initiate_automaton_gen): Handle COLLAPSE_OPTION. |
| (check_automata_insn_issues): Check for collapse_ainsn. |
| (expand_automate): Allocate sufficient space. Initialize |
| normal_decls_num. |
| |
| 2011-08-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md: Fix indentation from r177991. |
| |
| 2011-08-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (struct du_head): Remove member terminated. |
| (create_new_chain): Don't initialize it. |
| (scan_rtx_reg): Don't set or test it, test the open_chains_set |
| bitmap instead. |
| (tick, this_tick): New global variables, moved out of |
| regrename_optimize. |
| (current_id, open_chains, closed_chains, open_chains_set, |
| live_in_chains, live_hard_regs): Reorder declarations. |
| (dump_def_use_chain): Move function earlier in the file. |
| (rename_chains): New static function, broken out of |
| regrename_optimize. |
| (regrename_optimize): Use it. Remove #if 0'ed code. |
| |
| 2011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
| |
| * varasm.c: (default_binds_local_p_1): Commentary typo fix. |
| |
| 2011-08-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/50172 |
| * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed. |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the |
| ref in the basic-block case. Move stripping array-refs |
| to the place we create an access-function for it. Remove |
| bogus stripping down a MEM_REF to its base. |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_comparison): Fold &a < &a + 4 even |
| with -fno-strict-overflow. |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vectorizer.c (vect_print_dump_info): Avoid the |
| file and location clutter when dumping to dump files. |
| |
| 2011-08-24 Simon Baldwin <simonb@google.com> |
| |
| * gengtype-state.c (write_state): Remove timestamped header line. |
| |
| 2011-08-24 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o) |
| (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o) |
| (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o) |
| (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New. |
| (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o) |
| (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o) |
| (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation |
| rules. |
| (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER). |
| |
| 2011-08-24 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@). |
| |
| 2011-08-24 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50067 |
| * tree-data-ref.c (dr_analyze_indices): Do not add an access |
| function for a MEM_REF base that has no evolution in the loop |
| nest or that is not analyzable. |
| |
| 2011-08-23 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira.c (ira_init_register_move_cost): Check small subclasses |
| through ira_reg_class_max_nregs and ira_available_class_regs. |
| |
| 2011-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/constraints.md (Yp): New register constraint. |
| * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using |
| Yp register constraint. |
| (*addqi_1): Merge with *addqi_1_lea using Yp register constraint. |
| (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint. |
| (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint. |
| |
| 2011-08-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/sse.md (<s>mul<mode>3_highpart): Update. |
| |
| 2011-08-23 Mark Heffernan <meheff@google.com> |
| |
| PR middle-end/38509 |
| * common.opt (Wfree-nonheap-object): New option. |
| * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object. |
| * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object |
| to warning. |
| (expand_builtin): Make warning conditional. |
| |
| 2011-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (type): Add imulx, ishiftx and rotatex. |
| (length_immediate): Handle imulx, ishiftx and rotatex. |
| (imm_disp): Ditto. |
| (isa): Add bmi2. |
| (enabled): Handle bmi2. |
| (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3. |
| (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative. |
| (*bmi2_umulditi3_1): New insn pattern. |
| (*bmi2_umulsidi3_1): Ditto. |
| (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency. |
| (*bmi2_ashl<mode>3_1): New insn pattern. |
| (*ashl<mode>3_1): Add ishiftx BMI2 alternative. |
| (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency. |
| (*bmi2_ashlsi3_1_zext): New insn pattern. |
| (*ashlsi3_1_zext): Add ishiftx BMI2 alternative. |
| (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency. |
| (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern. |
| (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative. |
| (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid |
| flags dependency. |
| (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern. |
| (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative. |
| (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid |
| flags dependency. |
| (*bmi2_rorx<mode>3_1): New insn pattern. |
| (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative. |
| (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency. |
| (*rotatert<mode>3_1 splitter): Ditto. |
| (*bmi2_rorxsi3_1_zext): New insn pattern. |
| (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative. |
| (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency. |
| (*rotatertsi3_1_zext splitter): Ditto. |
| |
| 2011-08-23 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New. |
| (OPTION_MASK_ISA_BMI2_UNSET): Likewise. |
| (ix86_handle_option): Handle OPT_mbmi2 case. |
| * config.gcc (i[34567]86-*-*): Add bmi2intrin.h. |
| (x86_64-*-*): Likewise. |
| * config/i386/bmi2intrin.h: New file. |
| * config/i386/cpuid.h (bit_BMI2): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| BMI2 feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): |
| Conditionally define __BMI2__. |
| * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2. |
| Handle BMI2 option. |
| (ix86_valid_target_attribute_inner_p): Handle BMI2 option. |
| (print_reg): New code. |
| (ix86_print_operand): Likewise. |
| (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, |
| IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, |
| IX86_BUILTIN_PEXT64. |
| (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64, |
| IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32, |
| IX86_BUILTIN_PEXT64. |
| * config/i386/i386.h (TARGET_BMI2): New. |
| * config/i386/i386.md (UNSPEC_PDEP): New. |
| (UNSPEC_PEXT): Likewise. |
| (*bmi2_bzhi_<mode>3): Likewise. |
| (*bmi2_pdep_<mode>3): Likewise. |
| (*bmi2_pext_<mode>3): Likewise. |
| * config/i386/i386.opt (mbmi2): New. |
| * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__ |
| is defined. |
| * doc/extend.texi: Document BMI2 built-in functions. |
| * doc/invoke.texi: Document -mbmi2. |
| |
| 2011-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/50161 |
| * simplify-rtx.c (simplify_const_unary_operation): If |
| op is CONST_INT, don't look at op_mode, but use instead mode. |
| * optabs.c (add_equal_note): For FFS, CLZ, CTZ, |
| CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for |
| operation and TRUNCATE/ZERO_EXTEND if needed. |
| * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap): |
| Document that operand mode must be same as operation mode, |
| or VOIDmode. |
| * config/avr/avr.md (paritysi2, *parityqihi2.libgcc, |
| *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc, |
| *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2, |
| *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops |
| use the mode of operand for the operation and add truncate |
| or zero_extend around if needed. |
| * config/c6x/c6x.md (ctzdi2): Likewise. |
| * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise. |
| |
| 2011-08-12 Michael Matz <matz@suse.de> |
| |
| * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment. |
| (gimple_expand_cfg): Merge alignment info for coalesced pointer |
| SSA names. |
| |
| 2011-08-23 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency. |
| * tree-affine.h (aff_comb_cannot_overlap_p): Declare. |
| * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved |
| from ... |
| * tree-ssa-loop-im.c (cannot_overlap_p): ... here. |
| (mem_refs_may_alias_p): Adjust. |
| * tree-data-ref.h (dr_may_alias_p): Adjust. |
| * tree-data-ref.c: Include tree-affine.h. |
| (dr_analyze_indices): Do nothing for the non-loop case. |
| (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate |
| more cases in the non-loop case. |
| * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust |
| calls to dr_may_alias_p. |
| (write_alias_graph_to_ascii_ecc): Likewise. |
| (write_alias_graph_to_ascii_dot): Likewise. |
| (build_alias_set_optimal_p): Likewise. |
| |
| 2011-08-23 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50162 |
| * tree-vect-stmts.c (vectorizable_call): Fix argument lookup. |
| |
| 2011-08-23 Richard Guenther <rguenther@suse.de> |
| |
| * tree-data-ref.c (dr_analyze_indices): Add comments, handle |
| REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs. |
| (create_data_ref): Also dump access functions for the created data-ref. |
| |
| 2011-08-22 Uros Bizjak <ubizjak@gmail.com> |
| Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/50155 |
| * config/i386/sse.md (VI_AVX2): New. |
| (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator. |
| (*<plusminus_insn><mode>3): Ditto. |
| (<sse2_avx2>_andnot<mode>3): Ditto. |
| (*andnot<mode>3): Fix order of cond operands. |
| Add asserts for correct TARGET_xxx. |
| (*<any_logic:code><mode>3): Ditto. |
| |
| 2011-08-22 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro. |
| * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove. |
| * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change |
| regclass argument type to reg_class_t. Change 'max' and 'v' vars |
| and return types to unsigned char. Use reg_class_contents instead |
| of class_contents. |
| (TARGET_CLASS_MAX_NREGS): Define. |
| |
| 2011-08-22 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation |
| to make computed_jump_p return true. |
| |
| 2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it. |
| (PICFLAG_FOR_TARGET): Substitute. |
| * aclocal.m4: Regenerate. |
| * configure: Regenerate. |
| |
| 2011-08-22 Dodji Seketeli <dodji@redhat.com> |
| |
| * c-family/c-pch.c (c_common_read_pch): Re-set line table right |
| after reading in the pch. |
| |
| 2011-08-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined. |
| * configure: Regenerated. |
| |
| 2011-08-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/50133 |
| * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location |
| from stmt instead of some statement around gsi. |
| |
| PR middle-end/50141 |
| * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if |
| innerdecl is a VAR_DECL. |
| |
| 2011-08-22 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/avx2intrin.h: New file. |
| * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI, |
| PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI, |
| V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI, |
| V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI, |
| V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI, |
| V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI, |
| V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI, |
| V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI, |
| V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI, |
| V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI, |
| V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT, |
| V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI, |
| V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI, |
| V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI, |
| V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI, |
| V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT, |
| V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT, |
| V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI, |
| VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI, |
| VOID_FTYPE_PV8SI_V8SI_V8SI, |
| V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT, |
| V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT, |
| V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT, |
| V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT, |
| V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT, |
| V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT, |
| V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT, |
| V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT, |
| V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT, |
| V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT, |
| V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT, |
| V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT, |
| V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT, |
| V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT, |
| V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT, |
| V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT, |
| V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT, |
| V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT, |
| V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT, |
| V4DI_FTYPE_V4DI_INT_CONVERT, |
| V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New. |
| * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256, |
| IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, |
| IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, |
| IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, |
| IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, |
| IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, |
| IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, |
| IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, |
| IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, |
| IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, |
| IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, |
| IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, |
| IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, |
| IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, |
| IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, |
| IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, |
| IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, |
| IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, |
| IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, |
| IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, |
| IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, |
| IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, |
| IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, |
| IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, |
| IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, |
| IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, |
| IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, |
| IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, |
| IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, |
| IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, |
| IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, |
| IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, |
| IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, |
| IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, |
| IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, |
| IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, |
| IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, |
| IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, |
| IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, |
| IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, |
| IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, |
| IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, |
| IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, |
| IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, |
| IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, |
| IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, |
| IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, |
| IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, |
| IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, |
| IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, |
| IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, |
| IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, |
| IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, |
| IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, |
| IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, |
| IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, |
| IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, |
| IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, |
| IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS, |
| IX86_BUILTIN_VBROADCASTSS_PS256, |
| IX86_BUILTIN_VBROADCASTSD_PD256, |
| IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, |
| IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, |
| IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, |
| IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, |
| IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, |
| IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, |
| IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, |
| IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, |
| IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, |
| IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, |
| IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, |
| IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, |
| IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256, |
| IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, |
| IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, |
| IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, |
| IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, |
| IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI, |
| IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF, |
| IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF, |
| IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF, |
| IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF, |
| IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI, |
| IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI, |
| IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI, |
| IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI. |
| (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256, |
| IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ, |
| IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256, |
| IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ, |
| IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256. |
| (bdesc_args): Add IX86_BUILTIN_MPSADBW256, |
| IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256, |
| IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256, |
| IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256, |
| IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256, |
| IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256, |
| IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256, |
| IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256, |
| IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256, |
| IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I, |
| IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256, |
| IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256, |
| IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, |
| IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, |
| IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, |
| IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256, |
| IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256, |
| IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256, |
| IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256, |
| IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256, |
| IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256, |
| IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256, |
| IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256, |
| IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256, |
| IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256, |
| IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256, |
| IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256, |
| IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256, |
| IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256, |
| IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256, |
| IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256, |
| IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256, |
| IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256, |
| IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256, |
| IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256, |
| IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256, |
| IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256, |
| IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256, |
| IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256, |
| IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256, |
| IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256, |
| IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256, |
| IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256, |
| IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256, |
| IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256, |
| IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256, |
| IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256, |
| IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256, |
| IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256, |
| IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256, |
| IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256, |
| IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256, |
| IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256, |
| IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256, |
| IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256, |
| IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256, |
| IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256, |
| IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256, |
| IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256, |
| IX86_BUILTIN_VBROADCASTSD_PD256, |
| IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256, |
| IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256, |
| IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256, |
| IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128, |
| IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128, |
| IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256, |
| IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256, |
| IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256, |
| IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256, |
| IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI, |
| IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI, |
| IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI, |
| IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI, |
| IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI. |
| (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF, |
| IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF, |
| IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF, |
| IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF, |
| IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI, |
| IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI, |
| IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI, |
| IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI, |
| IX86_BUILTIN_GATHERDIV8SI. |
| (ix86_preferred_simd_mode): Support AVX2 modes. |
| (ix86_expand_args_builtin): Support AVX2 builtins. |
| (ix86_expand_special_args_builtin): Likewise. |
| (ix86_expand_builtin): Likewise. |
| * config/i386/i386.md (UNSPEC_VPERMSI): New. |
| (UNSPEC_VPERMDF): Likewise. |
| (UNSPEC_VPERMSF): Likewise. |
| (UNSPEC_VPERMDI): Likewise. |
| (UNSPEC_VPERMTI): Likewise. |
| (UNSPEC_GATHER): Likewise. |
| (ssemodesuffix): Extend. |
| * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__ |
| is defined. |
| * config/i386/predicates.md (const1248_operand): New. |
| * config/i386/sse.md (VI1_AVX2): New mode iterator. |
| (VI2_AVX2): Likewise. |
| (VI4_AVX2): Likewise. |
| (VI8_AVX2): Likewise. |
| (VIMAX_AVX2): Likewise. |
| (SSESCALARMODE): Likewise. |
| (VI12_AVX2): Likewise. |
| (VI24_AVX2): Likewise. |
| (VI124_AVX2): Likewise. |
| (VI248_AVX2): Likewise. |
| (VI48_AVX2): Likewise. |
| (VI4SD_AVX2): Likewise. |
| (V48_AVX2): Likewise. |
| (AVX256MODE2P): Likewise. |
| (AVXMODE48P_DI): Likewise. |
| (sse2_avx2): New mode attribute. |
| (ssse3_avx2): Likewise. |
| (sse4_1_avx2): Likewise. |
| (avx_avx2): Likewise. |
| (ssebytemode): Likewise. |
| (AVXTOSSEMODE): Likewise. |
| (AVXMODE48P_DI): Likewise. |
| (gthrfirstp): Likewise. |
| (gthrlastp): Likewise. |
| (lshift): New code_iterator |
| (lshift): New code attribute. |
| (lshift): Likewise. |
| (ssescalarmodesuffix): Update. |
| (sseunpackmode): Likewise. |
| (ssepackmode): Likewise. |
| (avx2_vec_dupv4sf): New insn pattern. |
| (avx2_vec_dupv8sf): Likewise. |
| (avx2_interleave_highv4di): Likewise. |
| (avx2_interleave_lowv4di): Likewise. |
| (avx2_umulv4siv4di3): Likewise |
| (*avx2_umulv4siv4di3): Likewise |
| (avx2_pmaddwd): Likewise. |
| (*avx2_pmaddwd): Likewise. |
| (avx2_lshrqv4di3): Likewise. |
| (avx2_lshlqv4di3): Likewise. |
| (avx2_lshl<mode>3): Likewise. |
| (avx2_<umaxmin:code><mode>3): Likewise. |
| (*avx2_<umaxmin:code><mode>3): Likewise. |
| (avx2_<smaxmin:code><mode>3): Likewise. |
| (*avx2_<smaxmin:code><mode>3): Likewise. |
| (avx2_eq<mode>3): Likewise. |
| (*avx2_eq<mode>3): Likewise. |
| (avx2_gt<mode>3): Likewise. |
| (avx2_interleave_highv32qi): New. |
| (avx2_interleave_lowv32qi): Likewise. |
| (avx2_interleave_highv16hi): Likewise. |
| (avx2_interleave_lowv16hi): Likewise. |
| (avx2_interleave_highv8si): Likewise. |
| (avx2_interleave_lowv8si): Likewise. |
| (avx2_pshufd): Likewise. |
| (avx2_pshufd_1): Likewise. |
| (avx2_pshuflwv3): Likewise. |
| (avx2_pshuflw_1): Likewise. |
| (avx2_pshufhwv3): Likewise. |
| (avx2_pshufhw_1): Likewise. |
| (avx2_uavgv32qi3): Likewise. |
| (*avx2_uavgv32qi3): Likewise. |
| (avx2_uavgv16hi3): Likewise. |
| (*avx2_uavgv16hi3): Likewise. |
| (avx2_pmovmskb): Likewise. |
| (avx2_phaddwv16hi3): Likewise. |
| (avx2_phadddv8si3): Likewise. |
| (avx2_phaddswv16hi3): Likewise. |
| (avx2_phsubwv16hi3): Likewise. |
| (avx2_phsubdv8si3): Likewise. |
| (avx2_phsubswv16hi3): Likewise. |
| (avx2_pmaddubsw256): Likewise. |
| (avx2_umulhrswv16hi3): Likewise. |
| (*avx2_umulhrswv16hi3): Likewise. |
| (avx2_packusdw): Likewise. |
| (avx2_pblendd<mode>): Likewise. |
| (avx2_<code>v16qiv16hi2): Likewise. |
| (avx2_<code>v8qiv8si2): Likewise. |
| (avx2_<code>v8hiv8si2): Likewise. |
| (avx2_<code>v4qiv4di2): Likewise. |
| (avx2_<code>v4hiv4di2): Likewise. |
| (avx2_<code>v4siv4di2): Likewise. |
| (avx2_pbroadcast<mode>): Likewise. |
| (avx2_permvarv8si): Likewise. |
| (avx2_permv4df): Likewise. |
| (avx2_permvarv8sf): Likewise. |
| (avx2_permv4di): Likewise. |
| (avx2_permv2ti): Likewise. |
| (avx2_vec_dupv4df): Likewise. |
| (avx2_vbroadcasti128_<mode>): Likewise. |
| (avx2_vec_set_lo_v4di): Likewise. |
| (avx2_vec_set_hi_v4di): Likewise. |
| (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise. |
| (avx2_extracti128): Likewise. |
| (avx2_inserti128): Likewise. |
| (avx2_ashrvv8si): Likewise. |
| (avx2_ashrvv4si): Likewise. |
| (avx2_<lshift>vv8si): Likewise. |
| (avx2_<lshift>v<mode>): Likewise. |
| (avx2_<lshift>vv2di): Likewise. |
| (avx2_gathersi<mode>): Likewise. |
| (*avx2_gathersi<mode>): Likewise. |
| (avx2_gatherdi<mode>): Likewise. |
| (*avx2_gatherdi<mode>): Likewise. |
| (avx2_gatherdi<mode>256): Likewise. |
| (*avx2_gatherdi<mode>256): Likewise. |
| (<plusminus_insn><mode>3): Use VI mode iterator. |
| (*<plusminus_insn><mode>3): Use VI mode iterator. |
| (<sse2_avx2>_<plusminus_insn><mode>3): Rename from |
| sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator. |
| (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from |
| *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator. |
| (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator. |
| (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator. |
| (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart. |
| Use VI2_AVX2 mode iterator. |
| (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart. |
| Use VI2_AVX2 mode iterator. |
| (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator. |
| (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator. |
| (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3. |
| Use VI4_AVX2 mode iterator. |
| (ashr<mode>3): Use VI24_AVX2 mode iterator. |
| (lshr<mode>3): Use VI248_AVX2 mode iterator. |
| (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3. |
| Use VIMAX_AVX2 mode iterator. |
| (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3. |
| Use VI mode iterator. |
| (*andnot<mode>3): Update for AVX2. |
| (*<any_logic:code><mode>3): Likewise. |
| (<sse2_avx2>_packsswb): Rename from sse2_packsswb. |
| Use VI1_AVX mode iterator. |
| (<sse2_avx2>_packssdw): Rename from sse2_packssdw. |
| Use VI2_AVX mode iterator. |
| (<sse2_avx2>_packuswb): Rename from sse2_packsswb. |
| Use VI1_AVX mode iterator. |
| (<sse2_avx2>_psadbw): Rename from sse2_psadbw. |
| Use VI8_AVX2 mode iterator. |
| (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3. |
| Use VI1_AVX2 mode iterator. |
| (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3. |
| Use VI124_AVX2 mode iterator. |
| (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti. |
| Use SSESCALARMODE mode iterator. |
| (abs<mode>2): Use VI124_AVX2 mode iterator. |
| (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa. |
| Use VI8_AVX2 mode iterator. |
| (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw. |
| Use VI1_AVX2 mode iterator. |
| (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb. |
| Use VI1_AVX2 mode iterator. |
| (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb. |
| Use VI2_AVX2 mode iterator. |
| (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from |
| avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator. |
| (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from |
| avx_maskstore<ssemodesuffix><avxsizesuffix>. |
| Use V48_AVX2 mode iterator. |
| * doc/extend.texi: Document AVX2 built-in functions. |
| * doc/invoke.texi: Document -mavx2. |
| |
| 2011-08-22 Matthias Klose <doko@debian.org> |
| |
| Revert: |
| 2011-07-11 Arthur Loiret <aloiret@debian.org> |
| Matthias Klose <doko@debian.org> |
| * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if |
| tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc |
| convention. |
| * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. |
| |
| 2011-08-22 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR bootstrap/50146 |
| * ira-color.c (assign_hard_reg): Move saved_nregs declaration |
| to #ifndef HONOR_REG_ALLOC_ORDER block. |
| |
| 2011-08-21 Richard Henderson <rth@redhat.com> |
| |
| * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN. |
| * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P. |
| * resource.c (next_insn_no_annul): Likewise. |
| (mark_set_resources): Likewise. |
| * reorg.c (delete_from_delay_slot): Likewise. |
| (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise. |
| (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing. |
| |
| 2011-08-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (any_div): Remove. |
| (sgnprefix): Update for removal. |
| (u): Ditto. |
| |
| 2011-08-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class |
| for ira_reg_class_max_nregs. Increase pressure by 1. |
| (mark_pseudo_regno_subword_dead): Use allocno class |
| for ira_reg_class_max_nregs. |
| |
| 2011-08-20 Richard Henderson <rth@redhat.com> |
| |
| * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, |
| config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, |
| config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, |
| config/c6x/ltf.c: Adjust include path for soft-fp. |
| |
| 2011-08-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR other/46770 |
| * config.gcc (tm_file): Add initfini-array.h if |
| .init_arrary/.fini_array are supported. |
| |
| * crtstuff.c: Don't generate .ctors nor .dtors sections if |
| USE_INITFINI_ARRAY is defined. |
| |
| * output.h (default_elf_init_array_asm_out_constructor): New. |
| (default_elf_fini_array_asm_out_destructor): Likewise. |
| * varasm.c (elf_init_array_section): Likewise. |
| (elf_fini_array_section): Likewise. |
| (get_elf_initfini_array_priority_section): Likewise. |
| (default_elf_init_array_asm_out_constructor): Likewise. |
| (default_elf_fini_array_asm_out_destructor): Likewise. |
| |
| * config/initfini-array.h: New. |
| |
| 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_class_max_nregs): Check that the mode is |
| OK for ST_REGS and FP_REGS before taking those classes into account. |
| |
| 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_reorg_process_insns): Check for jumps |
| before checking for annulled branches. |
| |
| 2011-08-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_binary_operator_ok): Use |
| satisfies_constraint_L. |
| |
| 2011-08-20 Uros Bizjak <ubizjak@gmail.com> |
| Michael Matz <matz@suse.de> |
| |
| * config/i386/i386.c (ix86_expand_round_sse4): Expand as |
| trunc (a + copysign (nextafter (0.5, 0.0), a)). |
| |
| 2011-08-20 Anatoly Sokolov <aesok@post.ru> |
| |
| * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_preferred_output_reload_class): Don't use |
| PREFERRED_OUTPUT_RELOAD_CLASS macro. |
| * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison. |
| |
| 2011-08-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48739 |
| * tree-ssa.c: Include cfgloop.h. |
| (execute_update_addresses_taken): When updating ssa, if in loop closed |
| SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa. |
| * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H). |
| |
| 2011-08-19 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49936 |
| * ira.c (ira_init_register_move_cost): Ignore too small subclasses |
| for calculation of max register move costs. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-parser.c (c_parser_postfix_expression): Convert operands of |
| __builtin_complex to their semantic types. |
| |
| 2011-08-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/49721 |
| * explow.c (convert_memory_address_addr_space): Also permute the |
| conversion and addition of constant for zero-extend. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX. |
| * doc/extend.texi (__builtin_complex): Document. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants |
| beyond conversions. |
| (convert_mult_to_widen): Convert constant inputs to the right type. |
| (convert_plusminus_to_widen): Don't automatically reject inputs that |
| are not an SSA_NAME. |
| Convert constant inputs to the right type. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs |
| to the correct type. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle |
| unsigned inputs of different modes. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument |
| 'type'. |
| Use 'type' from caller, not inferred from 'rhs'. |
| Don't reject non-conversion statements. Do return lhs in this case. |
| (is_widening_mult_p): Add new argument 'type'. |
| Use 'type' from caller, not inferred from 'stmt'. |
| Pass type to is_widening_mult_rhs_p. |
| (convert_mult_to_widen): Pass type to is_widening_mult_p. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME. |
| Ensure the the larger type is the first operand. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Convert |
| unsupported unsigned multiplies to signed. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single |
| conversion statement separating multiply-and-accumulate. |
| |
| 2011-08-19 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50067 |
| * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF |
| offset only if we accounted for it. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.md (maddhidi4): Remove '*' from name. |
| * expr.c (expand_expr_real_2): Use find_widening_optab_handler. |
| * optabs.c (find_widening_optab_handler_and_mode): New function. |
| (expand_widen_pattern_expr): Use find_widening_optab_handler. |
| (expand_binop_directly): Likewise. |
| (expand_binop): Likewise. |
| * optabs.h (find_widening_optab_handler): New macro define. |
| (find_widening_optab_handler_and_mode): New prototype. |
| * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR |
| type precision rules. |
| (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR. |
| * tree-ssa-math-opts.c (build_and_insert_cast): New function. |
| (is_widening_mult_rhs_p): Allow widening by more than one mode. |
| Explicitly disallow mis-matched input types. |
| (convert_mult_to_widen): Use find_widening_optab_handler, and cast |
| input types to fit the new handler. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| * expr.c (expand_expr_real_2): Use widening_optab_handler. |
| * genopinit.c (optabs): Use set_widening_optab_handler for $N. |
| (gen_insn): $N now means $a must be wider than $b, not consecutive. |
| * optabs.c (widened_mode): New function. |
| (expand_widen_pattern_expr): Use widening_optab_handler. |
| (expand_binop_directly): Likewise. |
| (expand_binop): Likewise. |
| * optabs.h (widening_optab_handlers): New struct. |
| (optab_d): New member, 'widening'. |
| (widening_optab_handler): New function. |
| (set_widening_optab_handler): New function. |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Use |
| widening_optab_handler. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if |
| pedantic. |
| * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment. |
| * ginclude/stdnoreturn.h (noreturn): Don't define for C++. |
| |
| 2011-08-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * opth-gen.awk: Do not declare target save/restore structures and |
| functions if IN_RTS defined. |
| |
| 2011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> |
| |
| PR target/49437 |
| * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue |
| when stack was realigned in interrupt handler prologue. |
| |
| 2011-08-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (shadow_tag_warned): Check for _Noreturn. |
| (quals_from_declspecs): Assert _Noreturn not present. |
| (grokdeclarator): Handle _Noreturn. |
| (build_null_declspecs): Initialize noreturn_p. |
| (declspecs_add_scspec): Handle RID_NORETURN. |
| * c-parser.c (c_token_starts_declspecs, c_parser_declspecs) |
| (c_parser_attributes): Handle RID_NORETURN. |
| * c-tree.h (struct c_declspecs): Add noreturn_p. |
| * ginclude/stdnoreturn.h: New. |
| * Makefile.in (USER_H): Add stdnoreturn.h. |
| |
| 2011-08-18 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New. |
| (OPTION_MASK_ISA_AVX_UNSET): Update. |
| (OPTION_MASK_ISA_AVX2_UNSET): New. |
| (ix86_handle_option): Handle OPT_mavx2 case. |
| * config/i386/cpuid.h (bit_AVX2): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| AVX2 feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): |
| Conditionally define __AVX2__. |
| * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2. |
| Define "core-avx2" processor alias. Handle avx2 option. |
| (ix86_valid_target_attribute_inner_p): Handle avx2 option. |
| * config/i386/i386.h (TARGET_AVX2): New. |
| * config/i386/i386.opt (mavx2): New. |
| * doc/invoke.texi: Document -mavx2. |
| |
| 2011-08-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49890 |
| * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude |
| subclasses of class which is superset of a pressure class. |
| |
| 2011-08-18 H.J. Lu <hongjiu.lu@intel.com> |
| Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * config/i386/i386-c.c (ix86_target_macros_internal): Replace int |
| with HOST_WIDE_INT for isa_flag. |
| (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for |
| isa variables. |
| |
| * config/i386/i386.c (ix86_target_string): Replace int with |
| HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. |
| (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. |
| (pta_flags): Removed. |
| (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). |
| (pta): Use HOST_WIDE_INT on flags. |
| (builtin_isa): Use HOST_WIDE_INT on isa. |
| (ix86_add_new_builtins): Likewise. |
| (def_builtin): Use HOST_WIDE_INT on mask. |
| (def_builtin_const): Likewise. |
| (builtin_description): Likewise. |
| |
| * config/i386/i386.opt (ix86_isa_flags): Replace int with |
| HOST_WIDE_INT. |
| (ix86_isa_flags_explicit): Likewise. |
| (x_ix86_isa_flags_explicit): Likewise. |
| |
| 2011-08-17 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/50107 |
| * ira-int.h (ira_hard_reg_not_in_set_p): Remove. |
| (ira_hard_reg_in_set_p): New. |
| |
| * ira-color.c (calculate_saved_nregs): New. |
| (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all |
| hard regs. |
| (allocno_reload_assign, fast_allocation): Use |
| ira_hard_reg_set_intersection_p instead of |
| ira_hard_reg_not_in_set_p. |
| |
| * ira.c (setup_reg_renumber): Use |
| ira_hard_reg_set_intersection_p instead of |
| ira_hard_reg_not_in_set_p. |
| (setup_allocno_assignment_flags, calculate_allocation_cost): Use |
| ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p. |
| |
| * ira-costs.c (ira_tune_allocno_costs): Use |
| ira_hard_reg_set_intersection_p instead of |
| ira_hard_reg_not_in_set_p. |
| |
| 2011-08-18 H.J. Lu <hongjiu.lu@intel.com> |
| Igor Zamyatin <igor.zamyatin@intel.com> |
| |
| * hwint.h (HOST_WIDE_INT_1): New. |
| |
| * opt-functions.awk (switch_bit_fields): Initialize the |
| host_wide_int field. |
| (host_wide_int_var_name): New. |
| (var_type_struct): Check and return HOST_WIDE_INT. |
| |
| * opt-read.awk: Handle HOST_WIDE_INT for "Variable". |
| |
| * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. |
| |
| * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly |
| check masks for HOST_WIDE_INT. |
| |
| * opts-common.c (set_option): Support HOST_WIDE_INT flag_var. |
| (option_enabled): Likewise. |
| (get_option_state): Likewise. |
| |
| * opts.h (cl_option): Add cl_host_wide_int. Change var_value |
| to HOST_WIDE_INT. |
| |
| 2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Marc Glisse <marc.glisse@normalesup.org> |
| |
| PR libstdc++-v3/1773 |
| * target.def (decl_mangling_context): New C++ hook. |
| * doc/tm.texi: Regenerate. |
| * config/sol2-cxx.c, config/sol2-stubs.c: New files. |
| * config/sol2-protos.h: Group by source file. |
| (solaris_cxx_decl_mangling_context): Declare. |
| * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define. |
| * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets. |
| Use $<. |
| * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs. |
| Add sol2-stubs.o to extra_objs. |
| |
| 2011-08-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/50009 |
| * stor-layout.c (update_alignment_for_field): Don't ICE on |
| packed flexible array members if ms_bitfield_layout_p. |
| |
| PR target/50092 |
| * config/i386/i386.c (assign_386_stack_local): Call validize_mem |
| on the result before returning it. |
| |
| PR debug/50017 |
| * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi) |
| is a debug stmt, use location of the first non-debug stmt after it. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET. |
| (arm_size_rtx_costs): Likewise. |
| |
| 2011-08-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (tree_int_cst_msb): Remove. |
| * tree.c (tree_int_cst_msb): Likewise. |
| (tree_int_cst_sign_bit): Move from ... |
| * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. |
| * doc/tm.texi: Regenerate. |
| * target.def (rtx_costs): Add an opno parameter. |
| * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with... |
| (hook_bool_rtx_int_int_int_intp_bool_false): ...this. |
| * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with... |
| (hook_bool_rtx_int_int_int_intp_bool_false): ...this. |
| * cse.c (COST_IN): Add an opno parameter. |
| (notreg_cost): Likewise. Update call to rtx_cost. |
| (COST, fold_rtx): Update accordingly. |
| * dojump.c (prefer_and_bit_test): Update call to rtx_cost. |
| * expmed.c (emit_store_flag): Likewise. |
| * optabs.c (avoid_expensive_constant): Add an opno parameter. |
| Update call to rtx_cost. |
| (expand_binop_directly, expand_binop): Likewise. |
| (expand_twoval_binop, prepare_cmp_insn): Likewise. |
| * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters. |
| (set_src_cost, get_full_set_src_cost): Update accordingly. |
| * rtlanal.c (rtx_cost): Add an opno parameter. Update call |
| to target hook. |
| (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost. |
| (default_adress_cost): Update calls to rtx_cost. |
| |
| * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs) |
| (arm_slowmul_rtx_costs): Adjust calls to rtx_cost. |
| (arm_rtx_costs): Add an opno parameter. |
| * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and |
| adjust any recursive rtx-cost calls. |
| * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise. |
| * config/bfin/bfin.c (bfin_rtx_costs): Likewise. |
| * config/c6x/c6x.c (c6x_rtx_costs): Likewise. |
| * config/cris/cris.c (cris_rtx_costs): Likewise. |
| * config/frv/frv.c (frv_rtx_costs): Likewise. |
| * config/h8300/h8300.c (h8300_rtx_costs): Likewise. |
| * config/i386/i386.c (ix86_rtx_costs): Likewise. |
| * config/ia64/ia64.c (ia64_rtx_costs): Likewise. |
| * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise. |
| * config/lm32/lm32.c (lm32_rtx_costs): Likewise. |
| * config/m32c/m32c.c (m32c_rtx_costs): Likewise. |
| * config/m32r/m32r.c (m32r_rtx_costs): Likewise. |
| * config/m68k/m68k.c (m68k_rtx_costs): Likewise. |
| * config/mcore/mcore.c (mcore_rtx_costs): Likewise. |
| * config/mep/mep.c (mep_rtx_cost): Likewise. |
| * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise. |
| * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost. |
| (mips_zero_extend_cost): Add an opno parameter. |
| * config/mmix/mmix.c (mmix_rtx_costs): Likewise. |
| * config/mn10300/mn10300.c (mn10300_address_cost): Update call |
| to rtx_cost. |
| (mn10300_rtx_costs): Add an opno parameter and adjust any recursive |
| rtx-cost calls. |
| * config/pa/pa.c (hppa_rtx_costs): Likewise. |
| * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise. |
| * config/picochip/picochip.c (picochip_rtx_costs): Likewise. |
| * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise. |
| (rs6000_debug_rtx_costs): Likewise. |
| * config/s390/s390.c (s390_rtx_costs): Likewise. |
| * config/score/score-protos.h (score_rtx_costs): Likewise. |
| * config/score/score.c (score_rtx_costs): Likewise. |
| * config/sh/sh.c (andcosts): Update call to rtx_cost. |
| (sh_rtx_costs): Add an opno parameter. |
| * config/sparc/sparc.c (sparc_rtx_costs): Likewise. |
| * config/spu/spu.c (spu_rtx_costs): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise. |
| * config/v850/v850.c (v850_rtx_costs): Likewise. |
| * config/vax/vax.c (vax_rtx_costs): Likewise. |
| * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * rtl.h (set_src_cost, get_full_set_src_cost): New functions. |
| * auto-inc-dec.c (attempt_change): Use set_src_cost instead of |
| rtx_cost. |
| * calls.c (precompute_register_parameters): Likewise. |
| * combine.c (expand_compound_operation, make_extraction): Likewise. |
| (force_to_mode, distribute_and_simplify_rtx): Likewise. |
| * dse.c (find_shift_sequence): Likewise. |
| * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise. |
| * expr.c (compress_float_constant): Likewise. |
| * fwprop.c (should_replace_address, try_fwprop_subst): Likewise. |
| * gcse.c (want_to_gcse_p): Likewise. |
| * ifcvt.c (noce_try_sign_mask): Likewise. |
| * loop-doloop.c (doloop_optimize): Likewise. |
| * loop-invariant.c (create_new_invariant): Likewise. |
| * optabs.c (avoid_expensive_constant): Likewise. |
| * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands) |
| (try_replace_in_use, reload_cse_move2add): Likewise. |
| * reload1.c (calculate_elim_costs_all_insns): Likewise. |
| (note_reg_elim_costly): Likewise. |
| * rtlanal.c (insn_rtx_cost): Likewise. |
| * simplify-rtx.c (simplify_binary_operation_1): Likewise. |
| * stmt.c (lshift_cheap_p): Likewise. |
| * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise. |
| * config/avr/avr.c (final_prescan_insn): Likewise. |
| * config/bfin/bfin.c (bfin_rtx_costs): Likewise. |
| * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise. |
| |
| 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions. |
| * auto-inc-dec.c (attempt_change): Use set_rtx_cost. |
| * cfgloopanal.c (seq_cost): Likewise. |
| * loop-invariant.c (create_new_invariant): Likewise. |
| * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn) |
| (reload_cse_move2add): Use get_full_set_rtx_cost. |
| |
| 2011-08-18 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (get_inner_reference): Fix typo in last change. |
| |
| 2011-08-18 Paolo Carlini <paolo.carlini@oracle.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| PR tree-optimization/49963 |
| * hwint.c (absu_hwi): Define. |
| * hwint.h (absu_hwi): Declare. |
| * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead |
| of abs_hwi. |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. |
| * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. |
| |
| 2011-08-18 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (get_inner_reference): Sign-extend the constant |
| twos-complement offset before doing arbitrary precision |
| arithmetic on it. |
| * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. |
| (get_constraint_for_1): Pass the offset of a MEM_REF unchanged |
| to get_constraint_for_ptr_offset. |
| |
| 2011-08-17 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/50068 |
| * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule. |
| |
| 2011-08-17 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (convert_to_ptrofftype_loc): New function. |
| (convert_to_ptrofftype): Define. |
| * builtins.c (expand_builtin_bzero): Use size_type_node. |
| (fold_builtin_bzero): Likewise. |
| (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer. |
| * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc. |
| * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc. |
| (cgraph_redirect_edge_call_stmt_to_callee): Use size_int. |
| * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus. |
| * fold-const.c (build_range_check): Negate using the original type. |
| (fold_unary_loc): Use fold_build_pointer_plus_loc. |
| * gimple-fold.c (gimple_adjust_this_by_delta): Use |
| convert_to_ptrofftype. |
| * gimplify.c (gimplify_self_mod_expr): Likewise. |
| * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise. |
| (graphite_create_new_loop_guard): Likewise. |
| * graphite-sese-to-poly.c (my_long_long): Remove. |
| (scop_ivs_can_be_represented): Adjust. |
| * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p. |
| * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus. |
| * tree-loop-distribution.c (build_size_arg_loc): Use |
| size_type_node. |
| (generate_memset_zero): Simplify. |
| * tree-mudflap.c: Use fold_convert, not convert. |
| * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in |
| its own type. |
| (determine_offset): Likewise for DR_STEP. |
| (valid_initializer_p): Likewise. |
| * tree-profile.c (prepare_instrumented_value): Convert the pointer |
| to an integer type of same size. |
| * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer |
| to sizetype without need. |
| * tree-ssa-address.c (tree_mem_ref_addr): Likewise. |
| * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype. |
| * tree-ssa-loop-manip.c (create_iv): Likewise. |
| (determine_exit_conditions): Adjust comment. |
| * tree-ssa-pre.c (create_expression_by_pieces): Use |
| convert_to_ptrofftype. |
| * tree-ssa-structalias.c (get_constraint_for_1): Likewise. |
| * varasm.c (array_size_for_constructor): Compute using double_ints. |
| |
| 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests |
| when generating an integer result where possible. Short-cut |
| comparison against 0 also for QImode. |
| |
| 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro. |
| * config/spu/spu-protos.h (spu_legitimize_reload_address): Add |
| prototype. |
| * config/spu/spu.c (spu_legitimize_reload_address): New function. |
| (spu_legitimate_address_p): Do not check displacement if the base |
| is an eliminable stack register. |
| |
| 2011-08-16 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS, |
| PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. |
| * config/m32c/m32c-protos.h (m32c_preferred_reload_class, |
| m32c_preferred_output_reload_class): Remove. |
| * config/m32c/m32c.c (m32c_preferred_reload_class): Make static. |
| Change rclass argument and return types to reg_class_t. Use |
| reg_class_subset_p instead of class_sizes. |
| (m32c_preferred_output_reload_class): Make static. Change rclass |
| argument and return types to reg_class_t. |
| (TARGET_PREFERRED_RELOAD_CLASS, |
| TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. |
| |
| 2011-08-16 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option. |
| |
| 2011-08-16 Richard GUenther <rguenther@suse.de> |
| |
| PR tree-optimization/50082 |
| * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow |
| warnings here, instead of ... |
| (ssa_forward_propagate_and_combine): ... here. |
| (forward_propagate_into_comparison_1): Adjust. |
| (forward_propagate_into_comparison): Likewise. |
| (forward_propagate_into_gimple_cond): Likewise. |
| (forward_propagate_into_cond): Likewise. |
| |
| 2011-08-16 Andreas Schwab <schwab@redhat.com> |
| |
| * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def |
| instead of ggc_alloc_zone_vec_rtvec_def. |
| |
| 2011-08-16 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (ptrofftype_p): New helper function. |
| * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR |
| offset verification. |
| (verify_gimple_assign_binary): Likewise. |
| * tree.c (build2_stat): Likewise. |
| * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise. |
| (reset_evolution_in_loop): Likewise. |
| * tree-chrec.h (build_polynomial_chrec): Likewise. |
| |
| 2011-08-16 Liang Wang <lwang1@marvell.com> |
| |
| * ggc.h (ggc_alloc_rtvec_sized): Change arguments of |
| ggc_alloc_zone_vec_rtvec_def. |
| |
| 2011-08-16 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_multiplicative_op_1): New |
| helper factored out from ... |
| (extract_range_from_binary_expr_1): ... here. Re-structure |
| to not glob handling too different tree codes. |
| |
| 2011-08-15 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/50006 |
| * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size |
| setting out to include allocate_stack named pattern as well. |
| * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note. |
| * stmt.c (expand_stack_restore): Likewise. |
| |
| 2011-08-15 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50082 |
| * fold-const.c (maybe_canonicalize_comparison_1): Properly |
| convert the modified operand to the other operand type. |
| (fold_comparison): Call maybe_canonicalize_comparison_1 with |
| useless conversions stripped from comparison operands. |
| |
| 2011-08-15 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case. |
| (extract_range_from_unary_expr_1): Restructure. |
| |
| 2011-08-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/50058 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate |
| copy matching. |
| |
| 2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/50022 |
| * config/arm/arm.c (output_move_double): Add 2 parameters |
| to count the number of insns emitted and whether to emit or not. |
| Use the flag to decide when to emit and count number of instructions |
| that will be emitted. |
| Handle case where output_move_double might be called for calculating |
| lengths with an invalid constant. |
| (arm_count_output_move_double_insns): Define. |
| * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare. |
| (output_move_double): Adjust prototype. |
| * config/arm/vfp.md ("*movdi_vfp"): Adjust call to |
| output_move_double. |
| ("*movdi_vfp_cortexa8"): Likewise and add attribute |
| for ce_count. |
| * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double. |
| ("*movdf_soft_insn"): Likewise. |
| * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise. |
| ("*cirrus_thumb2_movdi"): Likewise. |
| ("*thumb2_cirrus_movdf_hard_insn"): Likewise. |
| ("*cirrus_movdf_hard_insn"): Likewise. |
| * config/arm/neon.md (*neon_mov<mode> VD): Likewise. |
| * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise. |
| ("mov<mode>_internal VMMX"): Likewise. |
| * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise. |
| |
| 2011-08-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_round_sse4): New function. |
| * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype. |
| * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4 |
| for TARGET_ROUND. |
| |
| (rint<mode>2): Simplify TARGET_ROUND check. |
| (floor<mode>2): Ditto. |
| (ceil<mode>2): Ditto. |
| (btrunc<mode>2): Ditto. |
| |
| 2011-08-14 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine |
| as mmix_preferred_output_reload_class. |
| |
| 2011-08-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| * PR target/49903 |
| * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum. |
| (branch_unspec): New insn. |
| (branch): Beauty farm. |
| * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC |
| to be IF_THEN_ELSE. |
| (avr_compare_pattern, avr_reorg_remove_redundant_compare): |
| New static functions. |
| (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN. |
| Use CONST_INT_P. Beauty. |
| |
| 2011-08-12 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/49994 |
| * sched-init.h (struct deps_desc): Add sched_before_next_jump. |
| * sched-deps.c (init_deps): Clear it. |
| (deps_analyze_insn): Consume it. |
| (sched_analyze_insn): Fill it. |
| |
| 2011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/48328 |
| * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance |
| for tbh instructions. |
| |
| 2011-08-12 Diego Novillo <dnovillo@google.com> |
| |
| * data-streamer.h (streamer_write_zero): Rename from output_zero. |
| (streamer_write_uhwi): Rename from lto_output_uleb128. |
| (streamer_write_hwi): Rename from output_sleb128. |
| (streamer_write_string): Rename from lto_output_string. |
| (streamer_string_index): Rename from lto_string_index. |
| (streamer_write_string_with_length): Rename from |
| lto_output_string_with_length. |
| (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream. |
| (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream. |
| (streamer_read_string): Rename from lto_input_string. |
| (streamer_read_indexed_string): Rename from input_string_internal. |
| (streamer_read_uhwi): Rename from lto_input_uleb128. |
| (streamer_read_hwi): Rename from lto_input_sleb128. |
| (streamer_write_hwi_in_range): Rename from lto_output_int_in_range. |
| (streamer_read_hwi_in_range): Rename from lto_input_int_in_range. |
| (streamer_write_enum): Rename from lto_output_enum. |
| (streamer_read_enum): Rename from lto_input_enum. |
| (streamer_write_record_start): Rename from output_record_start. |
| (streamer_read_record_start): Rename from input_record_start. |
| (streamer_write_bitpack): Rename from lto_output_bitpack. |
| (streamer_read_bitpack): Rename from lto_input_bitpack. |
| (streamer_write_char_stream): Rename from lto_output_1_stream. |
| (streamer_read_uchar): Rename from lto_input_1_unsigned. |
| * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d. |
| (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p. |
| (streamer_read_string_cst): Rename from input_string_cst. |
| (streamer_read_chain): Rename from lto_input_chain. |
| (streamer_alloc_tree): Rename from lto_materialize_tree. |
| (streamer_read_tree_body): Rename from lto_input_tree_pointers. |
| (streamer_get_pickled_tree): Rename from lto_get_pickled_tree. |
| (streamer_get_builtin_tree): Rename from lto_get_builtin_tree. |
| (streamer_read_integer_cst): Rename from lto_input_integer_cst. |
| (streamer_read_tree_bitfields): Rename from tree_read_bitfields. |
| (streamer_write_chain): Rename from lto_output_chain. |
| (streamer_write_tree_header): Rename from lto_output_tree_header. |
| (streamer_pack_tree_bitfields): Rename from pack_value_fields. |
| (streamer_write_tree_body): Rename from lto_output_tree_pointers. |
| (streamer_write_integer_cst): Rename from lto_output_integer_cst. |
| (streamer_write_builtin): Rename from lto_output_builtin_tree. |
| (streamer_check_handled_ts_structures): Rename from |
| check_handled_ts_structures. |
| (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert. |
| (streamer_tree_cache_insert_at): Rename from |
| lto_streamer_cache_insert_at. |
| (streamer_tree_cache_append): Rename from lto_streamer_cache_append. |
| (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup. |
| (streamer_tree_cache_get): Rename from lto_streamer_cache_get. |
| (streamer_tree_cache_create): Rename from lto_streamer_cache_create. |
| (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete. |
| * tree-streamer-out.c (write_string_cst): Rename from output_string_cst. |
| (write_identifier): Rename from output_identifier. |
| (write_ts_common_tree_pointers): Rename from |
| lto_output_ts_common_tree_pointers. |
| (write_ts_vector_tree_pointers): Rename from |
| lto_output_ts_vector_tree_pointers. |
| (write_ts_complex_tree_pointers): Rename from |
| lto_output_ts_complex_tree_pointers. |
| (write_ts_decl_minimal_tree_pointers): Rename from |
| lto_output_ts_decl_minimal_tree_pointers. |
| (write_ts_decl_common_tree_pointers): Rename from |
| lto_output_ts_decl_common_tree_pointers. |
| (write_ts_decl_non_common_tree_pointers): Rename from |
| lto_output_ts_decl_non_common_tree_pointers. |
| (write_ts_decl_with_vis_tree_pointers): Rename from |
| lto_output_ts_decl_with_vis_tree_pointers. |
| (write_ts_field_decl_tree_pointers): Rename from |
| lto_output_ts_field_decl_tree_pointers. |
| (write_ts_function_decl_tree_pointers): Rename from |
| lto_output_ts_function_decl_tree_pointers. |
| (write_ts_type_common_tree_pointers): Rename from |
| lto_output_ts_type_common_tree_pointers. |
| (write_ts_type_non_common_tree_pointers): Rename from |
| lto_output_ts_type_non_common_tree_pointers. |
| (write_ts_list_tree_pointers): Rename from |
| lto_output_ts_list_tree_pointers. |
| (write_ts_vec_tree_pointers): Rename from |
| lto_output_ts_vec_tree_pointers. |
| (write_ts_exp_tree_pointers): Rename from |
| lto_output_ts_exp_tree_pointers. |
| (write_ts_block_tree_pointers): Rename from |
| lto_output_ts_block_tree_pointers. |
| (write_ts_binfo_tree_pointers): Rename from |
| lto_output_ts_binfo_tree_pointers. |
| (write_ts_constructor_tree_pointers): Rename from |
| lto_output_ts_constructor_tree_pointers. |
| (write_ts_target_option): Rename from lto_output_ts_target_option. |
| (write_ts_translation_unit_decl_tree_pointers): Rename from |
| lto_output_ts_translation_unit_decl_tree_pointers. |
| * tree-streamer.c (streamer_tree_cache_add_to_node_array): |
| Rename from lto_streamer_cache_add_to_node_array. |
| (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1. |
| (record_common_node): Rename from lto_record_common_node. |
| |
| * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward |
| declarations. |
| * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused |
| function. |
| * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove |
| unused function. |
| * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H. |
| (ipa-reference.o): Likewise. |
| * lto-section-out.c: Include data-streamer.h. |
| * ipa-reference.c: Include data-streamer.h. |
| |
| 2011-08-12 Nick Clifton <nickc@redhat.com> |
| |
| * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern. |
| * doc/md.texi (cmpstrn): Note that the comparison stops if both |
| fetched bytes are zero. |
| (cmpstr): Likewise. |
| (cmpmem): Note that the comparison does not stop if both of the |
| fetched bytes are zero. |
| |
| 2011-08-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L} |
| BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions. |
| * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL, |
| BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting |
| to integer_type_node. |
| * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL, |
| BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND. |
| * builtins.c (expand_builtin_in): Ditto. |
| (mathfn_built_in_1): Ditto. |
| (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and |
| BUILT_IN_IFLOOR. |
| (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and |
| BUILT_IN_IROUND. |
| (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR |
| BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL, |
| BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets. |
| |
| 2011-08-12 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X. |
| |
| 2011-08-12 Romain Geissler <romain.geissler@gmail.com> |
| |
| * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H. |
| |
| 2011-08-12 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/arm/arm.c (get_label_padding): New function. |
| (create_fix_barrier, arm_reorg): Use it. |
| |
| 2011-08-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49781 |
| * config/i386/i386.md (*lea_5_zext): New. |
| (*lea_6_zext): Ditto. |
| * config/i386/predicates.md (const_32bit_mask): New predicate. |
| (lea_address_operand): Reject AND. |
| * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with |
| const_32bit_mask immediate. |
| (ix86_print_operand_address): Handle AND. |
| (memory_address_length): Ditto. |
| |
| 2011-08-11 Romain Geissler <romain.geissler@gmail.com> |
| Brian Hackett <bhackett1024@gmail.com> |
| |
| * plugin.def: Add event for finish_decl. |
| * plugin.c (register_callback, invoke_plugin_callbacks): Same. |
| * c-decl.c (finish_decl): Invoke callbacks on above event. |
| * doc/plugins.texi: Document above event. |
| |
| 2011-08-11 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant |
| lookups, make looking through aggregate copies stronger. |
| |
| 2011-08-11 Richard Henderson <rth@redhat.com> |
| |
| PR bootstrap/50018 |
| * expr.c (fixup_args_size_notes): Accept and ignore normal calls. |
| |
| 2011-08-11 Richard Guenther <rguenther@suse.de> |
| |
| * lto-cgraph.c (input_node): Use DECL_BUILT_IN. |
| * tree-vrp.c (stmt_interesting_for_vrp): Likewise. |
| (vrp_visit_stmt): Likewise. |
| |
| 2011-08-11 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/50040 |
| * gimplify.c (gimplify_modify_expr_complex_part): Mark the |
| load of the other piece with TREE_NO_WARNING. |
| * tree-flow.h (warn_uninit): Adjust prototype. |
| * tree-ssa.c (warn_uninit): Take uninitialized SSA name, |
| the base variable and the expression that is used separately. |
| Properly query all TREE_NO_WARNING flags. |
| (struct walk_data): Remove. |
| (warn_uninitialized_var): Likewise. |
| (warn_uninitialized_vars): Do not walk gimple pieces but simply |
| look at all SSA uses of the statement. Handle unused memory |
| separately. |
| * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust. |
| |
| 2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com> |
| |
| * config/rx/rx.md (movsicc): Allow register to register transfers. |
| (*movsicc): Likewise. |
| (*stcc): Restrict this pattern to EQ and NE compares. |
| (*stcc_reg): New pattern. Works for any comparison but only for |
| register transfers. |
| |
| 2011-08-11 Diego Novillo <dnovillo@google.com> |
| |
| * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): |
| Call stream_write_tree instead of output_record_start. |
| (lto_output_ts_binfo_tree_pointers): Likewise. |
| |
| * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h. |
| Convert it to a macro. |
| (stream_read_tree): Likewise. |
| |
| * lto-streamer.h (lto_stream_as_builtin_p): Move ... |
| * tree-streamer.h (lto_stream_as_builtin_p): ... here. |
| |
| * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append |
| and tree_read_bitfields. |
| * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c |
| (lto_write_tree): Call it. |
| * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c |
| * streamer-hooks.h (struct streamer_hooks): Remove fields |
| name, is_streamable and alloc_tree. Update all users. |
| * tree-streamer-in.c (tree_read_bitfields): Factor out of ... |
| (lto_materialize_tree): ... here. |
| Handle CALL_EXPR codes. |
| Remove call to lto_streamer_cache_append. |
| * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes. |
| * tree-streamer.h (tree_read_bitfields): Declare. |
| |
| * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H. |
| (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H. |
| * tree-streamer.h (stream_read_tree): New. Replace all calls |
| to lto_input_tree with it. |
| (stream_write_tree): New. Replace all calls to lto_output_tree, |
| lto_output_tree_ref and lto_output_tree_or_ref with it. |
| * lto-streamer-in.c (lto_read_tree): Inline code from |
| lto_streamer_read_tree. |
| (lto_input_tree): Move from tree-streamer-in.c. |
| * lto-streamer-out.c (lto_output_tree_ref): Make static. |
| Remove handling of NULL values for EXPR. |
| Do not handle EXPRs that are not indexable. |
| (lto_write_tree): Move from tree-streamer-out.c. |
| Inline lto_streamer_write_tree. |
| (lto_output_tree): Move from tree-streamer-out.c. |
| If REF_P is true and EXPR is indexable, call lto_output_tree_ref. |
| * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c. |
| (lto_preload_common_nodes): Likewise. |
| Remove assertions and adjustments for nodes |
| main_identifier_node, ptrdiff_type_node and fileptr_type_node. |
| (lto_streamer_hooks_init): Set streamer_hooks.write_tree to |
| lto_output_tree and streamer_hooks.read_tree to lto_input_tree. |
| * lto-streamer.h (lto_input_tree): Declare. |
| (lto_output_tree_ref): Remove. |
| * streamer-hooks.h (struct streamer_hooks): Remove fields |
| preload_common_nodes, indexable_with_decls_p, |
| pack_value_fields, unpack_value_fields and output_tree_header. |
| Update all users. |
| * tree-streamer-in.c (lto_materialize_tree): Make extern. |
| (lto_input_tree_pointers): Likewise. |
| (lto_read_tree): Move to lto-streamer-in.c. |
| (lto_input_integer_cst): Make extern. |
| (lto_get_pickled_tree): Likewise. |
| (lto_get_builtin_tree): Likewise. |
| (lto_input_tree): Move to lto-streamer-in.c. |
| * tree-streamer-out.c (pack_value_fields): Make extern. |
| (lto_output_tree_or_ref): Remove. Replace all callers with |
| calls to stream_write_tree. |
| (lto_output_builtin_tree): Make extern. |
| (lto_streamer_write_tree): Inline into lto_write_tree. |
| (lto_output_tree_pointers): Make extern. |
| (lto_output_tree_header): Likewise. |
| (lto_output_integer_cst): Likewise. |
| (lto_write_tree): Move to lto-streamer-out.c. |
| (lto_output_tree): Likewise. |
| * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c |
| (preload_common_nodes): Likewise. |
| (lto_streamer_cache_create): Call it. |
| * tree-streamer.h: Include streamer-hooks.h. |
| (stream_write_tree): New. |
| (stream_read_tree): New. |
| (lto_input_tree): Remove. |
| (lto_materialize_tree): Declare. |
| (lto_input_tree_pointers): Declare. |
| (lto_get_pickled_tree): Declare. |
| (lto_get_builtin_tree): Declare. |
| (lto_input_integer_cst): Declare. |
| (lto_output_tree_header): Declare. |
| (pack_value_fields): Declare. |
| (lto_output_tree_pointers): Declare. |
| (lto_output_integer_cst): Declare. |
| (lto_output_builtin_tree): Declare. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge |
| only if producer writes to the register given by regno. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| Alexander Monakov <amonakov@ispras.ru> |
| |
| * sched-deps.c (sched_get_condition_with_rev): Rename to ... |
| (sched_get_condition_with_rev_uncached): ... this. Factor out |
| condition caching logic into ... |
| (sched_get_condition_with_rev): ... this. Reimplement. Do not |
| attempt to use cache for instructions with zero luid. |
| (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND. |
| * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched-ir.c (get_seqno_of_a_pred): Rename to |
| get_seqno_for_a_jump. Update the caller. |
| (get_seqno_by_succs): New. Use it ... |
| (get_seqno_for_a_jump): ... here to find a seqno if looking at |
| predecessors was not sufficient. |
| (get_seqno_by_preds): Include head in iteration range, exclude insn. |
| |
| 2011-08-11 Dmitry Melnik <dm@ispras.ru> |
| |
| * sel-sched-ir.c (invalidate_av_set): Remove the assert. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched-ir.h (register_unavailable_p): Declare. |
| * sel-sched-ir.c (register_unavailable_p): New. Use it... |
| (set_unavailable_target_for_expr): ... here to properly test |
| availability of a register. |
| (speculate_expr): Ditto. |
| * sel-sched.c (substitute_reg_in_expr): Ditto. |
| (av_set_could_be_blocked_by_bookkeeping_p): Ditto. |
| |
| 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * sel-sched.c (verify_target_availability): Fix usage of |
| hard_regno_nregs. |
| |
| 2011-08-11 Dmitry Melnik <dm@ispras.ru> |
| |
| * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of |
| recognized by cannot_copy_insn_p hook and volatile instructions. |
| |
| 2011-08-11 Dmitry Melnik <dm@ispras.ru> |
| |
| * sel-sched-ir.c (merge_expr_data): Take maximum spec. |
| |
| 2011-08-11 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/md.texi (define_bypass): Say that the instruction names can |
| be filename-style globs. |
| * Makefile.in (FNMATCH_H): Define. |
| (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H). |
| * genattrtab.c: Include fnmatch.h. |
| (bypass_list): Change field name from "insn" to "pattern". |
| (gen_bypass_1): Update accordingly. |
| (process_bypasses): Use fnmatch to check for matches between |
| insn reservations and define_bypasses. |
| * genautomata.c: Include fnmatch.h. |
| (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern |
| and out_pattern respectively. |
| (gen_bypass, insert_bypass): Update accordingly. |
| (for_each_matching_insn, process_bypass_2, process_bypass_1) |
| (process_bypass): New functions. |
| (process_decls): Use process_bypass. Update after field name changes. |
| |
| 2011-08-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49687 |
| * config/avr/avr.md (smulqi3_highpart): New insn. |
| (umulqi3_highpart): New insn. |
| (*subqi3.ashiftrt7): New insn. |
| (smulhi3_highpart): New expander. |
| (umulhi3_highpart): Nex expander. |
| (*smulhi3_highpart_call): New insn. |
| (*umulhi3_highpart_call): New insn. |
| (extend_u): New code attribute. |
| (extend_prefix): Rename code attribute to extend_su. |
| * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of |
| widening QI/HI multiply. |
| |
| 2011-08-11 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50039 |
| * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check |
| that DEF_STMT has a stmt_vec_info. |
| |
| 2011-08-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (can_trust_pointer_alignment): Remove. |
| * builtins.c (can_trust_pointer_alignment): Remove. |
| |
| 2011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com> |
| |
| * c-typeck.c (scalar_to_vector): New function. Try scalar to |
| vector conversion. |
| (stv_conv): New enum for scalar_to_vector return type. |
| (build_binary_op): Adjust. |
| * doc/extend.texi: Description of scalar to vector expansion. |
| |
| 2011-08-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (get_pointer_alignment): Remove max-align argument. |
| (get_object_alignment): Likewise. |
| * builtins.c (get_object_alignment_1): Adjust. |
| (get_object_alignment): Remove max-align argument. |
| (get_pointer_alignment): Likewise. |
| (expand_builtin_strlen): Adjust. |
| (expand_builtin_memcpy): Likewise. |
| (expand_builtin_mempcpy_args): Likewise. |
| (expand_builtin_strncpy): Likewise. |
| (expand_builtin_memset_args): Likewise. |
| (expand_builtin_memcmp): Likewise. |
| (expand_builtin_strcmp): Likewise. |
| (expand_builtin_strncmp): Likewise. |
| (get_builtin_sync_mem): Likewise. |
| (fold_builtin_memset): Likewise. |
| (fold_builtin_memory_op): Likewise. |
| (expand_builtin_memory_chk): Likewise. |
| * emit-rtl.c (get_mem_align_offset): Likewise. |
| (set_mem_attributes_minus_bitpos): Likewise. |
| * expr.c (expand_assignment): Likewise. |
| (expand_expr_real_1): Likewise. |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise. |
| * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. |
| * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. |
| * value-prof.c (gimple_stringops_transform): Likewise. |
| |
| 2011-08-10 Paulo J. Matos <paulo.matos@csr.com> |
| |
| * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-08-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/29560 |
| * config/avr/avr.md (*ashlhiqi3): New insn-and-split. |
| (*ashl<extend_prefix>qihiqi3): New insn-and-splits. |
| (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits. |
| Add peephole2 to map ashlhi3 to ashlqi3 if high part of |
| shift target is unused. |
| |
| 2011-08-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49937 |
| * tree-ssa-ccp.c (get_value_from_alignment): Re-implement |
| using get_object_alignment_1. |
| |
| 2011-08-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_emit_i387_round): New function. |
| * config/i386/i386-protos.h (ix86_emit_i387_round): Declare. |
| * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator. |
| Use ix86_emit_i387_round to expand round function for i387 math. |
| (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator. |
| Use ix86_emit_i387_round to expand {l,ll}round function for i387 math. |
| |
| 2011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sync.c: Move to ../libgcc. |
| * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS. |
| * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS): |
| Remove. |
| |
| 2011-08-09 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro. |
| * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove. |
| * config/mmix/mmix.c (mmix_register_move_cost): Make static. |
| Change 'from' and 'to' arguments type to reg_class_t. |
| (TARGET_REGISTER_MOVE_COST): Define. |
| |
| 2011-08-09 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/50026 |
| Revert: |
| PR rtl-optimization/49990 |
| * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't |
| ignore classes which can not change mode. |
| (find_costs_and_classes): Ditto. |
| |
| 2011-08-09 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise |
| information for ranges with only negative values. |
| (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and |
| BIT_AND_EXPR handling to handle ranges with negative values. |
| |
| 2011-08-09 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| * config/i386/i386.c: Remove traling spaces. |
| * config/i386/sse.md: Likewise. |
| (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic. |
| (*fma_fmsub_<mode>): Likewise. |
| (*fma_fnmadd_<mode>): Likewise. |
| (*fma_fnmsub_<mode>): Likewise. |
| |
| 2011-08-09 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md: Disable extender peepholes at -O3. |
| |
| 2011-08-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49781 |
| * config/i386/i386.md (reload_noff_load): New. |
| (reload_noff_store): Ditto. |
| * config/i386/i386.c (ix86_secondary_reload): Use |
| CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle |
| double-word moves from/to non-offsetable addresses instead of |
| generating XMM temporary. |
| |
| 2011-08-09 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove. |
| |
| 2011-08-09 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/50014 |
| * tree-vect-loop.c (vectorizable_reduction): Get def type before |
| calling vect_get_vec_def_for_stmt_copy (). |
| |
| 2011-08-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49990 |
| * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't |
| ignore classes which can not change mode. |
| (find_costs_and_classes): Ditto. |
| |
| 2011-08-08 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/49990 |
| * config/i386/i386.c (ix86_expand_prologue): Call |
| for SEH target gen_prologue_use instead of gen_blockage |
| at prologue's end. |
| |
| 2011-08-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/49923 |
| * tree-sra.c (access_precludes_ipa_sra_p): Also check access |
| memory alignment. |
| |
| 2011-08-08 Diego Novillo <dnovillo@google.com> |
| |
| * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H. |
| (DATA_STREAMER_H): New. |
| (GIMPLE_STREAMER_H): New. |
| (TREE_STREAMER_H): New. |
| (STREAMER_HOOKS_H): New. |
| (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o, |
| gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o, |
| tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o. |
| (data-streamer.o): New. |
| (data-streamer-in.o): New. |
| (data-streamer-out.o): New. |
| (gimple-streamer-in.o): New. |
| (gimple-streamer-out.o): New. |
| (streamer-hooks.o): New. |
| (tree-streamer.o): New. |
| (tree-streamer-in.o): New. |
| (tree-streamer-out.o): New. |
| (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. |
| (lto-streamer-in.o): Add dependency on DATA_STREAMER_H, |
| GIMPLE_STREAMER_H and TREE_STREAMER_H. |
| (lto-streamer-out.o): Add dependency on DATA_STREAMER_H, |
| GIMPLE_STREAMER_H and TREE_STREAMER_H. |
| (lto-streamer.o): Add dependency on STREAMER_HOOKS_H. |
| (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H. |
| (ipa-inline-analysis.o): Likewise. |
| (ipa-pure-const.o): Likewise. |
| * data-streamer-in.c: New. |
| * data-streamer-out.c: New. |
| * data-streamer.c: New. |
| * data-streamer.h: New. |
| * gimple-streamer-in.c: New. |
| * gimple-streamer-out.c: New. |
| * gimple-streamer.h: New. |
| * ipa-inline-analysis.c: Include data-streamer.h. |
| * ipa-prop.c: Include data-streamer.h. |
| * ipa-pure-const.c: Include data-streamer.h. |
| * lto-cgraph.c: Include data-streamer.h. |
| * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c. |
| (lto_input_widest_uint_uleb128): Likewise. |
| (lto_input_sleb128): Likewise. |
| (bp_unpack_var_len_unsigned): Likewise. |
| (bp_unpack_var_len_int): Likewise. |
| * lto-section-out.c (lto_output_uleb128_stream): Move to |
| data-streamer-out.c. |
| (lto_output_widest_uint_uleb128_stream): Likewise. |
| (lto_output_sleb128_stream): Likewise. |
| (bp_pack_var_len_unsigned): Likewise. |
| (bp_pack_var_len_int): Likewise. |
| * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h. |
| (struct string_slot): Remove. Update all users. |
| (lto_tag_check_set): Make extern. |
| (lto_tag_check_range): Move to lto-streamer.h. |
| (lto_tag_check): Likewise. |
| (hash_string_slot_node): Remove. Update all users. |
| (eq_string_slot_node): Remove. Update all users. |
| (string_for_index): Move to data-streamer-in.c |
| (input_string_internal): Likewise. |
| (input_string_cst): Move to tree-streamer-in.c. |
| (input_identifier): Likewise. |
| (lto_input_string): Move to data-streamer-in.c |
| (input_record_start): Move to data-streamer.h |
| (canon_file_name): Use new definition of struct string_slot |
| from data-streamer.h. Set S_SLOT.LEN. |
| (lto_input_location): Make extern. |
| (lto_input_chain): Move to tree-streamer-in.c. |
| (lto_init_eh): Make extern. |
| (input_phi): Move to gimple-streamer-in.c. |
| (input_gimple_stmt): Likewise. |
| (input_bb): Likewise. |
| (unpack_ts_base_value_fields): Move to tree-streamer-in.c. |
| (unpack_ts_real_cst_value_fields): Likewise. |
| (unpack_ts_fixed_cst_value_fields): Likewise. |
| (unpack_ts_decl_common_value_fields): Likewise. |
| (unpack_ts_decl_wrtl_value_fields): Likewise. |
| (unpack_ts_decl_with_vis_value_fields): Likewise. |
| (unpack_ts_function_decl_value_fields): Likewise. |
| (unpack_ts_type_common_value_fields): Likewise. |
| (unpack_ts_block_value_fields): Likewise. |
| (unpack_ts_translation_unit_decl_value_fields): Likewise. |
| (unpack_value_fields): Likewise. |
| (lto_materialize_tree): Likewise. |
| (lto_input_ts_common_tree_pointers): Likewise. |
| (lto_input_ts_vector_tree_pointers): Likewise. |
| (lto_input_ts_complex_tree_pointers): Likewise. |
| (lto_input_ts_decl_minimal_tree_pointers): Likewise. |
| (lto_input_ts_decl_common_tree_pointers): Likewise. |
| (lto_input_ts_decl_non_common_tree_pointers): Likewise. |
| (lto_input_ts_decl_with_vis_tree_pointers): Likewise. |
| (lto_input_ts_field_decl_tree_pointers): Likewise. |
| (lto_input_ts_function_decl_tree_pointers): Likewise. |
| (lto_input_ts_type_common_tree_pointers): Likewise. |
| (lto_input_ts_type_non_common_tree_pointers): Likewise. |
| (lto_input_ts_list_tree_pointers): Likewise. |
| (lto_input_ts_vec_tree_pointers): Likewise. |
| (lto_input_ts_exp_tree_pointers): Likewise. |
| (lto_input_ts_block_tree_pointers): Likewise. |
| (lto_input_ts_binfo_tree_pointers): Likewise. |
| (lto_input_ts_constructor_tree_pointers): Likewise. |
| (lto_input_ts_target_option): Likewise. |
| (lto_input_ts_translation_unit_decl_tree_pointers): Likewise. |
| (lto_input_tree_pointers): Likewise. |
| (lto_get_pickled_tree): Likewise. |
| (lto_get_builtin_tree): Likewise. |
| (lto_read_tree): Likewise. |
| (lto_input_integer_cst): Likewise. |
| (lto_input_tree): Likewise. |
| * lto-streamer-out.c: Include data-streamer.h, |
| gimple-streamer.h and streamer-hooks.h. |
| (struct string_slot): Move to data-streamer.h. |
| (hash_string_slot_node): Likewise. |
| (eq_string_slot_node): Likewise. |
| (lto_string_index): Move to data-streamer-out.c. |
| (lto_output_string_with_length): Likewise. |
| (lto_output_string): Likewise. |
| (output_string_cst): Move to tree-streamer-out.c. |
| (output_identifier): Likewise. |
| (output_zero): Move to data-streamer-out.c |
| (output_uleb128): Likewise. |
| (output_sleb128): Likewise. |
| (output_record_start): Move to data-streamer.h |
| (pack_ts_base_value_fields): Move to tree-streamer-out.c. |
| (pack_ts_real_cst_value_fields): Likewise. |
| (pack_ts_fixed_cst_value_fields): Likewise. |
| (pack_ts_decl_common_value_fields): Likewise. |
| (pack_ts_decl_wrtl_value_fields): Likewise. |
| (pack_ts_decl_with_vis_value_fields): Likewise. |
| (pack_ts_function_decl_value_fields): Likewise. |
| (pack_ts_type_common_value_fields): Likewise. |
| (pack_ts_block_value_fields): Likewise. |
| (pack_ts_translation_unit_decl_value_fields): Likewise. |
| (pack_value_fields): Likewise. |
| (lto_output_chain): Likewise. |
| (lto_output_ts_common_tree_pointers): Likewise. |
| (lto_output_ts_vector_tree_pointers): Likewise. |
| (lto_output_ts_complex_tree_pointers): Likewise. |
| (lto_output_ts_decl_minimal_tree_pointers): Likewise. |
| (lto_output_ts_decl_common_tree_pointers): Likewise. |
| (lto_output_ts_decl_non_common_tree_pointers): Likewise. |
| (lto_output_ts_decl_with_vis_tree_pointers): Likewise. |
| (lto_output_ts_field_decl_tree_pointers): Likewise. |
| (lto_output_ts_function_decl_tree_pointers): Likewise. |
| (lto_output_ts_type_common_tree_pointers): Likewise. |
| (lto_output_ts_type_non_common_tree_pointers): Likewise. |
| (lto_output_ts_list_tree_pointers): Likewise. |
| (lto_output_ts_vec_tree_pointers): Likewise. |
| (lto_output_ts_exp_tree_pointers): Likewise. |
| (lto_output_ts_block_tree_pointers): Likewise. |
| (lto_output_ts_binfo_tree_pointers): Likewise. |
| (lto_output_ts_constructor_tree_pointers): Likewise. |
| (lto_output_ts_target_option): Likewise. |
| (lto_output_ts_translation_unit_decl_tree_pointers): Likewise. |
| (lto_output_tree_pointers): Likewise. |
| (lto_output_tree_header): Likewise. |
| (lto_output_builtin_tree): Likewise. |
| (lto_write_tree): Likewise. |
| (lto_output_integer_cst): Likewise. |
| (lto_output_tree): Likewise. |
| (output_phi): Move to gimple-streamer-out.c. |
| (output_gimple_stmt): Likewise. |
| (output_bb): Likewise. |
| * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h. |
| (streamer_hooks): Move to streamer-hooks.c. |
| (check_handled_ts_structures): Move to tree-streamer.c |
| (lto_streamer_cache_add_to_node_array): Likewise. |
| (lto_streamer_cache_insert_1): Likewise. |
| (lto_streamer_cache_insert): Likewise. |
| (lto_streamer_cache_insert_at): Likewise. |
| (lto_streamer_cache_append): Likewise. |
| (lto_streamer_cache_lookup): Likewise. |
| (lto_streamer_cache_get): Likewise. |
| (lto_record_common_node): Likewise. |
| (lto_preload_common_nodes): Likewise. |
| (lto_streamer_cache_create): Likewise. |
| (lto_streamer_cache_delete): Likewise. |
| (streamer_hooks_init): Move to streamer-hooks.c. |
| * lto-streamer.h: Include diagnostic.h |
| (struct output_block, struct lto_input_block, |
| struct data_in, struct bitpack_d): Remove forward declarations. |
| (struct bitpack_d): Move to data-streamer.h. |
| (struct lto_streamer_cache_d): Move to tree-streamer.h. |
| (struct streamer_hooks): Move to streamer-hooks.h. |
| (bp_pack_var_len_unsigned): Move to data-streamer.h. |
| (bp_pack_var_len_int): Likewise. |
| (bp_unpack_var_len_unsigned): Likewise. |
| (bp_unpack_var_len_int): Likewise. |
| (lto_input_location): Declare. |
| (lto_tag_check_set): Declare. |
| (lto_init_eh): Declare. |
| (lto_output_tree_ref): Declare. |
| (lto_output_location): Declare. |
| (bitpack_create): Move to data-streamer.h. |
| (bp_pack_value): Likewise. |
| (lto_output_bitpack): Likewise. |
| (lto_input_bitpack): Likewise. |
| (bp_unpack_value): Likewise. |
| (lto_output_1_stream): Likewise. |
| (lto_input_1_unsigned): Likewise. |
| (lto_output_int_in_range): Likewise. |
| (lto_input_int_in_range): Likewise. |
| (bp_pack_int_in_range): Likewise. |
| (bp_unpack_int_in_range): Likewise. |
| (lto_output_enum): Likewise. |
| (lto_input_enum): Likewise. |
| (bp_pack_enum): Likewise. |
| (bp_unpack_enum): Likewise. |
| * streamer-hooks.c: New. |
| * streamer-hooks.h: New. |
| * tree-streamer-in.c: New. |
| * tree-streamer-out.c: New. |
| * tree-streamer.c: New. |
| * tree-streamer.h: New. |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gthr-posix95.h: Remove. |
| * gthr.h [_PTHREADS95]: Remove. |
| * configure.ac (enable_threads): Remove posix95. |
| * configure: Regenerate. |
| * doc/install.texi (Configuration, --enable-threads): Remove posix95. |
| |
| 2011-08-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49781 |
| * config/i386/i386.c (ix86_decompose_address): Allow zero-extended |
| SImode addresses. |
| (ix86_print_operand_address): Handle zero-extended addresses. |
| (memory_address_length): Add length of addr32 prefix for |
| zero-extended addresses. |
| (ix86_secondary_reload): Handle moves to/from double-word general |
| registers from/to zero-extended addresses. |
| * config/i386/predicates.md (lea_address_operand): Reject |
| zero-extended operands. |
| |
| 2011-08-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR other/48007 |
| * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86. |
| |
| * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned. |
| (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise. |
| |
| * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New. |
| (_Unwind_Context_Reg_Val): Likewise. |
| (_Unwind_Get_Unwind_Word): Likewise. |
| (_Unwind_Get_Unwind_Context_Reg_Val): Likewise. |
| (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field. |
| (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT |
| for EXTENDED_CONTEXT_BIT. |
| (__frame_state_for): Likewise. |
| (uw_init_context_1): Likewise. |
| (_Unwind_GetGR): Updated. |
| (_Unwind_SetGR): Likewise. |
| (_Unwind_GetGRPtr): Likewise. |
| (_Unwind_SetGRPtr): Likewise. |
| (_Unwind_SetGRValue): Likewise. |
| (_Unwind_GRByValue): Likewise. |
| (uw_install_context_1): Likewise. |
| |
| * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and |
| ASSUME_EXTENDED_UNWIND_CONTEXT. |
| * doc/tm.texi: Regenerated. |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS). |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't |
| Linux/GNU-specific. |
| (DEC Alpha Options, -mtune): Likewise. |
| (MIPS Options, -march): native is supported on IRIX. |
| |
| 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/driver-sparc.c: New file. |
| * config/sparc/x-sparc: New file. |
| * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*. |
| * config/sparc/sparc.opt (native): New value for enum processor_type. |
| * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare. |
| * config/sparc/sparc.c (sparc_option_override): Abort if |
| PROCESSOR_NATIVE gets here. |
| * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare. |
| (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS, |
| DRIVER_SELF_SPECS): Define. |
| * doc/invoke.texi (SPARC Options, -mcpu): Document native. |
| (SPARC Options, -mtune): Likewise. |
| * configure.ac (EXTRA_GCC_LIBS): Check for libkstat. |
| Substitute result. |
| * configure: Regenerate. |
| * Makefile.in (EXTRA_GCC_LIBS): Set. |
| (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS). |
| (cpp$(exeext)): Likewise. |
| |
| 2011-08-08 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_unary_expr_1): New function, |
| split out from ... |
| (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR |
| by composition. |
| |
| 2011-08-08 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR tree-optimization/50005 |
| * ipa-inline-analysis (remap_predicate): Add cast to |
| silence signed/unsigned comparison warning. |
| |
| 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (get_sched_window): Use a table for the debug output. |
| Print the current ii. |
| (sms_schedule_by_order): Reduce whitespace in dump line. |
| |
| 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * modulo-sched.c (get_sched_window): Use just one loop for predecessors |
| and one loop for successors. Fix upper bound of memory range. |
| |
| 2011-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/50001 |
| * config/alpha/alpha.c (alpha_instantiate_decls): New function. |
| (TARGET_INSTANTIATE_DECLS): New define. |
| |
| 2011-08-06 Paolo Bonzini <bonzini@gnu.org> |
| Mikael Morin <mikael.morin@sfr.fr> |
| |
| * Makefile.in (INCLUDES_FOR_TARGET): New. |
| (LIBGCC2_CFLAGS): Use it. |
| (CRTSTUFF_CFLAGS): Use it instead of INCLUDES. |
| |
| 2011-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_compute_frame_layout): Simplify |
| frame->save_regs_using_mov calculation. |
| |
| 2011-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (ssemodesuffix): Remove V8SI mode. |
| * config/i386/sse.md (castmode): New mode attribute. |
| (avx_<castmode><avxsizesuffix>_<castmode>): Rename from |
| avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>. |
| |
| 2011-08-05 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49494 |
| * ipa-inline-analysis.c (remap_predicate): Add bounds check. |
| |
| 2011-08-05 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49500 |
| * tree-emultls.c (new_emutls_decl):Add alias_of parameter; |
| handle aliases. |
| (create_emultls_var):New function. |
| (ipa_lower_emutls): Handle aliases correctly. |
| |
| 2011-08-05 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49735 |
| * ipa-inline.c (recursive_inlining): Look through aliases. |
| |
| 2011-08-05 Jason Merrill <jason@redhat.com> |
| |
| * config/i386/i386.c (setup_incoming_varargs_ms_64): Move |
| declarations to beginning of function. |
| |
| 2011-08-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/49900 |
| * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to |
| ensure basic blocks stay in the same order. |
| |
| 2011-08-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to |
| store_bit_field. |
| (s390_expand_atomic): Same. |
| |
| 2011-08-05 Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/49977 |
| * dwarf2cfi.c (scan_insn_after): Split out of ... |
| (scan_trace): ... here. Correctly place notes wrt sequences. |
| |
| 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org> |
| Richard Henderson <rth@redhat.com> |
| |
| PR rtl-opt/49982 |
| * expr.c (fixup_args_size_notes): Look through no-op moves. |
| |
| 2011-08-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*push<mode>2): Use "o" constraint instead |
| of "m" for operand 0. Add type and mode attribute. |
| (*pushxf_nointeger"): Use "<" constraint for operand 0. |
| (*pushdf_rex64): New pattern, split out of *pushdf. Use "m" |
| constraint instead of "o" for opreand 1. |
| (*pushdf): Disable for TARGET_64BIT. Correct mode attribute. |
| (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for |
| operand 0, alternative 4. |
| (*movdf_internal_rex64): Ditto for operand 0, alernative 6. |
| |
| 2011-08-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (lea_address_operand): Rename from |
| no_seg_address_operand. |
| * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename. |
| (*lea_1_zext): Ditto. |
| (*lea_2): Ditto. |
| (*lea_2_zext): Ditto. |
| |
| 2011-08-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of |
| parts.base and parts.index. |
| * config/i386/predicates.md (aligned_operand): Ditto. |
| (cmpxchg8b_pic_memory_operand): Ditto. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/soft-fp: Move to ../libgcc. |
| * Makefile.in (SFP_MACHINE): Remove. |
| (libgcc-support): Remove $(SFP_MACHINE) dependency. |
| * config/arm/sfp-machine.h: Move to ../libgcc/config/arm. |
| * config/arm/t-arm-softfp: Move to |
| ../libgcc/config/arm/t-softfp. |
| * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x. |
| * config/c6x/t-c6x-softfp: Remove. |
| * config/i386/sfp-machine.h: Move to ../libgcc/config/i386. |
| * config/i386/t-fprules-softfp: Move to |
| ../libgcc/config/t-softfp-tf. |
| * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64. |
| * config/ia64/t-fprules-softfp: Remove. |
| * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32. |
| * config/lm32/t-fprules-softfp: Remove. |
| * config/moxie/sfp-machine.h: Remove. |
| * config/moxie/t-moxie-softfp: Remove. |
| * config/rs6000/darwin-ldouble-format: Move to |
| ../libgcc/config/rs6000/ibm-ldouble-format. |
| * config/rs6000/darwin-ldouble.c: Move to |
| ../libgcc/config/rs6000/ibm-ldouble.c |
| * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000. |
| * config/rs6000/libgcc-ppc64.ver: Likewise. |
| * config/rs6000/sfp-machine.h: Likewise. |
| * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove |
| $(srcdir)/config/rs6000/libgcc-ppc64.ver. |
| (LIB2FUNCS_EXTRA): Remove. |
| (TARGET_LIBGCC2_CFLAGS): Remove. |
| * config/rs6000/t-aix52: Likewise |
| * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/darwin-ldouble.c. |
| (SHLIB_MAPFILES): Remove. |
| * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/darwin-ldouble.c. |
| * config/rs6000/t-fprules-softfp: Move to |
| ../libgcc/config/t-softfp-sfdf. |
| * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000. |
| * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove. |
| * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/darwin-ldouble.c. |
| * config/score/sfp-machine.h: Move to ../libgcc/config/score. |
| * config/score/t-score-softfp: Remove. |
| * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp, |
| soft-fp/t-softfp from tmake_file. |
| (arm*-*-uclinux*): Likewise. |
| (arm*-*-ecos-elf): Likewise. |
| (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. |
| (arm*-*-rtems*): Likewise. |
| (arm*-*-elf): Likewise. |
| (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (moxie-*-uclinux*): Likewise. |
| (moxie-*-rtems*): Likewise. |
| (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (lm32-*-rtems*): Likewise. |
| (lm32-*-uclinux*): Likewise. |
| (powerpc-*-freebsd*): Remove rs6000/t-freebsd, |
| rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. |
| (powerpc-*-linux*, powerpc64-*-linux*): Remove |
| rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. |
| (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from |
| tmake_file. |
| (tic6x-*-uclinux): Likewise. |
| (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp, |
| soft-fp/t-softfp from tmake_file. |
| (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) |
| (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise. |
| (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise. |
| (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. |
| (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove. |
| (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies. |
| (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS, |
| TPBIT, TPBIT_FUNCS. |
| * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc. |
| * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c): |
| Remove. |
| * config/arm/t-vxworks: Likewise. |
| * config/arm/t-wince-pe: Likewise. |
| * config/avr/t-avr (fp-bit.c, FPBIT): Remove. |
| * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/bfin/t-bfin-elf: Likewise. |
| * config/bfin/t-bfin-linux: Likewise. |
| * config/bfin/t-bfin-uclinux: Likewise. |
| * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c): |
| Remove. |
| * config/fr30/t-fr30: Likewise. |
| * config/frv/t-frv: Likewise. |
| * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove. |
| * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/m32c/t-m32c: Likewise. |
| * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove. |
| * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/mcore/t-mcore: Likewise. |
| * config/mep/t-mep: Likewise. |
| * config/microblaze/t-microblaze: Likewise. |
| * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove. |
| * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/mips/t-sdemtk (FPBIT, DPBIT): Remove. |
| * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/mn10300/t-linux: Remove. |
| * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/pdp11/t-pdp11: Likewise. |
| * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove. |
| * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000. |
| * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. |
| * config/rs6000/t-aix52: Likewise. |
| * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove |
| $(srcdir)/config/rs6000/ppc64-fp.c. |
| * config/rs6000/t-fprules-fpbit: Remove. |
| * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove. |
| * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/sh/t-netbsd (FPBIT, DPBIT): Remove. |
| * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/sparc/t-elf: Likewise. |
| * config/sparc/t-leon: Likewise. |
| * config/sparc/t-leon3: Likewise. |
| * config/spu/t-spu-elf: Likewise. |
| (DPBIT_FUNCS): Remove. |
| * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. |
| * config/v850/t-v850: Likewise. |
| * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file. |
| (avr-*-*): Likewise. |
| (h8300-*-rtems*): Set libgcc_tm_file. |
| (h8300-*-elf*): Likewise. |
| (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from |
| tmake_file. |
| (powerpc-*-eabisim*): Likewise. |
| (powerpc-*-elf*): Likewise. |
| (powerpc-*-eabialtivec*): Likewise. |
| (powerpc-xilinx-eabi*): Likewise. |
| (powerpc-*-eabi*): Likewise. |
| (powerpc-*-rtems*): Likewise. |
| (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise. |
| (powerpcle-*-elf*): Likewise. |
| (powerpcle-*-eabisim*): Likewise. |
| (powerpcle-*-eabi*): Likewise. |
| (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file. |
| (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file. |
| * doc/fragments.texi (Target Fragment, Floating Point Emulation): |
| Remove. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (UNWIND_H): Remove. |
| (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to |
| ../libgcc/Makefile.in. |
| (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. |
| (LIBUNWINDDEP): Remove. |
| (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. |
| (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, |
| LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. |
| (stmp-int-hdrs): Remove $(UNWIND_H) dependency. |
| Don't copy $(UNWIND_H). |
| * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling. |
| * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. |
| * aclocal.m4: Regenerate. |
| * configure: Regenerate. |
| * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, |
| unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, |
| unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, |
| unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. |
| * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. |
| * config/arm/libunwind.S, config/arm/pr-support.c, |
| config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to |
| ../libgcc/config/arm. |
| * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. |
| * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. |
| * config/frv/t-frv ($(T)frvbegin$(objext)): Use |
| $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. |
| ($(T)frvend$(objext)): Likewise. |
| * config/ia64/t-glibc (LIB2ADDEH): Remove. |
| * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. |
| * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, |
| config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to |
| ../libgcc/config/ia64. |
| * config/ia64/t-hpux (LIB2ADDEH): Remove. |
| * config/ia64/t-ia64 (LIB2ADDEH): Remove. |
| * config/ia64/t-vms (LIB2ADDEH): Remove. |
| * config/ia64/vms.h (UNW_IVMS_MODE, |
| MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. |
| * config/picochip/t-picochip (LIB2ADDEH): Remove. |
| * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. |
| * config/rs6000/t-darwin (LIB2ADDEH): Remove. |
| * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. |
| * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use |
| $(srcdir)/../libgcc to refer to unwinder sources. |
| * config/spu/t-spu-elf (LIB2ADDEH): Remove. |
| * config/t-darwin (LIB2ADDEH): Remove. |
| * config/t-freebsd (LIB2ADDEH): Remove. |
| * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. |
| * config/t-libunwind-elf: Move to ../libgcc/config. |
| * config/t-linux (LIB2ADDEH): Remove. |
| * config/t-sol2 (LIB2ADDEH): Remove. |
| * config/xtensa/t-xtensa (LIB2ADDEH): Remove. |
| * system.h (MD_FROB_UPDATE_CONTEXT): Poison. |
| |
| 2011-08-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (processor_alias_table): Add core-avx-i. |
| |
| * doc/invoke.texi: Document core-avx-i. |
| |
| 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * tsystem.h (CONST_CAST2, CONST_CAST): Define. |
| |
| 2011-08-05 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the |
| result of multiple results reduction when extracting the final |
| value using scalar code. |
| |
| 2011-08-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49984 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR. |
| |
| 2011-08-05 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always |
| return true for constant integer ranges. |
| (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and |
| BIT_IOR_EXPR handling. |
| |
| 2011-08-04 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/i386.c (setup_incoming_varargs_ms_64): Set |
| ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero. |
| |
| 2011-08-04 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.h (struct _stmt_vec_info): Add new field for |
| pattern def statement, and its access macro. |
| (NUM_PATTERNS): Set to 5. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Handle |
| pattern def statement. |
| (vect_transform_loop): Likewise. |
| * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new |
| function vect_recog_over_widening_pattern (). |
| (vect_operation_fits_smaller_type): New function. |
| (vect_recog_over_widening_pattern, vect_mark_pattern_stmts): |
| Likewise. |
| (vect_pattern_recog_1): Move the code that marks pattern |
| statements to vect_mark_pattern_stmts (), and call it. Update |
| documentation. |
| * tree-vect-stmts.c (vect_supportable_shift): New function. |
| (vect_analyze_stmt): Handle pattern def statement. |
| (new_stmt_vec_info): Initialize pattern def statement. |
| |
| 2011-08-04 Richard Henderson <rth@redhat.com> |
| |
| PR target/49964 |
| * config/i386/i386.c (ix86_expand_call): Don't create nested |
| PARALLELs for TARGET_VZEROUPPER. |
| (ix86_split_call_vzeroupper): Fix extraction of the original call. |
| * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't |
| recognize nested PARALLELs. |
| (*call_pop_vzeroupper, *sibcall_pop_vzeroupper, |
| *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper, |
| *sibcall_value_pop_vzeroupper): Likewise. |
| |
| 2011-08-04 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/49968 |
| * calls.c (expand_call): Use fixup_args_size_notes for |
| emit_stack_restore. |
| * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets |
| in non-standard modes. |
| |
| 2011-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.c (self_spec): New variable. |
| (static_specs): Add self_spec. |
| (main): Call do_self_spec on "self_spec" specs after reading |
| user specs files. Move compare_debug handling right after that. |
| |
| 2011-08-04 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (vrp_expr_computes_nonnegative): Remove. |
| (value_range_nonnegative_p): New function. |
| (ssa_name_nonnegative_p): Use it. |
| (value_range_constant_singleton): New function. |
| (op_with_constant_singleton_value_range): Use it. |
| (extract_range_from_binary_expr_1): New function, split out from ... |
| (extract_range_from_binary_expr): ... this. Remove fallback |
| constant folding done here. |
| |
| 2011-08-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49806 |
| * tree-vrp.c (op_with_boolean_value_range_p): New function. |
| (simplify_truth_ops_using_ranges): Simplify. Allow inserting |
| a new statement for a final conversion to bool. |
| |
| 2011-08-04 Romain Geissler <romain.geissler@gmail.com> |
| |
| * gengtype-state.c: Include "bconfig.h" if |
| GENERATOR_FILE is defined, "config.h" otherwise. |
| * gengtype.c: Likewise. |
| * gengtype-lex.l: Likewise. |
| * gengtype-parse.c: Likewise. |
| * Makefile.in (gengtype-lex.o-warn): New variable. |
| (plugin_resourcesdir): Likewise. |
| (plugin_bindir): Likewise. |
| (plugin_includedir): Use $(plugin_resourcesdir) as prefix base. |
| (MOSTLYCLEANFILES): Add gengtype$(exeext). |
| (native): Depend on gengtype$(exeext) is $enable_plugin |
| is set to "yes". |
| (gtype.state): Depend on s-gtype. Use temporary file. |
| (gengtype-lex.o): New rule. |
| (gengtype-parse.o): Likewise. |
| (gengtype-state.o): Likewise. |
| (gengtype$(exeext)): Likewise. |
| (install-gengtype): Likewise. |
| (gengtype.o): Likewise. |
| (build/gengtype.o): Depend on version.h. |
| (build/gengtype-state): Depend on double-int.h, version.h, |
| $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o. |
| (install-plugin): Depend on install-gengtype. |
| |
| 2011-08-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49905 |
| * tree.h (init_attributes): New prototype. |
| * attribs.c (init_attributes): No longer static. |
| |
| 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify |
| maybe_suffix. |
| |
| 2011-08-03 David Li <davidxl@google.com> |
| |
| * tree-optimize.c (execute_fixup_cfg): Fix up entry |
| outgoing edge counts after inlining. |
| |
| 2011-08-03 David Li <davidxl@google.com> |
| |
| * profile.c (compute_branch_probabilities): Compute |
| function frequency after profile annotation. |
| |
| 2011-08-04 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify |
| use_backchain_to_restore_sp initialisation. |
| (rs6000_legitimate_offset_address_p): Simplify offset test. |
| |
| 2011-08-03 Richard Henderson <rth@redhat.com> |
| |
| * config/spu/spu.md: Use define_c_enum instead of define_constants. |
| (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*. |
| (UNSPECV_NOP): New. |
| |
| 2011-08-03 Richard Henderson <rth@redhat.com> |
| |
| PR target/34888 |
| * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0. |
| |
| 2011-08-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49948 |
| * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements. |
| |
| 2011-08-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.c (class_sizes): Remove. |
| (reduce_class): Change arguments and return type to reg_class_t. |
| Change type cc var to HARD_REG_SET. Change type best var to |
| reg_class_t. Change type best_size var to unsigned int. Remove |
| initialization class_sizes var. Use reg_class_size array instead |
| of class_sizes. Use reg_class_contents array instead |
| of class_contents. |
| |
| 2011-08-03 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/49958 |
| * fold-const.c (fold_binary_loc): Only associate |
| (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if |
| overflow wraps. |
| |
| 2011-08-03 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/49941 |
| * jump.c (mark_jump_label): Comment. |
| (mark_jump_label_1): Set JUMP_LABEL for return jumps. |
| * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared. |
| (mark_used_flags): Don't mark RETURN. |
| |
| 2011-08-03 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49938 |
| * tree-scalar-evolution.c (interpret_loop_phi): Gracefully |
| deal with a POLYNOMIAL_CHREC. |
| |
| 2011-08-03 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (calculate_stage_count, |
| calculate_must_precede_follow, get_sched_window, |
| try_scheduling_node_in_cycle, remove_node_from_ps): Add |
| declaration. |
| (update_node_sched_params, set_must_precede_follow, optimize_sc): |
| New functions. |
| (reset_sched_times): Call update_node_sched_params. |
| (sms_schedule): Call optimize_sc. |
| (get_sched_window): Change function arguments. |
| (sms_schedule_by_order): Update call to get_sched_window. |
| Call set_must_precede_follow. |
| (calculate_stage_count): Add function argument. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| PR target/49864 |
| PR target/49879 |
| * reg-notes.def (REG_ARGS_SIZE): New. |
| * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop. |
| (expand_call): Add REG_ARGS_SIZE to emit_stack_restore. |
| * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to |
| different stack levels. |
| * combine-stack-adj.c (adjust_frame_related_expr): Remove. |
| (maybe_move_args_size_note): New. |
| (combine_stack_adjustments_for_block): Use it. |
| * combine.c (distribute_notes): Place REG_ARGS_SIZE. |
| * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member. |
| (dw_trace_info): Add beg_true_args_size, end_true_args_size, |
| beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined. |
| (cur_cfa): New. |
| (queued_args_size): Remove. |
| (add_cfi_args_size): Assert size is non-negative. |
| (stack_adjust_offset, dwarf2out_args_size): Remove. |
| (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove. |
| (notice_args_size, notice_eh_throw): New. |
| (dwarf2out_frame_debug_def_cfa): Use cur_cfa. |
| (dwarf2out_frame_debug_adjust_cfa): Likewise. |
| (dwarf2out_frame_debug_cfa_offset): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset. |
| (dwarf2out_frame_debug): Don't handle non-frame-related-p insns. |
| (change_cfi_row): Don't emit args_size. |
| (maybe_record_trace_start_abnormal): Split out from ... |
| (maybe_record_trace_start): Here. Set args_size_undefined. |
| (create_trace_edges): Update to match. |
| (scan_trace): Handle REG_ARGS_SIZE. |
| (connect_traces): Connect args_size between EH insns. |
| * emit-rtl.c (try_split): Handle REG_ARGS_SIZE. |
| * explow.c (suppress_reg_args_size): New. |
| (adjust_stack_1): Split out from ... |
| (adjust_stack): ... here. |
| (anti_adjust_stack): Use it. |
| (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE. |
| * expr.c (mem_autoinc_base): New. |
| (fixup_args_size_notes): New. |
| (emit_single_push_insn_1): Rename from emit_single_push_insn. |
| (emit_single_push_insn): New. Generate REG_ARGS_SIZE. |
| * recog.c (peep2_attempt): Handle REG_ARGS_SIZE. |
| * reload1.c (reload_as_needed): Likewise. |
| * rtl.h (fixup_args_size_notes): Declare. |
| |
| 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR bootstrap/49914 |
| * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead |
| of abs. |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. |
| * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| * config/h8300/h8300.c (push, pop): Return the insn. |
| (h8300_swap_into_er6): Generate correct unwind info. |
| (h8300_swap_out_of_er6): Likewise. |
| * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a |
| complex cfa expression. |
| (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too. |
| |
| 2011-08-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| PR target/49878 |
| * config/h8300/h8300.c (h8300_move_ok): New. |
| * config/h8300/h8300-protos.h: Declare it. |
| * config/h8300/h8300.md (P): New mode iterator. |
| (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok. |
| (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise. |
| (movsi, *movsi_h8300, *movsi_h8300hs): Likewise. |
| (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY. |
| (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced |
| and pushqi1_h8300hs_normal; use PRE_MODIFY and |
| register_no_sp_elim_operand. |
| (*pushhi1_h8300hs_<P>): Similarly. |
| (pushqi1, pushhi1, pushhi1_h8300): Remove. |
| * config/h8300/predicates.md (register_no_sp_elim_operand): New. |
| |
| 2011-08-02 Richard Henderson <rth@redhat.com> |
| |
| PR target/49881 |
| * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand. |
| |
| 2011-08-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * c-parser.c (enum c_parser_prec): New enum, moved from within |
| c_parser_binary_expression. |
| (c_parser_binary_expression): Add PREC argument. Stop parsing |
| if operator has lower or equal precedence than PREC. |
| (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust |
| callers. |
| (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics. |
| Adjust c_finish_omp_atomic caller. |
| (c_parser_omp_taskyield): New function. |
| (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD. |
| (c_parser_omp_clause_name): Handle final and mergeable clauses. |
| (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New |
| functions. |
| (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL |
| and PRAGMA_OMP_CLAUSE_MERGEABLE. |
| (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses. |
| (c_parser_omp_clause_reduction): Handle min and max. |
| * c-typeck.c (c_finish_omp_clauses): Don't complain about |
| const qualified predetermined vars in firstprivate clause. |
| andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| Handle MIN_EXPR and MAX_EXPR. |
| * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL |
| and OMP_CLAUSE_MERGEABLE. |
| (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD |
| and OMP_ATOMIC_CAPTURE_NEW. |
| * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and |
| OMP_CLAUSE_MERGEABLE. |
| (omp_clause_code_name): Likewise. |
| (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL |
| and OMP_CLAUSE_MERGEABLE. |
| (OMP_CLAUSE_FINAL_EXPR): Define. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and |
| OMP_CLAUSE_MERGEABLE. |
| (expand_task_call): Likewise. |
| (expand_omp_atomic_load, expand_omp_atomic_store): New functions. |
| (expand_omp_atomic_fetch_op): Handle cases where old or new |
| value is needed afterwards. |
| (expand_omp_atomic): Call expand_omp_atomic_load resp. |
| expand_omp_atomic_store. |
| * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle |
| OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW. |
| (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle |
| OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD, |
| OMP_ATOMIC_CAPTURE_NEW): New. |
| * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New. |
| (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value): |
| New inlines. |
| * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin. |
| * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE, |
| OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. |
| |
| 2011-08-02 Kai Tietz <ktietz@redhat.com> |
| |
| * gimple.c (canonicalize_cond_expr_cond): Handle cast from |
| boolean-type. |
| (ssa_forward_propagate_and_combine): Interprete result of |
| forward_propagate_comparison. |
| * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for |
| boolean-typed operands for comparisons. |
| |
| 2011-08-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/libgcc.S: Gather related function in the |
| same input section. |
| (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4, |
| __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external |
| references. |
| (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4, |
| __udivmodsi4, __divmodsi4, __prologue_saves__, |
| __epilogue_restores__, _exit, __tablejump2__, __tablejump__, |
| __do_copy_data, __do_clear_bss, __do_global_ctors, |
| __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF. |
| |
| 2011-08-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47766 |
| * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value. |
| (stack_protect_test): The pattern compares ptr_mode value. |
| |
| 2011-08-02 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE |
| note for save_LR_around_toc_setup sequence. |
| |
| 2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long. |
| |
| 2011-08-01 Sebastian Pop <sebastian.pop@amd.com> |
| Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H. |
| * hwint.c: Include diagnostic-core.h. |
| (abs_hwi): New. |
| (gcd): Moved here... |
| (pos_mul_hwi): New. |
| (mul_hwi): New. |
| (least_common_multiple): Moved here... |
| * hwint.h (gcd): ... from here. |
| (least_common_multiple): ... from here. |
| (HOST_WIDE_INT_MIN): New. |
| (HOST_WIDE_INT_MAX): New. |
| (abs_hwi): Declared. |
| (gcd): Declared. |
| (pos_mul_hwi): Declared. |
| (mul_hwi): Declared. |
| (least_common_multiple): Declared. |
| * omega.c (check_pos_mul): Removed. |
| (check_mul): Removed. |
| (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and |
| mul_hwi instead of check_mul. |
| |
| 2011-08-01 Richard Henderson <rth@redhat.com> |
| |
| PR target/49881 |
| * config/avr/avr.h (PUSH_ROUNDING): New. |
| * config/avr/avr.md (pushqi1): Rename from *pushqi. |
| (*pushhi, *pushsi, *pushsf): Remove. |
| (MPUSH): New mode iterator. |
| (push<MPUSH>1): New expander. |
| |
| 2011-08-01 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS, |
| PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro. |
| * config/mmix/mmix-protos.h (mmix_preferred_reload_class, |
| mmix_preferred_output_reload_class): Remove. |
| * config/mmix/mmix.c (mmix_preferred_reload_class, |
| mmix_preferred_output_reload_class): Make static. Change rclass |
| argument and return type to reg_class_t. |
| (TARGET_PREFERRED_RELOAD_CLASS, |
| TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. |
| |
| 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER |
| handling. |
| |
| 2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47766 |
| * config/i386/i386.md (PTR): New. |
| (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT. |
| (stack_protect_test): Likewise. |
| (stack_protect_set_<mode>): Replace ":P" with ":PTR". |
| (stack_tls_protect_set_<mode>): Likewise. |
| (stack_tls_protect_test_<mode>): Likewise. |
| |
| 2011-08-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49927 |
| * config/i386/i386.c (ix86_address_subreg_operand): New. |
| (ix86_decompose_address): Use ix86_address_subreg_operand. |
| (ix86_legitimate_address_p): Do not assert that subregs satisfy |
| register_no_elim_operand in DImode. |
| |
| 2011-08-01 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49926 |
| * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement |
| in a chain doesn't have uses both inside and outside the loop. |
| |
| 2011-08-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (mcu_type_s): Add errata_skip field. |
| * config/avr/avr-devices.c (avr_mcu_types): Use it. |
| * config/avr/avr-mcus.def (AVR_MCU): Use it. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin |
| define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__. |
| * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit): |
| Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__ |
| to detect if XJMP must not be skipped. |
| |
| 2011-08-02 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static. |
| (rs6000_emit_prologue): Don't prematurely return when |
| TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in |
| save_toc_in_prologue case. |
| (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for |
| calls_alloca. |
| |
| 2011-08-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-devices.c: Delete SVN property svn:executable. |
| * config/avr/predicates.md: Ditto. |
| * config/avr/driver-avr.c: Ditto. |
| * config/avr/genopt.sh: Set SVN property svn:executable to *. |
| |
| 2011-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * calls.c (emit_library_call_value_1): Declare size only if |
| BLOCK_REG_PADDING is defined. |
| |
| 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR target/49547 |
| * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h. |
| (x86_64-*-*): Likewise. |
| * config/i386/i386.opt (mlzcnt): New. |
| * config/i386/abmintrin.h: File removed. |
| (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ... |
| * config/i386/lzcntintrin.h: ... here. New file. |
| (__lzcnt): Rename to ... |
| (__lzcnt32): ... this. |
| * config/i386/bmiintrin.h (head): Update copyright year. |
| (__lzcnt_u16): Removed. |
| (__lzcnt_u32): Likewise. |
| (__lzcnt_u64): Likewise. |
| * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__ |
| is defined, remove abmintrin.h. |
| * config/i386/cpuid.h (bit_LZCNT): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| LZCNT feature. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __LZCNT__ if needed. |
| * config/i386/i386.c (ix86_target_string): New option -mlzcnt. |
| (ix86_option_override_internal): Handle LZCNT option. |
| (ix86_valid_target_attribute_inner_p): Likewise. |
| (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update. |
| * config/i386/i386.h (TARGET_LZCNT): New. |
| (CLZ_DEFINED_VALUE_AT_ZERO): Update. |
| * config/i386/i386.md (clz<mode>2): Update insn constraint. |
| (clz<mode>2_lzcnt): Likewise. |
| * doc/invoke.texi: Mention -mlzcnt option. |
| * doc/extend.texi: Likewise. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * configure.ac (fixed-point): Add ARM support. |
| * configure: Regenerate. |
| * config/arm/arm.c (arm_fixed_mode_set): New struct. |
| (arm_set_fixed_optab_libfunc): New. |
| (arm_set_fixed_conv_libfunc): New. |
| (arm_init_libfuncs): Initialise fixed-point helper libfuncs with |
| ARM-specific names. |
| (aapcs_libcall_value): Return sub-word-size fixed-point libcall |
| return values in SImode. |
| (arm_return_in_msb): Return fixed-point types in the msb. |
| (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types |
| upwards. |
| (arm_scalar_mode_supported_p): Support fixed-point modes. |
| (arm_vector_mode_supported_p): Support vector fixed-point modes. |
| * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE) |
| (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE) |
| (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE) |
| (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define. |
| * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL): |
| New mode iterators. |
| (qaddsub_suf): New mode attribute. |
| * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare |
| vector modes. |
| * config/arm/predicates.md (sat_shift_operator): New predicate. |
| * config/arm/arm-fixed.md: New. |
| * config/arm/arm.md: Include arm-fixed.md. |
| * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * calls.c (emit_library_call_value_1): Support padding for libcall |
| arguments and return values. |
| * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values |
| downwards in big-endian mode. |
| |
| 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR debug/49887 |
| * config/sol2.c (solaris_code_end): Rename to solaris_file_end. |
| * config/sol2-protos.h: Likewise. |
| * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call |
| solaris_code_end. |
| * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine. |
| * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call |
| solaris_file_end. |
| * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * final.c (output_addr_const): Print fixed-point constants as |
| decimal not hex. |
| |
| 2011-08-01 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (initialize_sizetypes): Properly sign-extend |
| bitsiztype TYPE_MAX_VALUE. |
| |
| 2011-08-01 Julian Brown <julian@codesourcery.com> |
| |
| * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point |
| comparison helpers. |
| |
| 2011-07-31 Richard Henderson <rth@redhat.com> |
| |
| * config/h8300/crti.asm: Add flags to .section directive. |
| * config/h8300/crtn.asm: Likewise. |
| |
| 2011-07-31 Richard Henderson <rth@redhat.com> |
| |
| * stor-layout.c (initialize_sizetypes): Handle unsigned short. |
| * tree.c (build_common_tree_nodes): Likewise. |
| |
| 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49880 |
| * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1. |
| (divsi3_i1): Likewise. |
| |
| 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/49749 |
| * tree-ssa-reassoc.c (get_rank): New forward declaration. |
| (PHI_LOOP_BIAS): New macro. |
| (phi_rank): New function. |
| (loop_carried_phi): Likewise. |
| (propagate_rank): Likewise. |
| (get_rank): Add calls to phi_rank and propagate_rank. |
| |
| 2011-07-31 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead |
| of TARGET_64BIT. |
| (PTRDIFF_TYPE): Likewise. |
| |
| 2011-07-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49920 |
| * config/i386/i386.md (strset): Do not expand strset_singleop |
| when %eax or $edi are fixed. |
| (*strsetdi_rex_1): Disable when %eax or %edi are fixed. |
| (*strsetsi_1): Ditto. |
| (*strsethi_1): Ditto. |
| (*strsetqi_1): Ditto. |
| (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed. |
| (*rep_stossi): Ditto. |
| (*rep_stosqi): Ditto. |
| (*strlenqi_1): Ditto. |
| (cmpstrnsi): Also fail when %ecx is fixed. |
| (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed. |
| (*cmpstrnqi_1): Ditto. |
| (*strmovdi_rex_1): Disable when %esi or %edi are fixed. |
| (*strmovsi_1): Ditto. |
| (*strmovhi_1): Ditto. |
| (*strmovqi_1): Ditto. |
| (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed. |
| (*rep_movsi): Ditto. |
| (*rep_movqi): Ditto. |
| |
| 2011-07-31 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR target/47908 |
| * config/m68k/m68k.c (m68k_override_options_after_change): New function. |
| Disable instruction scheduling for non-ColdFire targets. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. |
| |
| 2011-07-31 Revital Eres <revital.eres@linaro.org> |
| |
| * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation |
| of anti-dep edge from a branch. |
| (add_cross_iteration_register_deps): Create anti-dep edge from |
| a branch. |
| |
| 2011-07-31 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c: Change comment. |
| (reset_sched_times): Fix print message. |
| (print_partial_schedule): Add print info. |
| |
| 2011-07-31 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43513 |
| * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of |
| get_object_alignment and TYPE_ALIGN. |
| |
| 2011-07-30 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/43513 |
| * tree-ssa-dce.c (ref_may_be_aliased): Add assert. |
| (propagate_necessity): Handle WITH_SIZE_EXPR call arg. |
| |
| 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/mips/driver-native.c [__sgi__]: Include <invent.h>, |
| <sys/sbd.h>. |
| (cpu_types): New array. |
| (cputype): New function. |
| (host_detect_local_cpu): Only define buf, f if !__sgi__. |
| Use scaninvent instead of /proc/cpuinfo if __sgi__. |
| * config.host: Also use driver-native.o, mips/x-native on |
| mips-sgi-irix*. |
| * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare. |
| (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define. |
| (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS. |
| |
| 2011-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49897 |
| PR middle-end/49898 |
| * omp-low.c (use_pointer_for_field): If disallowing copy-in/out |
| in nested parallel and outer is a gimple_reg, mark it as addressable |
| and set its bit in task_shared_vars bitmap too. |
| |
| 2011-07-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (tp_or_register_operand): Remove predicate. |
| |
| 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY, |
| IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define. |
| (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE, |
| AMASK_LOCKPFTCHOK): Define. |
| (host_detect_local_cpu): Remove buf, f, cpu_names. |
| Define cpu_types, implver, amask. |
| Use __builtin_alpha_implver, __builtin_alpha_amask to determine |
| native CPU. |
| * config.host: Also use driver-alpha.o, alpha/x-alpha on |
| alpha*-dec-osf*. |
| * config/alpha/osf5.h [__alpha__ || __alpha] |
| (host_detect_local_cpu): Declare. |
| (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS) |
| (DRIVER_SELF_SPECS): Define. |
| |
| 2011-07-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47715 |
| * config/i386/i386.md (*load_tp_x32): New. |
| (*load_tp_x32_zext): Ditto. |
| (*add_tp_x32): Ditto. |
| (*add_tp_x32_zext): Ditto. |
| (*load_tp_<mode>): Disable for TARGET_X32 targets. |
| (*add_tp_<mode>): Ditto. |
| * config/i386/i386.c (get_thread_pointer): Load thread pointer in |
| ptr_mode and convert to Pmode if needed. |
| |
| 2011-07-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49687 |
| * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3, |
| muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3, |
| *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3): |
| Add X to register footprint: Clobber r26/r27. |
| |
| 2011-07-29 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_signbit): Build the comparison |
| with a proper type. |
| |
| 2011-07-29 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49893 |
| * tree-predcom.c (suitable_reference_p): Volatile references |
| are not suitable. |
| |
| 2011-07-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. |
| (__ctzsi2): Result for 0 may be undefined. |
| (__ctzhi2): Result for 0 may be undefined. |
| (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. |
| (__popcountsi2): Ditto. And don't clobber r26. |
| (__popcountdi2): Ditto. And don't clobber r27. |
| * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. |
| (parityhi2): New expand. |
| (paritysi2): New expand. |
| (popcounthi2): New expand. |
| (popcountsi2): New expand. |
| (clzhi2): New expand. |
| (clzsi2): New expand. |
| (ctzhi2): New expand. |
| (ctzsi2): New expand. |
| (ffshi2): New expand. |
| (ffssi2): New expand. |
| (copysignsf3): New insn. |
| (bswapsi2): New expand. |
| (*parityhi2.libgcc): New insn. |
| (*parityqihi2.libgcc): New insn. |
| (*paritysihi2.libgcc): New insn. |
| (*popcounthi2.libgcc): New insn. |
| (*popcountsi2.libgcc): New insn. |
| (*popcountqi2.libgcc): New insn. |
| (*popcountqihi2.libgcc): New insn-and-split. |
| (*clzhi2.libgcc): New insn. |
| (*clzsihi2.libgcc): New insn. |
| (*ctzhi2.libgcc): New insn. |
| (*ctzsihi2.libgcc): New insn. |
| (*ffshi2.libgcc): New insn. |
| (*ffssihi2.libgcc): New insn. |
| (*bswapsi2.libgcc): New insn. |
| |
| 2011-07-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (get_value_range): Only set parameter default |
| definitions to varying, leave others at undefined. |
| (extract_range_from_binary_expr): Fix undefined handling. |
| (vrp_visit_phi_node): Handle merged undefined state. |
| |
| 2011-07-29 Wei Guozhi <carrot@google.com> |
| |
| PR rtl-optimization/49799 |
| * combine.c (make_compound_operation): Check if the bit field is valid |
| before change it to bit field extraction. |
| |
| 2011-07-29 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/49891 |
| * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for |
| newly created returnjumps. |
| |
| 2011-07-28 DJ Delorie <dj@redhat.com> |
| |
| * expr.c (expand_expr_addr_expr_1): Detect a user request for a |
| local frame in a naked function, and produce a suitable error for |
| that specific case. |
| |
| * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI |
| registers to be reloaded in HI classes when the target is HI. |
| |
| 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with |
| bound_one, bound_two. |
| |
| 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/48648 |
| * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle |
| CLAST assignments. |
| (translate_clast): Same. |
| (translate_clast_assignment): New. |
| |
| 2011-07-28 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/49876 |
| * sese.c (rename_uses): Do not return false on gloog_error: set |
| the new_expr to integer_zero_node and continue code generation. |
| (graphite_copy_stmts_from_block): Remove early exit on gloog_error. |
| |
| 2011-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49846 |
| * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack |
| arguments also check if they aren't initialized with a MODE_INT |
| mode of the same size. |
| |
| 2011-07-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * expr.c (get_bit_range): Handle *MEM_REF's. |
| |
| 2011-07-28 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * rtlanal.c (tablejump_p): False for returns. |
| * reorg.c (first_active_target_insn): New static function. |
| (find_end_label): Set JUMP_LABEL for a new returnjump. |
| (optimize_skip, get_jump_flags, rare_destination, |
| mostly_true_jump, get_branch_condition, |
| steal_delay_list_from_target, own_thread_p, |
| fill_simple_delay_slots, follow_jumps, fill_slots_from_thread, |
| fill_eager_delay_slots, relax_delay_slots, make_return_insns, |
| dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs. |
| * jump.c (delete_related_insns): Likewise. |
| (jump_to_label_p): New function. |
| (redirect_target): New static function. |
| (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS. |
| (redirect_jump_1): Assert that the new label is nonnull. |
| (redirect_jump): Likewise. |
| (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels. |
| * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the |
| exit block. |
| (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers |
| changed. Ensure that the right label is passed to redirect_jump. |
| * function.c (emit_return_into_block, |
| thread_prologue_and_epilogue_insns): Ensure new returnjumps have |
| ret_rtx in their JUMP_LABEL. |
| * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL. |
| * emit-rtl.c (skip_consecutive_labels): Allow the caller to |
| pass ret_rtx as label. |
| * cfglayout.c (fixup_reorder_chain): Use |
| force_nonfallthru_and_redirect rather than force_nonfallthru. |
| (duplicate_insn_chain): Copy JUMP_LABELs for returns. |
| * rtl.h (ANY_RETURN_P): New macro. |
| (jump_to_label_p): Declare. |
| * resource.c (find_dead_or_set_registers): Handle ret_rtx in |
| JUMP_LABELs. |
| (mark_target_live_regs): Likewise. |
| * basic-block.h (force_nonfallthru_and_redirect): Declare. |
| * cfgrtl.c (force_nonfallthru_and_redirect): No longer static. |
| * config/alpha/alpha.c (alpha_tablejump_addr_vec, |
| alpha_tablejump_best_label): Remove functions. |
| * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec, |
| alpha_tablejump_best_label): Remove declarations. |
| * config/sh/sh.c (barrier_align, split_branches): Adjust for |
| ret_rtx in JUMP_LABELs. |
| * config/arm/arm.c (is_jump_table): Likewise. |
| |
| 2011-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (pic_32bit_opreand): Do not define as |
| special predicate. Remove explicit mode checks. |
| |
| 2011-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize |
| DW_AT_data_member_location containing just DW_OP_plus_uconst. |
| |
| PR debug/49871 |
| * dwarf2out.c (size_of_die, value_format, output_die): Use |
| DW_FORM_udata instead of DW_FORM_data[48] for |
| dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3. |
| |
| 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md (*tls_global_dynamic_64): Update |
| length attribute. |
| |
| 2011-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47715 |
| * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from |
| tls_symbolic_operand check. Update code sequence for TARGET_X32. |
| (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. |
| (tls_dynamic_gnu2_64): Ditto. |
| (*tls_dynamic_gnu2_lea_64): Ditto. |
| (*tls_dynamic_gnu2_call_64): Ditto. |
| (*tls_dynamic_gnu2_combine_64): Ditto. |
| |
| 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc: Set need_64bit_hwint to yes for x86 targets. |
| |
| 2011-07-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47364 |
| * config/i386/i386.md (strlen<mode>): Replace SWI48x with P. |
| |
| 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints |
| before the core constraints. Adjust attributes. |
| ("*thumb2_movdf_vfp"): Likewise. |
| |
| 2011-07-28 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case. |
| (simplify_truth_ops_using_ranges): Likewise. |
| (build_assert_expr_for): Likewise. |
| (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case |
| and handle BIT_NOT_EXPR for truth-operation. |
| |
| 2011-07-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| Undo r176835 from trunk |
| 2011-07-27 Georg-Johann Lay |
| |
| 2011-07-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49687 |
| * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit. |
| Add _muluhisi3, _mulshisi3, _usmulhisi3. |
| * config/avr/libgcc.S (__mulsi3): Rewrite. |
| (__mulhisi3): Rewrite. |
| (__umulhisi3): Rewrite. |
| (__usmulhisi3): New. |
| (__muluhisi3): New. |
| (__mulshisi3): New. |
| (__mulohisi3): New. |
| (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to |
| declare. |
| * config/avr/predicates.md (pseudo_register_operand): Rewrite. |
| (pseudo_register_or_const_int_operand): New. |
| (combine_pseudo_register_operand): New. |
| (u16_operand): New. |
| (s16_operand): New. |
| (o16_operand): New. |
| * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI. |
| * config/avr/avr.md (QIHI, QIHI2): New mode iterators. |
| (any_extend, any_extend2): New code iterators. |
| (extend_prefix): New code attribute. |
| (mulsi3): Rewrite. Turn insn to expander. |
| (mulhisi3): Ditto. |
| (umulhisi3): Ditto. |
| (usmulhisi3): New expander. |
| (*mulsi3): New insn-and-split. |
| (mulu<mode>si3): New insn-and-split. |
| (muls<mode>si3): New insn-and-split. |
| (mulohisi3): New insn-and-split. |
| (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3, |
| *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3, |
| *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3, |
| *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New |
| insn-and-split. |
| (*mulsi3_call): Rewrite. |
| (*mulhisi3_call): Rewrite. |
| (*umulhisi3_call): Rewrite. |
| (*usmulhisi3_call): New insn. |
| (*muluhisi3_call): New insn. |
| (*mulshisi3_call): New insn. |
| (*mulohisi3_call): New insn. |
| (extendqihi2): Use combine_pseudo_register_operand as predicate |
| for operand 1. |
| (extendqisi2): Ditto. |
| (zero_extendqihi2): Ditto. |
| (zero_extendqisi2): Ditto. |
| (zero_extendhisi2): Ditto. |
| (extendhisi2): Ditto. Don't early-clobber operand 0. |
| |
| 2011-07-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX. |
| |
| 2011-07-27 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/49471 |
| * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned |
| iv only when the largest type is unsigned. Do not call |
| lang_hooks.types.type_for_size. |
| |
| 2011-07-27 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/45450 |
| * graphite-poly.c (apply_poly_transforms): Disable legality check |
| after an openscop read. |
| |
| 2011-07-27 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47691 |
| * graphite-clast-to-gimple.c (translate_clast_user): Update use of |
| copy_bb_and_scalar_dependences. |
| * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error. |
| (graphite_copy_stmts_from_block): Update call to rename_uses. |
| (copy_bb_and_scalar_dependences): Update call to |
| graphite_copy_stmts_from_block. |
| * sese.h (copy_bb_and_scalar_dependences): Update declaration. |
| |
| 2011-07-27 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction. |
| (__ctzsi2): Result for 0 may be undefined. |
| (__ctzhi2): Result for 0 may be undefined. |
| (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail. |
| (__popcountsi2): Ditto. And don't clobber r26. |
| (__popcountdi2): Ditto. And don't clobber r27. |
| * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum. |
| (parityhi2): New expand. |
| (paritysi2): New expand. |
| (popcounthi2): New expand. |
| (popcountsi2): New expand. |
| (clzhi2): New expand. |
| (clzsi2): New expand. |
| (ctzhi2): New expand. |
| (ctzsi2): New expand. |
| (ffshi2): New expand. |
| (ffssi2): New expand. |
| (copysignsf3): New insn. |
| (bswapsi2): New expand. |
| (*parityhi2.libgcc): New insn. |
| (*parityqihi2.libgcc): New insn. |
| (*paritysihi2.libgcc): New insn. |
| (*popcounthi2.libgcc): New insn. |
| (*popcountsi2.libgcc): New insn. |
| (*popcountqi2.libgcc): New insn. |
| (*popcountqihi2.libgcc): New insn-and-split. |
| (*clzhi2.libgcc): New insn. |
| (*clzsihi2.libgcc): New insn. |
| (*ctzhi2.libgcc): New insn. |
| (*ctzsihi2.libgcc): New insn. |
| (*ffshi2.libgcc): New insn. |
| (*ffssihi2.libgcc): New insn. |
| (*bswapsi2.libgcc): New insn. |
| |
| 2011-07-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_expand_move): Do not explicitly check |
| the mode of symbolic_opreand RTXes. |
| |
| 2011-07-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (x86_64_movabs_operand): Return false |
| for pic_32bit_operand RTXes. |
| * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand |
| in DImode. |
| |
| 2011-07-27 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Allow -mabi |
| for 32-bit, too. |
| (ix86_handle_abi_attribute): Allow function attributes |
| ms_abi/sysv_abi in 32-bit mode, too. |
| * doc/extend.texi: Adjust attribute documentation. |
| |
| * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR |
| expression handling. |
| (and_var_with_comparison_1): Likewise. |
| |
| 2011-07-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * params.h (ALLOW_STORE_DATA_RACES): New. |
| * params.def (PARAM_ALLOW_STORE_DATA_RACES): New. |
| * Makefile.in (expr.o): Depend on PARAMS_H. |
| * machmode.h (get_best_mode): Add argument. |
| * fold-const.c (optimize_bit_field_compare): Add argument to |
| get_best_mode. |
| (fold_truthop): Same. |
| * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field. |
| * expr.c (emit_group_store): Same. |
| (copy_blkmode_from_reg): Same. |
| (write_complex_part): Same. |
| (optimize_bitfield_assignment_op): Add argument. |
| Add argument to get_best_mode. |
| (get_bit_range): New. |
| (expand_assignment): Calculate maxbits and pass it down accordingly. |
| (store_field): New argument. |
| (expand_expr_real_2): New argument to store_field. Include params.h. |
| * expr.h (store_bit_field): New argument. |
| * stor-layout.c (get_best_mode): Restrict mode expansion by taking |
| into account maxbits. |
| * calls.c (store_unaligned_arguments_into_pseudos): New argument |
| to store_bit_field. |
| * expmed.c (store_bit_field_1): New argument. Use it. |
| (store_bit_field): Same. |
| (store_fixed_bit_field): Same. |
| (store_split_bit_field): Same. |
| (extract_bit_field_1): Pass new argument to get_best_mode. |
| (extract_bit_field): Same. |
| * stmt.c (store_bit_field): Pass new argument to store_bit_field. |
| * doc/invoke.texi: Document parameter allow-store-data-races. |
| |
| 2011-07-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option. |
| |
| 2011-07-27 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-vrp.c (extract_range_from_binary_expr): Remove |
| TRUTH-binary cases and add new bitwise-cases. |
| (extract_range_from_assignment): Likewise. |
| (register_edge_assert_for_1): Likeiwise. |
| (register_edge_assert_for): Likewise. |
| (simplify_truth_ops_using_ranges): Likewise. |
| (simplify_stmt_using_ranges): Likewise. |
| |
| 2011-07-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47372 |
| * config/i386/i386.c (ix86_delegitimize_address): Call |
| simplify_gen_subreg for PIC with mode of x only if modes of |
| x and orig_x are different. |
| |
| 2011-07-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (output_macinfo_op): Ensure fd->filename points |
| to GC allocated copy of the string. |
| (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections |
| before .debug_line, not after it. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47046 |
| * tree-chrec.h (evolution_function_is_affine_p): Recursively call |
| evolution_function_is_affine_p on CHREC_RIGHT. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-data-ref.c (max_stmt_executions_tree): Do not call |
| lang_hooks.types.type_for_size. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47653 |
| * graphite-scop-detection.c (graphite_can_represent_loop): Discard |
| loops using wrapping semantics. |
| |
| 2011-07-26 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/48805 |
| * tree-scalar-evolution.c (instantiate_scev_r): Return |
| chrec_dont_know for ADDR_EXPR. |
| |
| 2011-07-26 Uros Bizjak <ubizjak@gmail.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47369 |
| PR target/49853 |
| * config/i386/i386.c (ix86_expand_move): Call convert_to_mode |
| if legitimize_tls_address returned operand in wrong mode. Allow |
| SImode and DImode symbolic operand for PIC. Call convert_to_mode |
| if legitimize_pic_address returned operand in wrong mode. |
| |
| 2011-07-26 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and |
| return false for invariants. |
| |
| 2011-07-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (add->lea splitter): Implement using SWI |
| mode iterator. Change operand 2 predicate to <nonmemory_operand>. |
| (add->lea zext splitter): Change operand 2 predicate to |
| x86_64_nonmemory_operand. |
| |
| 2011-07-26 Richard Guenther <rguenther@suse.de> |
| |
| * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block |
| frequency makes everything hot. |
| |
| 2011-07-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49840 |
| * tree-vrp.c (range_fits_type_p): Properly handle full |
| double-int precision. |
| |
| 2011-07-26 Martin Jambor <mjambor@suse.cz> |
| |
| PR bootstrap/49786 |
| * ipa-cp.c (update_profiling_info): Avoid overflow when updating |
| counts. |
| (update_specialized_profile): Likewise. |
| |
| 2011-07-26 Uros Bizjak <ubizjak@gmail.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47381 |
| PR target/49832 |
| PR target/49833 |
| * config/i386/i386.md (i): Change SImode attribute to "e". |
| (g): Change SImode attribute to "rme". |
| (di): Change SImode attribute to "nF". |
| (general_operand): Change SImode attribute to x86_64_general_operand. |
| (general_szext_operand): Change SImode attribute to |
| x86_64_szext_general_operand. |
| (immediate_operand): Change SImode attribute to |
| x86_64_immediate_operand. |
| (nonmemory_operand): Change SImode attribute to |
| x86_64_nonmemory_operand. |
| (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. |
| (*movsi_internal): Ditto. Use "e" constraint in alternative 2. |
| (*lea_1): Use SWI48 mode iterator. |
| (*lea_1_zext): New insn pattern. |
| (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. |
| (*bt<mode>): Ditto. |
| (*add<mode>1): Use x86_64_general_operand predicate for operand 2. |
| Update operand constraints. |
| (addsi_1_zext): Ditto. |
| (*add<mode>2): Ditto. |
| (*addsi_3_zext): Ditto. |
| (*subsi_1_zext): Ditto. |
| (*subsi_2_zext): Ditto. |
| (*subsi_3_zext): Ditto. |
| (*addsi3_carry_zext): Ditto. |
| (*<plusminus_insn>si3_zext_cc_overflow): Ditto. |
| (*mulsi3_1_zext): Ditto. |
| (*andsi_1): Ditto. |
| (*andsi_1_zext): Ditto. |
| (*andsi_2_zext): Ditto. |
| (*<any_or:code>si_1_zext): Ditto. |
| (*<any_or:code>si_2_zext): Ditto. |
| (*test<mode>_1): Use <general_operand> predicate for operand 1. |
| (*and<mode>_2): Ditto. |
| (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2. |
| (add->lea splitter): Check operand modes in insn constraint. Extend |
| operands less than SImode wide to SImode. |
| (add->lea zext splitter): Do not extend input operands to DImode. |
| (*lea_general_1): Handle only QImode and HImode operands. |
| (*lea_general_2): Ditto. |
| (*lea_general_3): Ditto. |
| (*lea_general_1_zext): Remove. |
| (*lea_general_2_zext): Ditto. |
| (*lea_general_3_zext): Ditto. |
| (*lea_general_4): Check operand modes in insn constraint. Extend |
| operands less than SImode wide to SImode. |
| (ashift->lea splitter): Ditto. |
| * config/i386/i386.c (ix86_print_operand_address): Print address |
| registers with 'q' modifier on 64bit targets. |
| * config/i386/predicates.md (pic_32bit_opreand): Define as special |
| predicate. Reject non-SI and non-DI modes. |
| |
| 2011-07-25 Andrew Pinski <apinski@cavium.com> |
| |
| PR tree-opt/49671 |
| * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and |
| TREE_THIS_NOTRAP into the inner most MEM_REF. |
| Always copy TREE_THIS_VOLATILE. |
| * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and |
| arguments are not volatile references. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove. |
| * final.c (final_scan_insn): Don't test for it. |
| (rest_of_clean_state): Likewise. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49841 |
| * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn. |
| (emit_frame_save): Likewise. |
| (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save |
| insn onto a dummy blockage insn after the join label. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_trace_info): Add ID member. |
| (get_trace_index): Remove. Change users to use ID member. |
| (before_next_cfi_note): New. |
| (connect_traces): Remove unreachable traces before the main loop. |
| Look across one trace and generate remember/restore_state if needed. |
| |
| 2011-07-25 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New. |
| |
| 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * genattr.c (write_upcase, gen_attr <enum definition writing>): |
| Move to ... |
| * genattr-common.c ... here. |
| (main): Call gen_attr. |
| * optc-gen.awk: Make generated program include insn-attr-common.h . |
| * Makefile.in (oprions.o): Depend on insn-attr-common.h |
| |
| 2011-07-25 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, |
| PRINT_OPERAND_PUNCT_VALID_P): Remove macro. |
| * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p, |
| m32c_print_operand, m32c_print_operand_address): Remove. |
| * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static. |
| Change return type to bool. Change argument type to bool. |
| (m32c_print_operand, m32c_print_operand_address): Make static. |
| (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, |
| TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. |
| |
| 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Environment |
| attributes): Document mmap. |
| |
| 2011-07-25 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, |
| PRINT_OPERAND_PUNCT_VALID_P): Remove macro. |
| * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p, |
| mmix_print_operand, mmix_print_operand_address): Remove. |
| * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static. |
| Change return type to bool. Change argument type to bool. |
| (mmix_print_operand, mmix_print_operand_address): Make static. |
| (mmix_intval, mmix_output_condition): Change 'x' argument type |
| to const_rtx. |
| (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS, |
| TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. |
| |
| 2011-07-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/39386 |
| * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as |
| shift counter for x << x and x >> x shifts. |
| |
| 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/47124 |
| * config.gcc: Reject *-*-solaris2 configuration. |
| |
| 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/49809 |
| * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use |
| gimple_get_lhs instead of gimple_assign_lhs. |
| |
| 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * system.h [__cplusplus]: Wrap C function declarations in extern "C". |
| |
| 2011-07-25 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49822 |
| * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify |
| more. Make sure to preserve stmts with side-effects. Properly |
| handle virtual defs, follow a longer def chain. |
| |
| 2011-07-22 Romain Geissler <romain.geissler@gmail.com> |
| |
| PR plugins/45348 |
| PR plugins/48425 |
| PR plugins/46577 |
| * Makefile.in: Do not flatten c-family directory when installing |
| plugin headers. |
| |
| 2011-07-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of |
| original nodes if we are dealing with virtual clones. |
| |
| 2011-07-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * common/config/c6x/c6x-common.c: New file. |
| |
| 2011-07-25 Roman Zhuykov <zhroma@ispras.ru> |
| |
| * tree-flow.h (tree_ssa_loop_version): Remove unused declaration. |
| |
| 2011-07-25 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49715 |
| * tree-vrp.c: Include expr.h and optabs.h. |
| (range_fits_type_): New function. |
| (simplify_float_conversion_using_ranges): Likewise. |
| (simplify_stmt_using_ranges): Call it. |
| * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies. |
| * optabs.c (can_float_p): Export. |
| * optabs.h (can_float_p): Declare. |
| |
| 2011-07-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (num_vr_values, values_propagated): New global vars. |
| (get_value_range): For out-of-range SSA names or names created |
| after propagation return a read-only varying range. |
| (dump_all_value_ranges): Adjust. |
| (vrp_initialize): Likewise. |
| (vrp_finalize): Likewise. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49831 |
| * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip |
| them entirely. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49825 |
| * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier. |
| (dwarf2out_notice_stack_adjust): Use args_size from call_insn. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49827 |
| * dwarf2cfi.c (create_trace_edges): Handle sequences properly. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter. |
| Zero args_size for abnormal edges. Adjust all callers. |
| |
| 2011-07-24 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49825 |
| * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size. |
| |
| 2011-07-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR bootstrap/49835 |
| * collect2.c (demangle_flag): Removed. |
| |
| 2011-07-24 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * configure.ac (demangler_in_ld): Default to yes. |
| * configure: Regenerated. |
| * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't |
| mess with COLLECT_NO_DEMANGLE, and just pass --demangle and |
| --no-demangle options straight through to ld. When |
| HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a |
| way that has the intended effect on Windows. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c: Include basic-block.h. |
| (dw_label_info): Remove. |
| (trace_work_list, trace_index): New. |
| (remember_row, emit_cfa_remember): Remove. |
| (dw_trace_info_hash, dw_trace_info_eq): New. |
| (get_trace_index, get_trace_info): New. |
| (save_point_p): New. |
| (free_cfi_row): Remove. |
| (add_cfi): Do not emit DW_CFA_remember_state. |
| (cfa_row_equal_p): New. |
| (barrier_args_size): Remove. |
| (compute_barrier_args_size_1, compute_barrier_args_size): Remove. |
| (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size. |
| (maybe_record_trace_start, create_trace_edges, scan_trace): New. |
| (dwarf2out_cfi_begin_epilogue): Remove. |
| (dwarf2out_frame_debug_restore_state): Remove. |
| (connect_traces, create_pseudo_cfg): New. |
| (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces. |
| * Makefile.in (dwarf2cfi.o): Update. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_trace_info): New. |
| (dw_label_info): New. |
| (cie_return_save): New. |
| (cur_trace): New. |
| (queued_args_size): Rename from args_size. Update all users. |
| (cfa_store, cfa_temp, regs_saved_in_regs): Remove. |
| (def_cfa_1): Use cur_trace instead of cfa_*. |
| (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise. |
| (clobbers_queued_reg_save, reg_saved_in): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (create_cie_data): Split out from ... |
| (execute_dwarf2_frame): ... here. Initialize cur_trace. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc. |
| Update all users to match. |
| (execute_dwarf2_frame): Free reg_saved_in_data. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY. |
| (queued_reg_saves): Don't GTY. Change to a VEC. |
| (queue_reg_save): Update to match. |
| (dwarf2out_flush_queued_reg_saves): Likewise. |
| (clobbers_queued_reg_save): Likewise. |
| (reg_saved_in): Likewise. |
| (execute_dwarf2_frame): Free queued_reg_saves. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi_args_size): Split out from... |
| (dwarf2out_args_size): ... here. |
| (add_cfi_restore): Split out from ... |
| (dwarf2out_frame_debug_cfa_restore): ... here. |
| (def_cfa_0): Split out from ... |
| (def_cfa_1): ... here. |
| (cfi_oprnd_equal_p, cfi_equal_p): New. |
| (change_cfi_row): New. |
| (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index. |
| (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note. |
| (output_cfis): Remove. |
| * dwarf2out.c (output_fde): Simplify output_cfi loop. |
| (dwarf2out_switch_text_section): Don't call output_cfis. |
| (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New. |
| * dwarf2out.h: Update decls. |
| (enum dw_val_class): Add dw_val_class_none. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (update_row_reg_save): New. |
| (dwarf2out_frame_debug_cfa_expression): Use it. |
| (dwarf2out_frame_debug_cfa_restore): Likewise. |
| (reg_save): Likewise. Do not emit DW_CFA_same_value. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New. |
| (cie_cfi_row): New. |
| (new_cfi_row, copy_cfi_row, free_cfi_row): New. |
| (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove. |
| (cur_row, remember_row): New. |
| (def_cfa_1): Use cur_row instead of the old_* variables. |
| (dwarf2out_frame_debug_restore_state): Similarly. |
| (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise. |
| (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa. |
| (dwarf2out_frame_debug_adjust_cfa): Likewise. |
| (dwarf2out_frame_debug_cfa_offset): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (execute_dwarf2_frame): Set up cur_row. |
| * dwarf2out.h (struct cfa_loc): Mark for GTY. |
| |
| 2011-07-23 Richard Henderson <rth@redhat.com> |
| |
| * basic-block.h (EDGE_PRESERVE): New. |
| (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it. |
| * bb-reorder.c: Include except.h. |
| (fix_up_crossing_landing_pad): New. |
| (find_rarely_executed_basic_blocks_and_crossing_edges): Place |
| landing pads in the right partition. Duplicate as necessary. |
| (partition_hot_cold_basic_blocks): Fix up DF info after |
| duplicating landing pads. |
| * cfg.c (dump_edge_info): Add crossing and preserve to bitnames. |
| * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING |
| is set properly. Validate that EH edges are not CROSSING. |
| * except.c (expand_dw2_landing_pad_for_region): Split out from ... |
| (dw2_build_landing_pads): ... here. |
| (convert_to_eh_region_ranges): Remove code to fixup crossing |
| landing pads. |
| * except.h (expand_dw2_landing_pad_for_region): Declare. |
| * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges. |
| |
| 2011-07-23 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/49816 |
| * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure. |
| |
| 2011-07-22 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing. |
| |
| 2011-07-22 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (gate_handle_partition_blocks): Honor optimize. |
| |
| 2011-07-22 Richard Henderson <rth@redhat.com> |
| |
| * jump.c (maybe_propagate_label_ref): Split out of... |
| (mark_all_labels): ... here. Do not attempt label_ref |
| propagation while in cfglayout mode. |
| |
| 2011-07-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (struct macinfo_struct): Change code to unsigned char. |
| (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define. |
| (dwarf_attr_name): Handle DW_AT_GNU_macros. |
| (dwarf2out_define): If the vector is empty and |
| lineno is 0, emit a dummy entry first. |
| (dwarf2out_undef): Likewise. Remove redundant semicolon. |
| (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op, |
| optimize_macinfo_range): New functions. |
| (output_macinfo): Use them. If !dwarf_strict and .debug_str is |
| mergeable, optimize longer strings using |
| DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP, |
| optimize longer sequences of define/undef ops from headers |
| using DW_MACRO_GNU_transparent_include. For !dwarf_strict |
| emit a section headers. |
| (dwarf2out_init): For !dwarf_strict set debug_macinfo_section |
| and macinfo_section_label to DEBUG_MACRO_SECTION |
| resp. DEBUG_MACRO_SECTION_LABEL. |
| (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros |
| instead of DW_AT_macro_info. |
| |
| PR other/32998 |
| * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New |
| options. |
| * dwarf2out.c: Include opts.h. |
| (dchar_p): New typedef. Define heap VEC for it. |
| (producer_string): New variable. |
| (gen_producer_string): New function. |
| (gen_compile_unit_die): Use it. |
| (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed. |
| * Makefile.in (dwarf2out.o): Depend on $(OPTS_H). |
| * doc/invoke.texi: Document -grecord-gcc-switches and |
| -gno-record-gcc-switches, add a -grecord-gcc-switches reference |
| to -frecord-gcc-switches description. |
| |
| 2011-07-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/30112 |
| * c-decl.c (c_linkage_bindings): Define. |
| |
| 2011-07-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/49815 |
| * var-tracking.c (vt_finalize): Always free windowed_parm_regs. |
| |
| 2011-07-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Disallow |
| MS ABI in x32 mode. |
| (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi |
| only for TARGET_LP64. |
| (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT. |
| |
| 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to |
| avoid warnings when GCC is built with a C++ compiler. |
| |
| 2011-07-22 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/49796 |
| * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false |
| if decl node is in another partition, call cgraph_get_node only once. |
| |
| 2011-07-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config.gcc (x86_64-*-linux*): Set |
| default_gnu_indirect_function to yes. |
| |
| 2011-07-22 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/45819 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly |
| preserve volatile and notrap flags. |
| |
| 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| PR bootstrap/49794 |
| * configure.ac: Test AM_ICONV with CXX. |
| * configure: Regenerate. |
| * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST. |
| |
| 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/49797 |
| * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing. |
| (set_cloog_options): Use it. |
| |
| 2011-07-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/49756 |
| * gcc.c (main): Call stack_limit_increase (64MB). |
| * toplev.c (toplev_main): Likewise. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg |
| instead of force_reg. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_move): Convert to Pmode if |
| needed and use force_reg after convert. |
| (ix86_expand_call): Likewise. |
| (ix86_expand_special_args_builtin): Likewise. |
| (ix86_expand_builtin): Likewise. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/47654 |
| PR middle-end/49649 |
| * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2 |
| in parameter. Initialize v1 and v2 based on the values returned |
| by clast_name_to_lb_ub. |
| (type_for_clast_red): Pass v1 and v2 in parameter, and set their |
| values. |
| (type_for_clast_bin): Same. |
| (type_for_clast_expr): Same. |
| (type_for_clast_eq): Update calls to type_for_clast_expr. |
| (type_for_clast_for): Same. |
| (build_iv_mapping): Same. |
| * graphite-ppl.h (value_min): New. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (type_for_interval): Generate signed |
| types whenever possible. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (struct clast_name_index): Add lb |
| and ub fields. |
| (new_clast_name_index): Add lb and ub parameters. |
| (free_clast_name_index): New. |
| (clast_name_to_lb_ub): New. |
| (save_clast_name_index): Add lb and ub parameters. |
| (compute_bounds_for_param): New. |
| (type_for_level): Removed. |
| (type_for_clast_for): Removed level parameter. Do not call |
| type_for_level. |
| (graphite_create_new_loop): Store the lb and ub for the clast_name |
| of the iterator of the loop that has been generated. |
| (graphite_create_new_loop_guard): Remove parameter level. |
| (create_params_index): Store the lb and ub of each parameter. |
| (gloog): Use free_clast_name_index. Pass to create_params_index |
| the current scop. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (max_signed_precision_type): Removed. |
| (max_precision_type): Inline max_signed_precision_type. |
| (type_for_clast_red): Use max_precision_type. |
| (type_for_clast_bin): Same. |
| (type_for_clast_for): Same. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed |
| type_for_interval. |
| (gcc_type_for_value): Renamed type_for_value. |
| (gcc_type_for_clast_term): Renamed type_for_clast_term. |
| (gcc_type_for_clast_expr): Renamed type_for_clast_expr. |
| (gcc_type_for_clast_red): Renamed type_for_clast_red. |
| (gcc_type_for_clast_bin): Renamed type_for_clast_bin. |
| (gcc_type_for_clast_eq): Renamed type_for_clast_eq. |
| (graphite_translate_clast_equation): Update calls. |
| (compute_type_for_level): Renamed type_for_level. |
| (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for. |
| (build_iv_mapping): Update calls. |
| (graphite_create_new_loop_guard): Same. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme |
| comment. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (struct ivs_params): New. |
| (clast_name_to_gcc): Use ivs_params to pass around parameters. |
| (clast_to_gcc_expression): Same. |
| (clast_to_gcc_expression_red): Same. |
| (gcc_type_for_clast_term): Same. |
| (gcc_type_for_clast_expr): Same. |
| (gcc_type_for_clast_red): Same. |
| (gcc_type_for_clast_bin): Same. |
| (gcc_type_for_clast_eq): Same. |
| (graphite_translate_clast_equation): Same. |
| (graphite_create_guard_cond_expr): Same. |
| (graphite_create_new_guard): Same. |
| (graphite_create_new_loop): Same. |
| (build_iv_mapping): Same. |
| (translate_clast_user): Same. |
| (graphite_create_new_loop_guard): Same. |
| (translate_clast): Same. |
| (translate_clast_for_loop): Same. |
| (translate_clast_for): Same. |
| (translate_clast_guard): Same. |
| (initialize_cloog_names): Fix typo. |
| (gloog): Initialize an ivs_params struct, pass it to translate_clast. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (struct clast_name_index): Add level. |
| (new_clast_name_index): Add level parameter. |
| (clast_name_to_level): New. |
| (save_clast_name_index): Add level parameter. |
| (newivs_to_depth_to_newiv): Removed. |
| (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv. |
| (graphite_create_new_loop): Add level parameter. Pass level to |
| save_clast_name_index. |
| (translate_clast_for_loop): Pass level to graphite_create_new_loop. |
| (create_params_index): Pass level to save_clast_name_index. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not |
| recompute type, lb, and ub. Get them from... |
| (graphite_create_new_loop_guard): ...here. Pass in parameter |
| pointers to type, lb, and ub. |
| (translate_clast_for_loop): Update function calls. |
| (translate_clast_for): Same. |
| |
| 2011-07-21 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (compute_bounds_for_level): Call |
| psct_dynamic_dim. |
| (translate_clast_for_loop): Pass loop level to dependency_in_loop_p. |
| (gcc_type_for_iv_of_clast_loop): Update use of level. |
| (gloog): Start counting nesting level from 0. |
| * graphite-clast-to-gimple.h (get_scattering_level): Removed. |
| * graphite-dependences.c (graphite_carried_dependence_level_k): Call |
| psct_dynamic_dim on level. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_legitimize_address): Convert to |
| Pmode if needed. |
| |
| 2011-07-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (function_value_64): Always return pointers |
| in Pmode. |
| (ix86_promote_function_mode): New. |
| (TARGET_PROMOTE_FUNCTION_MODE): Likewise. |
| |
| 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/49749 |
| * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and |
| remove no-longer-used maxrank variable. |
| |
| 2011-07-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs. |
| |
| 2011-07-21 Jason Merrill <jason@redhat.com> |
| |
| * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New. |
| * recog.h (struct insn_data_d): Check it instead of |
| HAVE_DESIGNATED_INITIALIZERS. |
| * genoutput.c (output_insn_data): Likewise. |
| |
| 2011-07-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49770 |
| * tree-ssa-sccvn.c (valueize_refs_1): Return whether we |
| valueized any operand. Renamed from ... |
| (valueize_refs): ... this. New wrapper around valueize_refs_1. |
| (valueize_shared_reference_ops_from_ref): Return whether we |
| valueized any operand. |
| (vn_reference_lookup): Only when we valueized any operand |
| use the valueized reference for alias analysis. Do not preserve |
| the original reference tree in this case. |
| |
| 2011-07-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_decompose_address): Reject all but |
| register operands and subregs of DImode hard registers in index. |
| |
| 2011-07-21 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (fold_unary_loc): Preserve indirect |
| comparison cast to none-boolean type. |
| * tree-ssa.c (useless_type_conversion_p): Preserve cast |
| from/to boolean-type. |
| * gimplify.c (gimple_boolify): Handle boolification of comparisons. |
| (gimplify_expr): Boolifiy non aggregate-typed comparisons. |
| * tree-cfg.c (verify_gimple_comparison): Check result |
| type of comparison expression. |
| * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test |
| of condition result and disallow type-cast sinking into comparison. |
| |
| 2011-07-21 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (combine_conversions): Return whether |
| we have to run cfg-cleanup. Properly remove dead stmts. |
| (ssa_forward_propagate_and_combine): Adjust. |
| |
| 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK. |
| |
| 2011-07-21 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-propagate.c (substitute_and_fold): Use |
| do_dce flag to deside, if BB's statements are scanned |
| in last to first, or first to last order. |
| |
| 2011-07-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0. |
| |
| 2011-07-20 H.J. Lu <hongjiu.lu@intel.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * config/i386/constraints.md (w): New. |
| |
| * config/i386/i386.c (ix86_output_addr_vec_elt): Check |
| TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD. |
| |
| * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64 |
| instead of TARGET_64BIT. |
| |
| * config/i386/i386.md (indirect_jump): Replace |
| nonimmediate_operand with indirect_branch_operand. |
| (*indirect_jump): Likewise. Replace constraint "m" with "w". |
| (tablejump): Replace nonimmediate_operand with indirect_branch_operand. |
| Convert operand 0 to Pmode for x32 if not PIC. |
| (*tablejump_1): Replace nonimmediate_operand with |
| indirect_branch_operand. Replace constraint "m" with "w". |
| (*call_vzeroupper): Replace constraint "m" with "w". |
| (*call): Likewise. |
| (*call_rex64_ms_sysv_vzeroupper): Likewise. |
| (*call_rex64_ms_sysv): Likewise. |
| (*call_value_vzeroupper): Likewise. |
| (*call_value): Likewise. |
| (*call_value_rex64_ms_sysv_vzeroupper): Likewise. |
| (*call_value_rex64_ms_sysv): Likewise. |
| (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT. |
| |
| * config/i386/predicates.md (indirect_branch_operand): New. |
| (call_insn_operand): Support x32. |
| |
| 2011-07-20 Michael Eager <eager@eagercon.com> |
| |
| * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12. |
| |
| 2011-07-20 Richard Henderson <rth@redhat.com> |
| |
| * cfg.c (dump_bb_info): Dump basic_block->flags. |
| * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info. |
| |
| 2011-07-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_decompose_address): Allow only subregs |
| of DImode hard registers in index. |
| (ix86_legitimate_address_p): Allow subregs of base and index to span |
| more than a word. Assert that subregs of base and index satisfy |
| register_no_elim_operand predicates. Reject addresses where |
| base and index have different modes. |
| |
| 2011-07-20 Robert Millan <rmh@gnu.org> |
| |
| * config.gcc (mips*-*-linux*): Remove redundant tm_file entry. |
| |
| 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by |
| removing now-unnecessary assignment. |
| |
| 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting |
| memory address space to the type's address space. |
| |
| 2011-07-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/36467 |
| PR target/49687 |
| * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2 |
| and expand appropriately if there is a CONST_INT in operand2. |
| (usmulqihi3): New insn. |
| (*sumulqihi3): New insn. |
| (*osmulqihi3): New insn. |
| (*oumulqihi3): New insn. |
| (*muluqihi3.uconst): New insn_and_split. |
| (*muluqihi3.sconst): New insn_and_split. |
| (*mulsqihi3.sconst): New insn_and_split. |
| (*mulsqihi3.uconst): New insn_and_split. |
| (*mulsqihi3.oconst): New insn_and_split. |
| (*ashifthi3.signx.const): New insn_and_split. |
| (*ashifthi3.signx.const7): New insn_and_split. |
| (*ashifthi3.zerox.const): New insn_and_split. |
| (mulsqihi3): New insn. |
| (muluqihi3): New insn. |
| (muloqihi3): New insn. |
| * config/avr/predicates.md (const_2_to_7_operand): New. |
| (const_2_to_6_operand): New. |
| (u8_operand): New. |
| (s8_operand): New. |
| (o8_operand): New. |
| (s9_operand): New. |
| (register_or_s9_operand): New. |
| |
| 2011-07-20 Kai Tietz <ktietz@redhat.com> |
| |
| * builtins.c (fold_builtin_expect): See through the cast |
| from truthvalue_type_node to long. |
| |
| 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions |
| where we can use them from the standard and altivec instruction |
| sets, instead of always using the 3 operand VSX forms that require |
| the destination to overlap one of the inputs. |
| (vsx_fms*): Ditto. |
| (vsx_fnma*): Ditto. |
| (vsx_fnms*): Ditto. |
| |
| * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d |
| for DF types. |
| (fmsdf4_fpr): Ditto. |
| (nfmadf4_fpr): Ditto. |
| (nfmsdf4_fpr): Ditto. |
| |
| 2011-07-20 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * genrecog.c (make_insn_sequence): Correct position numbering |
| when filtering out match_scratch and match_dup. |
| |
| 2011-07-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify |
| against already removed statements. |
| (forward_propagate_into_comparison): Remove dead defining stmts. |
| (forward_propagate_into_gimple_cond): Likewise. |
| (forward_propagate_into_cond): Simplify. |
| (ssa_forward_propagate_and_combine): Handle changed cfg from |
| forward_propagate_into_comparison. |
| * tree-ssa-phiopt.c (conditional_replacement): Use proper |
| locations for newly built statements. |
| |
| 2011-07-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0. |
| |
| 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_class_max_nregs): Fix return type. |
| * config/s390/s390-protos.h (s390_class_max_nregs): Likewise. |
| |
| 2011-07-20 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/18908 |
| * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision. |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus |
| ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X. |
| |
| 2011-07-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * config/frv/frv.c (frv_register_move_cost): Define explicitly |
| costs for subclasses of GR_REGS. |
| |
| 2011-07-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49780 |
| * config/i386/predicates.md (no_seg_addres_operand): No more special. |
| * config/i386/i386.c (ix86_decompose_address): Allow only subregs |
| of DImode hard registers in base. |
| (ix86_legitimate_address_p): Allow SImode and DImode base and index |
| registers. |
| |
| 2011-07-20 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily. |
| (unify_nodes): Deal with that. |
| (solve_graph): Likewise. |
| |
| 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/arm/arm.c (arm_canonicalize_comparison): Add case to |
| canonicalize left operand from ZERO_EXTEND to AND. |
| |
| 2011-07-20 Anatoly Sokolov <aesok@post.ru> |
| |
| * target.def (class_max_nregs): New hook. |
| * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_class_max_nregs): New function. |
| * targhooks.h (default_class_max_nregs): Declare. |
| * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and |
| x_ira_reg_class_min_nregs arrays to unsigned char. |
| * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target |
| hook instead of CLASS_MAX_NREGS macro. |
| * reginfo.c (restore_register_info): Ditto. |
| * ira-conflicts.c (process_regs_for_copy): Use |
| ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. |
| Change type rclass and aclass vars to reg_class_t. |
| * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs |
| array instead of CLASS_MAX_NREGS macro. Change type rclass var to |
| reg_class_t. |
| * reload.c (combine_reloads, find_reloads, find_reloads_address_1): |
| Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro. |
| |
| * config/i386/i386.h (CLASS_MAX_NREGS): Remove. |
| * config/i386/i386.c (ix86_class_max_nregs): New function. |
| (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook |
| instead of CLASS_MAX_NREGS macro. |
| (TARGET_CLASS_MAX_NREGS): Define. |
| * config/avr/avr.h (CLASS_MAX_NREGS): Remove. |
| * config/avr/avr-protos.h (class_max_nregs): Remove declaration. |
| * config/avr/avr.c (class_max_nregs): Remove function. |
| * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove. |
| * config/spu/spu.h (CLASS_MAX_NREGS): Remove. |
| * config/mep/mep.h (CLASS_MAX_NREGS): Remove. |
| * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove. |
| * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove. |
| * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove. |
| * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove. |
| * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove. |
| * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove. |
| * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove. |
| * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove. |
| * config/score/score.h (CLASS_MAX_NREGS): Remove. |
| * config/vax/vax.h (CLASS_MAX_NREGS): Remove. |
| * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove. |
| * config/v850/v850.h (CLASS_MAX_NREGS): Remove. |
| |
| 2011-07-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cif-code.def (OVERWRITABLE): Fix typo and move around. |
| (TARGET_OPTIMIZATION_MISMATCH): Delete. |
| (EH_PERSONALITY): Fix typo. |
| (NON_CALL_EXCEPTIONS): Fix message. |
| (OPTIMIZATION_MISMATCH): Adjust message. |
| * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH. |
| |
| 2011-07-19 Ian Lance Taylor <iant@google.com> |
| |
| * doc/install.texi (Configuration): Document |
| --enable-build-poststage1-with-cxx. |
| |
| 2011-07-19 Robert Millan <rmh@gnu.org> |
| |
| * config/mips/gnu-user.h: Copy from linux.h. Update comments. |
| (GLIBC_DYNAMIC_LINKER): Remove. |
| |
| * config/mips/gnu-user64.h: Copy from linux64.h. Update comments. |
| (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) |
| (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) |
| (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove. |
| (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32, |
| GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32. |
| |
| * config/mips/linux.h: Remove everything except for ... |
| (GLIBC_DYNAMIC_LINKER): ... this macro. |
| |
| * config/mips/linux64.h: Remove everything except for ... |
| (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64) |
| (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32) |
| (BIONIC_DYNAMIC_LINKERN32): ... these macros. |
| (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64) |
| (GNU_USER_LINK_EMULATIONN32): New macros. |
| |
| * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*): |
| Use the new headers. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs. |
| Add offset_known_p and size_known_p fields. |
| (MEM_OFFSET_KNOWN_P): Update accordingly. |
| (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise. |
| * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes. |
| (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset) |
| (clear_mem_offset, set_mem_size, clear_mem_size, change_address) |
| (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill) |
| (init_emit_regs): Likewise. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document. |
| (MEM_OFFSET): Change from returning an rtx to returning a |
| HOST_WIDE_INT. |
| * rtl.h (MEM_OFFSET_KNOWN_P): New macro. |
| (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx. |
| * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_offset): Declare. |
| * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using |
| MEM_OFFSET_KNOWN_P to test whether the offset is known, and |
| MEM_OFFSET to get a HOST_WIDE_INT offset. |
| (nonoverlapping_memrefs_p): Likewise. Adjust calls to... |
| (adjust_offset_for_component_ref): Take a bool "known_p" |
| parameter and a HOST_WIDE_INT "offset" parameter. |
| * builtins.c (get_memory_rtx): As for ao_ref_from_mem. |
| Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather |
| than an rtx. Use clear_mem_offset to clear the offset. |
| * cfgcleanup.c (merge_memattrs): Likewise. |
| * dwarf2out.c (tls_mem_loc_descriptor): Likewise. |
| * function.c (assign_parm_find_stack_rtl): Likewise. |
| (assign_parm_setup_stack): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * reload.c (find_reloads_subreg_address): Likewise. |
| * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. |
| * var-tracking.c (INT_MEM_OFFSET): Likewise. |
| * emit-rtl.c (set_reg_attrs_from_value): Likewise. |
| (get_mem_align_offset): Likewise. |
| (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_offset): New function. |
| * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT |
| offset rather than an rtx. Assume both the expressio and offset |
| are available. |
| (r10k_needs_protection_p_1): Update accordingly, checking the |
| expression and offset availability here instead. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document. |
| (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT. |
| * rtl.h (MEM_SIZE_KNOWN_P): New macro. |
| (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx. |
| * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_size): Declare. |
| * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx. |
| (clear_mem_size): New function. |
| * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using |
| MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE |
| to get a HOST_WIDE_INT size. Adjust calls to set_mem_size, |
| passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size |
| to clear the size. |
| (nonoverlapping_memrefs_p): Likewise. |
| * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise. |
| (expand_builtin_init_trampoline): Likewise. |
| * calls.c (compute_argument_addresses): Likewise. |
| * cfgcleanup.c (merge_memattrs): Likewise. |
| * dce.c (find_call_stack_args): Likewise. |
| * dse.c (record_store, scan_insn): Likewise. |
| * dwarf2out.c (dw_sra_loc_expr): Likewise. |
| * expr.c (emit_block_move_hints): Likewise. |
| * function.c (assign_parm_find_stack_rtl): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * reload.c (find_reloads_subreg_address): Likewise. |
| * rtlanal.c (may_trap_p_1): Likewise. |
| * var-tracking.c (track_expr_p): Likewise. |
| * varasm.c (assemble_trampoline_template): Likewise. |
| * config/arm/arm.c (arm_print_operand): Likewise. |
| * config/h8300/h8300.c (h8sx_emit_movmd): Likewise. |
| * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise. |
| (expand_setmem_via_rep_stos, expand_constant_movmem_prologue) |
| (expand_constant_setmem_prologue): Likewise. |
| * config/mips/mips.c (mips_get_unaligned_mem): Likewise. |
| * config/rs6000/rs6000.c (expand_block_move): Likewise. |
| (adjacent_mem_locations): Likewise. |
| * config/s390/s390.c (s390_expand_setmem): Likewise. |
| (s390_expand_insv): Likewise. |
| * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise. |
| (*extendqi<mode>2_short_displ): Likewise. |
| * config/sh/sh.c (expand_block_move): Likewise. |
| * config/sh/sh.md (extv, extzv): Likewise. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * emit-rtl.c (mem_attrs_eq_p): New function, split out from... |
| (mem_attrs_htab_eq): ...here. |
| (find_mem_attrs): Replace with... |
| (set_mem_attrs): ...this function. Take a mem_attrs structure |
| rather than individual fields. |
| (set_mem_attributes_minus_bitpos, set_mem_alias_set) |
| (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) |
| (set_mem_size, change_address, adjust_address_1, offset_address) |
| (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): |
| Update accordingly. |
| |
| 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE) |
| (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs. |
| Provide a dummy definition of MEM_ADDR_SPACE for generators. |
| (target_rtl): Add x_mode_mem_attrs. |
| (mode_mem_attrs): New macro. |
| (get_mem_attrs): New function. |
| * emit-rtl.c (get_mem_attrs): Rename to... |
| (find_mem_attrs): ...this. |
| (set_mem_attributes_minus_bitpos, set_mem_alias_set) |
| (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset) |
| (set_mem_size, change_address, adjust_address_1, offset_address) |
| (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill): |
| Update accordingly. |
| (init_emit_regs): Initialize mode_mem_attrs. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove |
| TRUTH_*_EXPR handling. |
| * tree-ssa-operands.c (get_expr_operands): Likewise. |
| * tree-ssa-pre.c (fully_constant_expression): Likewise. |
| * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre): |
| Likewise. |
| (is_and_or_or): Likewise. |
| (is_norm_cond_subset_of): Likewise. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (fold_build_pointer_plus_loc): New helper function. |
| (fold_build_pointer_plus_hwi_loc): Likewise. |
| (fold_build_pointer_plus): Define. |
| (fold_build_pointer_plus_hwi): Likewise. |
| * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus. |
| (fold_builtin_memory_op): Likewise. |
| (fold_builtin_stpcpy): Likewise. |
| (fold_builtin_memchr): Likewise. |
| (fold_builtin_strstr): Likewise. |
| (fold_builtin_strchr): Likewise. |
| (fold_builtin_strrchr): Likewise. |
| (fold_builtin_strpbrk): Likewise. |
| (fold_builtin_strcat): Likewise. |
| (expand_builtin_memory_chk): Likewise. |
| (fold_builtin_memory_chk): Likewise. |
| * c-typeck.c (build_unary_op): Likewise. |
| * cgraphunit.c (thunk_adjust): Likewise. |
| * fold-const.c (build_range_check): Likewise. |
| (fold_binary_loc): Likewise. |
| * omp-low.c (extract_omp_for_data): Likewise. |
| (expand_omp_for_generic): Likewise. |
| (expand_omp_for_static_nochunk): Likewise. |
| (expand_omp_for_static_chunk): Likewise. |
| * tree-affine.c (add_elt_to_tree): Likewise. |
| * tree-data-ref.c (split_constant_offset_1): Likewise. |
| * tree-loop-distribution.c (generate_memset_zero): Likewise. |
| * tree-mudflap.c (mf_xform_derefs_1): Likewise. |
| * tree-predcom.c (ref_at_iteration): Likewise. |
| * tree-ssa-address.c (tree_mem_ref_addr): Likewise. |
| (add_to_parts): Likewise. |
| (create_mem_ref): Likewise. |
| * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. |
| * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise. |
| (number_of_iterations_le): Likewise. |
| * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. |
| (vect_create_addr_base_for_vector_ref): Likewise. |
| * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise. |
| (vect_create_cond_for_alias_checks): Likewise. |
| * tree-vrp.c (extract_range_from_assert): Likewise. |
| * config/alpha/alpha.c (alpha_va_start): Likewise. |
| (alpha_gimplify_va_arg_1): Likewise. |
| * config/i386/i386.c (ix86_va_start): Likewise. |
| (ix86_gimplify_va_arg): Likewise. |
| * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. |
| * config/mep/mep.c (mep_expand_va_start): Likewise. |
| (mep_gimplify_va_arg_expr): Likewise. |
| * config/mips/mips.c (mips_va_start): Likewise. |
| (mips_gimplify_va_arg_expr): Likewise. |
| * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. |
| * config/rs6000/rs6000.c (rs6000_va_start): Likewise. |
| (rs6000_gimplify_va_arg): Likewise. |
| * config/s390/s390.c (s390_va_start): Likewise. |
| (s390_gimplify_va_arg): Likewise. |
| * config/sh/sh.c (sh_va_start): Likewise. |
| (sh_gimplify_va_arg_expr): Likewise. |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. |
| * config/spu/spu.c (spu_va_start): Likewise. |
| (spu_gimplify_va_arg_expr): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): |
| Likewise. |
| (xstormy16_gimplify_va_arg_expr): Likewise. |
| * config/xtensa/xtensa.c (xtensa_va_start): Likewise. |
| (xtensa_gimplify_va_arg_expr): Likewise. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling. |
| (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST |
| handling. |
| |
| PR middle-end/18908 |
| * expr.c (expand_expr_real_2): Do not unnecessarily truncate the |
| result of BIT_*_EXPR to bitfield precision. |
| |
| 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/49742 |
| * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call |
| as a potential write. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h. |
| * tree-ssa-forwprop.c: Include gimple-pretty-print.h. |
| (forward_propagate_comparison): Simplify, remove obsolete code. |
| |
| 2011-07-19 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as |
| BIT_XOR_EXPR, same as the RTL expander does. |
| * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL. |
| (verify_gimple_assign_unary): Likewise. |
| * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR. |
| * tree-ssa-forwprop.c (forward_propagate_comparison): Handle |
| BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR. |
| |
| 2011-07-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49768 |
| * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL |
| if offset is smaller than bitoffset, but offset+size is bigger |
| than bitoffset. |
| |
| 2011-07-19 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49771 |
| * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of |
| zero step, set segment length to the size of the data-ref's type. |
| |
| 2011-07-18 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general |
| comments. |
| (ipcp_values_pool): Declare. |
| (ipcp_sources_pool): Likewise. |
| (ipcp_lattice): Changed to forward declaration. |
| (ipa_param_descriptor): Removed fields ipcp_lattice, types and |
| cannot_devirtualize. |
| (ipa_node_params): New fields descriptors, lattices, known_vals, |
| clone_for_all_contexts and node dead, removed fields params and |
| count_scale. |
| (ipa_set_param_count): Removed. |
| (ipa_get_param_count): Made to work with descriptors vector. |
| (ipa_get_param): Updated. |
| (ipa_param_cannot_devirtualize_p): Removed. |
| (ipa_param_types_vec_empty): Likewise. |
| (ipa_set_param_used): New function. |
| (ipa_get_param_used): Updated to use descriptors vector. |
| (ipa_func_list): Removed. |
| (ipa_init_func_list): Removed declaration. |
| (ipa_push_func_to_list_1): Likewise. |
| (ipa_pop_func_from_list): Likewise. |
| (ipa_push_func_to_list): Removed. |
| (ipa_lattice_from_jfunc): Remove declaration. |
| (ipa_get_jf_pass_through_result): Declare. |
| (ipa_get_jf_ancestor_result): Likewise. |
| (ipa_value_from_jfunc): Likewise. |
| (ipa_get_lattice): Update. |
| (ipa_lat_is_single_const): New function. |
| * ipa-prop.c (ipa_push_func_to_list_1): Removed. |
| (ipa_init_func_list): Likewise. |
| (ipa_pop_func_from_list): Likewise. |
| (ipa_get_param_decl_index): Fix coding style. |
| (count_formal_params): Removed. |
| (count_formal_params_1): Renamed to count_formal_params. |
| (ipa_populate_param_decls): Update to use descriptors vector. |
| (ipa_initialize_node_params): Likewise. |
| (visit_ref_for_mod_analysis): Use ipa_set_param_used. |
| (ipa_analyze_params_uses): Likewise. |
| (ipa_free_node_params_substructures): Likewise and free also lattices |
| and known values. |
| (duplicate_array): Removed. |
| (ipa_edge_duplication_hook): Add the new edge to the list of edge |
| clones. |
| (ipa_node_duplication_hook): Update to use new lattices. |
| (ipa_free_all_structures_after_ipa_cp): Free alloc pools. |
| (ipa_free_all_structures_after_iinln): Likewise. |
| (ipa_write_node_info): Update to use new lattices. |
| (ipa_read_node_info): Likewise. |
| (ipa_get_jf_pass_through_result): New function. |
| (ipa_get_jf_ancestor_result): Likewise. |
| (ipa_value_from_jfunc): Likewise. |
| (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc. |
| * ipa-cp.c: Reimplemented. |
| * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed. |
| (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter. |
| (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. |
| * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies. |
| * doc/invoke.texi (devirt-type-list-size): Removed description. |
| (ipa-cp-value-list-size): Added description. |
| |
| 2011-07-18 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns |
| before calling create_basic_block. |
| |
| 2011-07-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49675 |
| * tree.c (build_common_builtin_nodes): Register |
| __builtin_return_address, __cyg_profile_func_enter |
| and __cyg_profile_func_exit. |
| |
| 2011-07-18 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (emit_barrier_after_bb): Split out of ... |
| (add_labels_and_missing_jumps): ... here. |
| (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it. |
| |
| 2011-07-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47744 |
| * config/i386/i386.c (ix86_decompose_address): Allow only subregs |
| of DImode hard registers in PLUS address chains. |
| |
| 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/49769 |
| * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts. |
| (alpha*-*-freebsd*): Likewise. |
| (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, |
| i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o, |
| crtprec80.o, crtfastmath.o to extra_parts for all targets. |
| (ia64*-*-elf*): Remove extra_parts. |
| (sparc-*-linux*): Add crtfastmath.o to extra_parts. |
| (sparc64-*-linux*): Likewise. |
| (sparc64-*-freebsd*): Likewise. |
| |
| Revert: |
| * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts. |
| (ia64*-*-linux*): Likewise. |
| (mips64*-*-linux*): Likewise. |
| (mips*-*-linux*): Likewise. |
| |
| 2011-07-18 David Edelsohn <dje.gcc@gmail.com> |
| |
| * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug. |
| |
| 2011-07-18 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_expr): Use input_location, not saved_location |
| when building new trees. |
| |
| 2011-07-18 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR |
| expansion result to bitfield precision if required. |
| |
| 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc (i[3456x]86-*-netware*): Remove. |
| |
| * gthr-nks.h: Remove. |
| * configure.ac (enable_threads): Remove nks. |
| * configure: Regenerate. |
| |
| * config/i386/i386.c (ix86_encode_section_info): Remove netware |
| reference. |
| * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove |
| <netware.h> reference. |
| |
| * config/i386/netware-libgcc.c, |
| gcc/config/i386/netware-libgcc.def, |
| gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c, |
| gcc/config/i386/netware.h, gcc/config/i386/netware.opt, |
| gcc/config/i386/nwld.c, gcc/config/i386/nwld.h, |
| gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove |
| |
| * doc/extend.texi (Function Attributes, |
| callee_pop_aggregate_return): Remove i?86-netware reference. |
| * doc/install.texi (Configuration, --enable-threads): Remove nks. |
| |
| 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/49746 |
| Revert: |
| 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean |
| patterns. |
| |
| 2011-07-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/49732 |
| * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type. |
| |
| 2011-07-16 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/install.texi: Document --enable-static-libjava. |
| |
| 2011-07-15 Richard Henderson <rth@redhat.com> |
| |
| * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): |
| Replace all three arguments by returning a VEC of edges. |
| (add_labels_and_missing_jumps): Accept a VEC of edges, not bare |
| pointers and counts. |
| (fix_edges_for_rarely_executed_code): Merge ... |
| (rest_of_handle_partition_blocks): ... into... |
| (partition_hot_cold_basic_blocks): ... here. Return todo items if |
| any work was performed. |
| (pass_partition_blocks): Clear todo_flags_finish. |
| |
| 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com> |
| Jakub Jelinek <jakub@redhat.com> |
| Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR libstdc++/49745 |
| * gthr-posix.h: Do not include <unistd.h> unconditionally; use |
| _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS. |
| |
| 2011-07-15 Jason Merrill <jason@redhat.com> |
| |
| PR testsuite/49741 |
| * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts |
| rather than --tool_opts. |
| |
| 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * doc/plugins.texi (Building GCC plugins): gengtype needs its |
| corresponding gtype.state. |
| |
| 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/49723 |
| * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT. |
| |
| 2011-07-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/48220 |
| * doc/md.texi (Standard Names): Document window_save. |
| * cfgexpand.c (expand_debug_parm_decl): New function extracted from |
| expand_debug_expr and expand_debug_source_expr. If the target has |
| a window_save instruction, adjust the ENTRY_VALUE_EXP. |
| (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the |
| SSA_NAME_VAR is a parameter. |
| (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl. |
| * var-tracking.c (parm_reg_t): New type and associated vector type. |
| (windowed_parm_regs): New variable. |
| (adjust_insn): If the target has a window_save instruction and this |
| is the instruction, make its effect on parameter registers explicit. |
| (next_non_note_insn_var_location): New function. |
| (emit_notes_in_bb): Use it instead of NEXT_INSN throughout. |
| (vt_add_function_parameter): If the target has a window_save insn, |
| adjust the incoming RTL and record that in windowed_parm_regs. |
| (vt_finalize): Free windowed_parm_regs. |
| |
| 2011-07-15 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/invoke.texi (C6X Options): New section. |
| * doc/md.texi (TI C6X family): New section. |
| * config.gcc: Handle tic6x, in particular tic6x-*-elf and |
| tic6x-*-uclinux. |
| * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm, |
| count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME): |
| Provide C6X definitions. |
| * config/c6x/c6x.md: New file. |
| * config/c6x/constraints.md: New file. |
| * config/c6x/predicates.md: New file. |
| * config/c6x/c6x-sched.md.in: New file. |
| * config/c6x/c6x-sched.md: New file. |
| * config/c6x/gensched.sh: New file. |
| * config/c6x/c6x-mult.md.in: New file. |
| * config/c6x/genmult.sh: New file. |
| * config/c6x/c6x-mult.md: New file. |
| * config/c6x/sync.md: New file. |
| * config/c6x/c6x-protos.h: New file. |
| * config/c6x/sfp-machine.h: New file. |
| * config/c6x/c6x.c: New file. |
| * config/c6x/c6x.h: New file. |
| * config/c6x/crti.s: New file. |
| * config/c6x/crtn.s: New file. |
| * config/c6x/lib1funcs.asm: New file. |
| * config/c6x/c6x-modes.def: New file. |
| * config/c6x/genopt.sh: New file. |
| * config/c6x/c6x.opt: New file. |
| * config/c6x/c6x-tables.opt: New file. |
| * config/c6x/c6x-opts.h: New file. |
| * config/c6x/c6x-isas.def: New file. |
| * config/c6x/elf.h: New file. |
| * config/c6x/elf-common.h: New file. |
| * config/c6x/uclinux-elf.h: New file. |
| * config/c6x/t-c6x: New file. |
| * config/c6x/t-c6x-elf: New file. |
| * config/c6x/t-c6x-uclinux: New file. |
| * config/c6x/t-c6x-softfp: New file. |
| * config/c6x/gtd.c: New file. |
| * config/c6x/gtf.c: New file. |
| * config/c6x/ltd.c: New file. |
| * config/c6x/ltf.c: New file. |
| * config/c6x/ged.c: New file. |
| * config/c6x/gef.c: New file. |
| * config/c6x/led.c: New file. |
| * config/c6x/lef.c: New file. |
| * config/c6x/eqd.c: New file. |
| * config/c6x/eqf.c: New file. |
| * config/c6x/libgcc-c6xeabi.ver: New file. |
| |
| Revert |
| 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr> |
| PR rtl-optimization/11320 |
| * sched-int.h (struct deps) [reg_conditional_sets]: New field. |
| (struct sched_info) [compute_jump_reg_dependencies]: New prototype. |
| * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to |
| current_sched_info->compute_jump_reg_dependencies. Record which |
| registers are used and which registers are set by the jump. |
| Clear deps->reg_conditional_sets after a barrier. |
| Set deps->reg_conditional_sets if the insn is a COND_EXEC. |
| Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. |
| (init_deps): Initialize reg_conditional_sets. |
| (free_deps): Clear reg_conditional_sets. |
| * sched-ebb.c (compute_jump_reg_dependencies): New prototype. |
| Mark registers live on entry of the fallthrough block and conditionally |
| set as set by the jump. Mark registers live on entry of non-fallthrough |
| blocks as used by the jump. |
| * sched-rgn.c (compute_jump_reg_dependencies): New prototype. |
| Mark new parameters as unused. |
| |
| 2011-07-14 Andrew Pinski <pinskia@gmail.com> |
| |
| PR tree-opt/49309 |
| * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>): |
| Use fold_build2_loc instead of build2. |
| Use the correct type for the new tree. |
| |
| 2011-07-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/11320 |
| * config/ia64/ia64.md (load_symptr_low): Show a MEM. |
| * config/ia64/ia64.c (ia64_expand_load_address): Generate it. |
| |
| 2011-07-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49487 |
| * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead |
| of REG. |
| (*rotw<mode>): Use const_int_operand for operand2. |
| Use match_scatch for operand3. |
| (*rotb<mode>): Ditto |
| * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49651 |
| * tree-ssa-structalias.c (get_constraint_for_1): Properly |
| handle dereferences with subvariables. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (fold_gimple_assign): Remove operand swapping. |
| (fold_stmt_1): Do it here directly on gimple and as a first thing. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Convert the !bool_var result, |
| not bool_var when folding bool_var != 1 or bool_var == 0. |
| |
| 2011-07-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (schedule_insns): Remove outdated comment. |
| (schedule_block): When computing a known value for TODO_SPEC, |
| just set it rather than using logical operations. |
| (try_ready): Likewise. Use a local variable rather than a |
| pointer to TODO_SPEC. Reorder an if statement to move the |
| easy case to the then block. |
| * sched-deps.c (dep_spec_p): New static function. |
| (update_dep): Use it to decide whether to call |
| change_spec_dep_to_hard. |
| (get_back_and_forw_lists): Use it. |
| (sd_resolve_dep): Likewise. |
| (init_dep): If !USE_DEPS_LIST, use zero to initialize status. |
| (haifa_note_mem_dep): Likewise. |
| (check_dep): Likewise. |
| (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION. |
| (sched_free_deps): Free in two passes. |
| |
| 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR middle-end/49736 |
| * expr.c (all_zeros_p): Undo bogus part of last change. |
| |
| 2011-07-14 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/extend.texi (optimize attribute): Fix typo. |
| |
| 2011-07-14 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimplify_expr): Only do required conversions. |
| |
| 2011-07-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/43746 |
| * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove, |
| i.e. use default_elf_select_section. |
| (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove. |
| (READONLY_DATA_SECTION_ASM_OP): Remove. |
| (TARGET_ASM_NAMED_SECTION): Move from here... |
| * config/avr/avr.c: ...to here. |
| (avr_asm_init_sections): Set unnamed callback of readonly_data_section. |
| (avr_asm_named_section): Make static. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/49739 |
| * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o |
| and crtfastmath.o for Linux/x86. |
| |
| 2011-07-14 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c: Include "hashtab.h" |
| (sched_no_dce): New global variable. |
| (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN, |
| SHADOW_P): New macros. |
| (last_clock_var, cycle_issued_insns): Move declarations. |
| (must_backtrack): New static variable. |
| (struct delay_pair): New structure. |
| (delay_htab, delay_htab_i2): New static variables. |
| (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq, |
| record_delay_slot_pair, pair_delay, add_delay_dependencies): New |
| functions. |
| (dep_cost_1): If delay pairs exist, try to look up the insns and |
| use the correct pair delay if we find them. |
| (rank-for_schedule): Tweak priority for insns that must be scheduled |
| soon to avoid backtracking. |
| (queue_insn): Detect conditions which force backtracking. |
| (ready_add): Likewise. |
| (struct sched_block_state): Add member shadows_only_p. |
| (struct haifa_save_data): New structure. |
| (backtrack_queue): New static variable. |
| (mark_backtrack_feeds, copy_insn_list, save_backtrack_point, |
| unschedule_insns_until, restore_last_backtrack_point, |
| free_topmost_backtrack_point, free_backtrack_queue, |
| estimate_insn_tick, estimate_shadow_tick): New functions. |
| (prune_ready_list): New arg shadows_only_p. All callers changed. |
| If true, remove everything that isn't SHADOW_P. Look up delay |
| pairs and estimate ticks to avoid scheduling the first insn too early. |
| (verify_shadows): New function. |
| (schedule_block): Add machinery to enable backtracking. |
| (sched_init): Take sched_no_dce into account when setting |
| DF_LR_RUN_DCE. |
| (free_delay_pairs): New function. |
| (init_h_i_d): Initialize INSN_EXACT_TICK. |
| * Makefile.in (haifa-sched.o): Add $(HASHTAB_H). |
| * sched-deps.c (sd_unresolve_dep): New function. |
| * sched-int. (struct haifa_sched_info): New fields save_state |
| and restore_state. |
| (struct _haifa_insn_data): New fields exact_tick, tick_estimate, |
| feeds_backtrack_insn and shadow_p. |
| (DO_BACKTRACKING): New value in enum SCHED_FLAGS. |
| (sched_no_dce): Declare variable. |
| (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies, |
| sd_unresolve_dep): Declare functions. |
| * modulo-sched.c (sms_sched_info): Clear the two new fields. |
| * sched-rgn.c (rgn_const_sched_info): Likewise. |
| * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. |
| * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions. |
| (ebb_sched_info): Add them for the two new fields. |
| (add_deps_for_risky_insns): Call add_delay_dependencies. |
| |
| 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mpointers-to-nested-functions): |
| Rename -mr11. |
| * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto. |
| (rs6000_call_indirect_aix): Ditto. |
| * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto. |
| (call_indirect_aix<ptrsize>_internal): Ditto. |
| (call_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_value_indirect_aix<ptrsize>): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal): Ditto. |
| (call_value_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal2): Ditto. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto. |
| |
| 2011-07-13 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts. |
| |
| 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2. |
| * config/spu/spu.md ("clrsb<mode>2"): New expander. |
| |
| 2011-07-13 Thomas Schwinge <thomas@schwinge.name> |
| |
| * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo. |
| * configure: Regenerate. |
| |
| 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define. |
| (asm_file_start): Remove. |
| (spu_machine_dependent_reorg): Call compute_bb_for_insn and |
| free_bb_for_insn around code that modifies insns before |
| restarting df analysis. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/49541 |
| * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ... |
| (LINK_SPEC): ... here. |
| |
| 2011-07-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (struct sched_block_state): New. |
| (schedule_block): Move some local variables into such a structure. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/crtprec.c: Move to ../libgcc/config/i386. |
| * config/i386/t-crtpc: Remove. |
| * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. |
| * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from |
| tmake_file. |
| (x86_64-*-darwin*): Likewise. |
| (i[34567]86-*-linux*): Likewise. |
| (x86_64-*-linux*): Likewise. |
| |
| * config/i386/sol2.h (ENDFILE_SPEC): Redefine. |
| Handle -mpc32, -mpc64, -mpc80. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha. |
| * config/alpha/t-crtfm: Remove. |
| * config/i386/crtfastmath.c: Move to ../libgcc/config/i386. |
| * config/i386/t-crtfm: Remove. |
| * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64. |
| * config/mips/crtfastmath.c: Move to ../libgcc/config/mips. |
| * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc. |
| * config/sparc/t-crtfm: Remove. |
| |
| * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file. |
| (alpha*-*-freebsd*): Likewise. |
| (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file. |
| (x86_64-*-darwin*): Likewise. |
| (i[34567]86-*-linux*): Likewise. |
| (x86_64-*-linux*): Likewise. |
| (x86_64-*-mingw*): Likewise. |
| (ia64*-*-elf*): Remove crtfastmath.o from extra_parts. |
| (ia64*-*-freebsd*): Likewise. |
| (ia64*-*-linux*): Likewise. |
| (mips64*-*-linux*): Likewise. |
| (mips*-*-linux*): Likewise. |
| (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file. |
| (sparc64-*-linux*): Likewise. |
| (sparc64-*-freebsd*): Likewise. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/darwin-crt2.c: Move to ../libgcc/config/rs6000. |
| * config/darwin-crt3.c: Move to ../libgcc/config. |
| * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove. |
| ($(T)crt3$(objext)): Remove. |
| * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove. |
| ($(T)crt2$(objext)): Remove. |
| * config.gcc (powerpc-*-darwin*): Remove extra_parts. |
| (powerpc64-*-darwin*): Likewise. |
| |
| 2011-07-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode. |
| |
| * config/i386/i386.md (*addsi_1_zext): Renamed to ... |
| (addsi_1_zext): This. |
| |
| 2011-07-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook. |
| * doc/tm.texi: Regenerate. |
| * target.def (mergeable_rodata_prefix): New defhookpod. |
| * varasm.c (mergeable_string_section, mergeable_constant_section): |
| Use it. Allocate name with alloca. |
| |
| 2011-07-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma. |
| |
| 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten |
| overlap check. |
| |
| 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree.h (categorize_ctor_elements): Remove comment. Fix long line. |
| (count_type_elements): Delete. |
| (complete_ctor_at_level_p): Declare. |
| * expr.c (flexible_array_member_p): New function, split out from... |
| (count_type_elements): ...here. Make static. Replace allow_flexarr |
| parameter with for_ctor_p. When for_ctor_p is true, return the |
| number of elements that should appear in the top-level constructor, |
| otherwise return an estimate of the number of scalars. |
| (categorize_ctor_elements): Replace p_must_clear with p_complete. |
| (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p. |
| (complete_ctor_at_level_p): New function, borrowing union logic |
| from old categorize_ctor_elements_1. |
| (mostly_zeros_p): Return true if the constructor is not complete. |
| (all_zeros_p): Update call to categorize_ctor_elements. |
| * gimplify.c (gimplify_init_constructor): Update call to |
| categorize_ctor_elements. Don't call count_type_elements. |
| Unconditionally prevent clearing for variable-sized types, |
| otherwise rely on categorize_ctor_elements to detect |
| incomplete initializers. |
| |
| 2011-07-13 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (simplify_conversion_using_ranges): Make sure |
| the final type is integral. |
| |
| 2011-07-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * sched-int.h (struct _dep): Add member cost. |
| (DEP_COST, UNKNOWN_DEP_COST): New macros. |
| * sched-deps.c (init_dep_1): Initialize DEP_COST. |
| * haifa-sched.c (dep_cost_1): Use and set DEP_COST. |
| (sched_change_pattern): Reset it for dependent insns. |
| |
| 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (CRT0STUFF_T_CFLAGS): Remove. |
| ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove. |
| * config/i386/netware-crt0.c: Move to ../libgcc/config/i386. |
| * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove. |
| (CRT0_S, MCRT0_S): Remove. |
| ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def): |
| Remove. |
| (s-crt0): Remove. |
| * config.gcc (i[3456x]86-*-netware*): Remove extra_parts. |
| |
| 2011-07-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cse.c (insert_with_costs): Put semi-colon after empty loop body |
| on the next line. |
| * emit-rtl.c (push_to_sequence): Likewise. |
| * haifa-sched.c (max_issue): Likewise. |
| * matrix-reorg.c (add_allocation_site): Likewise. |
| * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. |
| * reload.c (alternative_allows_const_pool_ref): Likewise. |
| * sched-rgn.c (rgn_add_block): Likewise. |
| (rgn_fix_recovery_cfg): Likewise. |
| * tree.c (attribute_list_contained): Likewise. |
| |
| 2011-07-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c: Tidy processor feature bitmasks. |
| (m_P4_NOCONA): New. |
| |
| 2011-07-12 Andrew Pinski <pinskia@gmail.com> |
| |
| PR rtl-opt/49474 |
| * cprop.c (find_implicit_sets): Correct the condition. |
| |
| 2011-07-12 Richard Henderson <rth@redhat.com> |
| |
| PR target/49713 |
| * dwarf2out.h (dwarf_frame_regnum): Remove. |
| * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno |
| earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number. |
| * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New. |
| (execute_dwarf2_frame): Initialize them. |
| (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace |
| users of the macros with the variables. |
| (expand_builtin_dwarf_sp_column): Revert last change. |
| (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the |
| result of DWARF_FRAME_REGNUM into a local variable. |
| |
| 2011-07-12 Richard Henderson <rth@redhat.com> |
| |
| PR target/49714 |
| * config/i386/i386.c (x86_output_mi_thunk): Use |
| machopic_indirect_call_target instead of machopic_indirection_name |
| directly. |
| |
| 2011-07-12 Laurent GUERBY <laurent@guerby.net> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * prefix.h: Wrap up in extern "C" block. |
| |
| 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| AMD bdver2 Enablement |
| * config.gcc (i[34567]86-*-linux* | ...): Add bdver2. |
| (case ${target}): Add bdver2. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Let |
| -march=native recognize bdver2 processors. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Add |
| bdver2 def_and_undef |
| * config/i386/i386.c (struct processor_costs bdver2_cost): New |
| bdver2 cost table. |
| (m_BDVER2): New definition. |
| (m_AMD_MULTIPLE): Includes m_BDVER2. |
| (initial_ix86_tune_features): Add bdver2 tuning. |
| (processor_target_table): Add bdver2 entry. |
| (static const char *const cpu_names): Add bdver2 entry. |
| (ix86_option_override_internal): Add bdver2 instruction sets. |
| (ix86_issue_rate): Add bdver2. |
| (ix86_adjust_cost): Add bdver2. |
| (has_dispatch): Add bdver2. |
| * config/i386/i386.h (TARGET_BDVER2): New definition. |
| (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2. |
| (enum processor_type): Add PROCESSOR_BDVER2. |
| * config/i386/i386.md (define_attr "cpu"): Add bdver2. |
| * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to |
| description. |
| |
| 2011-07-12 Richard Henderson <rth@redhat.com> |
| |
| PR target/49714 |
| * config/i386/i386.c (x86_output_mi_thunk): Fix mode for |
| destination address in memory on some paths. |
| |
| 2011-07-12 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention |
| TARGET_FUNCTION_ARG_ROUND_BOUNDARY. |
| (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook. |
| * function.c (locate_and_pad_parm): Take it into account. |
| * target.def (function_arg_round_boundary): New hook. |
| * targhooks.c (default_function_arg_round_boundary): New function. |
| * targhooks.h (default_function_arg_round_boundary): Declare. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-07-12 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics. |
| Do not perform no-op changes. |
| |
| 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/predicates.md (neon_struct_operand): Make a normal |
| predicate. |
| (neon_struct_or_register_operand): New predicate. |
| * config/arm/neon.md (movmisalign<mode>): Replace predicates |
| with neon_struct_or_register_operand. |
| (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use |
| neon_struct_operand instead of memory_operand. |
| |
| 2011-07-12 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_get_node_or_alias): Removed declaration. |
| * cgraph.c (cgraph_get_node_or_alias): Removed. |
| (change_decl_assembler_name): Changed all calls to |
| cgraph_get_node_or_alias to a call to cgraph_get_node. |
| (cgraph_make_decl_local): Likewise. |
| * lto-symtab.c (lto_symtab_resolve_symbols): Likewise. |
| * varasm.c (default_binds_local_p_1): Likewise. |
| (decl_binds_to_current_def_p): Likewise. |
| |
| 2011-07-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49712 |
| * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF. |
| |
| 2011-07-11 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * genautomata.c (add_arc): Return void. All callers changed. |
| (make_automaton): Remove dead code. |
| |
| 2011-07-11 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New. |
| (DW_FRAME_POINTER_REGNUM): New. |
| (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum. |
| (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here. |
| (dwf_regno): New. |
| (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa, |
| dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register, |
| dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr): |
| Use it. |
| * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum. |
| * dwarf2out.h (dwarf_frame_regnum): New. |
| (struct cfa_loc): Document the domain of the reg member. |
| |
| 2011-07-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr. |
| Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE. |
| |
| 2011-07-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49676 |
| * dwarf2out.c (int_shift_loc_descriptor): New function. |
| (int_loc_descriptor): If shorter, emit i as |
| (i >> shift), shift, DW_OP_shl for suitable shift value. |
| Similarly, try to optimize large negative values using |
| DW_OP_neg of a positive value if shorter. |
| (size_of_int_shift_loc_descriptor): New function. |
| (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor |
| changes. |
| (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants |
| that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor + |
| DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former |
| is shorter. |
| (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large |
| addend as added DW_OP_plus if it is shorter. |
| |
| 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define. |
| (DTORS_SECTION_ASM_OP): Define. |
| |
| 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc. |
| * config/t-dfprules: Move to ../libgcc/config. |
| * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, |
| i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, |
| i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file. |
| (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): |
| Likewise. |
| (i[34567]86-*-cygwin*): Likewise. |
| (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. |
| (powerpc-*-linux*, powerpc64-*-linux*): Likewise. |
| * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove. |
| (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS, |
| D64PBIT_FUNCS, D128PBIT_FUNCS. |
| |
| 2011-07-11 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (simplify_conversion_using_ranges): Manually |
| translate the source value-range through the conversion chain. |
| |
| 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * expr.c (expand_expr_real_1): Use expand_insn for movmisalign. |
| |
| 2011-07-11 Arthur Loiret <aloiret@debian.org> |
| |
| * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build |
| a bi-arch compiler defaulting to 31-bit. In this case: |
| (tmake_file): Add s390/t-linux64. |
| * doc/install.texi: Add s390-linux to the list of targets supporting |
| --enable-targets=all. |
| |
| 2011-07-11 Arthur Loiret <aloiret@debian.org> |
| Matthias Klose <doko@debian.org> |
| |
| * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build |
| a tri-arch compiler defaulting to 32-bit (ABI o32). In this case: |
| (tm_file): Add mips/linux64.h. |
| (tmake_file): Add mips/t-linux64. |
| (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32. |
| * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT |
| instead of hardcoded mabi=n32. |
| * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if |
| tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc |
| convention. |
| |
| 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * passes.c (init_optimization_passes): Add invariant motion pass |
| after induction variable optimization. |
| |
| 2011-07-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/39633 |
| * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only |
| offsets 1..5 set cc0 in a usable way. |
| |
| 2011-07-11 Romain Geissler <romain.geissler@gmail.com> |
| |
| * tree.h (call_expr_arg): Remove. |
| (call_expr_argp): Likewise. |
| |
| 2011-07-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (save_register_window_1): Rename to... |
| (window_save): ...this. |
| * config/sparc/sparc.c (emit_save_register_window): Rename to... |
| (emit_window_save): ...this. |
| (sparc_expand_prologue): Adjust to above renaming. |
| |
| 2011-07-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_trampoline_init): Use movl instead |
| of movabs for x32. |
| |
| 2011-07-10 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and |
| run final, instead of emitting text directly. |
| |
| 2011-07-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Turn on |
| OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and |
| small PIC models for TARGET_X32. |
| |
| 2011-07-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR target/49684 |
| * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include |
| $(LIBGCC2_CFLAGS). |
| |
| PR bootstrap/49680 |
| * config/cris/cris.c (cris_asm_output_case_end): Robustify against |
| stray notes and debug insns by using prev_nonnote_nondebug_insn |
| instead of PREV_INSN. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE, |
| DWARF_TYPE_SIGNATURE_SIZE): Move from ... |
| * dwarf2out.c: ... here. |
| (output_all_cfis): Remove. |
| (dwarf2out_switch_text_section): Use output_cfis directly. |
| (size_of_locs): Export. |
| (output_loc_sequence, output_loc_sequence_raw): Export. |
| (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi, |
| output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc, |
| output_cfa_loc_raw): Move to ... |
| * dwarfcfi.c: ... here. |
| * dwarf2out.h: Update decls. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN, |
| DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ... |
| * dwarf2cfi.c: ... here. |
| (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove. |
| (DWARF_ROUND, DWARF_CIE_ID): Remove. |
| * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove. |
| (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove. |
| (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (cie_return_save): New. |
| (queue_reg_save): Use compare_reg_or_pc. |
| (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too. |
| (initial_return_save): Likewise. |
| (execute_dwarf2_frame): Save and restore initial return save from |
| the cie to the fde. |
| * config/mips/mips.c (mips_frame_set): Remove special case for |
| DWARF_FRAME_RETURN_COLUMN. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (lookup_cfa): Remove. |
| (execute_dwarf2_frame): Assert queues are empty on entry. |
| Setup initial cfa directly, not via lookup_cfa. |
| Don't clear args_size state here. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi_vec): New. |
| (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec. |
| (def_cfa_1, reg_save): Remove for_cie argument. Update all callers. |
| (execute_dwarf2_frame): Set add_cfi_vec. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * defaults.h (ASM_COMMENT_START): Move here... |
| * dwarf2asm.c: ... from here. |
| * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates. |
| * toplev.c: Remove ifndef tests of ASM_COMMENT_START. |
| * varasm.c: Likewise. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| PR debug/49686 |
| * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here... |
| (create_cfi_notes): ... do it here instead. |
| |
| 2011-07-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49676 |
| * dwarf2out.c (size_of_int_loc_descriptor): New function. |
| (address_of_int_loc_descriptor): Use it. |
| (scompare_loc_descriptor): Optimize EQ/NE comparison with constant. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * config/pdp11/pdp11.md (define_c_enum "unspecv"): New. |
| (prologue, epilogue): New. |
| (return, *rts): New. |
| (blockage, setd, seti): New. |
| * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove. |
| (TARGET_ASM_FUNCTION_EPILOGUE): Remove. |
| (pdp11_saved_regno): New. |
| (pdp11_expand_prologue): Rename from pdp11_output_function_prologue; |
| generate rtl instead of text. |
| (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue. |
| (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno. |
| * config/pdp11/pdp11-protos.h: Update. |
| |
| 2011-07-09 Richard Henderson <rth@redhat.com> |
| |
| * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't |
| try to insert an rtl prologue here. |
| (rs6000_output_function_epilogue): Similarly. |
| * config/rs6000/rs6000.md (prologue): Emit a barrier to |
| satisfy !TARGET_SCHED_PROLOG. |
| (epilogue, sibcall_epilogue): Likewise. |
| |
| 2011-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around. |
| (FP_REG_P): Delete. |
| (IN_OR_GLOBAL_P): Likewise. |
| |
| 2011-07-08 Jason Merrill <jason@redhat.com> |
| |
| PR c++/45437 |
| * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in |
| compound assignment. |
| |
| * cgraph.c (cgraph_add_to_same_comdat_group): New. |
| * cgraph.h: Declare it. |
| * ipa.c (function_and_variable_visibility): Make sure thunks |
| have the right visibility. |
| |
| 2011-07-08 Richard Henderson <rth@redhat.com> |
| |
| PR bootstrap/49680 |
| * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after |
| any tablejump vector. |
| |
| PR bootstrap/49680 |
| * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the |
| end of the prologue. |
| |
| 2011-07-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/49621 |
| * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use |
| CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE. |
| * config/rs6000/vector.md (vector_select_<mode>, |
| vector_select_<mode>_uns): Change second operand of NE to |
| CONST0_RTX (<MODE>mode) instead of const0_rtx. |
| * config/rs6000/altivec.md (*altivec_vsel<mode>, |
| *altivec_vsel<mode>_uns): Expect second operand of NE to be |
| zero_constant of the corresponding vector mode. |
| * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): |
| Likewise. |
| |
| 2011-07-08 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (build_alias_set_powerset): Remove |
| continue from loop, add one more assert. |
| |
| 2011-07-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/46779 |
| * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite. |
| In particular, allow 8-bit values in r28 and r29. |
| (avr_hard_regno_scratch_ok): Disallow any register that might be |
| part of the frame pointer. |
| (avr_hard_regno_rename_ok): Same. |
| (avr_legitimate_address_p): Don't allow SUBREGs. |
| |
| 2011-07-08 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in |
| big-endian mode. |
| (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>) |
| (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>) |
| (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>) |
| (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>) |
| (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>) |
| (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>) |
| (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q |
| registers in big-endian mode. |
| |
| 2011-07-08 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined |
| in terms of another. |
| (write_attr_value): Write a cast if necessary. |
| |
| * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default. |
| * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN. |
| (REG_WORDS_BIG_ENDIAN): Document. |
| * doc/tm.texi: Regenerate. |
| * reload.c (operands_match_p): Take it into account. |
| (reload_adjust_reg_for_mode): Likewise. |
| * rtlanal.c (subreg_get_info): Likewise. |
| |
| 2011-07-08 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index |
| folding. |
| |
| 2011-07-08 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (fold_truth_andor): Factored out truth_andor |
| label from fold_binary as function. |
| (fold_binary_loc): Replace truth_andor lable |
| by function fold_truth_andor. |
| |
| 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com> |
| |
| PR middle-end/49519 |
| * calls.c (mem_overlaps_already_clobbered_arg_p): Additional |
| check if address is stored in register. If so - give up. |
| (check_sibcall_argument_overlap_1): Do not perform check of |
| overlapping when it is call to address. |
| |
| 2011-07-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead |
| of magic '31'. |
| |
| 2011-07-08 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of |
| GET_MODE_BITSIZE where appropriate. |
| (widen_leading, expand_parity, expand_ctz, expand_ffs, |
| expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump, |
| expand_float, expand_fix): Likewise. |
| * expr.c (convert_move, convert_modes, expand_expr_real_2, |
| expand_expr_real_1, reduce_to_bit_field_precision): Likewise. |
| * stor-layout.c (get_mode_bounds): Likewise. |
| * cfgexpand.c (convert_debug_memory_address, expand_debug_expr): |
| Likewise. |
| * convert.c (convert_to_integer): Likewise. |
| * expmed.c (expand_shift_1): Likewise. |
| |
| * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against |
| a bitsize. |
| |
| * optabs.c (expand_binop): Tighten conditions for doubleword |
| expansions. |
| (widen_bswap): Assert that mode bitsize and precision are the same. |
| * stor-layout.c (get_best_mode): Skip modes that have lower |
| precision than bitsize. |
| * recog.c (simplify_while_replacing): Assert that bitsize and |
| precision are the same. |
| |
| 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (LIBGCOV): Remove. |
| (libgcc.mvars): Remove LIBGCOV. |
| * libgov.c: Move to ../libgcc. |
| |
| 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc. |
| |
| 2011-07-08 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (analyze_all_variable_accesses): Dump that a struture |
| is too big for total scalarization. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef. |
| (DBX_DEBUGGING_INFO): Undef. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter. |
| Handle some opcodes specially for debugging. |
| * print-rtl.c: Include dwarf2out.h |
| (print_rtx): Handle NOTE_INSN_CFI. |
| * Makefile.in (print-rtl.o): Update. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * tree-pass.h (pass_dwarf2_frame): Declare. |
| * passes.c (init_optimization_passes): Add it. |
| * dwarf2cfi.c (dwarf2out_frame_debug): Make static. |
| (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue; |
| make static, do not call add_cfis_to_fde. |
| (dwarf2out_frame_debug_init, dwarf2cfi_function_init, |
| dwarf2out_frame_init): Merge into... |
| (execute_dwarf2_frame): ... here. New function. |
| (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change |
| saved_do_cfi_asm to a tri-state variable. |
| (gate_dwarf2_frame, pass_dwarf2_frame): New. |
| * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde |
| if it has yet to be done. Don't call dwarf2cfi_function_init. |
| * dwarf2out.h, debug.h: Update decls. |
| * final.c (final_start_function): Don't call |
| dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue. |
| * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init. |
| * toplev.c (lang_dependent_init): Likewise. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use, |
| FDE_TABLE_INCREMENT): Replace with... |
| (fde_vec): ... this, a new vector. |
| (current_fde): Remove. Replace all users with cfun->fde. |
| (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec. |
| (size_of_aranges, dwarf2out_finish): Likewise. |
| (dwarf2out_alloc_current_fde): Break out from ... |
| (dwarf2out_begin_prologue): ... here. |
| (dwarf2out_frame_init): Remove. |
| * dwarf2cfi.c: Update all users of current_fde. |
| (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init. |
| * dwarf2out.h: Update decls. |
| (dw_fde_node): Add fde_index member. |
| * function.h (struct function): Add fde member. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (add_cfi): Remove. |
| (dwarf2out_cfi_label): Remove force argument. Only generate the |
| label name. |
| (add_fde_cfi): Simplify the different code paths. |
| (add_cie_cfi): New. |
| (old_cfa, old_cfa_remember): New. |
| (def_cfa_1, reg_save): Remove label, add for_cie parameter. |
| (last_reg_save_label): Remove. |
| (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save, |
| dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, |
| dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, |
| dwarf2out_frame_debug_cfa_expression, |
| dwarf2out_frame_debug_cfa_restore, |
| dwarf2out_frame_debug_cfa_window_save, |
| dwarf2out_frame_debug_expr): Remove label parameter. |
| (cfi_label_required_p, add_cfis_to_fde): New. |
| (dwarf2out_frame_debug_after_prologue): New. |
| (dwarf2cfi_frame_init): Initialize old_cfa. |
| (dwarf2out_frame_debug_restore_state): Likewise. |
| * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm. |
| (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here. |
| * final.c (final_start_function): Call |
| dwarf2out_frame_debug_after_prologue. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c (cfi_insn): New. |
| (dwarf2out_cfi_label): Don't emit cfi label here. |
| (add_fde_cfi): Create a NOTE_INSN_CFI. |
| (dwarf2out_frame_debug): Setup cfi_insn. |
| (dwarf2out_frame_debug_init): Loop over insns creating CFI notes. |
| (dwarf2out_cfi_begin_epilogue): Make static. |
| (dwarf2out_frame_debug_restore_state): Make static. |
| * dwarf2out.c (output_cfi_directive): Make static. |
| (dwarf2out_emit_cfi): New. |
| * dwarf2out.h: Update. |
| * final.c (final): Remove CFI notes. |
| (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue, |
| dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug. |
| Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL. |
| * insn-notes.def (NOTE_INSN_CFI): New. |
| (NOTE_INSN_CFI_LABEL): New. |
| * rtl.h (union rtunion_def): Add rt_cfi member. |
| (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New. |
| |
| 2011-07-07 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2cfi.c: New file. |
| * Makefile.in (OBJS): Add it. |
| (GTFILES): Add dwarf2cfi.c and dwarf2out.h. |
| * gengtype.c (open_base_files): Include dwarf2out.h. |
| * coretypes.h (enum var_init_status): Move from ... |
| * rtl.h: ... here. |
| * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame, |
| dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num, |
| expand_builtin_dwarf_sp_column, init_return_column_size, |
| expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi, |
| dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi, |
| lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size, |
| old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save, |
| stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1, |
| compute_barrier_args_size, dwarf2out_args_size, |
| dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust, |
| queued_reg_saves, reg_saved_in_data, regs_saved_in_regs, |
| compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label, |
| queue_reg_save, dwarf2out_flush_queued_reg_saves, |
| clobbers_queued_reg_save, reg_saved_in, cfa_temp, |
| dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa, |
| dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register, |
| dwarf2out_frame_debug_cfa_expression, |
| dwarf2out_frame_debug_cfa_restore, |
| dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr, |
| dwarf2out_frame_debug, dwarf2out_frame_debug_init, |
| dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, |
| get_cfa_from_loc_descr): Move to dwarf2cfi.c. |
| (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type, |
| dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node, |
| dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref, |
| dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node, |
| dw_loc_descr_node): Move to dwarf2out.h. |
| (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode, |
| mem_loc_descriptor): Export. |
| (build_cfa_aligned_loc): Export. Take CFA as a parameter. |
| (dwarf2out_frame_init): Extract CIE generation code to |
| dwarf2cfi_frame_init. |
| |
| 2011-07-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/49660 |
| * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add |
| MASK_V8PLUS, remove commented out flag and reorder. |
| |
| 2011-07-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/49644 |
| * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with |
| one non-complex and one complex argument, call c_save_expr on both |
| operands. |
| |
| 2011-07-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/49495 |
| * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function. |
| (verify_cgraph_node): Some functinality moved to |
| verify_edge_corresponds_to_fndecl, call it. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (*local*): Remove. |
| * doc/install-old.texi: Don't mention local configurations. |
| |
| 2011-07-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49522 |
| * df-problems.c (dead_debug_reset): Remove dead_debug_uses |
| referencing debug insns that have been reset. |
| (dead_debug_insert_before): Don't assert reg is non-NULL, |
| instead return immediately if it is NULL. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * hw-doloop.c: New file. |
| * hw-doloop.h: New file. |
| * Makefile.in (OBJS): Add hw-doloop.o. |
| (hw-doloop.o): New rule. |
| ($(obj_out_file)): Add hw-doloop.h dependency. |
| * config/bfin/bfin.c: Include "hw-doloop.h". |
| (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove. |
| (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove. |
| (hwloop_optimize): Renamed from bfin_optimize_loop. Argument |
| type changed to hwloop_info. Return bool, true if the loop was |
| successfully optimized. Remove code that was moved to |
| hw-doloop.c, and adjust other parts. |
| (hwloop_fail): New static function, containing parts that used |
| to be in bfin_optimize_loop. |
| (bfin_discover_loop, bfin_discover_loops, free_loops, |
| bfin_reorder_loops): Remove. |
| (hwloop_pattern_reg): New static function. |
| (bfin_doloop_hooks): New variable. |
| (bfin_reorg_loops): Remove most code, call reorg_loops. |
| * config/bfin/bfin.md (doloop_end splitter): Also enable if |
| loop counter is a memory_operand. |
| |
| 2011-07-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config.gcc: Support --with-multilib-list for x86 Linux targets. |
| |
| * configure.ac: Mention x86-64 for --with-multilib-list. |
| * configure: Regenerated. |
| |
| * config/i386/gnu-user64.h (SPEC_64): Support x32. |
| (SPEC_32): Likewise. |
| (ASM_SPEC): Likewise. |
| (LINK_SPEC): Likewise. |
| (TARGET_THREAD_SSP_OFFSET): Likewise. |
| (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise. |
| (SPEC_X32): New. |
| |
| * config/i386/i386.h (TARGET_X32): New. |
| (TARGET_LP64): New. |
| (LONG_TYPE_SIZE): Likewise. |
| (POINTER_SIZE): Likewise. |
| (POINTERS_EXTEND_UNSIGNED): Likewise. |
| (OPT_ARCH64): Support x32. |
| (OPT_ARCH32): Likewise. |
| |
| * config/i386/i386.opt (mx32): New. |
| |
| * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New. |
| (GLIBC_DYNAMIC_LINKERX32): Likewise. |
| * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise. |
| (GLIBC_DYNAMIC_LINKERX32): Likewise. |
| |
| * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New. |
| (BIONIC_DYNAMIC_LINKERX32): Likewise. |
| (GNU_USER_DYNAMIC_LINKERX32): Likewise. |
| |
| * config/i386/t-linux64: Support TM_MULTILIB_CONFIG. |
| |
| * doc/install.texi: Document --with-multilib-list for Linux/x86-64. |
| |
| * doc/invoke.texi: Document -mx32. |
| |
| 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/invoke.texi (mwords-little-endian): Deprecate. |
| * config/arm/arm.opt (mwords-little-endian): Likewise. |
| * config/arm/arm.c (arm_option_override): Warn about the deprecation |
| of -mwords-little-endian. |
| |
| 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * reload1.c (choose_reload_regs): Use mode sizes to check whether |
| an old reload register completely defines the required value. |
| |
| 2011-07-07 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_unary_loc): Do not strip sign-changes |
| for NEGATE_EXPR. |
| |
| 2011-07-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree-vrp.c (simplify_conversion_using_ranges): New function. |
| (simplify_stmt_using_ranges): Call it. |
| |
| 2011-07-07 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-forwprop.c (truth_valued_ssa_name): New function. |
| (lookup_logical_inverted_value): Likewise. |
| (simplify_bitwise_binary_1): Likewise. |
| (simplify_bitwise_binary): Use simplify_bitwise_binary_1. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * gcc.c (%[Spec]): Don't document. |
| (struct spec_list): Update comment. |
| (do_spec_1): Don't handle %[Spec]. |
| * doc/invoke.texi (%[@var{name}]): Remove documentation of spec. |
| |
| 2011-07-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't |
| default based on TARGET_ASM_NAMED_SECTION. |
| * common/common-target.def (have_named_sections): Default to true. |
| * common/config/default-common.c: Don't include tm.h. |
| * common/config/picochip/picochip-common.c |
| (TARGET_HAVE_NAMED_SECTIONS): Don't define. |
| * common/config/m32c/m32c-common.c: Remove. |
| * config.gcc (m32c*-*-*): Set target_has_targetm_common=no. |
| * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false. |
| |
| 2011-07-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49640 |
| * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands |
| and last COMPONENT_REF operand call gimplify_expr on it if non-NULL. |
| |
| 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libmudflap/49550 |
| * gcc.c (MFWRAP_SPEC): Also wrap mmap64. |
| |
| 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/39150 |
| * configure.ac (gcc_cv_as_hidden): Also accept |
| x86_64-*-solaris2.1[0-9]*. |
| (gcc_cv_as_cfi_directive): Likewise. |
| (gcc_cv_as_comdat_group_group): Likewise. |
| (set_have_as_tls): Likewise. |
| * configure: Regenerate. |
| * config.gcc (i[34567]86-*-solaris2*): Also handle |
| x86_64-*-solaris2.1[0-9]*. |
| * config.host (i[34567]86-*-solaris2*): Likewise. |
| * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove. |
| * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine. |
| [USE_GLD] (ARCH_DEFAULT_EMULATION): Define. |
| (TARGET_LD_EMULATION): Use it. |
| * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define. |
| (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default. |
| * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define. |
| (ASM_CPU64_DEFAULT_SPEC): Define. |
| (ASM_CPU_SPEC): Use %(asm_cpu_default). |
| (ASM_SPEC): Redefine. |
| (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT. |
| * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce. |
| * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document. |
| (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]* |
| configuration. |
| (Specific, x86_64-*-solaris2.1[0-9]*): Document. |
| |
| 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (ASM_SPEC): Split into ... |
| (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. |
| * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. |
| * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine. |
| (ASM_SPEC): Use ASM_SPEC_BASE. |
| * config/sparc/sol2.h (ASM_SPEC): Redefine. |
| |
| 2011-07-07 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*reload_insi): Change predicate #1 to |
| const_int_operand. Ditto for peep2 producing this insn. |
| Add argument to output_reload_insisf call. |
| (*movsi,*movsf): Add argument to output_movsisf call. |
| (*reload_insf): New insn and new peep2 to produce it. |
| * config/avr/avr-protos.h (output_movsisf): Change prototype. |
| (output_reload_insisf): Change prototype. |
| * config/avr/avr.c (avr_asm_len): New function. |
| (output_reload_insisf): Rewrite. |
| (output_movsisf): Change prototype. output_reload_insisf for |
| all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory. |
| (adjust_insn_length): Add argument to output_movsisf and |
| output_reload_insisf call. |
| |
| 2011-07-07 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * emit-rtl.c (paradoxical_subreg_p): New function. |
| * rtl.h (paradoxical_subreg_p): Declare. |
| * combine.c (set_nonzero_bits_and_sign_copies, get_last_value, |
| apply_distributive_law, simplify_comparison, simplify_set): Use it. |
| * cse.c (record_jump_cond, cse_insn): Likewise. |
| * expr.c (force_operand): Likewise. |
| * rtlanal.c (num_sign_bit_copies1): Likewise. |
| * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise. |
| * reload.c (push_secondary_reload, find_reloads_toplev): Likewise. |
| (push_reload): Use precision to check for paradoxical subregs. |
| * expmed.c (extract_bit_field_1): Likewise. |
| |
| * machmode.h (HWI_COMPUTABLE_MODE_P): New macro. |
| * combine.c (set_nonzero_bits_and_sign_copies): Use it. |
| (find_split-point, combine_simplify_rtx, simplify_if_then_else, |
| simplify_set, simplify_logical, expand_compound_operation, |
| make_extraction, force_to_mode, if_then_else_cond, extended_count, |
| try_widen_shift_mode, simplify_shift_const_1, simplify_comparison, |
| record_value_for_reg): Likewise. |
| * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise. |
| * simplify-rtx. c (simplify_unary_operation_1, |
| simplify_binary_operation_1, simplify_const_relational_operation): |
| Likewise. |
| |
| * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION |
| instead of GET_MODE_BITSIZE where appropriate. |
| * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1, |
| num_sign_bit_copies1, canonicalize_condition, low_bitmask_len, |
| init_num_sign_bit_copies_in_rep): Likewise. |
| * cse.c (fold_rtx, cse_insn): Likewise. |
| * loop-doloop.c (doloop_modify, doloop_optimize): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1, |
| simplify_const_unary_operation, simplify_binary_operation_1, |
| simplify_const_binary_operation, simplify_ternary_operation, |
| simplify_const_relational_operation, simplify_subreg): Likewise. |
| * combine.c (try_combine, find_split_point, combine_simplify_rtx, |
| simplify_if_then_else, simplify_set, expand_compound_operation, |
| expand_field_assignment, make_extraction, if_then_else_cond, |
| make_compound_operation, force_to_mode, make_field_assignment, |
| reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine, |
| extended_count, try_widen_shift_mode, simplify_shift_const_1, |
| simplify_comparison, record_promoted_value, simplify_compare_const, |
| record_dead_and_set_regs_1): Likewise. |
| |
| Revert: |
| * simplify-rtx.c (simplify_const_binary_operation): Use the |
| shift_truncation_mask hook instead of performing modulo by width. |
| Compare against mode precision, not bitsize. |
| * combine.c (combine_simplify_rtx, simplify_shift_const_1): |
| Use shift_truncation_mask instead of constructing the value manually. |
| |
| 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New |
| declaration. |
| (rs6000_save_toc_in_prologue_p): Ditto. |
| |
| * config/rs6000/rs6000.opt (-mr11): New switch to disable loading |
| up the static chain (r11) during indirect function calls. |
| (-msave-toc-indirect): New undocumented debug switch. |
| |
| * config/rs6000/rs6000.c (struct machine_function): Add |
| save_toc_in_prologue field to note whether the prologue needs to |
| save the TOC value in the reserved stack location. |
| (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need |
| to save the TOC in the prologue, do so. |
| (rs6000_trampoline_init): Don't allow creating AIX style |
| trampolines if -mno-r11 is in effect. |
| (rs6000_call_indirect_aix): New function to create AIX style |
| indirect calls, adding support for -mno-r11 to suppress loading |
| the static chain, and saving the TOC in the prologue instead of |
| the call body. |
| (rs6000_save_toc_in_prologue_p): Return true if we are saving the |
| TOC in the prologue. |
| |
| * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed |
| register numbers. |
| (TOC_REGNUM): Ditto. |
| (STATIC_CHAIN_REGNUM): Ditto. |
| (ARG_POINTER_REGNUM): Ditto. |
| (SFP_REGNO): Delete, unused. |
| (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and |
| function descriptor offsets. |
| (TOC_SAVE_OFFSET_64BIT): Ditto. |
| (AIX_FUNC_DESC_TOC_32BIT): Ditto. |
| (AIX_FUNC_DESC_TOC_64BIT): Ditto. |
| (AIX_FUNC_DESC_SC_32BIT): Ditto. |
| (AIX_FUNC_DESC_SC_64BIT): Ditto. |
| (ptrload): New mode attribute for the appropriate load of a pointer. |
| (call_indirect_aix32): Delete, rewrite AIX indirect function calls. |
| (call_indirect_aix64): Ditto. |
| (call_value_indirect_aix32): Ditto. |
| (call_value_indirect_aix64): Ditto. |
| (call_indirect_nonlocal_aix32_internal): Ditto. |
| (call_indirect_nonlocal_aix32): Ditto. |
| (call_indirect_nonlocal_aix64_internal): Ditto. |
| (call_indirect_nonlocal_aix64): Ditto. |
| (call): Rewrite AIX indirect function calls. Add support for |
| eliminating the static chain, and for moving the save of the TOC |
| to the function prologue. |
| (call_value): Ditto. |
| (call_indirect_aix<ptrsize>): Ditto. |
| (call_indirect_aix<ptrsize>_internal): Ditto. |
| (call_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_value_indirect_aix<ptrsize>): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal): Ditto. |
| (call_value_indirect_aix<ptrsize>_internal2): Ditto. |
| (call_value_indirect_aix<ptrsize>_nor11): Ditto. |
| (call_nonlocal_aix32): Relocate in the rs6000.md file. |
| (call_nonlocal_aix64): Ditto. |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and |
| -mno-r11 documentation. |
| |
| 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR other/49658 |
| * doc/extend.texi (Compound Literals): Fix typo. |
| |
| 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP. |
| |
| 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * configure.ac (plugin-version.h): Generate |
| GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR, |
| GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer |
| macros. |
| |
| * configure: Regenerate. |
| |
| * doc/plugins.texi (Building GCC plugins): Mention |
| GCCPLUGIN_VERSION ... constant macros in plugin-version.h. |
| |
| 2011-07-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro. |
| * combine.c (make_extraction, gen_lowpart_or_truncate, |
| apply_distributive_law, simplify_comparison, |
| reg_truncated_to_mode, record_truncated_value): Use it. |
| * cse.c (notreg_cost): Likewise. |
| * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise. |
| * expr.c (convert_move, convert_modes): Likewise. |
| * optabs.c (expand_binop, expand_unop): Likewise. |
| * postreload.c (move2add_last_label): Likewise. |
| * regmove.c (optimize_reg_copy_3): Likewise. |
| * rtlhooks.c (gen_lowpart_general): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2011-07-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define. |
| |
| 2011-07-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * cse.c (find_comparison_args): Use val_mode_signbit_set_p. |
| * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION. |
| (val_mode_signbit_p, val_mode_signbit_set_p): New functions. |
| (simplify_const_unary_operation, simplify_binary_operation_1, |
| simplify_const_binary_operation, simplify_const_relational_operation): |
| Use them. Use GET_MODE_MASK for masking and sign-extensions. |
| * combine.c (set_nonzero_bits_and_sign_copies, simplify_set, |
| combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine, |
| simplify_shift_const_1, simplify_comparison): Likewise. |
| * expr.c (convert_modes): Likewise. |
| * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise. |
| * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise. |
| * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare. |
| |
| * simplify-rtx.c (simplify_ternary_operation): Remove dead code. |
| |
| 2011-07-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49645 |
| * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global |
| register variables. |
| * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences |
| in type qualification here ... |
| (copy_reference_ops_from_ref): ... not here. |
| (vn_reference_lookup_3): ... or here. |
| (copy_reference_ops_from_ref): Record decl bases as MEM[&decl]. |
| (vn_reference_lookup): Do the lookup with a valueized ao-ref. |
| |
| 2011-07-06 Ian Lance Taylor <iant@google.com> |
| |
| * doc/install.texi (Configuration): It's |
| --enable-gnu-indirect-function, not --enable-indirect-function. |
| |
| 2011-07-06 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * simplify-rtx.c (simplify_const_binary_operation): Use the |
| shift_truncation_mask hook instead of performing modulo by width. |
| Compare against mode precision, not bitsize. |
| * combine.c (combine_simplify_rtx, simplify_shift_const_1): |
| Use shift_truncation_mask instead of constructing the value manually. |
| |
| 2011-07-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/47383 |
| * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for |
| address computation and convert to address_mode if needed. |
| |
| 2011-07-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build_common_tree_nodes_2): Merge with |
| build_common_tree_nodes. |
| * tree.h (build_common_tree_nodes): Adjust prototype. |
| (build_common_tree_nodes_2): Remove. |
| * doc/tm.texi.in (lang_hooks.builtin_function): Adjust. |
| * doc/tm.texi (lang_hooks.builtin_function): Regenerate. |
| |
| 2011-07-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49618 |
| * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK |
| t recurse on the decl. |
| <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls |
| return true if expr isn't known to be defined in current |
| TU or some other LTO partition. |
| |
| 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to |
| override CASE_VALUES_THRESHOLD. |
| |
| * stmt.c (toplevel): Include params.h. |
| (case_values_threshold): Use the --param case-values-threshold |
| value if non-zero, otherwise use machine dependent value. |
| (expand_case): Use case_values_threshold. |
| |
| * Makefile.in (stmt.o): Add $(PARAMS_H) dependency. |
| |
| * doc/invoke.texi (--param case-values-threshold): Document. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (dwarf2out_cfi_label): Make static. |
| (dwarf2out_flush_queued_reg_saves): Make static. |
| (dwarf2out_reg_save): Remove. |
| (dwarf2out_return_save): Remove. |
| (dwarf2out_return_reg): Remove. |
| (dwarf2out_reg_save_reg): Remove. |
| (dwarf2out_def_cfa): Merge into ... |
| (dwarf2out_frame_init): ... here. |
| * dwarf2out.h, tree.h: Remove declarations as necessary. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove. |
| (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. |
| (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for |
| the alloc insn. |
| |
| * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove. |
| (IA64_CHANGE_CFA_IN_EPILOGUE): Remove. |
| (process_epilogue): Don't call dwarf2out_def_cfa. |
| |
| * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to |
| indicate the return address save. |
| (process_cfa_register): Likewise. |
| |
| * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove. |
| (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it. |
| |
| * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER |
| for ar.pfs save at alloc insn. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove. |
| (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. |
| (arm_expand_prologue): Use REG_CFA_REGISTER to mark the |
| stack pointer save. |
| (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN. |
| (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit |
| proper unwind info for a REG_CFA_REGISTER save of stack pointer. |
| * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove. |
| |
| 2011-07-05 Richard Henderson <rth@redhat.com> |
| |
| * config/vax/vax.md (define_c_enum unspecv): New. Define the |
| VUNSPEC_* constants here instead of via define_constants. |
| (VUNSPEC_PEM): New constant. |
| (procedure_entry_mask): New insn. |
| (prologue): New expander. |
| * config/vax/vax.c (vax_add_reg_cfa_offset): New. |
| (vax_expand_prologue): Rename from vax_output_function_prologue; |
| emit rtl instead of text. |
| (TARGET_ASM_FUNCTION_PROLOGUE): Remove. |
| (print_operand): Add 'x' prefix. |
| |
| 2011-07-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/47715 |
| * calls.c (precompute_register_parameters): Promote the function |
| argument before checking non-legitimate constant. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/47654 |
| * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool. |
| (lst_do_strip_mine_loop): Return an int. |
| (lst_do_strip_mine): Same. |
| (scop_do_strip_mine): Same. |
| (scop_do_block): Loop blocking should strip-mine at least two loops. |
| * graphite-interchange.c (lst_interchange_select_outer): Return an int. |
| (scop_do_interchange): Same. |
| * graphite-poly.h (scop_do_interchange): Update declaration. |
| (scop_do_strip_mine): Same. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (precision_for_value): Removed. |
| (precision_for_interval): Removed. |
| (gcc_type_for_interval): Use mpz_sizeinbase. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-ppl.h (value_max): Correct computation of max. |
| |
| 2011-07-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space. |
| |
| 2011-07-05 Richard Guenther <rguenther@suse.de> |
| |
| * c-decl.c (c_init_decl_processing): Defer building common |
| tree nodes to c_common_nodes_and_builtins. |
| |
| 2011-07-05 Razya Ladelsky <razya@il.ibm.com> |
| |
| PR tree-optimization/49580 |
| * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of |
| the loop's number of iterations. |
| * tree-parloops.c (transform_to_exit_first_loop): Add the |
| handling of the loop's number of iterations before the call |
| to gimple_duplicate_sese_tail. |
| Insert the stmt caclculating the new rhs of the loop's |
| condition stmt to the preheader instead of iters_bb. |
| |
| 2011-07-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/47449 |
| * fwprop.c (forward_propagate_subreg): Don't propagate hard |
| register nor zero/sign extended hard register. |
| |
| 2011-07-05 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49518 |
| PR tree-optimization/49628 |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip |
| irrelevant and invariant data-references. |
| (vect_analyze_data_ref_access): For invariant loads clear the |
| group association. |
| |
| 2011-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/49619 |
| * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification |
| pass VOIDmode as op0_mode to recursive call, and return temp even |
| when different from tor, just if it is not IOR of the original |
| PLUS arguments. |
| |
| PR rtl-optimization/49472 |
| * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When |
| negating MULT, negate the second operand instead of first. |
| (simplify_binary_operation_1) <case MULT>: If one operand is |
| a NEG and the other is MULT, don't attempt to optimize by negation |
| of the MULT operand if it only moves the NEG operation around. |
| |
| PR debug/49602 |
| * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard |
| get_current_def return value if it can't be trusted to be |
| the current value of the variable in the current bb. |
| |
| 2011-07-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49600 |
| * config/i386/i386.md (SSE2 int->float split): Push operand 1 in |
| general register to memory for !TARGET_INTER_UNIT_MOVES. |
| |
| 2011-07-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/44643 |
| * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY |
| instead of TREE_READONLY. |
| |
| 2011-07-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/extend.texi (AVR Built-in Functions): Update documentation |
| of __builtin_avr_fmul*. |
| * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto. |
| * config/avr/avr.md (fmul): Rename to fmul_insn. |
| (fmuls): Rename to fmuls_insn. |
| (fmulsu): Rename to fmulsu_insn. |
| (fmul,fmuls,fmulsu): New expander. |
| (*fmul.call,*fmuls.call,*fmulsu.call): New Insn. |
| * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu. |
| * config/avr/libgcc.S (__fmul): New function. |
| (__fmuls): New function. |
| (__fmulsu,__fmulsu_exit): New function. |
| |
| 2011-07-04 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49615 |
| * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix |
| basic-block index check. |
| |
| 2011-07-04 Georg-Johann Lay <avr@gjlay.de> |
| |
| * longlong.h (count_leading_zeros, count_trailing_zeros, |
| COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16 |
| resp. 64. |
| |
| 2011-07-03 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49610 |
| * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has |
| a basic block. |
| |
| 2011-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| Nicolas Setton <setton@adacore.com> |
| |
| * tree.h (TYPE_ARTIFICIAL): New flag. |
| * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to |
| the DIE of the type if it is artificial. |
| (gen_array_type_die): Likewise. |
| (gen_enumeration_type_die): Likewise. |
| (gen_struct_or_union_type_die): Likewise. |
| * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL. |
| * lto-streamer-out.c (pack_ts_base_value_fields): Likewise. |
| |
| 2011-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-object-size.c (pass_through_call): Handle |
| BUILT_IN_ASSUME_ALIGNED. |
| |
| 2011-07-01 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs. |
| |
| 2011-07-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/48016 |
| * explow.c (update_nonlocal_goto_save_area): Use proper mode |
| for stack save area. |
| * function.c (expand_function_start): Likewise. |
| |
| 2011-07-01 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/49596 |
| * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes |
| may have unknown refs. |
| |
| 2011-07-01 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo. |
| |
| 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5. |
| * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it. |
| (Specific, mips-sgi-irix6): Likewise. |
| |
| 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libmudflap/49549 |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document gld. |
| |
| 2011-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print |
| [idx]= and [idx1 ... idx2]= before initializers if needed for |
| array initializers. |
| |
| 2011-07-01 Chen Liqin <liqin.gcc@gmail.com> |
| |
| * config.gcc (score-*-elf): Remove score7.o. |
| * config/score/t-score-elf: Likewise. |
| * config/score/score.c: Merge score7 to score.c and |
| remove forwarding functions. |
| * config/score/score7.c: Deleted. |
| * config/score/score7.h: Deleted. |
| |
| 2011-07-01 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49603 |
| * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert. |
| |
| 2011-06-30 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (struct access): Rename total_scalarization to |
| grp_total_scalarization |
| (completely_scalarize_var): New function. |
| (sort_and_splice_var_accesses): Set total_scalarization in the |
| representative access. |
| (analyze_access_subtree): Propagate total scalarization accross the |
| tree, no holes in totally scalarized trees, simplify coverage |
| computation. |
| (analyze_all_variable_accesses): Call completely_scalarize_var instead |
| of completely_scalarize_record. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove. |
| (TARGET_DEEP_BRANCH_PREDICTION): Remove. |
| * config/i386/i386.c: Don't include dwarf2out.h. |
| (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION. |
| (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete |
| all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves. |
| (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn. |
| (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * reg-notes.def (REG_CFA_FLUSH_QUEUE): New. |
| * dwarf2out.c (dwarf2out_frame_debug): Handle it. |
| * final.c (final_scan_insn): Look for it, and invoke |
| dwarf2out_frame_debug before the insn if found. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX |
| as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN. |
| |
| 2011-06-30 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (struct reg_saved_in_data): Provide a typedef. |
| Define a vector of this type. |
| (regs_saved_in_regs): Use a VEC. |
| (num_regs_saved_in_regs): Remove. |
| (compare_reg_or_pc): New. |
| (record_reg_saved_in_reg): Split out from... |
| (dwarf2out_flush_queued_reg_saves): ... here. |
| (clobbers_queued_reg_save): Update for VEC. |
| (reg_saved_in): Likewise. |
| (dwarf2out_frame_debug_init): Likewise. |
| (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg. |
| (dwarf2out_frame_debug_cfa_register): Likewise. |
| |
| 2011-06-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/49572 |
| * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the |
| type of the RHS instead of that of the LHS for the expression type. |
| |
| 2011-06-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro |
| unconditionally. |
| |
| 2011-06-30 Richard Guenther <rguenther@suse.de> |
| |
| * opts.c (finish_options): Do not disable IPA-PTA during ltrans. |
| * tree-ssa-structalias.c (create_variable_info_for): Do not |
| add initial constraints for non-var-decls. Properly handle |
| globals in other ltrans partitions. |
| (intra_create_variable_infos): Manually create constraints for |
| the fake no-alias parameter. |
| (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly |
| and assert there are no clones. |
| |
| 2011-06-30 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/46787 |
| * tree-data-ref.c (dr_address_invariant_p): Remove. |
| (find_data_references_in_stmt): Invariant accesses are ok now. |
| * tree-vect-stmts.c (vectorizable_load): Handle invariant loads. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow |
| invariant loads. |
| |
| 2011-06-30 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/49094 |
| * tree-sra.c (tree_non_mode_aligned_mem_p): New function. |
| (build_accesses_from_assign): Use it. |
| |
| 2011-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix |
| handling of BUILT_IN_ASSUME_ALIGNED. |
| |
| PR debug/49364 |
| * dwarf2out.c (output_abbrev_section): Don't return early |
| if abbrev_die_table_in_use is 1. |
| (dwarf2out_finish): Instead don't call output_abbrev_section |
| nor emit abbrev_section_label in that case. |
| |
| 2011-06-30 Nick Clifton <nickc@redhat.com> |
| |
| * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling |
| for the V850E. |
| |
| 2011-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix |
| handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK. |
| |
| 2011-06-30 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Handle |
| both pattern and original statements if necessary. |
| (vect_transform_loop): Likewise. |
| * tree-vect-patterns.c (vect_pattern_recog): Update documentation. |
| * tree-vect-stmts.c (vect_mark_relevant): Add new argument. |
| Mark the pattern statement only if the original statement doesn't |
| have its own uses. |
| (process_use): Call vect_mark_relevant with additional parameter. |
| (vect_mark_stmts_to_be_vectorized): Likewise. |
| (vect_get_vec_def_for_operand): Use vectorized pattern statement. |
| (vect_analyze_stmt): Handle both pattern and original statements |
| if necessary. |
| (vect_transform_stmt): Don't store vectorized pattern statement |
| in the original statement. |
| (vect_is_simple_use_1): Use related pattern statement only if the |
| original statement is irrelevant. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. |
| |
| 2011-06-29 Changpeng Fang <changpeng.fang@amd.com> |
| |
| * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask |
| option. |
| * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL |
| entry. |
| (TARGET_AVX128_OPTIMAL): New definition. |
| * config/i386/i386.c (initial_ix86_tune_features): Initialize |
| X86_TUNE_AVX128_OPTIMAL entry. |
| (ix86_option_override_internal): Enable the generation |
| of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set. |
| (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128. |
| (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128. |
| |
| 2011-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/49539 |
| * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA |
| names by means of stmt_references_abnormal_ssa_name. |
| (associate_plusminus): Call can_propagate_from before propagating |
| from definition statements. |
| (ssa_forward_propagate_and_combine): Remove superfluous newline. |
| |
| 2011-06-29 Richard Guenther <rguenther@suse.de> |
| |
| * doc/invoke.texi: Document -scev dump modifier. |
| * tree-pass.h (TDF_SCEV): New dump flag. |
| * tree-dump.c (dump_option_value_in): Add scev. |
| * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV. |
| * tree-scalar-evolution.c: Likewise. |
| |
| 2011-06-29 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/arm/unwind-arm.c (enum __cxa_type_match_result): New. |
| (cxa_type_match): Correct declaration. |
| (__gnu_unwind_pr_common): Reconstruct additional indirection |
| when __cxa_type_match returns succeeded_with_ptr_to_base. |
| |
| 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR rtl-optimization/49114 |
| * reload.c (struct replacement): Remove SUBREG_LOC member. |
| (push_reload): Do not set it. |
| (push_replacement): Likewise. |
| (subst_reload): Remove dead code. |
| (copy_replacements): Remove assertion. |
| (copy_replacements_1): Do not handle SUBREG_LOC. |
| (move_replacements): Likewise. |
| (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode. |
| Detect subregs via recursive descent instead of via SUBREG_LOC. |
| |
| 2011-06-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_encode_section_info): Dispatch to |
| default_encode_section_info. |
| |
| 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/49545 |
| * builtins.c (get_object_alignment_1): Update function comment. |
| Do not use DECL_ALIGN for functions, but test |
| TARGET_PTRMEMFUNC_VBIT_LOCATION instead. |
| * fold-const.c (get_pointer_modulus_and_residue): Don't check |
| for functions here. |
| * tree-ssa-ccp.c (get_value_from_alignment): Likewise. |
| |
| 2011-06-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49567 |
| * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for |
| non-MODE_INT modes instead of asserting the mode has MODE_INT class. |
| |
| 2011-06-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/34734 |
| * config/avr/avr.c (avr_handle_progmem_attribute): Move warning |
| about uninitialized data attributed 'progmem' from here... |
| (avr_encode_section_info): ...to this new function. |
| (TARGET_ENCODE_SECTION_INFO): New define. |
| (avr_section_type_flags): For data in ".progmem.data", remove |
| section flag SECTION_WRITE. |
| |
| 2011-06-29 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3, |
| _xmulhisi3_exit. |
| * config/avr/libgcc.S (_xmulhisi3_exit): New Function. |
| (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp. |
| (__umulhisi3): Ditto. |
| * config/avr/avr.md (mulhisi3): New insn expender. |
| (umulhisi3): New insn expender. |
| (*mulhisi3_call): New insn. |
| (*umulhisi3_call): New insn. |
| |
| 2011-06-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED. |
| |
| 2011-06-28 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete |
| all code and arguments that handled pushes. Update all callers. |
| |
| 2011-06-28 Richard Henderson <rth@redhat.com> |
| |
| * config/arm/arm.c (arm_output_function_prologue): Don't call |
| thumb1_output_function_prologue. |
| (arm_expand_prologue): Avoid dead store. |
| (number_of_first_bit_set): Use ctz_hwi. |
| (thumb1_emit_multi_reg_push): New. |
| (thumb1_expand_prologue): Merge thumb1_output_function_prologue |
| to emit the entire prologue as rtl. |
| (thumb1_output_interwork): Split out from |
| thumb1_output_function_prologue. |
| (thumb1_output_function_prologue): Remove. |
| (arm_attr_length_push_multi): Handle thumb1. |
| * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New. |
| (prologue_thumb1_interwork): New. |
| (*push_multi): Allow thumb1; use push_mult_memory_operand. |
| * config/arm/predicates.md (push_mult_memory_operand): New. |
| |
| 2011-06-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sync.md (*stbar): Delete. |
| (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8. |
| |
| 2011-06-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-dom.c (initialize_hash_element): Fix oversight. |
| |
| 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove. |
| (TARGET_64BIT_DEFAULT): Define. |
| * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front |
| of tm_file. |
| * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define. |
| |
| 2011-06-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * common.opt (in_lto_p): New Variable entry. |
| * flags.h (in_lto_p): Move to common.opt. |
| * gcc.c: Include params.h. |
| (set_option_handlers): Also use common_handle_option and |
| target_handle_option. |
| (main): Call global_init_params, finish_params and init_options_struct. |
| * opts.c (debug_type_names): Move from toplev.c. |
| (print_filtered_help): Access quiet_flag through opts pointer. |
| (common_handle_option): Return early in the driver for some options. |
| Access in_lto_p, dwarf_version and warn_maybe_uninitialized through |
| opts pointer. |
| * toplev.c (in_lto_p): Move to common.opt. |
| (debug_type_names): Move to opts.c. |
| * Makefile.in (OBJS): Remove opts.o. |
| (OBJS-libcommon-target): Add opts.o. |
| (gcc.o): Update dependencies. |
| |
| 2011-06-28 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking. |
| |
| 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier |
| with '=' constraint modifier. |
| (*divdf3_vfp): Likewise. |
| ("*mulsf3_vfp"): Likewise. |
| ("*muldf3_vfp"): Likewise. |
| ("*mulsf3negsf_vfp"): Likewise. |
| ("*muldf3negdf_vfp"): Likewise. |
| |
| 2011-06-28 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker |
| relaxation when performing an incremental link. |
| |
| 2011-06-28 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-math-opts.c (execute_optimize_bswap): Search |
| within BB from last to first. |
| |
| 2011-06-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * genattr-common.c: New. Based on genattr.c. |
| * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h. |
| (MOSTLYCLEANFILES): Add insn-attr-common.h. |
| (opts.o): Update dependencies. |
| (.PRECIOUS): Add insn-attr-common.h. |
| (simple_rtl_generated_h): Add insn-attr-common.h. |
| (build/genattr-common.o): New. |
| (genprogrtl): Add attr-common. |
| * genattr.c (main): Include insn-attr-common.h. Don't generate |
| definitions of DELAY_SLOTS or INSN_SCHEDULING. |
| * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h. |
| |
| 2011-06-28 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config.gcc (tm_file): Add elfos.h and avr/elf.h for |
| avr-*-* and avr-*-rtems* targets. |
| |
| * config/avr/elf.h: New file. |
| (ASM_OUTPUT_BEFORE_CASE_LABEL): Define. |
| (TARGET_ASM_SELECT_SECTION): Define. |
| (INIT_SECTION_ASM_OP): Undefine. |
| (FINI_SECTION_ASM_OP): Undefine. |
| (READONLY_DATA_SECTION_ASM_OP): Undefine. |
| (PCC_BITFIELD_TYPE_MATTERS): Undefine. |
| (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine. |
| * config/avr/avr.h: |
| (PREFERRED_DEBUGGING_TYPE): Move to elf.h. |
| (TARGET_ASM_NAMED_SECTION): Move to elf.h. |
| (MAX_OFILE_ALIGNMENT): Move to elf.h. |
| (STRING_LIMIT): Move to elf.h. |
| (ASM_DECLARE_FUNCTION_NAME): Move to elf.h. |
| (ASM_DECLARE_OBJECT_NAME): Remove. |
| (ESCAPES): Remove. |
| (ASM_OUTPUT_SKIP): Remove. |
| (DWARF2_DEBUGGING_INFO): Remove. |
| (OBJECT_FORMAT_ELF): Remove. |
| (USER_LABEL_PREFIX): Remove. |
| (ASM_OUTPUT_EXTERNAL): Remove. |
| (ASM_OUTPUT_ASCII): Remove. |
| (TYPE_ASM_OP): Remove. |
| (SIZE_ASM_OP): Remove. |
| (WEAK_ASM_OP): Remove. |
| (STRING_ASM_OP): Remove. |
| (SET_ASM_OP): Remove. |
| (ASM_WEAKEN_LABEL): Remove. |
| (TYPE_OPERAND_FMT): Remove. |
| (ASM_DECLARE_FUNCTION_SIZE): Remove. |
| (ASM_FINISH_DECLARE_OBJECT): Remove. |
| (NO_DOLLAR_IN_LABEL): Remove. |
| (ASM_GENERATE_INTERNAL_LABEL): Remove. |
| (ASM_OUTPUT_CASE_LABEL): Remove. |
| * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use |
| ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON. |
| (gas_output_ascii): Remove. |
| (gas_output_limited_string): Remove. |
| (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove. |
| * config/avr/avr-protos.h |
| (gas_output_ascii): Remove prototye. |
| (gas_output_limited_string): Remove prototype. |
| |
| 2011-06-27 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/48637 |
| * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid |
| asm operands. |
| |
| 2011-06-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of |
| node instead of references in node. |
| |
| 2011-06-27 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition. |
| * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins |
| inside ifdef. |
| |
| 2011-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * c-decl.c (union lang_tree_node): Use it in chain_next expression. |
| |
| * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New. |
| * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call, |
| find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED. |
| * tree-ssa-ccp.c (bit_value_assume_aligned): New function. |
| (evaluate_stmt, execute_fold_all_builtins): Handle |
| BUILT_IN_ASSUME_ALIGNED. |
| * tree-ssa-dce.c (propagate_necessity): Likewise. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, |
| call_may_clobber_ref_p_1): Likewise. |
| * builtins.c (is_simple_builtin, expand_builtin): Likewise. |
| (expand_builtin_assume_aligned): New function. |
| * doc/extend.texi (__builtin_assume_aligned): Document. |
| |
| PR debug/49544 |
| * cselib.c (promote_debug_loc): If cselib_preserve_constants |
| and l has two DEBUG_INSN owned locs instead of just one, adjust |
| the second location's setting_insn too. |
| |
| 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR libmudflap/38738 |
| * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define. |
| |
| 2011-06-27 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert |
| bit position of highest bit set into a count of the high zero bits. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/48492 |
| * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list |
| to a NULL parent. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49394 |
| * passes.c (execute_one_pass): Restore current_pass after |
| applying IPA transforms. |
| |
| 2011-06-27 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-ssa-math-opts.c (do_shift_rotate): Zero bits |
| out of type precision after operation. |
| (find_bswap): Take for limit value the integer auto-promotion |
| into account. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the |
| forward scan as well. |
| |
| 2011-06-27 Tristan Gingold <gingold@adacore.com> |
| |
| PR target/44241 |
| * config/vms/vms-protos.h: New file. |
| * config/vms/vms-crtlmap.map: New file. |
| * config/vms/vms.c: New file. |
| * config/vms/make-crtlmap.awk: New file. |
| * config/vms/vms-crtl.h: File removed. |
| * config/vms/vms-crtl-64.h: File removed. |
| * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets. |
| * config/alpha/vms64.h: Do not include vms-crtl-64.h |
| * config/alpha/alpha.c (alpha_init_builtins): Remove code to |
| clear some builtins on VMS. Calls vms_patch_builtins. |
| (avms_asm_output_external): Remove. |
| * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove. |
| (struct crtl_name_spec): Remove |
| (DO_CTRL_NAMES): Remove. |
| * config/ia64/vms.h (struct crtl_name_spec): Remove |
| (DO_CTRL_NAMES): Remove. |
| * config/ia64/ia64.c (alpha_init_builtins): Remove code to |
| clear some builtins on VMS. Calls vms_patch_builtins. |
| (ia64_asm_output_external): Remove DO_CRTL_NAME. |
| * config/ia64/vms64.h: Do not include vms-crtl-64.h |
| * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file. |
| |
| 2011-06-27 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_end_function): Always generate .end |
| directive on VMS. |
| |
| 2011-06-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if |
| the function receives nonlocal gotos. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49536 |
| * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): |
| For non-scalar inner types use a scalar type according to |
| the scalar inner mode. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49365 |
| * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9. |
| |
| 2011-06-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49169 |
| * fold-const.c (get_pointer_modulus_and_residue): Don't rely on |
| the alignment of function decls. |
| |
| 2011-06-26 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/47997 |
| * config/darwin.c (darwin_mergeable_string_section): Place string |
| constants in '.cstring' rather than '.const' when CF/NSStrings are |
| active. |
| |
| 2011-06-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment. |
| (emit_save_register_window): Likewise. |
| (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables. |
| (sparc_flat_expand_prologue): Add comment. Always emit blockage. |
| Swap back %o7/%i7 in register naming. |
| |
| 2011-06-25 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR driver/49371 |
| * config/darwin.c (darwin_override_options): Improve warning when |
| mdynamic-no-pic is given together with fPIC/fpic, also warn when it |
| is given with fpie/fPIE. |
| * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC. |
| * config/darwin9.h (PIE_SPEC): New. |
| |
| 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * timevar.c (timevar_print): Increase width for display of timevar |
| name. |
| |
| 2011-06-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/46400 |
| * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT |
| instead of TYPE_CHAIN for chain_next for types. |
| |
| 2011-06-24 Richard Henderson <rth@redhat.com> |
| |
| * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove. |
| (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove. |
| * config/sparc/sparc.c (gen_create_flat_frame_1): Remove. |
| (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove. |
| (sparc_flat_expand_prologue): Emit individual instructions |
| instead of one of the above. |
| |
| 2011-06-24 Easwaran Raman <eraman@google.com> |
| |
| PR rtl-optimization/49429 |
| PR target/49454 |
| * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and |
| MEM_EXPR(y) addressable if emit_block_move_via_libcall is |
| used to copy y into x. |
| * calls.c (initialize_argument_information): Mark |
| an argument addressable if it is passed by invisible reference. |
| (emit_library_call_value_1): Mark MEM_EXPR (val) addressable |
| if it is passed by reference. |
| |
| 2011-06-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/49504 |
| * rtlanal.c (nonzero_bits1): Properly handle addition or |
| subtraction of a pointer in Pmode if pointers extend unsigned. |
| (num_sign_bit_copies1): Likewise. |
| |
| 2011-06-24 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimizations/49516 |
| * tree-sra.c (sra_modify_assign): Choose the safe path for |
| aggregate copies if we also did scalar replacements. |
| |
| 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/49335 |
| * config/arm/predicates.md (add_operator): New. |
| * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2. |
| |
| 2011-06-24 Andi Kleen <ak@linux.intel.com> |
| |
| * tree-sra.c (type_internals_preclude_sra_p): Add msg |
| parameter. Split up ifs and report reason in *msg. |
| (reject): Add. |
| (find_var_candiate): Add msg variable. |
| Split up ifs and report reason to reject. |
| (find_param_candidates): Add msg variable. |
| Pass msg to type_internals_preclude_sra_p. |
| |
| 2011-06-23 Jeff Law <law@redhat.com> |
| |
| PR middle-end/48770 |
| * reload.h (reload): Change to return a bool. |
| * ira.c (ira): If requested by reload, run a fast DCE pass after |
| reload has completed. Fix comment typo. |
| * reload1.c (need_dce): New file scoped static. |
| (reload): Set reload_completed here. Return whether or not a DCE |
| pass after reload is needed. |
| (delete_dead_insn): Set need_dce as needed. |
| |
| PR middle-end/49465 |
| * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition |
| to detect threading through joiner block. If there was already |
| an edge to the new target, then do not change the PHI nodes. |
| |
| 2011-06-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use |
| get_pointer_alignment to see if base isn't sufficiently aligned. |
| |
| 2011-06-23 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimize/49373 |
| * tree-pass.h (all_late_ipa_passes): Declare. |
| * cgraphunit.c (init_lowered_empty_function): Fix properties. |
| (cgraph_optimize): Execute late passes; remove unreachable funcions |
| after materialization. |
| * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or |
| LTOing. |
| * passes.c (all_late_ipa_passes): Declare. |
| (dump_passes, register_pass): Handle late ipa passes. |
| (init_optimization_passes): Move ipa_pta to late passes; schedule |
| fixup_cfg at beggining of all_passes. |
| (apply_ipa_transforms): New function. |
| (execute_one_pass): When doing simple ipa pass, apply all transforms. |
| |
| 2011-06-23 Joseph Myers <joseph@codesourcery.com> |
| |
| * params.c: Include common/common-target.h. Don't include tm.h. |
| (lang_independent_params): Move from toplev.c. |
| (global_init_params): New. |
| * params.h (global_init_params): Declare. |
| * target.def (default_params): Move to common-target.def. |
| * toplev.c (lang_independent_options): Remove. |
| (lang_independent_params): Move to params.c. |
| (general_init): Use global_init_params. |
| * common/common-target.def (option_default_params): Move from |
| target.def. |
| * common/config/ia64/ia64-common.c: Include params.h. |
| (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from ia64.c. |
| * common/config/rs6000/rs6000-common.c: Include params.h. |
| (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from rs6000.c. |
| * common/config/sh/sh-common.c: Include params.h. |
| (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from sh.c. |
| * common/config/spu/spu-common.c: Include params.h. |
| (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move |
| from spu.c. |
| * config/ia64/ia64.c (ia64_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c. |
| * config/rs6000/rs6000.c (rs6000_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c. |
| * config/sh/sh.c (sh_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c. |
| * config/spu/spu.c (spu_option_default_params, |
| TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c. |
| * Makefile.in (OBJS): Remove params.o. |
| (OBJS-libcommon-target): Add params.o. |
| (params.o, $(common_out_object_file)): Update dependencies. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-06-23 Alan Modra <amodra@gmail.com> |
| |
| PR bootstrap/49383 |
| * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph |
| invocation for 2011-06-09 changes. |
| |
| 2011-06-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libgomp/49490 |
| * omp-low.c (expand_omp_for_static_nochunk): Only |
| use n ceil/ nthreads size for the first n % nthreads threads in the |
| team instead of all threads except for the last few ones which |
| get less work or none at all. |
| |
| PR debug/49496 |
| * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug |
| uses. |
| |
| 2011-06-22 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49493 |
| * tree-ssa-structalias.c (get_constraint_for_ssa_var): |
| Refer to the alias target of variables. |
| (associate_varinfo_to_alias_1): Remove. |
| (ipa_pta_execute): Do not associate aliases with anything. |
| * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors. |
| (cgraph_function_node): Likewise. |
| (cgraph_function_or_thunk_node): Likewise. |
| (varpool_variable_node): Likewise. |
| |
| 2011-06-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo. |
| * config.gcc (arm*-*-linux*): Default to gnu tls. |
| (arm*-*-*): Add --with-tls option. |
| (all_defaults): Add 'tls'. |
| |
| 2011-06-22 Richard Henderson <rth@redhat.com> |
| |
| * reg-notes.def (REG_CFA_WINDOW_SAVE): New. |
| * dwarf2out.c (dwarf2out_frame_debug): Handle it. |
| (dwarf2out_frame_debug_cfa_window_save): Rename from |
| dwarf2out_window_save; make static. |
| * tree.h (dwarf2out_window_save): Don't declare. |
| |
| * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove. |
| (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove. |
| (emit_save_register_window): Rename from gen_save_register_window; |
| emit the insn and add REG_CFA_* notes. |
| (sparc_expand_prologue): Update to match. |
| * config/sparc/sparc.md (save_register_window_1): Simplify from |
| save_register_window<P:mode>. |
| |
| 2011-06-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/49497 |
| * config/i386/i386.md (*lea_general_2): Always allow SImode. |
| (*lea_general_2_zext): Likewise. |
| (imul to lea peepholes): Use const359_operand and check |
| TARGET_PARTIAL_REG_STALL. |
| |
| * config/i386/predicates.md (const359_operand): New. |
| |
| 2011-06-22 Michael Matz <matz@suse.de> |
| |
| * cgraphunit.c (assemble_thunk): Use correct return type. |
| |
| 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru> |
| Dmitry Melnik <dm@ispras.ru> |
| |
| * config/arm/arm.c (neon_immediate_valid_for_shift): New function. |
| (neon_output_shift_immediate): Ditto. |
| * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New |
| prototype. |
| (neon_output_shift_immediate): Ditto. |
| * config/arm/neon.md (vashl<mode>3): Modified constraint. |
| (vashr<mode>3_imm): New insn pattern. |
| (vlshr<mode>3_imm): Ditto. |
| (vashr<mode>3): Modified constraint. |
| (vlshr<mode>3): Ditto. |
| * config/arm/predicates.md (imm_for_neon_lshift_operand): New |
| predicate. |
| (imm_for_neon_rshift_operand): Ditto. |
| (imm_lshift_or_reg_neon): Ditto. |
| (imm_rshift_or_reg_neon): Ditto. |
| |
| * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr. |
| |
| 2011-06-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for |
| builtin calls even if likelyvalue is not CONSTANT. |
| Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC. |
| Return get_value_for_expr of first operand |
| for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle |
| BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like |
| their non-checking counterparts. |
| (call_may_clobber_ref_p_1): Likewise. |
| (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK |
| like their non-checking counterparts. |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): |
| Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK |
| like their non-checking counterparts. |
| (find_func_clobbers): Likewise. |
| * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK |
| like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC. |
| |
| * dwarf2out.c (size_of_loc_descr, output_loc_operands, |
| mark_base_types, hash_loc_operands, compare_loc_operands): Allow |
| DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead |
| of base type reference as argument. |
| (resolve_addr_in_expr): Likewise. Fix keep computation. |
| (convert_descriptor_to_signed): Renamed to... |
| (convert_descriptor_to_mode): ... this. For wider types convert to |
| unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped. |
| (typed_binop): New function. |
| (scompare_loc_descriptor, ucompare_loc_descriptor, |
| minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes |
| default to unsigned type instead of signed. |
| |
| PR debug/47858 |
| * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND. |
| (gimple_build_debug_source_bind_stat): New prototype. |
| (gimple_build_debug_source_bind): Define. |
| (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var, |
| gimple_debug_source_bind_get_value, |
| gimple_debug_source_bind_get_value_ptr, |
| gimple_debug_source_bind_set_var, |
| gimple_debug_source_bind_set_value): New inlines. |
| * gimple.c (gimple_build_debug_source_bind_stat): New function. |
| * gimple-pretty-print.c (dump_gimple_debug): Handle |
| GIMPLE_DEBUG_SOURCE_BIND. |
| * sese.c (rename_uses): Handle gimple_debug_source_bind_p. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. |
| * tree-parloops.c (eliminate_local_variables, |
| separate_decls_in_region): Likewise. |
| (separate_decls_in_region_debug): Renamed from |
| separate_decls_in_region_debug_bind. Handle |
| gimple_debug_source_bind_p. |
| * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New |
| prototypes. |
| (DECL_HAS_DEBUG_ARGS_P): Define. |
| (struct tree_function_decl): Add has_debug_args_flag field. |
| * tree.c (debug_args_for_decl): New variable. |
| (decl_debug_args_lookup, decl_debug_args_insert): New functions. |
| * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts. |
| (rewrite_debug_stmt_uses): New function. |
| (rewrite_stmt): Use it to rewrite debug stmt uses. |
| * rtl.def (DEBUG_PARAMETER_REF): New. |
| * rtl.h (DEBUG_PARAMETER_REF_DECL): Define. |
| * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle |
| DEBUG_PARAMETER_REF. |
| * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of |
| SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind |
| debug stmts in the first bb. |
| * tree-inline.c (remap_ssa_name): If remapping default def |
| of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in |
| a source bind debug stmt. |
| (remap_gimple_stmt): Handle gimple_debug_source_bind_p. |
| (maybe_move_debug_stmts_to_successors): Likewise. |
| (copy_debug_stmt): Likewise. Avoid shadowing a variable. |
| (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy |
| debug args vector from old_decl to new_decl. |
| * ipa-prop.c (ipa_modify_call_arguments): For optimized away |
| or modified parameters, add debug bind stmts before call |
| setting DEBUG_EXPR_DECL which is remembered in debug args vector. |
| * cfgexpand.c (expand_call_stmt): Call expand_debug_expr |
| on DECL_DEBUG_EXPRs from debug args vector. |
| (expand_debug_source_expr): New function. |
| (expand_debug_locations): Use it for source bind insns. |
| (expand_gimple_basic_block): Handle gimple_debug_source_bind_p. |
| * var-tracking.c (prepare_call_arguments): Add debug args |
| to call_arguments if any. |
| * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr, |
| output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr, |
| compare_loc_operands): Handle DW_OP_GNU_parameter_ref. |
| (get_ref_die_offset, parameter_ref_descriptor): New functions. |
| (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF. |
| (gen_subprogram_die): Handle parameters identified by |
| DEBUG_PARAMETER_REF. |
| |
| 2011-06-22 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * doc/invoke.texi (ARM Options): Document -mtls-dialect option. |
| * doc/install.texi (Configuration): Document --with-tls. |
| * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ. |
| (arm_call_tls_get_addr): Clean up. Assert not tls descriptor. |
| (arm_tls_descseq_addr): New. |
| (legitimize_tls_address): Add tlsdesc support. |
| (arm_cannot_copy_insn_p): Check for tlscall. |
| (arm_emit_tls_decoration): Likewise. |
| * config/arm/arm.h (TARGET_GNU2_TLS): New. |
| (OPTION_DEFAULT_SPECS): Add with-tls support. |
| * config/arm/arm.md (R1_REGNUM): Define. |
| (tlscall): New. |
| * config/arm/arm.opt (tls_type): New enumeration type and values. |
| (mtls-dialect): New switch. |
| * config/arm/arm-opts.h (enum tls_type): New. |
| |
| 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * attribs.c (register_attribute): Added assert to check that all |
| attribute specs are registered with a name that is not empty and |
| does not start with '_'. |
| (decl_attributes): Avoid the lookup of the "naked" attribute spec |
| if the function has no attributes. |
| * tree.c (is_attribute_with_length_p): Removed. |
| (is_attribute_p): Removed. |
| (private_is_attribute_p): New. |
| (private_lookup_attribute): New. |
| (lookup_attribute): Removed. |
| (lookup_ident_attribute): New. |
| (remove_attribute): Require the first argument to be in the form |
| 'text', not '__text__'. Updated asserts. |
| (merge_attributes): Use lookup_ident_attributes instead of |
| lookup_attribute. |
| (merge_dllimport_decl_attributes): Use remove_attribute. |
| (attribute_list_contained): Likewise. |
| (attribute_list_equal): Immediately return 1 if the arguments are |
| identical pointers. |
| * tree.h (is_attribute_p): Made inline. Return a 'bool', not an |
| 'int'. Require the first argument to be in the form 'text', not |
| '__text__'. Require the second argument to be an identifier. |
| (lookup_attribute): Made inline. Require the first argument to be |
| in the form 'text', not '__text__'. |
| (private_is_attribute_p, private_lookup_attribute): New. |
| Updated comments. |
| |
| 2011-06-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * builtins.c: Add sync_ or SYNC__ to builtin names. |
| * sync-builtins.def: Add sync_ or SYNC__ to builtin names. |
| * omp-low.c: Add sync_ or SYNC__ to builtin names. |
| |
| 2011-06-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/33049 |
| * config/avr/avr.md (extzv): New expander. |
| (*extzv): New insn. |
| (*extzv.qihi1, *extzv.qihi2): New insn-and-split. |
| * config/avr/constraints.md (C04): New constraint. |
| * doc/md.texi (Machine Constraints): Document it. |
| |
| 2011-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49489 |
| * builtins.c (expand_builtin_unop): Call expand_unop with 0 as |
| unsignedp argument instead of 1 for clrsb_optab. |
| (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT |
| and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*. |
| (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*. |
| * optabs.c (widen_leading): Call widen_operand and expand_unop |
| with 0 as unsignedp argument instead of 1 for clrsb_optab. |
| (expand_unop): Subtract difference of mode sizes also for clrsb_optab. |
| |
| 2011-06-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*jcindirect_jump): Fix build warning. |
| |
| 2011-06-21 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * gensupport.c (add_define_attr): New static function. |
| (is_predicable): Allow multi-alternative lists for the "predicable" |
| attribute. |
| (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions. |
| (process_one_cond_exec): Call alter_attrs_for_insn. |
| * doc/md.texi (Defining Attributes): Mention some standard names. |
| (Conditional Execution): Update documentation for "predicable". |
| |
| * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl, |
| __builtin_clrsbll): Document. |
| * doc/rtl.texi (clrsb): New entry. |
| * optabs.c (widen_leading): Renamed from widen_clz. New argument |
| UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab. |
| (expand_unop): Handle clrsb_optab. |
| (init_optabs): Initialize it. |
| * optabs.h (enum optab_index): New entry OTI_clrsb. |
| (clrsb_optab): Define. |
| * genopinit.c (optabs): Add an entry for it. |
| * builtins.c (expand_builtin): Handle clrsb builtin functions. |
| * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL, |
| BUILT_IN_CLRSBLL): New. |
| * rtl.def (CLRSB): New code. |
| * dwarf2out.c (mem_loc_descriptor): Handle it. |
| * simplify-rtx.c (simplify_const_unary_operation): Likewise. |
| Use op_mode rather than mode when optimizing ffs, clz, ctz, parity |
| and popcount. |
| * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions. |
| * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare. |
| (__ctzDI2): Move declaration. |
| * config/bfin/bfin.md (clrsbsi2): New expander. |
| (signbitssi2): Use the CLRSB rtx. |
| (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx. |
| * config/bfin/bfin.c (bdesc_1arg): Changed accordingly. |
| |
| 2011-06-21 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-inline-transform.c (inline_transform): Fix previous change. |
| |
| 2011-06-21 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49478 |
| * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR |
| with constant operand. |
| |
| 2011-06-21 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-inline-transform.c (inline_transform): Fix typo. |
| |
| 2011-06-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49483 |
| * tree-vect-stmts.c (vectorizable_assignment): Also handle |
| VIEW_CONVERT_EXPR conversions. |
| |
| 2011-06-21 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/avr/avr-mcus.def, config/avr/genopt.sh: New files. |
| * config/avr/avr-tables.opt: New file (generated). |
| * config.gcc (avr-*-*): Use avr/avr-tables.opt. |
| * config/avr/avr-devices.c (avr_mcu_types): Move contents to |
| avr-mcus.def. |
| * config/avr/avr.c (avr_help, TARGET_HELP): Remove. |
| (avr_option_override): Don't process -mmcu= argument here. Set |
| avr_current_device using avr_mcu_index. |
| (avr_file_start): Use avr_current_device->name instead of avr_mcu_name. |
| * config/avr/avr.opt (mmcu=): Use Enum. |
| * config/avr/t-avr (avr-devices.o): Update dependencies. |
| ($(srcdir)/config/avr/avr-tables.opt): New. |
| * target.def (help): Remove. |
| * doc/tm.texi.in (TARGET_HELP): Remove. |
| * doc/tm.texi: Regenerate. |
| * opts.c: Don't include target.h. |
| (common_handle_option): Don't call targetm.help. |
| * system.h (TARGET_HELP): Poison. |
| * Makefile.in (opts.o): Update dependencies. |
| |
| 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/usegld.h: New file. |
| * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove. |
| (CPP_SUBTARGET_SPEC): Remove -compat-bsd support. |
| (LIB_SPEC): Likewise. Search /lib. |
| (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support. |
| (RDYNAMIC_SPEC): Handle GNU ld. |
| [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC): |
| Define. |
| (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld. |
| (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define. |
| [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine. |
| (STACK_CHECK_STATIC_BUILTIN): Define. |
| * config/sol2.opt (compat-bsd): Remove. |
| * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef. |
| * config/sol2-bi.h: New file. |
| * config/sol2-gld.h: Remove. |
| * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS. |
| (NO_DBX_BNSYM_ENSYM): Remove. |
| (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove. |
| (STACK_CHECK_STATIC_BUILTIN): Remove. |
| Test USE_GLD instead of TARGET_GNU_LD. |
| * config/i386/sol2-10.h: Rename to ... |
| * config/i386/sol2-bi.h .. this. |
| (SUBTARGET_EXTRA_SPECS): Redefine. |
| (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove. |
| (MULTILIB_DEFAULTS): Remove. |
| (DEFAULT_ARCH32_P): Define. |
| (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove. |
| (ARCH64_SUBDIR): Define. |
| Test USE_GLD instead of TARGET_GNU_LD. |
| (I386_EMULATION): Rename to ... |
| (ARCH32_EMULATION): ... this. |
| (X86_64_EMULATION): Rename to ... |
| (ARCH64_EMULATION): ... this. |
| (TARGET_LD_EMULATION): Remove. |
| (LINK_ARCH_SPEC): Remove. |
| * config/i386/sol2-gas.h: Remove. |
| * config/i386/t-sol2-10: Rename to ... |
| * config/i386/t-sol2-64: ... this. |
| * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine. |
| (AS_SPARC64_FLAG): Define. |
| (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine. |
| (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine |
| depending on TARGET_CPU_DEFAULT. |
| (CPP_CPU_SPEC): Redefine. |
| (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P. |
| (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine. |
| (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine. |
| (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC, |
| ASM_ARCH_DEFAULT_SPEC): Redefine. |
| (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, |
| LINK_ARCH_DEFAULT_SPEC. |
| [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define. |
| [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine. |
| (ARCH64_SUBDIR): Define. |
| (LINK_ARCH64_SPEC): Redefine. |
| (CC1_SPEC): Redefine. |
| (OPTION_DEFAULT_SPECS): Redefine. |
| (MULTILIB_DEFAULTS): Define. |
| (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine. |
| [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine. |
| [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef. |
| (NO_DBX_BNSYM_ENSYM): Remove. |
| (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove. |
| (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS. |
| (TARGET_ASM_NAMED_SECTION): Likewise. |
| (STACK_CHECK_STATIC_BUILTIN): Remove. |
| * config/sparc/sol2-bi.h: Remove. |
| * config/sparc/sol2-gas-bi.h: Remove. |
| * config/sparc/sol2-gas.h: Remove. |
| * config/sparc/sol2-gld-bi.h: Remove. |
| * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move |
| common parts ... |
| (*-*-solaris2*): ... here. |
| |
| 2011-06-21 Christian Bruel <christian.bruel@st.com> |
| |
| PR other/43564 |
| * ipa-inline.c (can_inline_edge_p): Check |
| !DECL_DISREGARD_INLINE_LIMITS. |
| |
| 2011-06-21 Christian Bruel <christian.bruel@st.com> |
| |
| PR middle-end/49139 |
| * cgraphunit.c (process_function_and_variable_attributes): warn when |
| always_inline functions that are not inline. |
| * ipa-inline-transform.c (inline_transform): Always call |
| optimize_inline. |
| * tree-inline.c (tree_inlinable_function_p): Use error instead |
| of sorry. |
| (expand_call_inline): Likewise. |
| |
| 2011-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (dg_target_exps): Set. |
| (check_gcc_parallelize): Parallelize gcc testing into 10 jobs |
| instead of 7, try to divide it more evenly. |
| |
| 2011-06-20 Changpeng Fang <changpeng.fang@amd.com> |
| |
| PR target/49089 |
| * config/i386/i386.c (avx256_split_unaligned_load): New definition. |
| (avx256_split_unaligned_store): New definition. |
| (ix86_option_override_internal): Enable avx256 unaligned load/store |
| splitting only when avx256_split_unaligned_load/store is set. |
| |
| 2011-06-20 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (scan_rtx_reg): Handle the case where we write to an |
| open chain in a smaller mode without failing the entire block. |
| |
| 2011-06-21 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match |
| CONST high part large-toc address. |
| (rs6000_tls_referenced_p): Make static. |
| * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete. |
| |
| 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/49385 |
| * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast |
| one of the operands is a register. |
| |
| 2011-06-20 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (fold_binary_loc): Add missing folding for truth-not |
| operations in combination with binary and. |
| |
| 2011-06-20 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * regrename.c (do_replace): Don't update notes. |
| |
| 2011-06-20 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part |
| of toc-relative address in CONST. |
| (rs6000_delegitimize_address): Recognize changed address. |
| (rs6000_legitimize_reload_address): Likewise. |
| (rs6000_emit_move): Don't force these constants to memory. |
| * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of |
| toc-relative address in CONST. |
| (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise. |
| (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise. |
| |
| 2011-06-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * longlong.h (count_leading_zeros): Use long long builtin for x86-64. |
| (count_trailing_zeros): Likewise. |
| |
| 2011-06-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR other/49325 |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if |
| .init_array can be used with .ctors on targets. |
| * configure: Regenerated. |
| |
| 2011-06-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true |
| if the element type is volatile. |
| |
| 2011-06-18 Jan Hubicka <jh@suse.cz> |
| |
| * lto-symtab.c (lto_varpool_replace_node): Remove code handling |
| extra name aliases. |
| (lto_symtab_resolve_can_prevail_p): Likewise. |
| (lto_symtab_merge_cgraph_nodes): Update alias_of pointers. |
| * cgraphbuild.c (record_reference): Remove extra body alias code. |
| (mark_load): Likewise. |
| (mark_store): Likewise. |
| * cgraph.h (varpool_node): Remove extra_name filed; |
| add alias_of and extraname_alias. |
| (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare. |
| (varpool_alias_aliased_node): New inline function. |
| (varpool_variable_node): New function. |
| * cgraphunit.c (handle_alias_pairs): Handle also variable aliases. |
| * ipa-ref.c (ipa_record_reference): Allow aliases on variables. |
| * lto-cgraph.c (lto_output_varpool_node): Update streaming. |
| (input_varpool_node): Likewise. |
| * lto-streamer-out.c (produce_symtab): Remove extra name aliases. |
| (varpool_externally_visible_p): Remove extra body alias code. |
| (function_and_variable_visibility): Likewise. |
| * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function. |
| (ipa_pta_execute): Use it. |
| * varpool.c (varpool_remove_node): Remove extra name alias code. |
| (varpool_mark_needed_node): Likewise. |
| (varpool_analyze_pending_decls): Analyze aliases. |
| (assemble_aliases): New functoin. |
| (varpool_assemble_decl): Use it. |
| (varpool_create_variable_alias): New function. |
| (varpool_extra_name_alias): Rewrite. |
| (varpool_for_node_and_aliases): New function. |
| |
| 2011-06-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/49411 |
| * config/i386/i386.c (ix86_expand_multi_arg_builtins): If |
| last_arg_constant and last argument doesn't match its predicate, |
| for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3 |
| if it is CONST_INT, mask it, otherwise expand using rotl<mode>3. |
| (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix |
| spelling of error message. |
| * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi, |
| vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use |
| const_0_to_255_operand instead of const_int_operand. |
| |
| Revert: |
| 2011-05-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (blendbits): Remove mode attribute. |
| (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand |
| instead of const_0_to_<blendbits>_operand for operand 3 predicate. |
| Check integer value of operand 3 in insn constraint. |
| |
| 2011-06-17 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR rtl-optimization/48542 |
| * reload.c (find_equiv_reg): Stop looking when finding a |
| setjmp-type call. |
| * reload1.c (reload_as_needed): Invalidate all reload |
| registers when crossing a setjmp-type call. |
| |
| 2011-06-16 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (struct redirection_data): New field |
| intermediate_edge. |
| (THREAD_TARGET2): Define. |
| (redirection_data_eq): Also check that the intermediate edge is equal. |
| (lookup_redirection_data): Drop useless argument. Extract the |
| outgoing_edge and intermediate edge from E. Callers updated. |
| (copy_phi_args, update_destination_phis): New functions. |
| (fix_duplicate_block_edges): Likewise. |
| (create_edge_and_update_destination_phis): Duplicate all the edges |
| hung off e->aux. Use copy_phi_args. |
| (create_duplicates): Use fix_duplicate_block_edges. |
| (fixup_template_block): Likewise. |
| (redirect_edges): If necessary, redirect the joiner block's incoming |
| edge to the duplicate of the joiner block. |
| (thread_block): Don't muck up loops when threading through a joiner |
| block. |
| (thread_through_loop_header): Handle threading through a joiner block. |
| (mark_threaded_blocks, register_jump_thread): Likewise. |
| * tree-flow.h (register_jump_thread): Add new argument. Callers |
| updated. |
| * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function. |
| (thread_across_edge): Handle threading through a joiner block. |
| |
| 2011-06-16 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/49343 |
| * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to |
| calculate offset, provide 2nd operand for the new COMPONENT_REF. |
| |
| 2011-06-16 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin-protos.h (machopic_select_rtx_section): Move to |
| inside RTX_CODE ifdef. |
| |
| 2011-06-16 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): |
| Disallow NULL pointer for pointer arithmetic. |
| |
| 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/49398 |
| Revert. |
| 2011-06-10 Wei Guozhi <carrot@google.com> |
| |
| PR target/45335 |
| * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da, |
| stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns. |
| (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and |
| related peephole2. |
| (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and |
| related peephole2. |
| * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype. |
| (arm_legitimate_ldrd_p): New prototype. |
| (arm_output_ldrd): New prototype. |
| * config/arm/arm.c (arm_check_ldrd_operands): New function. |
| (arm_legitimate_ldrd_p): New function. |
| (arm_output_ldrd): New function. |
| |
| 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| PR middle-end/46500 |
| * doc/tm.texi.in: Update Copyright date. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_setup_incoming_varargs): Replace |
| CUMULATIVE_ARGS* argument type with cumulative_args_t. |
| (default_pretend_outgoing_varargs_named): Likewise. |
| (hook_pass_by_reference_must_pass_in_stack): Likewise. |
| (hook_callee_copies_named): Likewise. |
| (default_function_arg_advance): Likewise. |
| (default_function_arg): Likewise. |
| (default_function_incoming_arg): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_false): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_true): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. |
| (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise. |
| * targhooks.h (default_setup_incoming_varargs): Likewise. |
| (default_pretend_outgoing_varargs_named): Likewise. |
| (hook_pass_by_reference_must_pass_in_stack): Likewise. |
| (hook_callee_copies_named): Likewise. |
| (default_function_arg_advance): Likewise. |
| (default_function_arg): Likewise. |
| (default_function_incoming_arg): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_false): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_true): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. |
| (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise. |
| * target.def (pass_by_reference): Likewise. |
| (setup_incoming_varargs, strict_argument_naming): Likewise. |
| (pretend_outgoing_varargs_named, callee_copies): Likewise. |
| (arg_partial_bytes, function_arg_advance, function_arg): Likewise. |
| (function_incoming_arg): Likewise. |
| * target.h: Don't include "tm.h" . |
| (cumulative_args_t): New typedef. |
| [GCC_TM_H] (get_cumulative_args): New static inline function. |
| [GCC_TM_H] (pack_cumulative_args): Likewise. |
| * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS* |
| argument type with cumulative_args_t. |
| (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise. |
| (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise. |
| * config/frv/frv.c (frv_setup_incoming_varargs): Likewise. |
| (frv_arg_partial_bytes, frv_function_arg): Likewise. |
| (frv_function_incoming_arg, frv_function_arg_advance): Likewise. |
| (frv_function_arg_1): Likewise. |
| * config/s390/s390.c (s390_pass_by_reference): Likewise. |
| (s390_function_arg_advance, s390_function_arg): Likewise. |
| * config/m32c/m32c.c (m32c_function_arg): Likewise. |
| (m32c_pass_by_reference, m32c_function_arg_advance): Likewise. |
| (m32c_strict_argument_naming): Likewise. |
| * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise. |
| (spu_function_arg_advance): Likewise. |
| (spu_setup_incoming_varargs): Likewise. Make static. |
| * config/spu/spu-protos.h (spu_setup_incoming_varargs): |
| Remove prototype. |
| * config/sparc/sparc.c (sparc_strict_argument_naming): Replace |
| CUMULATIVE_ARGS* argument type with cumulative_args_t. |
| (sparc_pass_by_reference, sparc_function_arg_advance): Likewise. |
| (sparc_function_arg, sparc_function_incoming_arg): Likewise. |
| (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise. |
| * config/mep/mep.c (mep_setup_incoming_varargs): Likewise. |
| (mep_pass_by_reference, mep_function_arg): Likewise. |
| (mep_function_arg_advance): Likewise. |
| * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. |
| (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise. |
| (m32r_function_arg, m32r_function_arg_advance): Likewise. |
| * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise. |
| * config/i386/i386.c (ix86_function_arg_advance): Likewise. |
| (ix86_function_arg, ix86_pass_by_reference): Likewise. |
| (ix86_setup_incoming_varargs): Likewise. |
| * config/sh/sh.c (sh_setup_incoming_varargs): Likewise. |
| (sh_strict_argument_naming): Likewise. |
| (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise. |
| (sh_callee_copies, sh_arg_partial_bytes): Likewise. |
| (sh_function_arg_advance, sh_function_arg): Likewise. |
| * config/pdp11/pdp11.c (pdp11_function_arg): Likewise. |
| (pdp11_function_arg_advance): Likewise. |
| * config/microblaze/microblaze.c (microblaze_function_arg_advance): |
| Likewise. |
| (microblaze_function_arg, function_arg_partial_bytes): Likewise. |
| * config/avr/avr.c (avr_function_arg): Likewise. |
| (avr_function_arg_advance): Likewise. |
| * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise. |
| (xtensa_function_arg, xtensa_function_incoming_arg): Likewise. |
| (xtensa_function_arg_1): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_function_arg_advance): |
| Likewise. |
| (xstormy16_function_arg): Likewise. |
| * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise. |
| (fr30_arg_partial_bytes, fr30_function_arg): Likewise. |
| (fr30_function_arg_advance): Likewise. |
| * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. |
| (lm32_function_arg, lm32_function_arg_advance): Likewise. |
| * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise. |
| (moxie_function_arg, moxie_function_arg_advance): Likewise. |
| (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise. |
| * config/cris/cris.c (cris_setup_incoming_varargs): Likewise. |
| (cris_pass_by_reference, cris_arg_partial_bytes): Likewise. |
| (cris_function_arg, cris_function_incoming_arg): Likewise. |
| (cris_function_arg_advance, cris_function_arg_1): Likewise. |
| * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise. |
| (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise. |
| (iq2000_function_arg, iq2000_function_arg_advance): Likewise. |
| * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise. |
| (mn10300_function_arg, mn10300_function_arg_advance): Likewise. |
| (mn10300_arg_partial_bytes): Likewise. |
| * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise. |
| (ia64_arg_partial_bytes, ia64_function_arg): Likewise. |
| (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise. |
| (ia64_function_arg_1): Likewise. |
| * config/m68k/m68k.c (m68k_function_arg_advance): Likewise. |
| (m68k_function_arg): Likewise. |
| * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise. |
| (rs6000_function_arg, setup_incoming_varargs): Likewise. |
| (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise. |
| * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise. |
| (picochip_function_arg, picochip_incoming_function_arg): Likewise. |
| (picochip_arg_advance): Likewise. |
| * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise. |
| (mcore_arg_partial_bytes, mcore_function_arg): Likewise. |
| (mcore_function_arg_advance): Likewise. |
| * config/score/score.c (score_pass_by_reference): Likewise. |
| (score_function_arg_advance): Likewise. |
| (score_arg_partial_bytes): Likewise. Make static. |
| * config/score/score-protos.h (score_arg_partial_bytes): Don't declare. |
| * config/arm/arm.c (arm_arg_partial_bytes): Replace |
| CUMULATIVE_ARGS* argument type with cumulative_args_t. |
| (arm_function_arg, arm_function_arg_advance): Likewise. |
| (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise. |
| * config/pa/pa.c (pa_pass_by_reference): Likewise. |
| (pa_arg_partial_bytes, pa_function_arg_advance): Likewise. |
| (pa_function_arg): Likewise. |
| * config/mips/mips.c (mips_strict_argument_naming): Likewise. |
| (mips_function_arg, mips_function_arg_advance): Likewise. |
| (mips_arg_partial_bytes, mips_pass_by_reference): Likewise. |
| (mips_callee_copies, mips_setup_incoming_varargs): Likewise. |
| * config/vax/vax.c (vax_function_arg): Likewise. |
| (vax_function_arg_advance): Likewise. |
| * config/h8300/h8300.c (h8300_function_arg): Likewise. |
| (h8300_function_arg_advance): Likewise. |
| * config/v850/v850.c (v850_pass_by_reference): Likewise. |
| (v850_strict_argument_naming, v850_function_arg): Likewise. |
| (v850_arg_partial_bytes, v850_function_arg_advance): Likewise. |
| (v850_setup_incoming_varargs): Likewise. |
| * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise. |
| (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise. |
| (mmix_function_arg, mmix_pass_by_reference): Likewise. |
| (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type |
| with const void *. |
| * config/bfin/bfin.c (setup_incoming_varargs): Replace |
| CUMULATIVE_ARGS* argument type with cumulative_args_t. |
| (bfin_function_arg_advance, bfin_function_arg): Likewise. |
| (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise. |
| * calls.c (emit_call_1): Change type of args_so_far to |
| cumulative_args_t. Changed all callers. |
| (initialize_argument_information): Likewise. |
| (expand_call, emit_library_call_value_1): Use pack_cumulative_args. |
| * dse.c (get_call_args): Likewise. |
| * expr.c (block_move_libcall_safe_for_call_parm): Likewise. |
| * function.c (pass_by_reference, reference_callee_copied): Likewise. |
| (struct assign_parm_data_all): Rename args_so_far to args_so_far_v. |
| New member args_so_far_v. Changed all users. |
| * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args. |
| * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise. |
| * config/mips/mips.c (mips_output_args_xfer): Likewise. |
| * config/s390/s390.c (s390_call_saved_register_used): Likewise. |
| * config/sh/sh.c (sh_output_mi_thunk): Likewise. |
| * config/microblaze/microblaze.c (microblaze_expand_prologue): |
| Likewise. |
| * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed |
| m32r_pass_by_reference. |
| |
| 2011-06-16 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.h (vect_recog_func_ptr): Change the first |
| argument to be a VEC of statements. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the |
| assert that pattern statements have to have their vector type set. |
| * tree-vect-patterns.c (vect_recog_widen_sum_pattern): |
| Change the first argument to be a VEC of statements. Update |
| documentation. |
| (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise. |
| (vect_handle_widen_mult_by_const): New function. |
| (vect_recog_widen_mult_pattern): Change the first argument to be a |
| VEC of statements. Update documentation. Check that the constant is |
| INTEGER_CST. Support multiplication by a constant that fits an |
| intermediate type - call vect_handle_widen_mult_by_const. |
| (vect_pattern_recog_1): Update vect_recog_func_ptr and its |
| call. Handle additional pattern statements if necessary. |
| |
| 2011-06-16 Nick Clifton <nickc@redhat.com> |
| |
| PR target/49427 |
| * config.gcc: Set cpu_type to v850 for any V850 architecture. |
| (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file, |
| md_file, extra_modes, out_file and extra_options are these are all |
| deduced from cpu_type. |
| |
| 2011-06-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift |
| truncation mask to 63. |
| |
| 2011-06-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/49313 |
| PR target/29524 |
| * longlong.h: Add AVR support: |
| (count_leading_zeros): New macro. |
| (count_trailing_zeros): New macro. |
| (COUNT_LEADING_ZEROS_0): New macro. |
| * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2, |
| _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2, |
| _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2, |
| _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3. |
| (LIB2FUNCS_EXCLUDE): Add _clz. |
| * config/avr/libgcc.S (XCALL): Move up in file. |
| (XJMP): New C Macro. |
| (DEFUN): New asm macro. |
| (ENDF): New asm macro. |
| (__ffssi2): New function. |
| (__ffshi2): New function. |
| (__loop_ffsqi2): New function. |
| (__ctzsi2): New function. |
| (__ctzhi2): New function. |
| (__clzdi2): New function. |
| (__clzsi2): New function. |
| (__clzhi2): New function. |
| (__paritydi2): New function. |
| (__paritysi2): New function. |
| (__parityhi2): New function. |
| (__parityqi2): New function. |
| (__popcounthi2): New function. |
| (__popcountsi2): New function. |
| (__popcountdi2): New function. |
| (__popcountqi2): New function. |
| (__bswapsi2): New function. |
| (__bswapdi2): New function. |
| (__ashldi3): New function. |
| (__ashrdi3): New function. |
| (__lshrdi3): New function. |
| Fix suspicous lines. |
| |
| 2011-06-16 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (canonicalize_cond_expr_cond): (bool)x is not |
| the same as x != 0. |
| * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0 |
| to (bool) X & 1. |
| * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow |
| equality compares against zero for the lower bit. |
| |
| 2011-06-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49419 |
| * tree-vrp.c (execute_vrp): Call init_range_assertions |
| before estimate_numbers_of_iterations, call |
| free_number_of_iterations_estimates before calling |
| remove_range_assertions. |
| |
| 2011-06-16 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (struct ps_insn): Remove row_rest_count field. |
| (struct partial_schedule): Add rows_length field. |
| (verify_partial_schedule): Check rows_length. |
| (ps_insert_empty_row): Handle rows_length. |
| (create_partial_schedule): Likewise. |
| (free_partial_schedule): Likewise. |
| (reset_partial_schedule): Likewise. |
| (create_ps_insn): Remove rest_count argument. |
| (remove_node_from_ps): Update rows_length. |
| (add_node_to_ps): Update rows_length and call create_ps_insn |
| without passing row_rest_count. |
| (rotate_partial_schedule): Update rows_length. |
| |
| 2011-06-16 Revital Eres <revital.eres@linaro.org> |
| |
| * ddg.c (add_intra_loop_mem_dep): New function. |
| (build_intra_loop_deps): Call it. |
| |
| 2011-06-13 Jeff Law <law@redhat.com> |
| |
| * df-problems.c (df_lr_local_compute): Manually CSE |
| PIC_OFFSET_TABLE_REGNUM. |
| * df-scan.c (df_get_regular_block_artificial_uses): Likewise. |
| (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (handle_alias_pairs): New function. |
| (cgraph_finalize_compilation_unit): Use it. |
| * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names |
| as externally visible. |
| |
| 2011-06-15 Richard Guenther <rguenther@suse.de> |
| |
| * expr.c (expand_expr_real_2): Reduce all integral types to |
| bitfield precision. |
| (expand_expr_real_1): Likewise. |
| |
| 2011-06-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/48613 |
| * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if |
| ipa_node_params_vector is NULL. |
| |
| 2011-06-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49382 |
| * dwarf2out.c (dw_loc_list_node): Add force field. |
| (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming |
| location in the list, even if it is modified before first real insn. |
| (output_loc_list): Emit empty ranges with force flag set. |
| (dw_loc_list): If first range of a PARM_DECL is empty, set force flag. |
| |
| 2011-06-15 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR target/49349 |
| * sel-sched.c (find_place_for_bookkeeping): Add new parameter |
| (fence_to_rewind). Use it to notice when bookkeeping will be placed |
| above a fence. Update comments. |
| (generate_bookkeeping_insn): Rewind fence when bookkeeping code is |
| placed just above it. Do not allow NULL place_to_insert. |
| |
| 2011-06-15 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove. |
| (slpeel_tree_peel_loop_to_edge): Don't call |
| remove_dead_stmts_from_loop. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Don't |
| remove irrelevant pattern statements. For irrelevant statements |
| check if it is the last statement of a detected pattern, use |
| corresponding pattern statement instead. |
| (destroy_loop_vec_info): No need to remove pattern statements, |
| only free stmt_vec_info. |
| (vect_transform_loop): For irrelevant statements check if it is |
| the last statement of a detected pattern, use corresponding |
| pattern statement instead. |
| * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert |
| pattern statements. Set basic block for the new statement. |
| (vect_pattern_recog): Update documentation. |
| * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan |
| operands of pattern statements. |
| (vectorizable_call): Fix printing. In case of a pattern statement |
| use the lhs of the original statement when creating a dummy |
| statement to replace the original call. |
| (vect_analyze_stmt): For irrelevant statements check if it is |
| the last statement of a detected pattern, use corresponding |
| pattern statement instead. |
| * tree-vect-slp.c (vect_schedule_slp_instance): For pattern |
| statements use gsi of the original statement. |
| |
| 2011-06-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to |
| common/common-target-def.h. |
| * target.def (default_target_flags, handle_option, |
| supports_split_stack, optimization_table, init_struct, |
| except_unwind_info, unwind_tables_default, have_named_sections): |
| Move to common/common-target.def. |
| * target.h (enum opt_levels, struct default_options): Move to |
| common/common-target.h. |
| * targhooks.c (default_except_unwind_info, |
| dwarf2_except_unwind_info, sjlj_except_unwind_info, |
| default_target_handle_option, empty_optimization_table): Move to |
| common/common-targhooks.c. |
| * targhooks.h (default_except_unwind_info, |
| dwarf2_except_unwind_info, sjlj_except_unwind_info, |
| default_target_handle_option, empty_optimization_table): Move to |
| common/common-targhooks.h. |
| * common/common-target-def.h: Include common/common-targhooks.h. |
| (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION |
| defined. |
| * common/common-target.def (handle_option, option_init_struct, |
| option_optimization_table, default_target_flags, |
| except_unwind_info, supports_split_stack, unwind_tables_default, |
| have_named_sections): Move from target.def. |
| (HOOK_PREFIX): Undefine at end of file. |
| * common/common-target.h: Include input.h. |
| (enum opt_levels, struct default_options): Move from target.h. |
| * common/common-targhooks.c, common/common-targhooks.h: New. |
| * config.gcc (target_has_targetm_common): Default to yes. |
| (moxie*): Set target_has_targetm_common=no. |
| (hppa*-*-*): Don't set target_has_targetm_common=yes. |
| * doc/tm.texi: Regenerate. |
| * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H). |
| (C_TARGET_DEF_H): Add common/common-targhooks.h. |
| (GCC_OBJS): Remove vec.o. |
| (OBJS): Remove hooks.o and vec.o. |
| (OBJS-libcommon-target): Add vec.o, hooks.o and |
| common/common-targhooks.o. |
| (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o, |
| tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o, |
| expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o, |
| cfglayout.o, $(out_object_file), $(common_out_object_file)): |
| Update dependencies. |
| (common/common-targhooks.o): New. |
| * common/config/default-common.c: Include tm.h. Add FIXME comment. |
| * common/config/pa/pa-common.c: Include more headers. Take |
| copyright dates from pa.c. |
| (pa_option_optimization_table, pa_handle_option, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_HANDLE_OPTION): Move from pa.c. |
| * common/config/alpha/alpha-common.c, |
| common/config/arm/arm-common.c, common/config/avr/avr-common.c, |
| common/config/bfin/bfin-common.c, |
| common/config/cris/cris-common.c, |
| common/config/fr30/fr30-common.c, common/config/frv/frv-common.c, |
| common/config/h8300/h8300-common.c, |
| common/config/i386/i386-common.c, |
| common/config/ia64/ia64-common.c, |
| common/config/iq2000/iq2000-common.c, |
| common/config/lm32/lm32-common.c, |
| common/config/m32c/m32c-common.c, |
| common/config/m32r/m32r-common.c, |
| common/config/m68k/m68k-common.c, |
| common/config/mcore/mcore-common.c, |
| common/config/mep/mep-common.c, |
| common/config/microblaze/microblaze-common.c, |
| common/config/mips/mips-common.c, |
| common/config/mmix/mmix-common.c, |
| common/config/mn10300/mn10300-common.c, |
| common/config/pdp11/pdp11-common.c, |
| common/config/picochip/picochip-common.c, |
| common/config/rs6000/rs6000-common.c, |
| common/config/rx/rx-common.c, common/config/s390/s390-common.c, |
| common/config/score/score-common.c, common/config/sh/sh-common.c, |
| common/config/sparc/sparc-common.c, |
| common/config/spu/spu-common.c, common/config/v850/v850-common.c, |
| common/config/vax/vax-common.c, |
| common/config/xstormy16/xstormy16-common.c, |
| common/config/xtensa/xtensa-common.c: New. |
| * config/alpha/alpha.c: Include common/common-target.h. |
| (alpha_option_optimization_table, alpha_handle_option, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c. |
| * config/arm/arm-protos.h (arm_except_unwind_info): Declare. |
| * config/arm/arm.c (arm_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to |
| arm-common.c. |
| * config/avr/avr.c (avr_option_optimization_table, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move |
| to avr-common.c. |
| * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h. |
| (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION, |
| TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c. |
| * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c. |
| * config/cris/cris.c (cris_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to |
| cris-common.c. |
| * config/fr30/fr30.c (fr30_option_optimization_table, |
| TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move |
| to fr30-common.c. |
| * config/frv/frv.c (frv_option_optimization_table, |
| MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c. |
| * config/h8300/h8300.c (h8300_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c. |
| * config/i386/i386-protos.h (ix86_handle_option): Declare. |
| * config/i386/i386.c: Include common/common-target.h. |
| (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET, |
| OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET, |
| OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET, |
| OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET, |
| OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET, |
| OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET, |
| OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET, |
| OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET, |
| OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET, |
| OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET, |
| OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET, |
| OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET, |
| OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET, |
| OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET, |
| OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET, |
| OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET, |
| OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET, |
| OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET, |
| OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET, |
| OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET, |
| OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET, |
| OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET, |
| OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET, |
| OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET, |
| OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET, |
| OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET, |
| OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET, |
| OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET, |
| OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option, |
| ix86_option_optimization_table, ix86_option_init_struct, |
| ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to |
| i386-common.c. |
| * config/i386/t-i386 (i386.o): Update dependencies. |
| * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare. |
| * config/ia64/ia64.c (ia64_option_optimization_table, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| ia64_handle_option): Move to ia64-common.c. |
| * config/iq2000/iq2000.c (iq2000_option_optimization_table, |
| TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c. |
| * config/lm32/lm32.c (lm32_option_optimization_table, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move |
| to lm32-common.c. |
| * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to |
| m32c-common.c. |
| * config/m32r/m32r.c (m32r_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO, |
| m32r_handle_option): Move to m32r-common.c. |
| (m32r_memory_move_cost): Remove comment referring to |
| TARGET_HANDLE_OPTION. |
| * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option): |
| Move to m68k-common.c. |
| * config/mcore/mcore.c (mcore_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c. |
| * config/mep/mep.c (mep_option_optimization_table, |
| mep_handle_option, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS): |
| Move to mep-common.c. |
| * config/microblaze/microblaze.c |
| (microblaze_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c. |
| * config/mips/mips.c (mips_handle_option, |
| mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to |
| mips-common.c. |
| * config/mmix/mmix.c (mmix_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE): |
| Move to mmix-common.c. |
| * config/mn10300/mn10300.c (mn10300_option_optimization_table, |
| mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c. |
| * config/pa/pa.c: Include common/common-target.h. |
| (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| pa_handle_option): Move to pa-common.c. |
| (pa_option_override): Use targetm_common.except_unwind_info. |
| (pa_asm_output_mi_thunk, pa_function_section): Use |
| targetm_common.have_named_sections. |
| * config/pdp11/pdp11.c (pdp11_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT, |
| pdp11_handle_option, pdp11_option_init_struct): Move to |
| pdp11-common.c. |
| * config/picochip/picochip.c (picochip_option_optimization_table, |
| TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c. |
| * config/rs6000/rs6000.c: Include common/common-target.h. |
| (rs6000_option_optimization_table, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct, |
| rs6000_handle_option): Move to rs6000-common.c. |
| * config/rs6000/t-rs6000 (rs6000.o): Update dependencies. |
| * config/rx/rx.c (rx_handle_option, rx_option_optimization_table, |
| TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c. |
| * config/s390/s390.c (processor_flags_table, |
| s390_option_optimization_table, s390_option_init_struct, |
| s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE, |
| TARGET_OPTION_INIT_STRUCT): Move to s390-common.c. |
| * config/s390/s390.h (processor_flags_table): Declare. |
| * config/score/score.c (score_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS, |
| score_handle_option): Move to score-common.c. |
| * config/sh/sh.c (sh_option_optimization_table, |
| TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION, |
| sh_handle_option, sh_option_init_struct): Move to sh-common.c. |
| * config/sparc/sparc.c: Include common/common-target.h. |
| (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c. |
| * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO, |
| spu_option_init_struct): Move to spu-common.c. |
| * config/stormy16/stormy16.c (xstorym16_option_optimization_table, |
| TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c. |
| * config/v850/v850.c (small_memory_physical_max, |
| v850_handle_memory_optionn v850_handle_option, |
| v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS, |
| TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to |
| v850-common.c. |
| * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c. |
| * config/xtensa/xtensa.c (xtensa_option_optimization_table, |
| TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE): |
| Move to xtensa-common.c. |
| * cfglayout.c: Include common/common-target.h. |
| (fixup_reorder_chain): Use targetm_common.have_named_sections. |
| * cfgrtl.c: Include common/common-target.h. |
| (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use |
| targetm_common.have_named_sections. |
| * dbxout.c: Include common/common-target.h. |
| (dbxout_function_end): Use targetm_common.have_named_sections. |
| * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use |
| targetm_common.except_unwind_info. |
| * dwarf2out.c: Include common/common-target.h. |
| (dwarf2out_do_frame, dwarf2out_do_cfi_asm, |
| dwarf2out_begin_prologue, dwarf2out_frame_init, |
| dwarf2out_frame_finish, dwarf2out_assembly_start): Use |
| targetm_common.except_unwind_info. |
| * except.c: Include common/common-target.h. |
| (init_eh, finish_eh_generation, |
| output_one_function_exception_table): Use |
| targetm_common.except_unwind_info. |
| (switch_to_exception_section): Use targetm_common.have_named_sections. |
| * explow.c: Include common/common-target.h. |
| * expr.c: Include common/common-target.h. |
| (build_personality_function): Use targetm_common.except_unwind_info. |
| * function.c: Include common/common-target.h. |
| (expand_function_end): Use targetm_common.except_unwind_info. |
| * haifa-sched.c: Include common/common-target.h. |
| (sched_create_recovery_edges): Use targetm_common.have_named_sections. |
| * lto-opts.c: Include common/common-target.h instead of target.h. |
| (lto_reissue_options): Use targetm_common.handle_option. |
| * opts.c: Include common/common-target.h. |
| (target_handle_option): Use targetm_common.handle_option. |
| (init_options_struct): Update comment referring to |
| targetm.target_option.optimization. Use |
| targetm_common.default_target_flags, |
| targetm_common.unwind_tables_default and |
| targetm_common.option_init_struct. |
| (default_options_optimization): Use |
| targetm_common.option_optimization_table. |
| (finish_options): Use targetm_common.except_unwind_info, |
| targetm_common.unwind_tables_default, |
| targetm_common.have_named_sections and |
| targetm_common.supports_split_stack. |
| * toplev.c: Include common/common-target.h. |
| (process_options): Use targetm_common.have_named_sections. |
| * tree-tailcall.c: Include common/common-target.h. |
| (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info. |
| * tree.c: Include common/common-target.h. |
| (build_common_builtin_nodes): Use targetm_common.except_unwind_info. |
| * varasm.c: Include common/common-target.h. |
| (resolve_unique_section, hot_function_section, |
| default_function_section): Use targetm_common.have_named_sections. |
| |
| 2011-06-14 Easwaran Raman <eraman@google.com> |
| |
| PR rtl-optimization/44194 |
| * dse.c: Include tree-flow.h |
| (insn_info): Add new field non_frame_wild_read. |
| (group_info): Add new fields escaped_n and escaped_p. |
| (kill_on_calls): New variable. |
| (get_group_info): Initialize gi->escaped_n and gi->escaped_p. |
| (dse_step0): Initialize kill_on_calls. |
| (can_escape): New function. |
| (set_usage_bits): Add additional parameter; record information |
| about escaped locations. |
| (record_store): Pass EXPR corresponding to MEM to set_usage_bits. |
| (dse_step2_nospill): Set kill_on_calls based on |
| group->escaped_n and group->escaped_n. |
| (add_wild_read): Refactor into... |
| (reset_active_stores): ... New function, and |
| (free_read_records): ... New function. |
| (add_non_frame_wild_read): New function. |
| (scan_insn): Call add_non_frame_wild_read on non-const calls. |
| (scan_reads_nospill): Handle instructions with non_frame_wild_read. |
| (dse_step5_nospill): Call scan_reads_nospill for instructions |
| marked as non_frame_wild_read. |
| (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps. |
| |
| 2011-06-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * common/common-target-def.h, common/common-target.def, |
| common/common-target.h, common/config/default-common.c, |
| common/config/pa/pa-common.c: New files. |
| * Makefile.in (common_out_file, common_out_object_file, |
| COMMON_TARGET_H, COMMON_TARGET_DEF_H): New. |
| (OBJS-libcommon-target): Include $(common_out_object_file). |
| (prefix.o): Update dependencies. |
| ($(common_out_object_file), common/common-target-hooks-def.h, |
| s-common-target-hooks-def-h): New. |
| (s-tm-texi): Also check timestamp on common-target.def. |
| (build/genhooks.o): Update dependencies. |
| * config.gcc (common_out_file, target_has_targetm_common): Define. |
| * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with |
| TARGET_ALWAYS_STRIP_DOTDOT. |
| * configure.ac (common_out_object_file): Define. |
| (common_out_file, common_out_object_file): Substitute. |
| (common): Create directory. |
| * configure: Regenerate. |
| * doc/tm.texi.in (targetm_common): Document. |
| (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry. |
| * doc/tm.texi: Regenerate. |
| * genhooks.c (hook_array): Also include common/common-target.def. |
| * prefix.c (tm.h): Don't include. |
| (common/common-target.h): Include. |
| (ALWAYS_STRIP_DOTDOT): Don't define. |
| (update_path): Use targetm_common.always_strip_dotdot instead of |
| ALWAYS_STRIP_DOTDOT. |
| * system.h (ALWAYS_STRIP_DOTDOT): Poison. |
| |
| 2011-06-14 David Li <davidxl@google.com> |
| |
| * passes.c (execute_function_todo): Remove TODO_dump_func. |
| (execute_one_pass): Remove TODO_dump_func. |
| (execute_function_dump): New function. |
| * tree-vrp.c: Remove TODO_dump_func. |
| * regrename.c: Remove TODO_dump_func. |
| * fwprop.c: Remove TODO_dump_func. |
| * tree-into-ssa.c: Remove TODO_dump_func. |
| * tree-complex.c: Remove TODO_dump_func. |
| * tracer.c: Remove TODO_dump_func. |
| * tree-loop-distribution.c: Remove TODO_dump_func. |
| * postreload-gcse.c: Remove TODO_dump_func. |
| * postreload.c: Remove TODO_dump_func. |
| * tree-ssa-loop-ch.c: Remove TODO_dump_func. |
| * tree-tailcall.c: Remove TODO_dump_func. |
| * ipa-cp.c: Remove TODO_dump_func. |
| * final.c: Remove TODO_dump_func. |
| * tree-emutls.c: Remove TODO_dump_func. |
| * omp-low.c: Remove TODO_dump_func. |
| * tree-ssa-dse.c: Remove TODO_dump_func. |
| * tree-ssa-uncprop.c: Remove TODO_dump_func. |
| * auto-inc-dec.c: Remove TODO_dump_func. |
| * reorg.c: Remove TODO_dump_func. |
| * tree-ssa-copyrename.c: Remove TODO_dump_func. |
| * tree-ssa-ccp.c: Remove TODO_dump_func. |
| * compare-elim.c: Remove TODO_dump_func. |
| * mode-switching.c: Remove TODO_dump_func. |
| * modulo-sched.c: Remove TODO_dump_func. |
| * tree-call-cdce.c: Remove TODO_dump_func. |
| * cse.c: Remove TODO_dump_func. |
| * web.c: Remove TODO_dump_func. |
| * tree-stdarg.c: Remove TODO_dump_func. |
| * lto-streamer-out.c: Remove TODO_dump_func. |
| * tree-ssa-math-opts.c: Remove TODO_dump_func. |
| * tree-ssa-dom.c: Remove TODO_dump_func. |
| * tree-nrv.c: Remove TODO_dump_func. |
| * loop-init.c: Remove TODO_dump_func. |
| * gimple-low.c: Remove TODO_dump_func. |
| * ipa-inline.c: Remove TODO_dump_func. |
| * tree-ssa-sink.c: Remove TODO_dump_func. |
| * jump.c: Remove TODO_dump_func. |
| * ifcvt.c: Remove TODO_dump_func. |
| * tree-ssa-loop.c: Remove TODO_dump_func. |
| * recog.c: Remove TODO_dump_func. |
| * dse.c: Remove TODO_dump_func. |
| * tree-ssa-ifcombine.c: Remove TODO_dump_func. |
| * matrix-reorg.c: Remove TODO_dump_func. |
| * tree-eh.c: Remove TODO_dump_func. |
| * regmove.c: Remove TODO_dump_func. |
| * function.c: Remove TODO_dump_func. |
| * tree-vectorizer.c: Remove TODO_dump_func. |
| * ipa-split.c: Remove TODO_dump_func. |
| * gcse.c: Remove TODO_dump_func. |
| * tree-if-conv.c: Remove TODO_dump_func. |
| * init-regs.c: Remove TODO_dump_func. |
| * tree-ssa-phiopt.c: Remove TODO_dump_func. |
| * implicit-zee.c: Remove TODO_dump_func. |
| * lower-subreg.c: Remove TODO_dump_func. |
| * bt-load.c: Remove TODO_dump_func. |
| * tree-dfa.c: Remove TODO_dump_func. |
| * except.c: Remove TODO_dump_func. |
| * emit-rtl.c: Remove TODO_dump_func. |
| * store-motion.c: Remove TODO_dump_func. |
| * cfgexpand.c: Remove TODO_dump_func. |
| * tree-cfgcleanup.c: Remove TODO_dump_func. |
| * cfgcleanup.c: Remove TODO_dump_func. |
| * tree-ssa-pre.c: Remove TODO_dump_func. |
| * tree-sra.c: Remove TODO_dump_func. |
| * tree-mudflap.c: Remove TODO_dump_func. |
| * tree-ssa-copy.c: Remove TODO_dump_func. |
| * cfglayout.c: Remove TODO_dump_func. |
| * tree-ssa-forwprop.c: Remove TODO_dump_func. |
| * tree-ssa-dce.c: Remove TODO_dump_func. |
| * ira.c: Remove TODO_dump_func. |
| * tree-ssa.c: Remove TODO_dump_func. |
| * integrate.c: Remove TODO_dump_func. |
| * tree-optimize.c: Remove TODO_dump_func. |
| * tree-ssa-phiprop.c: Remove TODO_dump_func. |
| * tree-object-size.c: Remove TODO_dump_func. |
| * combine.c: Remove TODO_dump_func. |
| * bb-reorder.c: Remove TODO_dump_func. |
| * cprop.c: Remove TODO_dump_func. |
| * var-tracking.c: Remove TODO_dump_func. |
| * tree-profile.c: Remove TODO_dump_func. |
| * tree-vect-generic.c: Remove TODO_dump_func. |
| * reg-stack.c: Remove TODO_dump_func. |
| * sched-rgn.c: Remove TODO_dump_func. |
| * tree-ssa-structalias.c: Remove TODO_dump_func. |
| * tree-switch-conversion.c: Remove TODO_dump_func. |
| * tree-cfg.c: Remove TODO_dump_func. |
| * tree-ssa-reassoc.c: Remove TODO_dump_func. |
| * combine-stack-adj.c: Remove TODO_dump_func. |
| * dce.c: Remove TODO_dump_func. |
| * tree-ssanames.c: Remove TODO_dump_func. |
| * regcprop.c: Remove TODO_dump_func. |
| |
| 2011-06-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/47364 |
| * builtins.c (expand_builtin_strlen): Expand strlen to Pmode |
| and properly handle result not in Pmode. |
| |
| 2011-06-14 Robert Millan <rmh@gnu.org> |
| |
| * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'. |
| * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with |
| `config/linux.h'. |
| |
| * config/i386/kfreebsd-gnu64.h: New file. |
| * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h' |
| with `i386/kfreebsd-gnu64.h'. |
| |
| * config/i386/linux64.h (GNU_USER_LINK_EMULATION32) |
| (GNU_USER_LINK_EMULATION64): New macros. |
| * config/i386/gnu-user64.h (LINK_SPEC): Rely on |
| `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead |
| of hardcoding `elf_i386' and `elf_x86_64'. |
| |
| 2011-06-14 Nick Clifton <nickc@redhat.com> |
| |
| PR target/49403 |
| * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter. |
| |
| PR target/49402 |
| * config.gcc(v850*-*-*): Avoid duplication of v850.opt. |
| |
| 2011-06-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/49103 |
| * tree.h (DECL_NONSHAREABLE): Define. |
| (struct tree_decl_common): Change decl_common_unused to |
| decl_nonshareable_flag. |
| * cfgexpand.c (expand_used_vars_for_block, clear_tree_used): |
| Ignore vars with DECL_NONSHAREABLE bit set. |
| * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE |
| on stores to automatic aggregate vars. |
| |
| PR rtl-optimization/49390 |
| Revert: |
| 2010-06-29 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare |
| MEM_ALIAS_SET. |
| |
| 2011-06-14 Zdenek Dvorak <ook@ucw.cz> |
| Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate): |
| Document changed semantics. |
| (max_stmt_executions, max_stmt_executions_int): Declare. |
| * tree-data-ref.c (estimated_loop_iterations) |
| (estimated_loop_iterations_int): Move functions... |
| * tree-ssa-loop-niter.c (estimated_loop_iterations) |
| (estimated_loop_iterations_int): here. |
| (record_estimate): Change nb_iterations_upper_bound and |
| nb_iterations_estimate semantics. |
| (max_stmt_executions, max_stmt_executions_int): New function. |
| * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ... |
| (max_stmt_executions_tree): this. |
| (analyze_miv_subscript): Use max_stmt_executions_tree instead of |
| estimated_loop_iterations_tree. |
| tree-ssa-loop-ivopts.c (avg_loop_niter): Use |
| max_stmt_executions_int instead of estimated_loop_iterations_int. |
| * predict.c (predict_loops): Idem. |
| * tree-parloops.c (parallelize_loops): Idem. |
| * tree-data-ref.c (analyze_siv_subscript_cst_affine) |
| (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine) |
| (init_omega_for_ddr_1): Idem. |
| * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse) |
| (loop_prefetch_arrays): Idem |
| * graphite-sese-to-poly.c (build_loop_iteration_domains): Use |
| max_stmt_executions instead of estimated_loop_iterations. |
| * tree-data-ref.c (estimated_loop_iterations_tree): Idem. |
| * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations |
| instead of nb_iterations_upper_bound. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type. |
| |
| 2011-06-14 Richard Henderson <rth@redhat.com> |
| |
| PR debug/48459 |
| * dwarf2out.c (frame_pointer_fb_offset_valid): New. |
| (based_loc_descr): Assert it's true. |
| (compute_frame_pointer_to_fb_displacement): Set it, rather than |
| aborting immediately. |
| |
| 2011-06-14 Sanjin Liu <scliu@faraday-tech.com> |
| Mingfeng Wu <mingfeng@faraday-tech.com> |
| |
| * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY |
| similarly to DECL_COMDAT. |
| * cgraphunit.c (cgraph_analyze_function): Likewise. |
| * ipa.c (function_and_variable_visibility): Likewise. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output |
| BINFO_VIRTUALS when streaming for ltrans unit. |
| |
| 2011-06-13 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic. |
| (movdi_internal64): Same. |
| |
| 2011-06-13 Edmar Wienskoski <edmar@freescale.com> |
| |
| PR target/44618 |
| * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with |
| a set of similar patterns, where the MATCH_OPERAND for the function |
| argument is replaced with individual references to hardware registers. |
| (save_fpregs_<mode>): Ditto |
| (restore_gpregs_<mode>): Ditto |
| (return_and_restore_gpregs_<mode>): Ditto |
| (return_and_restore_fpregs_<mode>): Ditto |
| (return_and_restore_fpregs_aix_<mode>): Ditto |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-utils.c (postorder_stack): New structure. |
| (ipa_reverse_postorder): Handle aliases. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (reset_edge_caches): Walk aliases. |
| (update_caller_keys): Do not test inlinability of aliases. |
| * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias. |
| (do_estimate_growth): Fix typo. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from... |
| (can_remove_node_now_p): ... here; handle same comdat groups. |
| (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO. |
| (inline_call): Update use of can_remove_node_now_p. |
| |
| 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com> |
| |
| * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added |
| condition to disallow non-identical memory locations. |
| (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give |
| preference to bit manipulation instructions. |
| |
| 2011-06-13 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_for_node_thunks_and_aliases, |
| cgraph_for_node_and_aliases): Fix thinko in recursive walking. |
| (nonremovable_p): New function. |
| (cgraph_can_remove_if_no_direct_calls_p): New function. |
| (used_from_object_file_p): New functoin. |
| (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for |
| references from aliases. |
| * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline. |
| * ipa-inline.c (check_caller_edge): New function. |
| (want_inline_function_called_once_p): Use it; accept aliases called |
| once, too. |
| * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME. |
| |
| 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/48454 |
| * config/arm/neon.md (vec_pack_trunc): Set the lengths |
| correctly for the case with Quad vectors. |
| |
| 2011-06-13 Jakub Jelinek <jakub@redhat.com> |
| Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49352 |
| * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at |
| all, make sure loop_use_stmt after the loop is a def stmt of a used |
| SSA_NAME that is the only one defined inside of the loop. Don't |
| check for COND_EXPR and GIMPLE_BINARY_RHS. |
| (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if |
| check_reduction is true. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49373 |
| * ipa.c (cgraph_externally_visible_p): Check resolution info. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/48836 |
| * ipa-inline-transform.c: Include tree-pass.h |
| (inline_transform): Set TODO_update_ssa_only_virtuals. |
| * Makefile.in (ipa-inline-transform.o): Add tree-pass.h. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49378 |
| * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out |
| aliases and thunks. |
| |
| 2011-06-12 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent): |
| Take number of iterations to peel into account for equally frequent |
| misalignment values. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer-out.c (produce_symtab): Stream out the newly |
| represented aliases. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting |
| varying args. |
| (ipa_update_after_lto_read): Likewise. |
| (ipa_write_node_info): Do not sream call_with_var_arguments. |
| (ipa_read_node_info): Likewise. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto. |
| |
| 2011-06-11 Jan Hubicka <jh@suse.cz> |
| |
| * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code. |
| (lto_symtab_resolve_can_prevail_p): Likewise. |
| (lto_symtab_merge_cgraph_nodes): Update merging of aliases. |
| * cgraph.c (same_body_aliases_done): New global var. |
| (cgraph_same_body_alias_1): Rename to ... |
| (cgraph_create_function_alias): ... this one; reorg to new |
| representation. |
| (cgraph_same_body_alias): Use cgraph_create_function_alias; |
| record references when asked to. |
| (cgraph_add_thunk): Fix formating. |
| (cgraph_get_node): Kill same body alias code. |
| (cgraph_node_for_asm): Likewise. |
| (cgraph_remove_same_body_alias): Remove. |
| (cgraph_remove_node): Kill same body alias code. |
| (cgraph_mark_address_taken_node): Mark also the aliased function |
| as having address taken. |
| (dump_cgraph_node): Dump same body aliases. |
| (cgraph_for_node_thunks_and_aliases): Update for new alias |
| representation. |
| (cgraph_for_node_and_aliases): Likewise. |
| * cgraph.h (same_body): Kll pointer. |
| (same_body_alias): Update comment. |
| (same_body_aliases_done): Declare. |
| (cgraph_remove_same_body_alias): Remove declaration. |
| (cgraph_create_function_alias): Declare. |
| (cgraph_process_same_body_aliases): Declare. |
| (cgraph_function_with_gimple_body_p): Check for alias. |
| (cgraph_can_remove_if_no_direct_calls_p): Look for aliases. |
| (cgraph_alias_aliased_node): New function. |
| (cgraph_function_node): Update for new aliases. |
| (cgraph_function_or_thunk_node): Likewise. |
| * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases. |
| (inline_call): Remove dead aliases. |
| * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler |
| name hack for same body aliases. |
| (clone_of_p): Look through aliases. |
| (verify_cgraph_node): Verify aliases. |
| (cgraph_analyze_function): Analyze aliases; fixup C++ bugs. |
| (cgraph_process_same_body_aliases): New function. |
| (process_function_and_variable_attributes): Disable weakref warning on |
| alias. |
| (cgraph_analyze_functions): Handle aliases. |
| (cgraph_mark_functions_to_output): Handle aliases same way as thunks. |
| (assemble_thunks): Rename to ... |
| (assemble_thunks_and_aliases): ... this one; handle aliases, too. |
| (cgraph_expand_function): Remove alias output code. |
| (cgraph_output_in_order): Skip aliases. |
| (cgraph_preserve_function_body_p): Aliases don't need preserving. |
| * ipa-ref.c (ipa_ref_use_name): Add alias reference. |
| (ipa_record_reference): Do not assert on alias references. |
| (ipa_ref_has_aliases_p): New function. |
| * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS. |
| (ipa_ref_has_aliases_p): Declare. |
| * lto-cgraph.c (lto_output_node): Handle aliases. |
| (input_node): Likewise. |
| * lto-streamer-out.c (lto_output): Skip aliases. |
| (produce_symtab): Kill same_body_alias code. |
| * ipa-utils.c (ipa_reverse_postorder): Add FIXME. |
| (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p. |
| * ipa-inline.c (update_caller_keys): Walk aliases. |
| (inline_small_functions): Fix thinko in previous patch. |
| * ipa.c (cgraph_externally_visible_p): Do not walk aliases. |
| (function_and_variable_visibility): Do not walk same body aliases. |
| * tree-ssa-structalias.c (associate_varinfo_to_alias): New function. |
| (ipa_pta_execute): Use it. |
| |
| 2011-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register. |
| (*vec_dupv2df): Rename from vec_dupv2df. |
| (vec_dupv2df): New expander. |
| |
| 2011-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P. |
| |
| 2011-06-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md: Use default value in "isa" attribute. |
| * config/i386/sse.md: Ditto. |
| * config/i386/mmx.md: Ditto. |
| |
| 2011-06-10 Wei Guozhi <carrot@google.com> |
| |
| PR target/45335 |
| * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da, |
| stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns. |
| (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and |
| related peephole2. |
| (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and |
| related peephole2. |
| * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype. |
| (arm_legitimate_ldrd_p): New prototype. |
| (arm_output_ldrd): New prototype. |
| * config/arm/arm.c (arm_check_ldrd_operands): New function. |
| (arm_legitimate_ldrd_p): New function. |
| (arm_output_ldrd): New function. |
| |
| 2011-06-10 David Li <davidxl@google.com> |
| |
| * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump. |
| * passes.c (passr_eq): New function. |
| (create_pass_tab): New function. |
| (pass_traverse): New function. |
| (dump_one_pass): New function. |
| (dump_pass_list): New function. |
| (dump_passes): New function. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after |
| setting the nothrow flag. |
| * ipa-reference.c (propagate): Skip aliases. |
| * ipa-pure-const.c (propagate_pure_const): Skip aliases. |
| (propagate_nothrow): Skip aliases; do not update cgraph. |
| (local_pure_const): Do not update cgraph. |
| * tree-profile.c (tree_profiling): Do fixup_cfg. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa.c (cgraph_non_local_node_p_1): Break out from ...; |
| (cgraph_local_node_p): ... here; handle aliases. |
| (has_addr_references_p): Break out from ...; |
| (cgraph_remove_unreachable_nodes) ... here. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * opts.c (default_options): Enlist OPT_finline_functions_called_once. |
| * common.opt (flag_inline_functions_called_once): Do not |
| initialize to 1. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable. |
| (ipcp_initialize_node_lattices): Do not deal with aliases; |
| Do not try to propagate through thunks. |
| (ipcp_change_tops_to_bottom): Do not deal with aliases. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-prop.c (ipa_write_node_info): Stream jump functions |
| for indirect calls. |
| (ipa_read_node_info): Likewise. |
| |
| 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR lto/49302 |
| * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup. |
| (build_and_insert_call): Likewise. |
| (build_and_insert_ref): New. |
| (gimple_expand_builtin_pow): Minor cleanup. |
| (gimple_expand_builtin_cabs): New. |
| (execute_cse_sincos): Add case for BUILT_IN_CABS. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable. |
| (ipcp_cloning_candidate_p): Aliases are not clonning candidates. |
| (ipcp_initialize_node_lattices): We don't propagate through an aliases. |
| (ipcp_propagate_stage): Skip aliases when propagating. |
| (ipcp_need_redirect_p): Skip aliases. |
| (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and |
| collect_callers_of_node. |
| * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures |
| for aliases. |
| (ipa_compute_jump_functions): Look through aliases. |
| |
| 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it. |
| |
| 2011-06-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES. |
| Adjust comments. |
| * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-cp.c (ipcp_process_devirtualization_opportunities): |
| Update call of gimple_get_virt_method_for_binfo. |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove |
| refuse_thunks parameter. |
| (gimple_fold_call): Update. |
| * ipa-prop.c (try_make_edge_direct_virtual_call): Update. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ... |
| (not_all_callers_have_enough_arguments_p): ... this one; turn into |
| worker for cgraph_for_node_and_aliases. |
| (convert_callers_for_node): Break out from ... |
| (convert_callers): ... here. |
| (modify_function): Use collect_callers_of_node. |
| (ipa_early_sra): Use cgraph_for_node_and_aliases. |
| |
| 2011-06-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49361 |
| * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0) |
| when not already in gimple form. |
| |
| 2011-06-10 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/49344 |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Use |
| FOR_EACH_PHI_OR_STMT_USE. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (can_remove_node_now_p): Move out of... |
| (clone_inlined_nodes): ... here. |
| (inline_call): Use cgraph_function_or_thunk_node; redirect edge |
| to real destination prior inlining. |
| * ipa-inline.c (caller_growth_limits, can_inline_edge_p, |
| can_early_inline_edge_p, want_early_inline_function_p, |
| want_early_inline_function_p, want_inline_small_function_p, |
| want_inline_self_recursive_call_p, want_inline_function_called_once_p, |
| edge_badness, update_all_callee_keys, lookup_recursive_calls, |
| add_new_edges_to_heap, inline_small_functions, flatten_function, |
| inline_always_inline_functions, early_inline_small_functions): Use |
| cgraph_function_or_thunk_node. |
| * ipa-inline-analysis.c (evaluate_conditions_for_edge, |
| dump_inline_edge_summary, estimate_function_body_sizes): Likewise. |
| (do_estimate_edge_growth_1): Break out from ... |
| (do_estimate_growth) ... here; walk aliases. |
| (inline_generate_summary): Skip aliases. |
| |
| 2011-06-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts |
| forward when combining, visit inserted stmts when a stmt was changed. |
| |
| 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * tree.h (error_operand_p): Add. |
| * dbxout.c (dbxout_type_fields): Use the latter. |
| * c-decl.c (add_stmt): Likewise. |
| * gimplify.c (omp_add_variable, omp_notice_variable, |
| gimplify_scan_omp_clauses): Likewise. |
| |
| 2011-06-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c (avr_function_arg_advance): Fix thinko about |
| when a value is actually passed in regs. |
| |
| 2011-06-10 Eric Botcazou <ebotcazou@adacore.com> |
| Laurent Rougé <laurent.rouge@menta.fr> |
| |
| * doc/invoke.texi (SPARC options): Add -mflat. |
| * config/sparc/sparc.opt: Likewise. |
| * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter. |
| (sparc_flat_expand_prologue): Declare. |
| (sparc_flat_expand_epilogue): Likewise. |
| * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float. |
| (CPP_ENDIAN_SPEC): Replace with... |
| (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float. |
| (CPP_SPEC): Adjust to above change. |
| (EXTRA_SPECS): Likewise. |
| (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling. |
| (INCOMING_REGNO): Likewise. |
| (OUTGOING_REGNO): Likewise. |
| (LOCAL_REGNO): Likewise. |
| (SETUP_FRAME_ADDRESSES): Likewise. |
| (FIXED_REGISTERS): Set 0 for %fp. |
| (CALL_USED_REGISTERS): Likewise. |
| (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf. |
| (EXIT_IGNORE_STACK): Define to 1 unconditionally. |
| (RETURN_ADDR_REGNUM): Define. |
| (RETURN_ADDR_RTX): Use it. |
| (INCOMING_RETURN_ADDR_REGNUM): Define. |
| (INCOMING_RETURN_ADDR_RTX): Use it. |
| (DWARF_FRAME_RETURN_COLUMN): Likewise. |
| (EH_RETURN_REGNUM): Define. |
| (EH_RETURN_STACKADJ_RTX): Use it. |
| (EH_RETURN_HANDLER_RTX): Delete. |
| (EPILOGUE_USES): Use them and add TARGET_FLAT handling. |
| * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs): |
| Delete. |
| (struct machine_function): Add frame_size, apparent_frame_size, |
| frame_base_reg, frame_base_offset, n_global_fp_regs and |
| save_local_in_regs_p fields. |
| (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg, |
| sparc_frame_base_offset, sparc_n_global_fp_regs, |
| sparc_save_local_in_regs_p): New macros. |
| (sparc_option_override): Error out if -fcall-saved-REG is specified |
| for Out registers. |
| (eligible_for_restore_insn): Fix formatting. |
| (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling. |
| (eligible_for_sibcall_delay): Likewise. |
| (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter. |
| (sparc_legitimate_address_p): Adjust to above change. |
| (save_global_or_fp_reg_p): New predicate. |
| (return_addr_reg_needed_p): Likewise. |
| (save_local_or_in_reg_p): Likewise. |
| (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling. |
| (SORR_SAVE, SORR_RESTORE): Delete. |
| (sorr_pred_t): New typedef. |
| (sorr_act_t): New enum. |
| (save_or_restore_regs): Rename to... |
| (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH |
| parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P, |
| ACTION_TRUE and ACTION_FALSE parameters. Implement more general |
| mechanism. Add CFI information for double-word saves in 32-bit mode. |
| (emit_adjust_base_to_offset): New function extracted from... |
| (emit_save_or_restore_regs): ...this. Rename the rest to... |
| (emit_save_or_restore_regs_global_fp_regs): ...this. |
| (emit_save_or_restore_regs_local_in_regs): New function. |
| (gen_create_flat_frame_[123]): New functions. |
| (sparc_expand_prologue): Use SIZE local variable. Adjust. |
| (sparc_flat_expand_prologue): New function. |
| (sparc_asm_function_prologue): Add TARGET_FLAT handling. |
| (sparc_expand_epilogue): Use SIZE local variable. Adjust. |
| (sparc_flat_expand_epilogue): New function. |
| (sparc_can_use_return_insn_p): Add TARGET_FLAT handling. |
| (output_return): Likewise. |
| (output_sibcall): Likewise. |
| (sparc_output_mi_thunk): Likewise. |
| (sparc_frame_pointer_required): Likewise. |
| (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf |
| function optimization. |
| * config/sparc/sparc.md (flat): New attribute. |
| (prologue): Add TARGET_FLAT handling. |
| (save_register_window): Disable if TARGET_FLAT. |
| (create_flat_frame_[123]): New patterns. |
| (epilogue): Add TARGET_FLAT handling. |
| (sibcall_epilogue): Likewise. |
| (eh_return): New expander. |
| (eh_return_internal): New insn and splitter. |
| (return_internal): Add TARGET_FLAT handling. |
| (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM. |
| (save_stack_nonlocal): Use RETURN_ADDR_REGNUM. |
| (nonlocal_goto): Add TARGET_FLAT handling. |
| * config/sparc/t-elf: Add -mflat multilib. |
| * config/sparc/t-leon: Likewise. |
| |
| 2011-06-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node. |
| * ipa-pure-const.c (analyze_function): Aliases don't need analysis. |
| (self_recursive_p): Use cgraph_function_node. |
| (propagate_pure_const): Likewise. |
| (propagate_nothrow): Likewise. |
| * ipa-reference.c (ipa_reference_get_not_read_global): Use |
| cgraph_function_node. |
| (propagate_bits): Likewise. |
| (propagate): Likewise. |
| |
| 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used. |
| * config/arm/vfp.md (*arm_movdi_vfp): Delete. |
| (*thumb2_movdi_vfp): Delete. |
| (*arm_movdi_vfp_cortexa8): Delete. |
| (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp. |
| (*movdi_vfp_cortexa8): Likewise. |
| |
| 2011-06-10 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (initialize_sizetypes): Give names to all |
| sizetype kinds. |
| |
| 2011-06-10 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49318 |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Remove |
| irrelevant pattern statements. |
| |
| 2011-06-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| * system.h (SETJMP_VIA_SAVE_AREA): Poison. |
| |
| PR bootstrap/49354 |
| * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast |
| to last assignment. |
| |
| 2011-06-09 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline; |
| do not recompute reachable flag. |
| (cgraph_finalize_function, cgraph_analyze_functions): Set |
| redefined_extern_inline here. |
| |
| 2011-06-09 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ... |
| (cgraph_only_called_directly_p): ... this one; bring offline. |
| (resolution_used_from_other_file_p, cgraph_used_from_object_file_p, |
| varpool_used_from_object_file_p): Drop names from the declaratoin. |
| (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases, |
| collect_callers_of_node): New. |
| (cgraph_function_node, cgraph_function_or_thunk_node): New functions. |
| (cgraph_edge_recursive_p): Use cgraph_function_node. |
| * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias. |
| (cgraph_node_cannot_be_local_p_1): Break out from ... |
| (cgraph_node_can_be_local_p): ... here; walk aliases. |
| (cgraph_for_node_thunks_and_aliases): New function. |
| (cgraph_for_node_and_aliases): New function. |
| (cgraph_make_node_local_1): Break out from ... |
| (cgraph_make_node_local) ... here; use |
| cgraph_for_node_thunks_and_aliases. |
| (cgraph_set_nothrow_flag_1): Break out from ... |
| (cgraph_set_nothrow_flag) ... here; |
| use cgraph_for_node_thunks_and_aliases. |
| (cgraph_set_const_flag_1): Break out from ... |
| (cgraph_set_const_flag) ... here; |
| use cgraph_for_node_thunks_and_aliases. |
| (cgraph_set_pure_flag_1): Break out from ... |
| (cgraph_set_pure_flag) ... here; |
| use cgraph_for_node_thunks_and_aliases. |
| (cgraph_propagate_frequency_1): Break out from ... |
| (cgraph_propagate_frequency) ... here; use |
| cgraph_for_node_thunks_and_aliases. |
| (cgraph_used_from_object_file_p): Do not care about aliases. |
| (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p): |
| New functions. |
| (collect_callers_of_node_1, collect_callers_of_node): New functions. |
| |
| 2011-06-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR rtl-optimization/49154 |
| * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM. |
| (enum reg_class): Add SRP_REGS and MOF_SRP_REGS. |
| (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS) |
| (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit. |
| * config/cris/cris.h (cris_register_move_cost): Remove |
| !TARGET_V32 code. Tweak comments. |
| |
| 2011-06-09 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphbuild.c (record_eh_tables): Mark personality function as having |
| address taken. |
| |
| 2011-06-10 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR rtl-optimization/49154 |
| * ira-costs.c (setup_regno_cost_classes_by_mode): If there already |
| is a matching slot in the hashtable, assign it to classes_ptr. |
| |
| PR rtl-optimization/49154 |
| * doc/tm.texi.in (Register Classes): Document rule for the narrowest |
| register classes. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49307 |
| * config/sh/sh.md (UNSPEC_CHKADD): New. |
| (chk_guard_add): New define_insn_and_split. |
| (symGOT_load): Use chk_guard_add instead of blockage. |
| |
| 2011-06-09 Kai Tietz <ktietz@redhat.com> |
| |
| * libgcc2.c (L_trampoline): Include windows.h for mingw targets. |
| |
| 2011-06-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (return_internal): Adjust 'length' attribute. |
| |
| 2011-06-09 Wei Guozhi <carrot@google.com> |
| |
| PR target/46975 |
| * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern. |
| (peephole2 for conditional move): Generate 16 bit instructions. |
| |
| 2011-06-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdi_internal_rex64): Merge |
| alternatives 6 and 8. |
| |
| 2011-06-09 David Li <davidxl@google.com> |
| |
| * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump. |
| * passes.c (passr_eq): New function. |
| (create_pass_tab): New function. |
| (pass_traverse): New function. |
| (dump_one_pass): New function. |
| (dump_pass_list): New function. |
| (dump_passes): New function. |
| |
| 2011-06-09 David Li <davidxl@google.com> |
| |
| * tree-complex.c (tree_lower_complex): Gate cleanup. |
| * tree-stdarg.c (check_all_va_list_escapes): Ditto. |
| (execute_optimize_stdarg): Ditto. |
| * tree-eh.c (execute_lower_eh_dispatch): Ditto. |
| (execute_cleanup_eh_1): Ditto. |
| (execute_cleanup_eh): Ditto. |
| * gcse.c (gate_rtl_pre): Ditto. |
| (execute_rtl_pre): Ditto. |
| * except.c (finish_eh_generation): Ditto. |
| (convert_to_eh_region_ranges): Ditto. |
| * cprop.c (one_cprop_pass): Ditto. |
| |
| 2011-06-09 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR target/48673 |
| * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag |
| in all basic blocks. |
| |
| 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/darwin.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove. |
| (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| [IN_LIBGCC2]: Don't include <windows.h>. |
| * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove. |
| * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/sol2.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove. |
| (HAVE_ENABLE_EXECUTE_STACK): Define. |
| * config/alpha/alpha.c (alpha_trampoline_init): Test |
| HAVE_ENABLE_EXECUTE_STACK. |
| * config/i386/i386.c (ix86_trampoline_init): Likewise. |
| * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise. |
| (sparc64_initialize_trampoline): Likewise. |
| * libgcc2.c [L_enable_execute_stack]: Remove. |
| * system.h (ENABLE_EXECUTE_STACK): Poison. |
| * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove. |
| * doc/tm.texi: Regenerate. |
| * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc. |
| |
| 2011-06-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49308 |
| * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn |
| variable. After resetting and rescanning insn continue with previous |
| statement. |
| |
| 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*. |
| (gcc_cv_ld_hidden): Likewise. |
| * configure: Regenerate. |
| * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO. |
| (ix86_stack_protect_fail): Mark unused. |
| (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine. |
| * config/rs6000/rs6000.c (rs6000_assemble_visibility) |
| [TARGET_MACHO]: Don't define. |
| (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise. |
| (TARGET_STACK_PROTECT_FAIL): Likewise. |
| (rs6000_stack_protect_fail): Mark unused. |
| * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if |
| USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly. |
| |
| 2011-06-08 Andi Kleen <ak@linux.intel.com> |
| |
| * varasm.c (get_section): Print location of other conflict |
| for section conflicts. |
| |
| 2011-06-08 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): |
| Add model 0x2d Intel CPU. |
| |
| 2011-06-08 Andi Kleen <ak@linux.intel.com> |
| |
| * reginfo.c (global_regs_decl): Add. |
| (globalize_reg): Add decl parameter. Compute location. Pass location |
| to warnings and add inform. Store decl in global_regs_decl. |
| * rtl.h (globalize_reg): Update prototype. |
| * varasm.c (make_decl_rtl): Pass decl to globalize_reg(). |
| |
| 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * treestruct.def (TS_TYPE_DECL): Fix the printable name typo. |
| |
| 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49305 |
| * config/sh/predicates.md (general_movsrc_operand): Check |
| mode for memory with indexed address for QI and HImode. |
| (general_movdst_operand): Likewise. |
| |
| 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated. |
| |
| 2011-06-08 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts. |
| (num_ssa_operands): Likewise. |
| (op_iter_init_phiuse): Forward-declare. |
| (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE. |
| |
| 2011-06-08 Nick Clifton <nickc@redhat.com> |
| |
| * doc/invoke.texi (ARM Options): Update description of |
| -mthumb-interwork. |
| |
| 2011-06-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Support |
| unknown Intel family 0x6 CPUs. |
| |
| 2011-06-08 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (mark_rw_status): Removed. |
| (analyze_access_subtree): New parameter parent instead of |
| mark_read and mark_write, propagate from that. |
| |
| 2011-06-08 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI |
| for double-precision helper functions in hard-float mode if only |
| single-precision arithmetic is supported in hardware. |
| |
| 2011-06-08 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/49303 |
| * sel-sched.c (move_op): Use correct type for 'res'. Verify that |
| code_motion_path_driver returned 0 or 1. |
| (sel_region_finish): Clear h_d_i_d. |
| |
| 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (prepare_move_operands): Set pic register |
| appropriately for global and local dynamic tls models even |
| if flag_pic is unset. |
| |
| 2011-06-07 Jason Merrill <jason@redhat.com> |
| |
| * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set. |
| |
| 2011-06-07 Xinliang David Li <davidxl@google.com> |
| * passes.c (enable_disable_pass): Handle assembler name. |
| (is_pass_explicitly_enabled_or_disabled): Ditto. |
| |
| 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR tree-optimization/48497 |
| * doc/sourcebuild.texi (Directives, dg-additional-options): Document. |
| |
| 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/46728 |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME |
| to use gimple_val_nonnegative_real_p. |
| * gimple-fold.c (gimple_val_nonnegative_real_p): New function. |
| * gimple.h (gimple_val_nonnegative_real_p): New declaration. |
| |
| 2011-06-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md (*movsf_internal): Optimize AVX check. |
| |
| 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru> |
| |
| * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for |
| constant vectors. |
| |
| 2011-06-07 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (initialize_sizetypes): Initialize all |
| sizetypes based on target definitions. |
| (set_sizetype): Remove. |
| * tree.c (build_common_tree_nodes): Do not call set_sizetype. |
| * tree.h (set_sizetype): Remove. |
| |
| 2011-06-07 Nick Clifton <nickc@redhat.com> |
| |
| * config.gcc: Unify V850 architecture options and add support for |
| newer V850 architectures. |
| * config/v850/t-v850e: Delete. |
| |
| 2011-06-07 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build_common_tree_nodes): Also initialize size_type_node. |
| Call set_sizetype from here. |
| |
| 2011-06-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns. |
| (*maddhisi4tb, *maddhisi4tt): New define_insns. |
| |
| 2011-06-07 Bernd Schmidt <bernds@codesourcery.com> |
| Andrew Stubbs <ams@codesourcery.com> |
| |
| * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening |
| multiplies. |
| * doc/md.texi (Canonicalization of Instructions): Document widening |
| multiply canonicalization. |
| |
| 2011-06-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR gcov-profile/49299 |
| * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge. |
| |
| 2011-06-07 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be |
| a pointer. |
| * tree-vect-patterns.c (vect_recog_widen_sum_pattern, |
| vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern, |
| vect_recog_pow_pattern): Likewise. |
| (vect_pattern_recog_1): Remove declaration. |
| (widened_name_p): Remove declaration. Add new argument to specify |
| whether to check that both types are either signed or unsigned. |
| (vect_recog_widen_mult_pattern): Update documentation. Handle |
| unsigned patterns and multiplication by constants. |
| (vect_pattern_recog_1): Update vect_recog_func references. Use |
| statement information from the statement returned from pattern |
| detection functions. |
| (vect_pattern_recog): Update vect_recog_func reference. |
| * tree-vect-stmts.c (vectorizable_type_promotion): For widening |
| multiplication by a constant use the type of the other operand. |
| |
| 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/49145 |
| * combine.c (make_compound_operation): Handle ZERO_EXTEND specially. |
| |
| 2011-06-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49262 |
| * dwarf2out.c (native_encode_initializer): Decrement count in each |
| iteration. |
| |
| PR debug/49294 |
| * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for |
| non-MODE_INT modes. |
| |
| PR c++/49264 |
| * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs |
| if stmt folded into nothing. |
| * tree-inline.c (fold_marked_statements): If a builtin at the end of |
| a bb folded into nothing, just update cgraph edges and move to next bb. |
| * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt |
| to be NULL. Don't compute count and frequency if new_call is NULL. |
| |
| 2011-06-04 Diego Novillo <dnovillo@google.com> |
| |
| * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H. |
| (cgraph.o): Likewise. |
| (cgraphunit.o): Likewise. |
| * cgraphunit.c: Include lto-streamer.h |
| (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init |
| if LTO is enabled. |
| * lto-streamer-in.c (unpack_value_fields): Call |
| streamer_hooks.unpack_value_fields if set. |
| (lto_materialize_tree): For unhandled nodes, first try to |
| call lto_streamer_hooks.alloc_tree, if it exists. |
| (lto_input_ts_decl_common_tree_pointers): Move reading of |
| DECL_INITIAL to lto_streamer_read_tree. |
| (lto_read_tree): Call lto_streamer_hooks.read_tree if set. |
| (lto_streamer_read_tree): New. |
| (lto_reader_init): Rename from lto_init_reader. |
| Move initialization code to lto/lto.c. |
| * lto-streamer-out.c (pack_value_fields): Call |
| streamer_hooks.pack_value_fields if set. |
| (lto_output_tree_ref): For tree nodes that are not normally indexable, |
| call streamer_hooks.indexable_with_decls_p before giving up. |
| (lto_output_ts_decl_common_tree_pointers): Move handling |
| for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree. |
| (lto_output_tree_header): Call streamer_hooks.is_streamable instead of |
| lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set. |
| (lto_write_tree): Call lto_streamer_hooks.write_tree if set. |
| (lto_streamer_write_tree): New. |
| (lto_output): Call lto_streamer_init directly. |
| (lto_writer_init): Remove. |
| * lto-streamer.c (streamer_hooks): New. |
| (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes |
| instead of lto_preload_common_nodes. |
| (lto_is_streamable): Move from lto-streamer.h |
| (lto_streamer_hooks_init): New. |
| (streamer_hooks): New. |
| (streamer_hooks_init): New. |
| * lto-streamer.h (struct output_block): Forward declare. |
| (struct lto_input_block): Likewise. |
| (struct data_in): Likewise. |
| (struct bitpack_d): Likewise. |
| (struct streamer_hooks): Declare. |
| (streamer_hooks): Declare. |
| (lto_streamer_hooks_init): Declare. |
| (lto_streamer_write_tree): Declare. |
| (lto_streamer_read_tree): Declare. |
| (streamer_hooks_init): Declare. |
| (lto_is_streamable): Move to lto-streamer.c |
| |
| 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * longlong.h (smul_ppmm): The resulting register pair contains the |
| higher order word first. |
| |
| 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/46728 |
| * builtins.c (powi_table): Remove. |
| (powi_lookup_cost): Remove. |
| (powi_cost): Remove. |
| (expand_powi_1): Remove. |
| (expand_powi): Remove. |
| (expand_builtin_pow_root): Remove. |
| (expand_builtin_pow): Remove. |
| (expand_builtin_powi): Eliminate handling of constant exponent. |
| (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW. |
| |
| 2011-06-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| * cprop.c (local_cprop_pass): Don't set changed for debug insns. |
| |
| 2011-06-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| * dce.c (reset_unmarked_insns_debug_uses): New. |
| (delete_unmarked_insns): Skip debug insns. |
| (prescan_insns_for_dce): Likewise. |
| (rest_of_handle_ud_dce): Reset debug uses of removed sets. |
| * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no |
| active reg can be found. |
| (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then. |
| (convert_regs_1): Use it. |
| |
| 2011-06-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-pretty-print.c (dump_function_header): Add flags. |
| Don't dump decl_uid with nouid. |
| * tree-pretty-print.h (dump_function_header): Adjust. |
| * final.c (rest_of_clean_state): Pass dump_flags on, with nouid. |
| * passes.c (pass_init_dump_file): Pass dump_flags on. |
| * tree-cfg.c (gimple_dump_cfg): Pass flags on. |
| |
| 2011-06-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR bootstrap/49270 |
| * ipa-inline-analysis.c (read_predicate): Initialize all clauses. |
| |
| 2011-06-06 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR tree-optimization/49243 |
| * calls.c (setjmp_call_p): Also check if fndecl has the |
| returns_twice attribute. |
| |
| 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if |
| -ffast-math etc. |
| |
| 2011-06-06 Richard Henderson <rth@redhat.com> |
| Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/42210 |
| * config/avr/predicates.md (const1_operand, const_0_to_7_operand): |
| New predicates. |
| * config/avr/avr.md ("insv"): New insn expander. |
| ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io", |
| "*insv.not.io", "*insv.reg"): New insns. |
| |
| 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| PR target/49285 |
| * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate |
| to nonimmediate_operand from memory_operand for the operand that is to |
| be forced to memory by the expander. Lose the constraints. |
| |
| 2011-06-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (output_return): Fix thinko in the output of an |
| EH return when delayed branches are disabled. |
| |
| 2011-06-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: |
| Remove MODE_TI handling. Remove SSE1 handling in attribute "mode" |
| calculation. |
| (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling. |
| Simplify MODE_V1DF and MODE_V2SF handling. |
| (*movsf_internal): Remove x constraint from alternative 7 of operand 1. |
| Simplify MODE_SF handling. |
| |
| 2011-06-04 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/48893 |
| PR tree-optimization/49091 |
| PR tree-optimization/49179 |
| * ipa-inline-analysis.c (evaluate_conditions_for_known_args): |
| Bounds check. |
| |
| 2011-06-04 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/48954 |
| * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args |
| bitmaps. |
| |
| 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| * doc/invoke.texi: Document -Wdelete-non-virtual-dtor. |
| |
| 2011-06-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/49281 |
| * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3]) |
| to be strictly smaller than 1 << shiftcount. |
| |
| 2011-06-04 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimize/48929 |
| * ipa-inline-analysis.c (remap_edge_predicates): Fix handling |
| of empty predicate. |
| |
| 2011-06-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/48333 |
| * calls.c (emit_call_1): Prefer the __builtin declaration of |
| builtin functions. |
| |
| 2011-06-03 Diego Novillo <dnovillo@google.com> |
| |
| * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts. |
| (lto_input_tree_pointers): Likewise. |
| * lto-streamer-out.c (pack_value_fields): Likewise. |
| (lto_output_tree_pointers): Likewise. |
| * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE |
| and OPTIMIZATION_NODE. |
| |
| 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove. |
| * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove. |
| * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove. |
| * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove. |
| * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove. |
| * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove. |
| * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove. |
| * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove. |
| * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove. |
| * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove. |
| * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove. |
| * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove. |
| * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha. |
| * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha. |
| * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha. |
| * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin. |
| * config/i386/linux-unwind.h: Move to ../libgcc/config/i386. |
| * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386. |
| * config/i386/w32-unwind.h: Move to ../libgcc/config/i386. |
| * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64. |
| * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64. |
| * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k. |
| * config/mips/linux-unwind.h: Move to ../libgcc/config/mips. |
| * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa. |
| * config/pa/linux-unwind.h: Move to ../libgcc/config/pa. |
| * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000. |
| * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000. |
| * config/s390/linux-unwind.h: Move to ../libgcc/config/s390. |
| * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390. |
| * config/sh/linux-unwind.h: Move to ../libgcc/config/sh. |
| * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc. |
| * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc. |
| * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa. |
| * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove. |
| * system.h (MD_UNWIND_SUPPORT): Poison. |
| * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove. |
| * doc/tm.texi: Regenerate. |
| * unwind-dw2.c: Include md-unwind-support.h instead of |
| MD_UNWIND_SUPPORT. |
| * config/ia64/unwind-ia64.c: Likewise. |
| * config/xtensa/unwind-dw2-xtensa.c: Likewise. |
| |
| 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| * varpool.c (varpool_extra_name_alias): Return NULL, not false. |
| |
| 2011-06-03 Richard Henderson <rth@redhat.com> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__] |
| (sigill_hdlr): Correct insn, insn size. |
| (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps. |
| |
| 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6 |
| t-slibgcc-dummy. |
| * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S. |
| * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S. |
| * config/mips/t-iris: Remove. |
| * config/mips/t-irix6: New file. |
| * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips. |
| |
| 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (LIB2ADDEHDEP): Remove. |
| * config/arm/t-bpabi (LIB2ADDEHDEP): Remove. |
| * config/arm/t-symbian (LIB2ADDEHDEP): Remove. |
| * config/picochip/t-picochip (LIB2ADDEHDEP): Remove. |
| * config/t-darwin (LIB2ADDEHDEP): Remove. |
| * config/t-freebsd (LIB2ADDEHDEP): Remove. |
| * config/t-linux (LIB2ADDEHDEP): Remove. |
| |
| 2011-06-03 Diego Novillo <dnovillo@google.com> |
| |
| * lto-streamer-in.c (get_resolution): Move to lto/lto.c. |
| (lto_register_var_decl_in_symtab): Likewise. |
| (lto_register_function_decl_in_symtab): Likewise. |
| (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration |
| logic to uniquify_nodes. |
| |
| 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/t-osf5: Remove. |
| * config/alpha/t-osf-pthread: Remove. |
| * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy. |
| * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file. |
| |
| 2011-06-03 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100) |
| (strongarm1110): Use strongarm tuning. |
| * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field. |
| * config/arm/arm.c (arm_strongarm_tune): New. |
| (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) |
| (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune) |
| (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field |
| setting, using previous defaults or 1 for Cortex-A5. |
| (arm_option_override): Set max_insns_skipped from current tuning. |
| |
| 2011-06-03 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * doc/install.texi (Options specification): Document --with-specs. |
| |
| 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/neon.md (orndi3_neon): Actually split it. |
| |
| 2011-06-02 Alexandre Oliva <aoliva@redhat.com> |
| |
| * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10. |
| * var-tracking.c (reverse_op): Limite recurse depth to 5. |
| |
| 2011-06-02 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47590 |
| * target.def (delay_sched2, delay_vartrack): New. |
| * doc/tm.texi.in: Update. |
| * doc/tm.texi: Rebuild. |
| * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2. |
| * var-tracking.c (gate_handle_var_tracking): Likewise. |
| * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop. |
| (bfin_flag_var_tracking): Drop. |
| (output_file_start): Don't save and override flag_var_tracking. |
| (bfin_option_override): Ditto flag_schedule_insns_after_reload. |
| (bfin_reorg): Test original variables. |
| (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. |
| * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop. |
| (ia64_flag_var_tracking): Drop. |
| (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. |
| (ia64_file_start): Don't save and override flag_var_tracking. |
| (ia64_override_options_after_change): Ditto |
| flag_schedule_insns_after_reload. |
| (ia64_reorg): Test original variables. |
| * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop. |
| (picochip_flag_var_tracking): Drop. |
| (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define. |
| (picochip_option_override): Don't save and override |
| flag_schedule_insns_after_reload. |
| (picochip_asm_file_start): Ditto flag_var_tracking. |
| (picochip_reorg): Test original variables. |
| * config/spu/spu.c (spu_flag_var_tracking): Drop. |
| (TARGET_DELAY_VARTRACK): Define. |
| (spu_var_tracking): New. |
| (spu_machine_dependent_reorg): Call it. |
| (asm_file_start): Don't save and override flag_var_tracking. |
| |
| 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49163 |
| * config/sh/predicates.md (general_movsrc_operand): Return 0 |
| for memory and memory subreg of which address is an invalid |
| indexed address for QI and HImode. |
| (general_movdst_operand): Likewise. |
| |
| 2011-06-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL |
| edges only, when there is a non-local label in the function. |
| * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise. |
| |
| 2011-06-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/constraints.md (Y3): New register constraint. |
| * config/i386/sse.md (*vec_interleave_highv2df): Merge with |
| *sse3_interleave_highv2df and *sse2_interleave_highv2df. |
| (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and |
| *sse2_interleave_lowv2df. |
| |
| 2011-06-02 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning. |
| * config/arm/arm.c (arm_cortex_a5_branch_cost): New. |
| (arm_cortex_a5_tune): New. |
| |
| 2011-06-02 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm-protos.h (tune_params): Add branch_cost hook. |
| * config/arm/arm.c (arm_default_branch_cost): New. |
| (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune) |
| (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune) |
| (arm_fa726_tune): Set branch_cost field using |
| arm_default_branch_cost. |
| * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from |
| current_tune structure. |
| * dojump.c (tm_p.h): Include file. |
| |
| 2011-06-02 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2 |
| tuning. |
| (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4) |
| (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning. |
| * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool |
| field. |
| * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune) |
| (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune) |
| (arm_fa726te_tune): Add prefer_constant_pool setting. |
| (arm_v6t2_tune, arm_cortex_tune): New. |
| * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on |
| prefer_constant_pool setting. |
| |
| 2011-06-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify |
| switch statement. |
| * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto. |
| (*movdf_internal) <case 6,7,8>: Ditto. |
| |
| * config/i386/constraints.md (Y4): New register constraint. |
| * config/i386/sse.md (vec_set<mode>_0): Merge with |
| *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2. |
| (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and |
| *vec_extractv2di_1_sse. |
| (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1 |
| and *vec_concatv2di_rex64_sse. |
| |
| 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| PR target/48807 |
| * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value |
| of cgraph_local_info for null before attempting to use it. |
| |
| 2011-06-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * function.h (struct stack_usage): Remove dynamic_alloc_count field. |
| (current_function_dynamic_alloc_count): Delete. |
| * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp. |
| (expand_builtin_nonlocal_goto): Remove obsolete comment. |
| (expand_builtin_update_setjmp_buf): Remove dead code. |
| * cse.c (cse_find_path): Do not follow a single abnormal incoming edge. |
| * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA |
| support. |
| * function.c (instantiate_virtual_regs): Likewise. |
| * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false |
| for a block with a single abnormal incoming edge. |
| * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define. |
| (SETJMP_VIA_SAVE_AREA): Delete. |
| * config/sparc/sparc-protos.h (load_got_register): Declare. |
| * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. |
| (load_got_register): Make global. |
| (sparc_frame_pointer_required): Add 'static'. |
| (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required. |
| (sparc_builtin_setjmp_frame_value): New function. |
| * config/sparc/sparc.md (UNSPECV_SETJMP): Remove. |
| (save_stack_nonlocal): New expander. |
| (restore_stack_nonlocal): Likewise. |
| (nonlocal_goto): Remove modes, adjust predicates and reimplement. |
| (nonlocal_goto_internal): New insn. |
| (goto_handler_and_restore): Delete. |
| (builtin_setjmp_setup): Likewise. |
| (do_builtin_setjmp_setup): Likewise. |
| (setjmp): Likewise. |
| (builtin_setjmp_receiver): New expander. |
| |
| 2011-06-01 David Li <davidxl@google.com> |
| |
| PR middle-end/49261 |
| * tree-pretty-print.c (dump_function_header): Format cleanup. |
| |
| 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49238 |
| * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if |
| needed when original operands are used for msw_skip comparison. |
| |
| 2011-06-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49250 |
| * var-tracking.c (add_uses, add_stores): Don't call |
| cselib_subst_to_values on ENTRY_VALUE. |
| |
| 2011-06-01 Diego Novillo <dnovillo@google.com> |
| |
| * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call |
| output_record_start with LTO_null instead of output_zero. |
| (lto_output_ts_binfo_tree_pointers): Likewise. |
| (lto_output_tree): Likewise. |
| (output_eh_try_list): Likewise. |
| (output_eh_region): Likewise. |
| (output_eh_lp): Likewise. |
| (output_eh_regions): Likewise. |
| (output_bb): Likewise. |
| (output_function): Likewise. |
| (output_unreferenced_globals): Likewise. |
| * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES |
| instead of NUM_TREE_CODES. |
| (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES. |
| (lto_output_int_in_range): Change << to >> when shifting VAL. |
| |
| 2011-06-01 Diego Novillo <dnovillo@google.com> |
| |
| * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers): |
| Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes. |
| |
| 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/45074 |
| * optabs.h (valid_multiword_target_p): Declare. |
| * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when |
| doing multi-word operations. |
| * optabs.c (expand_binop): Likewise. |
| (expand_doubleword_bswap): Likewise. |
| (expand_absneg_bit): Likewise. |
| (expand_unop): Likewise. |
| (expand_copysign_bit): Likewise. |
| (multiword_target_p): New function. |
| |
| 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/48830 |
| PR rtl-optimization/48808 |
| PR rtl-optimization/48792 |
| * reload.c (push_reload): Check contains_reg_of_mode. |
| * reload1.c (strip_paradoxical_subreg): New function. |
| (gen_reload_chain_without_interm_reg_p): Use it to handle |
| paradoxical subregs. |
| (emit_output_reload_insns, gen_reload): Likewise. |
| |
| 2011-06-01 David Li <davidxl@google.com> |
| |
| * predict.c : Change pass name |
| * ipa.c: Ditto. |
| * dce.c: Ditto. |
| * tree-profile.c: Ditto. |
| * except.c: Ditto. |
| |
| 2011-06-01 David Li <davidxl@google.com> |
| |
| * tree-pretty-print.c (dump_function_header): New function. |
| * final.c (rest_of_clean_state): Use header dumper. |
| * tree-cfg.c (gimple_dump_cfg): Use header dumper. |
| * passes.c (pass_init_dump_file): Use header dumper. |
| |
| 2011-06-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor, |
| ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor, |
| popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor): |
| New functions. |
| (mem_loc_descriptor): Use them. |
| |
| * var-tracking.c (create_entry_value): New function. |
| (vt_add_function_parameter): Use it. |
| |
| 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]: |
| Include <signal.h>, <ucontext.h>. |
| (sigill_caught): Define. |
| (sigill_hdlr): New function. |
| (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE |
| insns can be executed. |
| * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc. |
| * config/sparc/sol2.h (ENDFILE_SPEC): Remove. |
| |
| 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/t-slibgcc-darwin: Move to ... |
| * config/t-slibgcc-dummy: ... this. Clarify comments. |
| * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*, |
| powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this. |
| (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file. |
| (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems. |
| Remove i386/t-crtstuff from tmake_file. |
| (i[34567]86-*-solaris2*): Remove t-svr4, |
| t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add |
| t-slibgcc-dummy. |
| (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts. |
| (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin, |
| sparc/t-crtfm from tmake_file. |
| (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm, |
| t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy. |
| Remove extra_parts. |
| * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define. |
| * config/i386/t-nwld (SHLIB_LINK): Remove. |
| * config/i386/t-rtems-i386: Rename to ... |
| * config/i386/t-rtems: ... this. |
| ($(T)crti.o, $(T)crtn.o): Remove. |
| (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove. |
| (dp-bit.c, fp-bit.c, xp-bit.c): Remove. |
| (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove. |
| * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC, |
| EXTRA_MULTILIB_PARTS): Remove. |
| * config/sparc/t-sol2-64: Likewise. |
| * config/sparc/t-sol2: Remove. |
| * config/sparc/t-crtin: Remove. |
| * config/sparc/gmon-sol2.c: Move to ../libgcc/config. |
| * config/i386/gmon-sol2.c: Remove. |
| * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S. |
| * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S. |
| * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S. |
| * config/i386/sol2-gc1.asm: Remove. |
| * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S. |
| * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S. |
| * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S. |
| * config/t-slibgcc-sld: Remove. |
| |
| 2011-06-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call |
| base_type_for_mode with op_mode instead of mode. |
| |
| 2011-06-01 Paul Brook <paul@cpodesourcery.com> |
| |
| * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to |
| Cortex-A15. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm.c (FL_DIV): Rename... |
| (FL_THUMB_DIV): ... to this. |
| (FL_ARM_DIV): Define. |
| (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV. |
| (arm_arch_hwdiv): Remove. |
| (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables. |
| (arm_issue_rate): Add cortexr5. |
| * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set |
| __ARM_ARCH_EXT_IDIV__. |
| (TARGET_IDIV): Define. |
| (arm_arch_hwdiv): Remove. |
| (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes. |
| * config/arm/arm.md (tune_cortexr4): Add cortexr5. |
| (divsi3, udivsi3): New patterns. |
| * config/arm/thumb2.md (divsi3, udivsi3): Remove. |
| * doc/invoke.texi: Document ARM -mcpu=cortex-r5 |
| |
| 2011-06-01 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-utils.c (ipa_dfs_info): New field scc_no. |
| * ipa-utils.c (searchc): Set scc_no. |
| |
| 2011-06-01 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-utils.c (searchc_env): New field allow_overwritable. |
| (searchc): do not ignore edges to overwritable nodes if indicated |
| by env->allow_overwritable. |
| (ipa_reduced_postorder): Set env.allow_overwritable. |
| |
| 2011-06-01 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (free_lang_data): Do not reset boolean_type_node nor |
| char_type_node. |
| * lto-streamer.c (lto_record_common_node): Take node pointer, |
| do not register types. |
| (lto_preload_common_nodes): Explicitly skip preloading nodes |
| that differ between frontends. |
| |
| 2011-05-31 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from |
| NON_FLOAT_REGS. |
| |
| 2011-05-31 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from |
| parameter value for dump. Dump cost on outermost call only. |
| (rs6000_memory_move_cost): Dump cost on outermost call only. |
| |
| 2011-05-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant |
| DW_OP_GNU_convert ops. |
| |
| * cselib.c (promote_debug_loc): Allow l->next non-NULL for |
| cselib_preserve_constants. |
| (cselib_lookup_1): If cselib_preserve_constants, |
| a new VALUE is being created for REG and there is a VALUE for the |
| same register in wider mode, add another loc with lowpart SUBREG of |
| the wider VALUE. |
| (cselib_subst_to_values): Handle ENTRY_VALUE. |
| * var-tracking.c (replace_expr_with_values): Return NULL for |
| ENTRY_VALUE too. |
| * dwarf2out.c (convert_descriptor_to_signed): New function. |
| (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and |
| instead of two shifts. |
| (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to |
| the right mode if needed. |
| (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod. |
| (mem_loc_descriptor) <case UNSIGNED_FIX>: Use |
| convert_descriptor_to_signed. |
| (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY, |
| BSWAP, ROTATE, ROTATERT>: Handle these rtls. |
| |
| PR target/48688 |
| * config/i386/i386.md (*lea_general_4): New define_insn_and_split. |
| |
| 2011-05-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead |
| of X87MODEI12 and SWI48x instead of SSEMODEI24. |
| (SWI248x): New mode iterator, rename from X87MODEI. |
| (X87MODEI): Remove mode iterator. |
| (X87MODEI12): Ditto. |
| (SSEMODEI24): Ditto. |
| |
| 2011-05-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New. |
| * doc/invoke.texi: Document max-vartrack-expr-depth. |
| * var-tracking.c (EXPR_DEPTH): New. |
| (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it. |
| |
| 2011-05-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA. |
| * config/i386/sse.md: Add n to negated FMA pattern names. |
| |
| 2011-05-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug. |
| |
| 2011-05-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gengtype-state.c (read_state_params_structs): Initialize previous. |
| |
| 2011-05-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2. |
| (FP push_operand splitters): Merge {TF,XF,DF}mode splitters. |
| |
| 2011-05-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movtf_internal): Avoid allocating general |
| registers. Penalize F*r->o alternative to prevent partial memory |
| stalls. Slightly penalize *roF->*r alternative. Generate SSE |
| CONST_DOUBLE immediates when optimizing function for size. Do not move |
| CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL. |
| (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative. |
| (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative. |
| (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m |
| alternatives. |
| (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives. |
| |
| (fp_register_operand splitters): Use fp_register_operand |
| constraint. Do not use FP_REG_P in insn condition. |
| (any_fp_register_operand splitters): Use any_fp_register_operand |
| constraint. Do not use ANY_FP_REG_P in insn condition. |
| |
| 2011-05-31 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (cgraph_inline_failed_t): Give enum a name |
| * lto-cgraph.c (LDPR_NUM_KNOWN): New macro. |
| (LTO_cgraph_tags): Add LTO_cgraph_last_tag. |
| (lto_output_edge): Use output_enum and var_len_unsigned. |
| (lto_output_varpool_node): Likewise. |
| (input_overwrite_node): Do not take resolution parameter; |
| extract it from a bitpack. |
| (input_node): Do not read resolution; use input_enum and |
| var_len_unsigned. |
| (input_varpool_node): Likewise. |
| (input_edge): Likewise. |
| (input_cgraph_1): Likewise. |
| |
| 2011-05-31 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_register_canonical_type): Do not register |
| any types via gimple_register_type. |
| |
| 2011-05-31 Jan Hubicka <jh@suse.cz> |
| |
| * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl |
| of thunks. |
| |
| 2011-05-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/49235 |
| * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx. |
| (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST. |
| |
| 2011-05-31 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49093 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile |
| data references. |
| |
| 2011-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| PR debug/49047 |
| * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute |
| for concrete functions containing the code of cloned functions. |
| |
| 2011-05-31 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename |
| to ... |
| (forward_propagate_into_comparison_1): ... this. |
| (forward_propagate_comparison): Rename to ... |
| (forward_propagate_into_comparison): ... this. Split out |
| real forward propagation code to ... |
| (forward_propagate_comparison): ... this. |
| (forward_propagate_into_gimple_cond): Remove looping. |
| (forward_propagate_into_cond): Likewise. |
| (simplify_not_neg_expr): Return whether we have done something. |
| (simplify_gimple_switch): Likewise. |
| (tree_ssa_forward_propagate_single_use_vars): Rename to ... |
| (ssa_forward_propagate_and_combine): ... this. Re-structure |
| to do a forward forward-propagation walk on BBs and a backward |
| stmt combining walk on BBs. Consistently re-scan changed statements. |
| (pass_forwprop): Adjust. |
| |
| 2011-05-30 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_format_type): Correct length of name added to |
| obstack for anonymous field. |
| |
| 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/49186 |
| * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high |
| part of the second operand is 0. |
| |
| 2011-05-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative |
| to prevent partial memory stalls. Do not move CONST_DOUBLEs directly |
| to memory for !TARGET_MEMORY_MISMATCH_STALL. |
| (*movdf_internal_rex64): Do not penalize F->r alternative. |
| (*movdf_internal): Penalize FYd*r->o alternative to prevent partial |
| memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only |
| when optimizing function for size. Do not move CONST_DOUBLEs |
| directly to memory for !TARGET_MEMORY_MISMATCH_STALL. |
| (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle |
| SUBREGs. Do not check for MEM_P operands in the insn condition, |
| check for ANY_FP_REGNO_P instead. |
| * config/i386/constraints.md (Yd): Enable GENERAL_REGS for |
| TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing |
| function for speed. |
| * config/i386/i386.c (ix86_option_override_internal): Do not |
| set TARGET_INTEGER_DFMODE_MOVES here. |
| |
| 2011-05-30 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/49168 |
| * config/i386/i386.md (*movtf_internal): Handle misaligned load/store. |
| |
| 2011-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (modified_type_die, gen_reference_type_die): Use |
| DW_TAG_rvalue_reference_type even for |
| -gdwarf-4 -fno-debug-types-section. |
| |
| 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/46728 |
| * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms. |
| (build_and_insert_binop): New. |
| (gimple_expand_builtin_pow): Reorder args for |
| build_and_insert_call; use build_and_insert_binop; add more |
| optimizations for fractional exponents. |
| |
| 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org> |
| |
| PR bootstrap/49190 |
| |
| Revert: |
| 2011-05-26 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct tree_identifier): Inherit from tree_typed, not |
| tree_common. |
| (HT_IDENT_TO_GCC_IDENT): Adjust for said change. |
| * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as |
| TS_BASE instead of TS_COMMON. |
| * varasm.c (assemble_name): Remove assert. |
| |
| 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config.gcc: Keep obselete list sorted. |
| |
| 2011-05-30 Jakub Jelinek <jakub@redhat.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with |
| crtl->args.internal_arg_pointer based address to arg_pointer_rtx if |
| there is a DRAP register and arg_pointer_rtx is the CFA pointer. |
| (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned. |
| (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register. |
| |
| 2011-05-30 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_types_compatible_p_1): Compare record |
| and union type members properly. |
| |
| 2011-05-30 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49210 |
| * ipa-split.c (split_function): Care for the case where the call |
| result is not trivially convertible to the result holding variable. |
| |
| 2011-05-30 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49218 |
| * tree-vrp.c (adjust_range_with_scev): Properly check whether |
| overflow occured. |
| |
| 2011-05-30 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_comparison): |
| New function split out from ... |
| (forward_propagate_into_gimple_cond): ... here. Adjust. |
| (forward_propagate_into_cond): Likewise. |
| (forward_propagate_comparison): Also propagate into |
| comparisons on assignment RHS. Change return value to |
| behave similar to forward_propagate_into_cond. |
| (tree_ssa_forward_propagate_single_use_vars): Handle |
| strict-overflow warnings properly for forward_propagate_comparison. |
| |
| 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support |
| from plugin linker. |
| * configure: Regenerate. |
| |
| 2011-05-30 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49199 |
| * tree-vect-loop.c (vect_is_slp_reduction): Check that the |
| non-reduction operands are either defined in the loop or by induction. |
| |
| 2011-05-29 Xinliang David Li <davidxl@google.com> |
| |
| * opts-global.c (handle_common_deferred_options): Handle new options. |
| * passes.c (register_one_dump_file): Call register_pass_name. |
| (execute_one_pass): Check explicit enable/disable flag. |
| (passr_hash): New function. |
| (passr_eq): Ditto. |
| (register_pass_name): Ditto. |
| (get_pass_by_name): Ditto. |
| (pass_hash): Ditto. |
| (pass_eq): Ditto. |
| (enable_pass): Ditto. |
| (disable_pass): Ditto. |
| (is_pass_explicitly_enabled_or_disabled): Ditto. |
| |
| 2011-05-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movoi_internal_avx): Use |
| standard_sse_constant_opcode for alternative 0. |
| (*movti_internal_sse): Ditto. |
| (*movti_internal_rex64): Use standard_sse_constant_opcode for |
| alternative 2. |
| (*movdi_internal_rex64): Use standard_sse_constant_opcode for |
| sselog1 type moves. |
| (*movsi_internal): Ditto. |
| (*movdi_internal): Ditto. Add ssecvt type moves. |
| |
| 2011-05-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/48830 |
| * rtlanal.c (simplify_subreg_regno): Adjust comment. |
| |
| 2011-05-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/49095 |
| * config/i386/predicates.md (plusminuslogic_operator): New predicate. |
| * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0. |
| |
| 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/43995 |
| * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a |
| recurse_p argument. Only follow register copies if it is set, |
| and prevent mips_find_pic_call_symbol from recursing. |
| (mips_find_pic_call_symbol): Add a recurse_p argument. |
| Pass it to mips_pic_call_symbol_from_set. |
| (mips_annotate_pic_calls): Update accordingly. |
| |
| 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * emit-rtl.c (try_split): Use a loop to search for |
| NOTE_INSN_CALL_ARG_LOCATIONs. |
| |
| 2011-05-29 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49217 |
| * ipa-pure-const.c (propagate_pure_const): Fix typos. |
| |
| 2011-05-28 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer-out.c (hash_string_slot_node): Hash string based on its |
| length. |
| (string_slot_free): Remove |
| (create_output_block): Initialize obstack. |
| (destroy_output_block): Free obstack. |
| (lto_string_index): Add PERSISTENT parameter; do not duplicate |
| the string unless it needs to be added into the hash. |
| (lto_output_string_with_length): Add persistent attribute; |
| handle NULL strings. |
| (lto_output_string): Add PERSISTENT parameter. |
| (output_string_cst, output_identifier): Simplify. |
| (lto_output_location_bitpack): Update. |
| (lto_output_builtin_tree): Update. |
| * lto-streamer.h (struct output_block): Add obstack. |
| (lto_output_string, lto_output_string_with_length): Remove |
| declarations; functions are static now. |
| |
| 2011-05-28 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer-out.c (pack_ts_fixed_cst_value_fields, |
| pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields, |
| pack_ts_function_decl_value_fields, lto_output_builtin_tree, |
| output_cfg, output_gimple_stmt): Use enum and variable length i/o. |
| * lto-streamer-in.c (input_cfg, input_gimple_stmt, |
| unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields, |
| unpack_ts_decl_with_vis_value_fields, |
| unpack_ts_type_common_value_fields, unpack_ts_block_value_fields, |
| lto_get_builtin_tree): Use enum and variable length i/o. |
| * basic-block.h (profile_status_d): Add PROFILE_LAST. |
| * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range): |
| New functions. |
| (bp_pack_enum, bp_unpack_enum): New macros. |
| |
| 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * genrecog.c: Remove redundant forward declarations. |
| |
| 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config.gcc: Deprecate mips*-*-openbsd*. |
| |
| 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR bootstrap/49195 |
| * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP |
| for match_op_dup. |
| |
| 2011-05-27 Andrew Pinski <pinskia@gmail.com> |
| |
| PR middle-end/48981 |
| * gengtype.c (vec_prefix_type): New function. |
| (note_def_vec): Use vec_prefix_type and change the length |
| attribute to be based on the prefix. |
| * vec.c: Include coretypes.h before vec.h. |
| (struct vec_prefix): Remove. |
| (vec_gc_p_reserve): Change the offsetof to sizeof. |
| (vec_gc_p_reserve_exact): Likewise. |
| (vec_heap_p_reserve): Likewise. |
| (vec_heap_p_reserve_exact): Likewise. |
| (vec_stack_o_reserve_1): Copy from +1 instead of from vec. |
| (vec_stack_p_reserve): Change the offsetof to sizeof. |
| (vec_stack_p_reserve_exact): Likewise. |
| * vec.h (struct vec_prefix): New struct definition. |
| (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields. |
| (VEC_T_GTY(T,B)): Likewise. |
| (DEF_VEC_FUNC_P(T)): Use prefix field. |
| (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise. |
| (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise. |
| |
| 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/46728 |
| * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location. |
| (powi_as_mults): Add gimple_set_location. |
| (build_and_insert_call): New. |
| (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is |
| 0.5, 0.25, 0.75, 1./3., or 1./6. |
| |
| 2011-05-27 Alexander Monakov <amonakov@ispras.ru> |
| |
| * doc/contrib.texi: Update copyright years. |
| (Contributors): Add Zdenek Sojka. |
| |
| 2011-05-27 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * c-decl.c (c_push_function_context): Copy the current statement |
| list stack. |
| (add_stmt): Check building_stmt_list_p and push_stmt if necessary. |
| (finish_struct): Call building_stmt_list_p instead of checking |
| cur_stmt_list. |
| * c-parser.c (c_parser_postfix_expression): Likewise. |
| * c-typeck.c (c_end_compound_stmt): Likewise. |
| * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN. |
| * tree-iterator.c (stmt_list_cache): Change to a VEC. |
| (alloc_stmt_list): Adjust for stmt_list_cache's new type. |
| (free_stmt_list): Likewise. |
| * tree.h (struct tree_statement_list): Include typed_tree instead |
| of tree_common. |
| * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST |
| as TS_TYPED instead of TS_COMMON. |
| |
| 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt |
| (HAVE_AS_IX86_TLSGDPTL): Define. |
| (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt. |
| (HAVE_AS_IX86_TLSLDMPLT): Define. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/i386/i386.c (ix86_print_operand): Handle code 'p'. |
| * config/i386/i386.md (*tls_global_dynamic_32_gnu): If |
| TARGET_SUN_TLS, use @tlsgdplt or @plt. |
| (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS. |
| (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use |
| @tlsldmplt or @plt. |
| (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS. |
| |
| 2011-05-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * sched-int.h (struct _haifa_deps_insn_data): New members cond |
| and reverse_cond. |
| (INSN_COND, INSN_REVERSE_COND): New macros. |
| * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev |
| once. |
| (sched_get_condition_with_rev): Cache the results, and look them up |
| if possible. |
| (sched_analyze_insn): Destroy INSN_COND of previous insns if they |
| are clobbered by the current insn. |
| * target.def (exposed_pipline): New sched data hook. |
| * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/49170 |
| * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for |
| sincos or cexp. |
| |
| 2011-05-27 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/49189 |
| * fold-const.c (fold_unary_loc): Do not re-fold folding conversions |
| of comparisons. |
| |
| 2011-05-27 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (sched_scan_info): Remove. |
| (schedule_block): Call sched_extend_luids rather than sched_init_luids |
| with NULL args. |
| (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb): |
| Remove functions. |
| (sched_scan): Remove. |
| (sched_extend_luids): Renamed from luids_extend_insn and no longer |
| static. All callers changed. |
| (sched_init_insn_luid): Renamed from luids_init_insn and no longer |
| static. All callers changed. |
| (sched_init_luids): Remove all arguments except the first. All |
| callers changed. Don't use sched_scan. |
| (haifa_init_h_i_d): Likewise. |
| (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid |
| manually rather than using sched_init_luids. Likewise with |
| extend_h_i_d, init_h_i_d and haifa_init_h_i_d. |
| * sel-sched.c (sel_region_target_finish): Call sched_extend_luids |
| rather than sched_init_luids with NULL args. |
| * sel-sched-ir.c (new_insns): Remove variable. |
| (sched_scan): New static function, previously in haifa-sched.c. Remove |
| all arguments but the first two; all callers changed. |
| (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid |
| rather than sched_init_luids. |
| (sel_init_bbs): Remove second argument. All callers changed. |
| (sel_add_bb): Call sched_extend_luids rather than sched_init_luids |
| with NULL arguments. |
| (create_insn_rtx_from_pattern): Likewise. |
| * sel-sched-ir.h (sel_init_bbs): Adjust declaration. |
| * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise. |
| (sched_init_insn_luid, sched_extend_luids): Declare. |
| (sched_scan_info_def, sched_scan_info, sched_scan): Remove |
| declarations. |
| |
| 2011-05-27 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/49177 |
| * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to |
| A CMP B ? (T) true : (T) false for non-integral types T again. |
| |
| 2011-05-27 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer-out.c (lto_string_index): break out from...; offset by 1 |
| so 0 means NULL string. |
| (lto_output_string_with_length): ... here. |
| (lto_output_string, output_string_cst, output_identifier): Update |
| handling of NULL strings. |
| (lto_output_location_bitpack): New function. |
| (lto_output_location): Use it. |
| (lto_output_tree_ref): Use output_record_start. |
| (pack_ts_type_common_value_fields): Pack aliagn & alias set in var |
| len values. |
| * lto-streamer-in.c (string_for_index): Break out from ...; offset |
| values by 1. |
| (input_string_internal): ... here; |
| (input_string_cst, input_identifier, lto_input_string): Update handling |
| of NULL strings. |
| (lto_input_location_bitpack): New function |
| (lto_input_location): Use it. |
| (unpack_ts_type_common_value_fields): Pack align & alias in var len |
| values. |
| * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int, |
| bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare. |
| (bp_pack_value): Sanity check the value range. |
| * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int): |
| New functions. |
| * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int): |
| New functions. |
| |
| 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com> |
| |
| * config/picochip/picochip.c (reorder_var_tracking_notes): Drop |
| call_arg_location instructions down the floor. |
| |
| 2011-05-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/49154 |
| * ira.c (setup_pressure_classes): Process class without sublcasses |
| as a candidate for pressure classes. |
| |
| 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/48575 |
| * genrecog.c (position_type): New enum. |
| (position): New structure. |
| (decision): Use position structure instead of a string. |
| (root_pos, peep2_insn_pos_list): New variables. |
| (next_position, compare_positions): New functions. |
| (new_decision): Use position structures instead of strings. |
| (maybe_both_true): Likewise. |
| (change_state): Likewise. |
| (write_tree): Likewise. |
| (make_insn_sequence): Likewise. |
| |
| 2011-05-26 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as |
| TS_BASE instead of TS_COMMON. |
| (find_decls_types_r): Check for TS_TYPED structure before looking at |
| TREE_TYPE. |
| * tree.h (struct tree_block): Inherit from tree_base, not tree_common. |
| Add chain field. |
| (BLOCK_CHAIN): Use new chain field. |
| |
| 2011-05-26 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR |
| moves expensive on Power7 also. |
| |
| 2011-05-26 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_unary_loc): Remove bogus code. |
| |
| 2011-05-26 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct tree_identifier): Inherit from tree_typed, not |
| tree_common. |
| (HT_IDENT_TO_GCC_IDENT): Adjust for said change. |
| * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as |
| TS_BASE instead of TS_COMMON. |
| * varasm.c (assemble_name): Remove assert. |
| |
| 2011-05-26 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * Makefile.in (srcdirify): Change order so that libgcc_objdir is |
| substituted first. |
| * libgcc-std.ver: Delete file. |
| |
| 2011-05-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48702 |
| * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs |
| only when we know the base address is within bounds. |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not |
| assume the base address of TARGET_MEM_REFs is in bounds. |
| |
| 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/49099 |
| * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap |
| declaration in TARGET_SOLARIS. |
| |
| 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com> |
| |
| * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator. |
| The instruction is then expanded explicitly. |
| (supported_compare): Callable instruction. |
| (compare): Likewise. |
| |
| 2011-05-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/49165 |
| * gimplify.c (shortcut_cond_r): Don't special case |
| COND_EXPRs if they have void type on one of their arms. |
| |
| 2011-05-26 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * haifa-sched.c (schedule-block): Reorder the inner scheduling loop |
| to reduce duplication, and to achieve a slightly more logical order |
| of operations. |
| |
| 2011-05-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49161 |
| * tree-vrp.c (struct case_info): New type. |
| (compare_case_labels): Sort case_info structs instead of |
| trees, and not primarily by CASE_LABEL uids but by |
| label_for_block indexes. |
| (find_switch_asserts): Put case labels into struct case_info |
| array instead of TREE_VEC, adjust sorting, compare label_for_block |
| values instead of CASE_LABELs. |
| |
| 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not. |
| ("orndi3_neon"): Likewise. |
| ("bic<mode>3_neon"): Likewise. |
| |
| 2011-05-26 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49038 |
| * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): |
| Ensure at least one epilogue iteration if required by data |
| accesses with gaps. |
| * tree-vectorizer.h (struct _loop_vec_info): Add new field |
| to mark loops that require peeling for gaps. |
| * tree-vect-loop.c (new_loop_vec_info): Initialize new field. |
| (vect_get_known_peeling_cost): Take peeling for gaps into |
| account. |
| (vect_transform_loop): Generate epilogue if required by data |
| access with gaps. |
| * tree-vect-data-refs.c (vect_analyze_group_access): Mark the |
| loop as requiring an epilogue if there are gaps in the end of |
| the strided group. |
| |
| 2011-05-25 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_format_type): Output the first field with a usable |
| Go type, if any. |
| |
| 2011-05-25 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_format_type): Check for invalid type names, pointer |
| target types, and struct field types. |
| |
| 2011-05-25 Jason Merrill <jason@redhat.com> |
| |
| * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED. |
| |
| 2011-05-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern. |
| |
| 2011-05-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md (*movqi_extv_1)): Put back |
| "register_operand" check in "type" calculation. |
| (*movqi_extzv_2): Likewise. |
| |
| 2011-05-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic. |
| |
| 2011-05-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR bootstrap/49160 |
| * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2, |
| __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, |
| __divxc3, __divtc3): Wrap definitions in #ifndef. |
| |
| 2011-05-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/49142 |
| * config/i386/i386.md (*movqi_extv_1_rex64): Remove |
| "register_operand" check and replace q_regs_operand with |
| QIreg_operand in "type" calculation. |
| (*movqi_extv_1): Likewise. |
| (*movqi_extzv_2_rex64): Likewise. |
| (*movqi_extzv_2): Likewise. |
| |
| * config/i386/predicates.md (QIreg_operand): New. |
| |
| 2011-05-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix |
| type-based offset disambiguation, streamline MEM_REF and |
| TARGET_MEM_REF handling. |
| |
| 2011-05-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE. |
| (bdesc_special_args): Add pause intrinsic. |
| |
| * config/i386/i386.md (UNSPEC_PAUSE): New. |
| (pause): Likewise. |
| (*pause): Likewise. |
| * config/i386/ia32intrin.h (__pause): Likewise. |
| |
| * doc/extend.texi (X86 Built-in Functions): Add documentation for |
| pause intrinsic. |
| |
| 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/46728 |
| * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New. |
| (execute_cse_sincos): Add switch case for BUILT_IN_POW. |
| |
| 2011-05-25 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct tree_exp): Inherit from struct tree_typed. |
| * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED |
| instead of TS_COMMON. |
| |
| 2011-05-25 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if |
| LIBGCC2_GNU_PREFIX is defined. |
| (__N): New macro. |
| (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2, |
| __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3, |
| __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack, |
| __clz_tab): Define using __N. |
| (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if |
| COMPAT_SIMODE_TRAPPING_ARITHMETIC. |
| * target.def (libfunc_gnu_prefix): New hook. |
| * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document. |
| (TARGET_LIBFUNC_GNU_PREFIX): Add hook. |
| * doc/tm.texi: Regenerate. |
| * system.h (LIBGCC2_GNU_PREFIX): Poison. |
| * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into |
| account. |
| (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise. |
| (init_optabs): Likewise for the bswap libfuncs. |
| * tree.c (build_common_builtin_nodes): Likewise for complex multiply |
| and divide. |
| * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir). |
| * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise. |
| * libgcc-std.ver: Remove. |
| * Makefile.in (srcdirify): Handle $$(libgcc_objdir). |
| * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for |
| libgcc-std.ver. |
| * config/i386/t-linux (SHLIB_MAPFILES): Likewise. |
| * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise. |
| * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise. |
| * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise. |
| * config/sparc/t-linux (SHLIB_MAPFILES): Likewise. |
| * config/i386/t-linux (SHLIB_MAPFILES): Likewise. |
| * config/i386/t-linux (SHLIB_MAPFILES): Likewise. |
| * config/fixed-bit.h (FIXED_OP): Define differently depending on |
| LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores. |
| (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise. |
| |
| 2011-05-25 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer-out.c (output_record_start): Use lto_output_enum |
| (lto_output_tree): Use output_record_start. |
| * lto-streamer-in.c (input_record_start): Use lto_input_enum |
| (lto_get_pickled_tree): Use input_record_start. |
| * lto-section-in.c (lto_section_overrun): Turn into fatal error. |
| (lto_value_range_error): New function. |
| * lto-streamer.h (lto_value_range_error): Declare. |
| (lto_output_int_in_range, lto_input_int_in_range): New functions. |
| (lto_output_enum, lto_input_enum): New macros. |
| |
| 2011-05-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * common.opt (flag_stack_usage_info): New variable. |
| (-Wstack-usage): New option. |
| * doc/invoke.texi (Warning options): Document -Wstack-usage. |
| * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case. |
| <OPT_fstack_usage>: Likewise. |
| * toplev.c (output_stack_usage): Handle -Wstack-usage. |
| * calls.c (expand_call): Test flag_stack_usage_info variable instead |
| of flag_stack_usage. |
| (emit_library_call_value_1): Likewise. |
| * explow.c (allocate_dynamic_stack_space): Likewise. |
| * function.c (instantiate_virtual_regs ): Likewise. |
| (prepare_function_start): Likewise. |
| (rest_of_handle_thread_prologue_and_epilogue): Likewise. |
| * config/alpha/alpha.c (alpha_expand_prologue): Likewise. |
| * config/arm/arm.c (arm_expand_prologue): Likewise. |
| (thumb1_expand_prologue): Likewise. |
| * config/avr/avr.c (expand_prologue): Likewise. |
| * config/i386/i386.c (ix86_expand_prologue): Likewise. |
| * config/ia64/ia64.c (ia64_expand_prologue): Likewise. |
| * config/m68k/m68k.c (m68k_expand_prologue): Likewise. |
| * config/mips/mips.c (mips_expand_prologue): Likewise. |
| * config/pa/pa.c (hppa_expand_prologue): Likewise. |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. |
| * config/s390/s390.c (s390_emit_prologue): Likewise. |
| * config/sh/sh.c (sh_expand_prologue): Likewise. |
| * config/sparc/sparc.c (sparc_expand_prologue): Likewise. |
| * config/spu/spu.c (spu_expand_prologue): Likewise. |
| |
| 2011-05-25 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs. |
| (gimple_canonical_types_compatible_p): Likewise. |
| |
| 2011-05-25 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/49062 |
| * ipa.c (function_and_variable_visibility): Only add to same |
| comdat group list if DECL_ONE_ONLY. |
| |
| 2011-05-25 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/49014 |
| * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi. |
| |
| 2011-05-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/49128 |
| * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo. |
| |
| 2011-05-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48757 |
| * ira-build.c (loop_with_eh_edge_p): Rename to |
| loop_with_complex_edge_p, check edges on complexity, make function |
| conditional. |
| (mark_loops_for_removal): Make call of loop_with_complex_edge_p |
| conditional. |
| |
| 2011-05-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_option_override): If not set by the user, |
| force flag_ira_share_save_slots to 0. |
| |
| 2011-05-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * var-tracking.c (compute_cfa_pointer): Adjust head comment. |
| (vt_initialize): Set PROLOGUE_BB unconditionally. |
| Add block comment about CFA_BASE_RTX machinery. |
| Reset FP_CFA_OFFSET to -1 on all invalid paths. |
| Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1. |
| |
| 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| PR objc/48187 |
| * c-parser.c (c_parser_objc_class_instance_variables): More robust |
| parsing of syntax error in ObjC instance variable lists. In |
| particular, avoid an infinite loop if there is a stray ']'. |
| Updated error message. |
| |
| 2011-05-24 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_define): Don't accept a string immediately after |
| another operand. |
| |
| 2011-05-24 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (struct godump_container): Add invalid_hash field. |
| (go_format_type): Return false if type is found in invalid_hash. |
| (go_output_typedef): Add invalid type to invalid_hash. |
| (go_finish): Create and delete invalid_hash. |
| |
| 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/46728 |
| * tree-ssa-math-opts.c (powi_table): New. |
| (powi_lookup_cost): New. |
| (powi_cost): New. |
| (powi_as_mults_1): New. |
| (powi_as_mults): New. |
| (gimple_expand_builtin_powi): New. |
| (execute_cse_sincos): Add switch case for BUILT_IN_POWI. |
| (gate_cse_sincos): Remove sincos/cexp restriction. |
| |
| 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/3746 |
| * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile, |
| mips-tdump native. |
| * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling. |
| * mips-tdump.c: Likewise. |
| |
| 2011-05-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/49128 |
| * config/i386/driver-i386.c (host_detect_local_cpu): Always |
| add -mno-XXX. Handle FMA. |
| |
| 2011-05-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48633 |
| * ira-build.c (loop_with_eh_edge_p): New function. |
| (mark_loops_for_removal): Use it. |
| |
| 2011-05-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48971 |
| * ira.c (setup_pressure_classes): Don't check register move cost |
| for classes with one registers. Don't add pressure class if there |
| is a pressure class with the same available hard registers. |
| Check contains_reg_of_mode. Fix a typo in collecting |
| temp_hard_regset. Ignore hard registers not belonging to a class. |
| |
| 2011-05-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49133 |
| * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative. |
| |
| 2011-05-24 Eric Botcazou <ebotcazou@adacore.com> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR gcov-profile/48845 |
| * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling. |
| |
| 2011-05-24 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (compare_type_names_p): Remove for_completion_p arg. |
| (gimple_compatible_complete_and_incomplete_subtype_p): Remove. |
| (gimple_types_compatible_p_1): Adjust. |
| (iterative_hash_canonical_type): Do not bother about complete vs. |
| incomplete types. |
| (gimple_canonical_types_compatible_p): Likewise. |
| |
| 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove. |
| |
| 2011-05-24 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/49078 |
| * gimple.c (gimple_register_canonical_type): Revert |
| previous change. |
| * alias.c (get_alias_set): Only assert that TYPE_CANONICAL |
| does not for a tree for the case where it matters. Cache |
| pointer-type alias-sets. |
| |
| 2011-05-24 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o. |
| (OBJS): Remove options.o, opts-common.o and prefix.o. |
| (OBJS-libcommon-target): New. |
| (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target). |
| (BACKEND): Include libcommon-target.a. |
| (MOSTLYCLEANFILES): Include libcommon-target.a. |
| (libcommon-target.a): New. |
| (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of |
| prefix.o. |
| |
| 2011-05-23 Joseph Myers <joseph@codesourcery.com> |
| |
| * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate |
| parts of output shared with the driver. |
| * optc-gen.awk: Don't generate parts of output not shared with the |
| driver. |
| * opth-gen.awk: Remove GCC_DRIVER conditionals. |
| * doc/options.texi (SourcerInclude): Mention options-save.c. |
| * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o. |
| (OBJS): Add options-save.o. |
| (options-save.c, options-save.o): New. |
| (options.o): Update dependencies. |
| (gcc-options.o): Remove. |
| (mostlyclean): Remove options-save.c. |
| |
| 2011-05-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/49032 |
| * dbxout.c: Include cgraph.h. |
| (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written |
| and without value expr, return NULL if no varpool node exists for |
| it or if it is not needed. |
| * Makefile.in (dbxout.o): Depend on $(CGRAPH_H). |
| |
| PR c/49120 |
| * c-decl.c (start_decl): Convert expr to void_type_node. |
| |
| 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/48826 |
| * emit-rtl.c (try_split): When splitting a call that is followed |
| by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call. |
| |
| 2011-05-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * cfgexpand.c (expand_debug_expr): For unused non-addressable |
| parameters passed in memory prefer using DECL_INCOMING_RTL over |
| the pseudos it will be copied into. |
| |
| 2011-05-23 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47315 |
| * config/i386/i386.c (ix86_option_override_internal): Save the |
| initial options after checking vzeroupper. |
| |
| 2011-05-23 David Li <davidxl@google.com> |
| |
| PR tree-optimization/48988 |
| * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): |
| Initialize has_valid_pred for each pred chain. |
| |
| 2011-05-23 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_types_compatible_p_1): Always compare type names. |
| (iterative_hash_gimple_type): Always hash type names. |
| |
| 2011-05-23 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * c-typeck.c (build_function_call_vec): Tweak call to |
| check_function_arguments. |
| |
| 2011-05-23 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49115 |
| * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment |
| is not necessarily carried out, do not claim it kills the ref. |
| * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. |
| |
| 2011-05-23 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/15419 |
| * builtins.c (fold_builtin_memory_op): Be less restrictive about |
| what pointer types we accept for folding. |
| |
| 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gthr-gnat.c: Remove. |
| * gthr-gnat.h: Remove. |
| * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c. |
| * config/t-freebsd (LIB2ADDEH): Likewise. |
| * config/t-linux (LIB2ADDEH): Likewise. |
| * config/t-sol2 (LIB2ADDEH): Likewise. |
| * config/ia64/t-vms (LIB2ADDEH): Likewise. |
| * configure.ac (target_thread_file): Remove gnat handling. |
| * configure: Regenerate. |
| * doc/install.texi (Configuration, --enable-threads): Remove gnat. |
| |
| 2011-05-23 Tristan Gingold <gingold@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcov.c (create_file_names): If no object directory is specified, |
| keep the directory of the file. |
| |
| 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list. |
| * configure: Regenerate. |
| |
| 2011-05-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48973 |
| * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag |
| failed and the comparison has a single bit signed type, use |
| constm1_rtx instead of const1_rtx for true value. |
| (do_store_flag): If ops->type is single bit signed type, disable |
| signel bit test optimization and pass -1 instead of 1 as last |
| parameter to emit_store_flag_force. |
| |
| 2011-05-23 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New |
| function. |
| (infer_loop_bounds_from_undefined): Use new function. |
| |
| 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete. |
| (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt, |
| -O1 for -fno-delayed-branch, -O2 if optimization is enabled, |
| and -O0 otherwise. |
| (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec. |
| |
| 2011-05-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK. |
| (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges |
| returns true. |
| |
| 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT. |
| |
| 2011-05-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_delegitimize_address): Handle |
| UNSPEC_MOVE_PIC pattern. |
| |
| 2011-05-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config.gcc (sparc-*-elf*): Add sparc/t-crtin. |
| (sparc-*-rtems*): Likewise. |
| (sparc64-*-elf*): Likewise. |
| (sparc64-*-rtems*): Likewise. |
| (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts. |
| * config/sparc/t-crtin: New file. |
| * config/sparc/t-sol2 (crti.o): Delete rule. |
| (crtn.o): Likewise. |
| * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete. |
| * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise. |
| * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o. |
| (ENDFILE_SPEC): Add crtn.o. |
| |
| 2011-05-22 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/48689 |
| * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with |
| CODE_CONTAINS_STRUCT (TS_COMMON). |
| |
| 2011-05-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/49029 |
| * expmed.c (extract_fixed_bit_field): Test whether target can be used |
| only after deciding which mode to use. |
| |
| 2011-05-22 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test |
| for call to get_shiftadd_cost. |
| |
| 2011-05-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/49104 |
| * config/i386/cpuid.h (bit_MMXEXT): New define. |
| |
| 2011-05-22 Nick Clifton <nickc@redhat.com> |
| |
| * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent |
| initialisation of non-existant args[2] element. Use args[] array |
| not arg[] array to pass arguments to build_function_type_list. |
| |
| 2011-05-22 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/49087 |
| * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses. |
| |
| 2011-05-21 Jason Merrill <jason@redhat.com> |
| |
| PR c++/49092 |
| * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for |
| static storage duration. |
| |
| 2011-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard |
| frame pointer. |
| |
| 2011-05-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (eligible_for_return_delay): Do not return |
| false if there are call-saved registers here... |
| (sparc_can_use_return_insn_p): ...but here instead. |
| (save_or_restore_regs): Fix thinko. |
| (sparc_expand_prologue): Use current_function_is_leaf. |
| (sparc_frame_pointer_required): Likewise. |
| |
| 2011-05-21 Nick Clifton <nickc@redhat.com> |
| |
| PR target/49098 |
| * config/rx/rx.c (rx_memory_move_cost): Note unused parameters. |
| |
| 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * gengtype.c (walk_type): Implemented "atomic" GTY option. |
| * doc/gty.texi (GTY Options): Document "atomic" GTY option. |
| |
| 2011-05-21 Joseph Myers <joseph@codesourcery.com> |
| |
| * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk. |
| * optc-gen.awk: Move common code to opt-read.awk. |
| * opth-gen.awk: Likewise. |
| * Makefile.in (options.c, s-options-h): Update to use opt-read.awk. |
| |
| 2011-05-20 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * godump.c (go_format_type): Don't use TYPE_ARG_TYPES. |
| |
| 2011-05-20 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-ivopts.c: Include expmed.h. |
| (get_shiftadd_cost): New function. |
| (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost. |
| |
| 2011-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/49086 |
| * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL |
| for PHI args that are SSA_NAME_IS_DEFAULT_DEF. |
| |
| 2011-05-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in: Update comment referring to $(OBJS-common). |
| |
| 2011-05-20 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_output_typedef): Put enum constants in the macro |
| hash table to avoid duplicate Go const definitions. |
| |
| 2011-05-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * Makefile.in (LIBDEPS): Add libcommon.a. |
| (LIBS): Likewise. |
| (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o. |
| (OBJS-common): Remove diagnostic.o, input.o, intl.o, |
| pretty-print.o and version.o. |
| (OBJS-libcommon): New. |
| (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon). |
| (BACKEND): Add libcommon.a. |
| (MOSTLYCLEANFILES): Likewise. |
| (libcommon.a): New. |
| (xgcc$(exeext)): Don't explicitly use version.o and intl.o. |
| (cpp$(exeext)): Likewise. |
| (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o, |
| pretty-print.o and input.o. |
| (lto-wrapper$(exeext)): Don't explicitly use intl.o. |
| (lto-wrapper.o): Depend on $(DIAGNOSTIC_H). |
| (errors.o): Remove. |
| (mips-tfile): Don't explicitly use version.o. |
| (mips-tdump): Likewise. |
| (gcov.o): Depend on $(DIAGNOSTIC_H). |
| (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H). |
| (GCOV_OBJS): Remove intl.o, version.o and errors.o. |
| (GCOV_DUMP_OBJS): Remove version.o and errors.o. |
| * gcov-dump.c: Include intl.h and diagnostic.h. |
| (main): Initialize diagnostics. |
| * gcov.c: Include diagnostic.h. |
| (fnotice): Remove. |
| (main): Initialize diagnostics. |
| * lto-wrapper.c: Include diagnostic.h. |
| (main): Initialize diagnostics. |
| |
| 2011-05-20 Michael Matz <matz@suse.de> |
| |
| * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS. |
| |
| 2011-05-20 Michael Matz <matz@suse.de> |
| Richard Guenther <rguenther@suse.de> |
| |
| * lto-streamer.c (lto_record_common_node): Don't track seen nodes, |
| use lto_streamer_cache_append directly instead of returning a VEC. |
| (preload_common_node): Remove. |
| (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't |
| track seen nodes. |
| (lto_streamer_cache_create): Call lto_preload_common_nodes. |
| |
| 2011-05-20 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49079 |
| * tree-dfa.c (get_ref_base_and_extent): Handle view-converting |
| MEM_REFs correctly for the trailing array access detection. |
| Special case constants the same way as decls for overall size |
| constraining. |
| |
| 2011-05-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro |
| argument expansion. |
| |
| 2011-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49073 |
| * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if |
| PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI. |
| * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators. |
| |
| 2011-05-20 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48849 |
| * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL |
| of pointer types the same way the middle-end does. |
| |
| 2011-05-20 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_register_type_1): Do not fiddle with main-variant |
| or pointer-to chains. Delay all fixup to uniquify_nodes. |
| |
| 2011-05-19 Quentin Neill <quentin.neill@amd.com> |
| |
| * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>. |
| (fma4_fmaddsub): Likewise |
| |
| 2011-05-19 Jan Hubicka <jh@suse.cz> |
| |
| * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove. |
| (GIMPLE_TYPE_PAIR_SIZE): New macro. |
| (type_pair_cache): New static var. |
| (lookup_type_pair): Use fixed sized custom hash; make inline. |
| (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update |
| calls of lookup_type_pair. |
| (print_gimple_types_stats): Remove cache stats. |
| (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited |
| and gtc_ob. |
| |
| 2011-05-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE |
| when TARGET_RDRND is active. |
| (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: |
| Generate dummy SImode target register when target is NULL. |
| |
| 2011-05-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/arm-fpus.def: New. |
| * config/arm/genopt.sh: Generate Enum and EnumValue entries from |
| arm-fpus.def. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def. |
| (arm_option_override): Don't decode FPU name to string here. |
| * config/arm/arm.opt (mfpu=): Use Enum. |
| * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o): |
| Update dependencies. |
| |
| 2011-05-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * collect2.c: Include diagnostic.h. |
| (fatal_perror, fatal, error, fancy_abort): Remove. |
| (main): Set progname. Call xmalloc_set_program_name and |
| diagnostic_initialize. |
| (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file, |
| scan_libraries, resolve_lib_name): Call fatal_error instead of |
| fatal and fatal_perror. |
| * collect2.h (error, fatal, fatal_perror): Don't declare. |
| * tlink.c: Include diagnostic-core.h. |
| (recompile_files): Call fatal_error instead of fatal_perror. |
| * Makefile.in (COLLECT2_OBJS): Include diagnostic.o, |
| pretty-print.o and input.o. |
| (collect2.o, tlink.o): Update dependencies. |
| |
| 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon. |
| |
| 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/40483 |
| * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as |
| COMDAT group syntax, both SPARC and x86 variants. |
| (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group. |
| * configure: Regenerate. |
| * config/sol2.h (TARGET_SOLARIS): Define. |
| (PUSHSECTION_FORMAT): Remove. |
| (SECTION_NAME_FORMAT): Define. |
| * config/sol2.c: Include hashtab.h. |
| (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its |
| expansion, using SECTION_NAME_FORMAT. |
| (solaris_comdat_htab): New variable. |
| (struct comdat_entry): Define. |
| (comdat_hash): New function. |
| (comdat_eq): New function. |
| (solaris_elf_asm_comdat_section): New function. |
| (solaris_define_comdat_signature): New function. |
| (solaris_code_end): New function. |
| * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare. |
| (solaris_code_end): Declare. |
| * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency. |
| * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call |
| solaris_code_end. |
| (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS. |
| Remove ATTRIBUTE_UNUSED. |
| [!USE_GAS]: Call solaris_elf_asm_comdat_section for |
| SECTION_LINKONCE sections if HAVE_COMDAT_GROUP. |
| * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise. |
| * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ... |
| * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here. |
| * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine. |
| (PUSHSECTION_FORMAT): Remove. |
| (SECTION_NAME_FORMAT): Redefine. |
| |
| 2011-05-19 Kai Tietz <ktietz@redhat.com> |
| |
| * tree-cfg.c (verify_gimple_assign_binary): Barf on |
| TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR. |
| (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form. |
| |
| 2011-05-19 Anatoly Sokolov <aesok@post.ru> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency. |
| |
| 2011-05-19 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48985 |
| * tree-object-size.c (addr_object_size): If the pointed-to |
| variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT. |
| |
| 2011-05-19 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_types_compatible_p_1): Compare names of |
| the types themselves. |
| (iterative_hash_gimple_type): And hash them that way. |
| (gimple_register_type_1): If we register a main variant properly |
| initialize the leader to ourselves. |
| |
| 2011-05-19 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of |
| get_loop_invariant_expr_id. |
| (get_loop_invariant_expr_id): Use get_expr_id. |
| (parm_decl_cost): New function. |
| (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost. |
| Improve bound cost estimation. Use different inv_expr_id for elim and |
| express cases. |
| |
| 2011-05-19 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent |
| cost_base.cost == 0. |
| |
| 2011-05-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/49002 |
| * config/i386/sse.md |
| (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle |
| load cast. |
| |
| 2011-05-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49039 |
| * tree-vrp.c (extract_range_from_binary_expr): For |
| MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]> |
| return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>]. |
| |
| 2011-05-18 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0. |
| |
| 2011-05-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template. |
| (*tls_global_dynamic_64): Ditto. |
| (*tls_local_dynamic_base_32_gnu): Ditto. |
| (*tls_local_dynamic_base_64): Ditto. |
| (tls_initial_exec_64_sun): Ditto. |
| |
| 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592. |
| * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for |
| bf592-none. |
| * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. |
| * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. |
| * config/bfin/bfin.c (bfin_cpus): Add bf592. |
| * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define |
| __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592. |
| * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592. |
| * config/bfin/elf.h (LIB_SPEC): Add bf592. |
| |
| 2011-05-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/arm-opts.h (enum arm_fp16_format_type, enum |
| arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h. |
| * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi, |
| target_thread_pointer, arm_structure_size_boundary, struct |
| float_abi, all_float_abis, struct fp16_format, all_fp16_formats, |
| struct abi_name, arm_all_abis): Remove. |
| (arm_option_override) Don't process most enumerated option values here. |
| Don't process target_fpe_name here. Work with integer not string for |
| structure size boundary; use separate diagnostics for each case. |
| * config/arm/arm.h (enum float_abi_type, enum |
| arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move |
| to arm-opts.h. |
| (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer, |
| arm_structure_size_boundary): Remove. |
| * config/arm/arm.opt (mabi=): Use Enum and Init. |
| (arm_abi_type): New Enum and EnumValue entries. |
| (mfloat-abi=): Use Enum and Init. |
| (float_abi_type): New Enum and EnumValue entries. |
| (mfp=, mfpe=): Replace by separate Alias entries for each argument. |
| (mfp16-format=): Use Enum and Init. |
| (arm_fp16_format_type): New Enum and EnumValue entries. |
| (mstructure-size-boundary=): Use UInteger and Init. |
| (mtp=): Use Enum and Init. |
| (arm_tp_type): New Enum and EnumValue entries. |
| |
| 2011-05-18 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/49018 |
| * gimple.c (gimple_has_side_effects): Volatile asms have side-effects. |
| * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use |
| gimple_has_side_effects. |
| |
| 2011-05-18 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_register_type_1): New function, split out from ... |
| (gimple_register_type): ... here. Avoid infinite recursion. |
| |
| 2011-05-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/41881 |
| * tree-vectorizer.h (struct _loop_vec_info): Add new field |
| reduction_chains along with a macro for its access. |
| * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains. |
| (destroy_loop_vec_info): Free reduction chains. |
| (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false. |
| (vect_is_slp_reduction): New function. |
| (vect_is_simple_reduction_1): Call vect_is_slp_reduction. |
| (vect_create_epilog_for_reduction): Support SLP reduction chains. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different |
| definition types for reduction chains. |
| (vect_supported_load_permutation_p): Don't allow permutations for |
| reduction chains. |
| (vect_analyze_slp_instance): Support reduction chains. |
| (vect_analyze_slp): Try to build SLP instance from reduction chains. |
| (vect_get_constant_vectors): Handle reduction chains. |
| (vect_schedule_slp_instance): Mark the first statement of the |
| reduction chain as reduction. |
| |
| 2011-05-18 Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new |
| names for group elements access. |
| * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for |
| reduction chains as well. Remove data reference and interleaving |
| related words from the fields names. |
| * tree-vect-loop.c (vect_transform_loop): Use new names for group |
| elements access. |
| * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain, |
| vect_insert_into_interleaving_chain, vect_update_interleaving_chain, |
| vect_update_interleaving_chain, vect_same_range_drs, |
| vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel, |
| vect_verify_datarefs_alignment, vector_alignment_reachable_p, |
| vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment, |
| vect_analyze_group_access, vect_analyze_data_ref_access, |
| vect_create_data_ref_ptr, vect_transform_strided_load, |
| vect_record_strided_load_vectors): Likewise. |
| * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost, |
| vect_model_load_cost, vectorizable_store, vectorizable_load, |
| vect_remove_stores, new_stmt_vec_info): Likewise. |
| * tree-vect-slp.c (vect_build_slp_tree, |
| vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise. |
| |
| 2011-05-18 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48989 |
| * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op |
| operand verification. |
| (verify_gimple_assign_binary): Likewise. |
| * tree-ssa.c (useless_type_conversion_p): Preserve conversions |
| to non-1-precision BOOLEAN_TYPEs. |
| |
| 2011-05-18 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/45098 |
| * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost. |
| |
| 2011-05-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/49000 |
| * tree-ssa.c (execute_update_addresses_taken): Call |
| maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't |
| be rewritten and decl has been marked for renaming, reset |
| the debug stmt. |
| |
| 2011-05-17 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/i386.c (ix86_valid_target_attribute_tree): Use |
| enum_opts_set when testing if attributes have set -mfpmath=. |
| |
| 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_handle_option): Remove unused variable. |
| |
| 2011-05-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize |
| info->entry with 0 |
| * tree-inline.c (maybe_inline_call_in_expr): Initialize |
| id.transform_lang_insert_block with NULL. |
| |
| 2011-05-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool. |
| (output_fp_compare): Change args 3 and 4 to bool. |
| (ix86_expand_call): Change arg 6 to bool. |
| (ix86_attr_length_immediate_default): Change arg 2 to bool. |
| (ix86_attr_length_vex_default): Change arg 3 to bool. |
| * config/i386/i386.md: Update all uses. |
| * config/i386/i386.c: Ditto. |
| (ix86_flags_dependent): Change return type to bool. |
| |
| 2011-05-17 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (type_hash_pair_compare): Fix comparison. |
| |
| 2011-05-17 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (iterative_hash_gimple_type): Simplify singleton |
| case some more, fix final hash value of the non-singleton case. |
| |
| 2011-05-17 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/49013 |
| Revert |
| 2011-05-16 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_types_compatible_p_1): Use names of the |
| type itself, not its main variant. |
| (iterative_hash_gimple_type): Likewise. |
| |
| 2011-05-17 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_register_canonical_type): Use the main-variant |
| leader for computing the canonical type. |
| |
| 2011-05-17 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.c (rx_memory_move_cost): Include cost of register |
| moves. |
| |
| * config/rx/rx.md: Add peephole to remove redundant extensions |
| after loads. |
| (bitset_in_memory): Use rx_restricted_mem_operand. |
| (bitinvert_in_memory): Likewise. |
| (bitclr_in_memory): Likewise. |
| |
| 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com> |
| Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md: Add peepholes to match a register move followed |
| by a comparison of the moved register. Replace these with an |
| addition of zero that does both actions in one instruction. |
| |
| 2011-05-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/48986 |
| * config/i386/sync.md (sync_old_add<mode>): Relax operand 2 |
| predicate to allow CONST_INT. |
| (*sync_old_add_cmp<mode>): New insn and peephole2 for it. |
| |
| 2011-05-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * opts-common.c (opt_enum_arg_to_value): New. |
| * opts.h (opt_enum_arg_to_value): Declare. |
| * config/i386/i386.opt (fpmath): Remove. |
| (mfpmath=): Use Enum, Init and Save. |
| (fpmath_unit): New Enum and EnumValue entries. |
| * config/i386/i386-c.c (ix86_pragma_target_parse): Update field |
| name for function fpmath state. |
| * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h. |
| * config/i386/i386.c: Include diagnostic.h. |
| (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove. |
| (ix86_target_string): Take enum fpmath_unit value instead of string. |
| (ix86_debug_options): Update call to ix86_target_string. |
| (ix86_option_override_internal): Don't process fpmath strings here. |
| (x86_function_specific_save, ix86_function_specific_restore): |
| Don't handle fpmath state specially. |
| (ix86_function_specific_print): Pass fpmath state to |
| ix86_target_string instead of printing in this function. |
| (ix86_valid_target_attribute_inner_p): Take gcc_options pointer. |
| Handle enum attributes. |
| (IX86_ATTR_ENUM, ix86_opt_enum): New. |
| (ix86_valid_target_attribute_tree): Update option_strings |
| handling. Handle fpmath as enum option. |
| (ix86_can_inline_p): Update field names for function fpmath state. |
| (ix86_expand_builtin): Update call to ix86_target_string. |
| * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h. |
| (ix86_fpmath): Remove. |
| * config/i386/t-i386 (i386.o): Update dependencies. |
| |
| 2011-05-16 Joseph Myers <joseph@codesourcery.com> |
| |
| PR preprocessor/48677 |
| * cppspec.c (lang_specific_driver): Set new_decoded_options[0] |
| from decoded_options[0], not from itself. |
| |
| 2011-05-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/constraints.md (z): New constraint. |
| * config/i386/i386.c (c): New mode attribute. |
| (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and |
| *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm" |
| constraint for operand 0. |
| (*call_vzeroupper): Ditto. |
| (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0. |
| (*call_rex64_ms_sysv_vzeroupper): Ditto. |
| (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1. |
| Use "lzm" constraint for operand 0. |
| (*call_pop_vzeroupper): Ditto. |
| (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and |
| *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz" |
| constraint for operand 0. |
| (*sibcall_vzeroupper): Ditto. |
| (*sibcall_rex64_ms_sysv): Ditto. |
| (*sibcall_rex64_ms_sysv_vzeroupper): Ditto. |
| (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and |
| *sibcall_pop_1. Use "Uz" constraint for operand 0. |
| (*sibcall_pop_vzeroupper): Ditto. |
| (*call_value): Merge insn pattern from *call_value_0, *call_value_1, |
| *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P" |
| mode iterator. Use "<c>zm" constraint for operand 1. |
| (*call_value_vzeroupper): Ditto. |
| (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint |
| for operand 1. |
| (*call_value_rex64_ms_sysv_vzeroupper): Ditto. |
| (*call_value_pop): Merge insn pattern from *call_value_pop_0 and |
| *call_value_pop_1. Use "lzm" constraint for operand 1. |
| (*call_value_pop_vzeroupper): Ditto. |
| (*sibcall_value): Merge insn pattern from *sibcall_value_0, |
| *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P" |
| mode iterator. Use "Uz" constraint for operand 1. |
| (*sibcall_value_vzeroupper): Ditto. |
| (*sibcall_value_rex64_ms_sysv): Ditto. |
| (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto. |
| (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz" |
| constraint for operand 1. |
| (*sibcall_value_pop_vzeroupper): Ditto. |
| (*tls_global_dynamic_64): Use constant_call_address_operand predicate |
| and "z" constraint for operand 2. |
| (*tls_global_dynamic_32_gnu): Ditto. |
| (*tls_local_dynamic_base_32_gnu): Ditto. |
| (*tls_local_dynamic_base_64): Ditto. |
| (*tls_local_dynamic_32_once): Ditto. |
| * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument. |
| Update all callers. |
| * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype. |
| |
| 2011-05-16 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_types_compatible_p_1): Use names of the |
| type itself, not its main variant. |
| (iterative_hash_gimple_type): Likewise. |
| |
| 2011-05-16 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (iterative_hash_gimple_type): Re-instantiate change to |
| always visit pointer target and function result and argument types. |
| |
| 2011-05-16 Jason Merrill <jason@redhat.com> |
| |
| PR c++/48999 |
| * tree-inline.c (copy_statement_list): Put back recursion. |
| |
| 2011-05-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/27663 |
| PR target/41076 |
| * config/avr/predicates.md (const_8_16_24_operand): New predicate. |
| * config/avr/avr.md ("*ior<mode>qi.byte0", |
| "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns. |
| |
| 2011-05-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/45099 |
| * config/avr/avr.c (avr_function_arg_advance): Error if a fixed |
| register is needed for a function argument. |
| |
| 2011-05-16 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (struct type_hash_pair): New type. |
| (type_hash_pair_compare): New function. |
| (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order. |
| |
| 2011-05-16 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first. |
| |
| 2011-05-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (floating point move splitters): Fix |
| usage of standard_80387_constant_p. |
| * config/i386/i386.c (ix86_preferred_reload_class): Ditto. |
| |
| 2011-05-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdf_internal): Simplify insn condition. |
| |
| 2011-05-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro. |
| (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN. |
| (tree_ssa_lim_finalize): Likewise. |
| |
| 2011-05-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/constraint.md (Yd, Yx): New register constraints. |
| * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use |
| Yd conditional register constraint. |
| (*movtf_internal): Use standard_sse_constant_opcode. |
| (*movxf_internal): Merge with *movxf_internal_nointeger. Use |
| Yx conditional register constraint. |
| (*movdf_internal): Merge with *movdf_internal_nointeger. Use |
| Yd conditional register constraint. Use standard_sse_constant_p to |
| check for valid SSE constants and call standard_sse_constant_opcode to |
| output SSE insn. |
| (*movsf_internal): Use standard_sse_constant_p to check for valid SSE |
| constants and call standard_sse_constant_opcode to output SSE insn. |
| * config/i386/i386.c (ix86_option_ovverride_internal): Set |
| TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when |
| optimize_size is set. |
| (standard_sse_constant_opcode): Output conditional AVX insn templates. |
| |
| 2011-05-14 Tobias Burnus <burnus@net-b.de> |
| |
| * doc/invoke.texi (-Ofast): Also enables -fstack-arrays. |
| |
| 2011-05-13 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (ipa_cst_from_jfunc): New function. |
| * ipa-prop.h (ipa_cst_from_jfunc): Declare. |
| * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it. |
| (evaluate_conditions_for_ipcp_clone): Removed. |
| (estimate_ipcp_clone_size_and_time): Accept vector of known constants. |
| * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants. |
| * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update. |
| |
| 2011-05-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message. |
| * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in |
| lieu of MAY_HAVE_DEBUG_STMTS. |
| * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move |
| debug statements if !MAY_HAVE_DEBUG_STMTS. |
| |
| 2011-05-13 Martin Thuresson <martint@google.com> |
| |
| PR gcov-profile/47793 |
| * libgcov.c (gcov_exit): Support relative profile paths. |
| * doc/invoke.texi (-fprofile-dir): Update for above change. |
| |
| 2011-05-13 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_canonical_types_compatible_p): Do not use |
| type-pair caching, do not compare hashes. |
| |
| 2011-05-13 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR middle-end/48965 |
| * tree-cfg.c (edge_to_cases_cleanup): Return true. |
| (verify_expr) [CASE_LABEL_EXPR]: Add checking. |
| |
| 2011-05-13 Kai Tietz <ktietz@redhat.com> |
| |
| * gimplify.c (gimplify_expr): Make sure operand is boolified. |
| * tree-cfg.c (verify_gimple_assign_unary): Check for boolean |
| compatible type for TRUTH_NOT_EXPR. |
| |
| 2011-05-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_save_reg): Change return type to bool. |
| (ix86_hard_regno_mode_ok): Change return value to bool. Use |
| can_create_pseudo_p (). |
| |
| 2011-05-13 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48978 |
| * gimple.c (iterative_hash_gimple_type): Revert change in |
| pointer target and function result and argument hashing. |
| |
| 2011-05-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo (). |
| (*movxf_internal_nointeger): Ditto. |
| (*movdf_internal_rex64): Ditto. |
| (*movdf_internal): Ditto. |
| (*movdf_internal_nointeger): Ditto. |
| (*movsf_internal): Ditto. |
| (sincos splitters): Use can_create_pseudo (). |
| |
| 2011-05-13 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/i386-opts.h: New. |
| * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel, |
| ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost, |
| ix86_section_threshold): Remove. |
| (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle |
| OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and |
| OPT_mbranch_cost_. |
| (ix86_option_override_internal): Don't decode strings for options |
| other than -march=, -mtune= and -mfpmath=. Don't allow for |
| __attribute__ uses in remaining diagnostics for options with |
| string arguments. Don't check for integer arguments being negative. |
| * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi, |
| enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h. |
| (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect, |
| ix86_branch_cost, ix86_section_threshold): Remove. |
| * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New |
| HeaderInclude. |
| (malign-functions=, malign-jumps=, malign-loops=): Use UInteger |
| but not Var. |
| (masm=): Use Enum and Init. |
| (asm_dialect): New Enum and EnumValue entries. |
| (mbranch-cost=): Use UInteger. |
| (mlarge-data-threshold=): Use UInteger and Init. |
| (mcmodel=): Use Enum and Init. |
| (cmodel): New Enum and EnumValue entries. |
| (mpc): Replace with separate mpc32, mpc64 and mpc80 entries. |
| (mpreferred-stack-boundary=, mincoming-stack-boundary=, |
| mregparm=): Use UInteger. |
| (mstringop-strategy=): Use Enum and Init. |
| (stringop_alg): New Enum and EnumValue entries. |
| (mtls-dialect=): Use Enum and Init. |
| (tls_dialect): New Enum and EnumValue entries. |
| (mabi=): Use Enum and Init. |
| (calling_abi): New Enum and EnumValue entries. |
| (mveclibabi=): Use Enum and Init. |
| (ix86_veclibabi): New Enum and EnumValue entries. |
| |
| 2011-05-13 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p. |
| * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype. |
| |
| 2011-05-13 Kai Tietz <ktietz@redhat.com> |
| |
| PR middle-end/48984 |
| * gimplify.c (gimplify_expr): Check for boolean_type_node instead |
| for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR. |
| (gimple_boolify): Check for cast for boolean_type_node instead for |
| BOOLEAN_TYPE. |
| |
| 2011-05-13 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48172 |
| * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid |
| multiplying by number of iterations for equal step. |
| (vect_create_cond_for_alias_checks): Likewise. |
| |
| 2011-05-13 Andreas Schwab <schwab@redhat.com> |
| |
| * configure.ac: Use AS_HELP_STRING throughout. |
| * configure: Regenerate. |
| |
| 2011-05-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool. |
| (ix86_emit_restore_regs_using_mov): Likewise. |
| (ix86_emit_restore_sse_regs_using_mov): Likewise. |
| |
| 2011-05-12 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, |
| SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove. |
| (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to... |
| * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P, |
| RTX_OK_FOR_OLO10_P): ...here. |
| (sparc_mode_dependent_address_p): Use symbolic_operand instead of |
| SYMBOLIC_CONST. |
| |
| 2011-05-12 Kai Tietz <ktietz@redhat.com> |
| |
| * gimplify.c (gimple_boolify): Re-boolify expression |
| arguments even if expression type is of kind BOOLEAN_TYPE. |
| (gimplify_boolean_expr): Removed. |
| (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF, |
| and XOR. Additional take care that we keep expression's type. |
| * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type |
| of TRUTH_AND|OR|XOR_EXPR. |
| |
| 2011-05-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48975 |
| * tree-if-conv.c (combine_blocks): Call free_bb_predicate |
| on all bbs here and free and clear ifc_bbs at the end. |
| |
| 2011-05-12 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle |
| NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup |
| until after simple checks. |
| (gimple_types_compatible_p): Likewise. |
| (iterative_hash_gimple_type): Always hash pointer targets |
| and function return and argument types. |
| (iterative_hash_canonical_type): Do not hash TYPE_QUALS, |
| hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE. |
| (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE, |
| handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates |
| completely in the simple compare section. |
| (gimple_register_canonical_type): Query the cache again after |
| registering. |
| |
| 2011-05-12 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48172 |
| * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude |
| the number of iterations from the segment size calculation. |
| (vect_create_cond_for_alias_checks): Adjust. |
| |
| 2011-05-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48967 |
| * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1 |
| if validate_subreg fails. |
| |
| 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com> |
| |
| * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from |
| accessing beyond the end of REGNO_REG_CLASS array by stopping the loop |
| early. |
| |
| 2011-05-12 DJ Delorie <dj@redhat.com> |
| |
| * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions. |
| (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install |
| created builtin into rx_builtins array. |
| (rx_builtin_decl): New function. |
| (TARGET_BUITLIN_DECL): Define. Include gt-rx.h. |
| |
| 2011-05-12 DJ Delorie <dj@redhat.com> |
| Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo. |
| * config/rx/rx.c (CC_FLAG_FP): Fix comment. |
| (rx_is_legitimate_address): Add pre-decrement and post-increment |
| addressing in HImode and QImode. Fix test for out of range |
| REG+INT addressing. |
| (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant. |
| (rx_align_for_label): Test label before extracting its usage count. |
| (rx_adjust_insn_lengths): Fix selection of insn codes. |
| (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function. |
| |
| 2011-05-11 Jason Merrill <jason@redhat.com> |
| |
| * tree.c (type_hash_canon): Use struct tree_type_non_common. |
| |
| 2011-05-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and |
| reindent the subsequent block. |
| |
| 2011-05-11 Satoru Takabayashi <satorux@google.com> |
| Paul Pluzhnikov <ppluzhnikov@google.com> |
| |
| * doc/install.texi (Configuration): Document --with-linker-hash-style. |
| * gcc.c (init_spec): Handle LINKER_HASH_STYLE. |
| * config.in: Add LINKER_HASH_STYLE. |
| * configure.ac: Add --with-linker-hash-style. |
| * configure: Regenerate. |
| |
| 2011-05-11 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48964 |
| * gimple.c (iterative_hash_canonical_type): Fix typo. |
| |
| 2011-05-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (legitimize_tls_address) |
| <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64} |
| expanders directly for TARGET_GNU2_TLS. Determine pic and |
| __tls_get_addr symbol reference here. Update call to |
| gen_tls_global_dynamic_{32,64} for added arguments. |
| <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64} |
| expanders directly for TARGET_GNU2_TLS. Determine |
| __tls_get_addr symbol reference here. Update call to |
| gen_tls_local_dynamic_base_{32,64} for added arguments. Attach |
| unique UNSPEC REG_EQUIV to libcall block. |
| (ix86_tls_get_addr): Declare static. |
| * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration. |
| * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3. |
| Do not determine pic and __tls_get_addr symbol reference here. Do not |
| call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS. |
| (tls_local_dynamic_base_32): Ditto for operands 1 and 2. |
| (tls_global_dynamic_64): Add operand 2. Do not determine |
| __tls_get_addr symbol reference here. Do not call |
| gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here. |
| (tls_local_dynamic_base64): Ditto for operand 1. |
| |
| 2011-05-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * function.c (expand_function_start): Initialize stack_check_probe_note |
| only if the generic stack checking mechanism is used. |
| |
| 2011-05-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/15256 |
| * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize |
| (A & B) | C, combine (A op CST1) op CST2. |
| (tree_ssa_forward_propagate_single_use_vars): Only bother to |
| visit assigns that have uses. |
| |
| 2011-05-11 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common. |
| * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to... |
| (unpack_ts_type_common_value_fields): ...this. Update comment. |
| (unpack_value_fields): Adjust for renaming. |
| (lto_input_ts_type_tree_pointers): Split into... |
| (lto_input_ts_type_common_tree_pointer): ...this and... |
| (lto_input_ts_type_non_common_tree_pointers): ...this. |
| (lto_input_tree_pointers): Adjust for above split. |
| * lto-streamer-out.c (pack_ts_type_value_fields): Rename to... |
| (pack_ts_type_common_value_fields): ...this. Update comment. |
| (lto_output_ts_type_tree_pointers): Split into... |
| (lto_output_ts_type_common_tree_pointers): ...this and... |
| (lto_output_ts_type_non_common_tree_pointers): ...this. |
| (lto_output_tree_pointers): Adjust for above split. |
| * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON, |
| TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled. |
| * stor-layout.c (vector_type_mode): Adjust location of mode field. |
| * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC): |
| Define. |
| (struct tree_type): Split into... |
| (struct tree_type_common: ...this and... |
| (struct tree_type_with_lang_specific): ...this and... |
| (struct tree_type_non_common): ...this. Adjust accessor macros |
| accordingly. |
| (TYPE_VALUES_RAW): Define. |
| (union tree_node): Update for above changes. |
| * tree.c (tree_node_structure_for_code) [tcc_type]: Return |
| TS_TYPE_NON_COMMON. |
| (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON. |
| Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON. |
| (tree_code_size) [tcc_type]: Use struct tree_type_non_common. |
| * treestructu.def (TS_TYPE): Remove. |
| (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON): |
| Define. |
| |
| 2011-05-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48159 |
| * tree-ssa.c (reset_debug_uses): New function. |
| * tree-flow.h (reset_debug_uses): New prototype. |
| * tree-data-ref.c (stmts_from_loop): Ignore debug stmts. |
| * tree-loop-distribution.c (generate_loops_for_partition): Call |
| reset_debug_uses on the stmts that will be removed. Keep around |
| all debug stmts, don't count them as bits in partition bitmap. |
| (generate_builtin): Don't count debug stmts or labels as bits in |
| partition bitmap. |
| |
| 2011-05-11 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_type_hash_1): Merge with ... |
| (gimple_type_hash): ... this. |
| (gtc_visit): Remove mode parameter and simplify accordingly. |
| (gimple_types_compatible_p_1): Likewise. |
| (gimple_types_compatible_p): Likewise. |
| (iterative_hash_gimple_type): Likewise. |
| (visit): Likewise. |
| (gimple_type_eq): Adjust. |
| |
| 2011-05-11 Revital Eres <revital.eres@linaro.org> |
| |
| * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge |
| enters the branch create an anti edge in the opposite direction |
| to prevent the creation of reg-moves. |
| * modulo-sched.c: Adjust comment to reflect the fact we are |
| scheduling closing branch. |
| (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine. |
| (stage_count): New field in struct partial_schedule. |
| (calculate_stage_count): New function. |
| (normalize_sched_times): Rename to reset_sched_times and handle |
| incrementing the sched time of the nodes by a constant value |
| passed as parameter. |
| (duplicate_insns_of_cycles): Skip closing branch. |
| (sms_schedule_by_order): Schedule closing branch. |
| (ps_insn_find_column): Handle closing branch. |
| (sms_schedule): Call reset_sched_times and adjust the code to |
| support scheduling of the closing branch. |
| (ps_insert_empty_row): Update calls to normalize_sched_times |
| and rotate_partial_schedule functions. |
| |
| 2011-05-11 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48953 |
| * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs. |
| |
| 2011-05-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * opts.c (finish_options): Move warning settings from process_options. |
| * toplev.c (process_options): Move warning settings to finish_options. |
| |
| 2011-05-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/18041 |
| * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ... |
| (simplify_bitwise_binary): ... this. Handle operand conversions |
| by applying them to the result instead. |
| (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code. |
| |
| 2011-05-11 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_canonical_types_compatible_p): Split out |
| from gimple_types_compatible_p and friends. Do not recurse |
| to pointed-to types. |
| (gimple_canonical_type_eq): Use it. |
| (iterative_hash_canonical_type): Split out from |
| iterative_hash_gimple_type and friends. Do not recurse |
| to pointed-to types. |
| (gimple_canonical_type_hash): Use it, allocate the hash here. |
| |
| 2011-05-11 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while |
| recognizing doloop. |
| |
| 2011-05-11 Revital Eres <revital.eres@linaro.org> |
| |
| * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn |
| instead of PREV_INSN. |
| |
| 2011-05-11 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (sms_schedule): Support new form of doloop pattern |
| * loop-doloop.c (doloop_condition_get): Likewise. |
| * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*". |
| (doloop_end): New. |
| * config/arm/arm.md (*addsi3_compare0): Remove "*". |
| |
| 2011-05-10 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.def (CASE_LABEL_EXPR): Add an operand. |
| * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN. |
| |
| 2011-05-10 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (c_override_global_bindings_to_false): Remove. |
| (global_bindings_p): Don't check |
| c_override_global_bindings_to_false. |
| * c-tree.h (c_override_global_bindings_to_false): Remove. |
| * c-typeck.c (composite_type): Don't set |
| c_override_global_bindings_to_false. |
| |
| 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/48857, 48495 |
| * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete. |
| (VSX_MODE): Ditto. |
| (VSX_MOVE_MODE): Ditto. |
| (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and |
| VSX vector types. Add V2DImode. |
| (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of |
| ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls. |
| (MODES_TIEABLE_P): Ditto. |
| |
| * config/rs6000/rs6000.c (rs6000_emit_move): Use |
| ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and |
| VSX_VECTOR_MODE. |
| (init_cumulative_args): Ditto. |
| (rs6000_function_arg_boundary): Ditto. |
| (rs6000_function_arg_advance_1): Ditto. |
| (rs6000_function_arg): Ditto. |
| (rs6000_function_ok_for_sibcall): Ditto. |
| (emit_frame_save): Ditto. |
| (rs6000_function_value): Ditto. |
| (rs6000_libcall_value): Ditto. |
| |
| 2011-05-10 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add |
| i386/darwin-lib.h to $libgcc_tm_file. |
| * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove. |
| |
| 2011-05-10 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk. |
| |
| 2011-05-10 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files. |
| * config/rs6000/rs6000-tables.opt: New file (generated). |
| * config.gcc (powerpc*-*-*, rs6000*-*-*): Add |
| rs6000/rs6000-tables.opt to extra_options. |
| * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define. |
| * config/rs6000/rs6000.c (rs6000_select): Remove. |
| (processor_target_table): Move contents to rs6000-cpus.def. |
| (darwin_rs6000_override_options): Check |
| global_options_set.x_rs6000_cpu_index instead of |
| rs6000_select[1].string. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_handle_option): Don't assert that global structures are in |
| use. Don't handle OPT_mcpu_ and OPT_mtune_ here. |
| (rs6000_default_cpu): New variable. |
| (rs6000_file_start): Set it instead of local default_cpu. Check |
| rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and |
| global_options_set.x_rs6000_tune_index instead of rs6000_select. |
| (rs6000_darwin_file_start): Check rs6000_default_cpu and |
| global_options_set.x_rs6000_cpu_index instead of rs6000_select. |
| * config/rs6000/rs6000.h (struct rs6000_cpu_select, |
| rs6000_select): Remove. |
| * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index): |
| Remove. |
| (mcpu=, mtune=): Use Var, Init, Enum and Save. |
| * config/rs6000/t-rs6000 |
| ($(srcdir)/config/rs6000/rs6000-tables.opt): New. |
| * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check |
| global_options_set.x_rs6000_cpu_index instead of |
| rs6000_select[1].string. |
| * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check |
| global_options_set.x_rs6000_cpu_index instead of |
| rs6000_select[1].string. |
| |
| 2011-05-10 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (libgcc_tm_file): Define instead of including files |
| from ../../libgcc/config/ in tm_file. |
| * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define. |
| * configure: Regenerate. |
| * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list, |
| libgcc_tm.h, cs-libgcc_tm.h): New. |
| (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list). |
| (clean): Remove libgcc_tm.h. |
| * config/arm/symbian.h (RENAME_LIBRARY): Remove. |
| * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET. |
| * system.h (DECLARE_LIBRARY_RENAMES): Poison. |
| |
| 2011-05-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/48896 |
| * config/avr/avr.c (avr_ret_register): Return unsigned int |
| instead of int. |
| (avr_function_value): Mark fn_decl_or_type as unused, don't pass |
| it to avr_libcall_value. |
| avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to |
| expand_expr. |
| (avr_expand_binop_builtin): Ditto. |
| (avr_expand_unop_builtin): Ditto. |
| |
| 2011-05-10 DJ Delorie <dj@redhat.com> |
| |
| * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define. |
| (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label |
| * config/rx/rx.c (rx_align_for_label): Add label and |
| uses_threshold parameters. Do not align when the label is not |
| used enough. |
| * config/rx/rx-protos.h (rx_align_for_label): Update prototype. |
| |
| 2011-05-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (combine_conversions): Pattern-match |
| a series of conversions and apply foldings similar to what |
| fold-const does. |
| (tree_ssa_forward_propagate_single_use_vars): Call it. |
| |
| 2011-05-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48611 |
| PR tree-optimization/48794 |
| * tree-eh.c (remove_unreachable_handlers): Don't remove regions |
| referenced from RESX or EH_DISPATCH arguments. |
| |
| PR debug/48928 |
| * dfp.c (decimal_to_decnumber): Handle conversion from |
| dconst{1,2,m1,half}. |
| |
| 2011-05-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0 |
| for !flag_prefer_avx128. |
| (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2. |
| |
| 2011-05-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const.c (fold_range_test): Pass LOC to build_range_check. |
| (fold_ternary_loc): Use expr_location_or. |
| |
| 2011-05-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR debug/48853 |
| * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If |
| POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is |
| Pmode and mem_mode is not VOIDmode. |
| |
| 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com> |
| |
| * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, |
| TYPE_QUAL_RESTRICT): Convert to enum. |
| |
| 2011-05-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove. |
| (const_pow2_1_to_8_operand): Ditto. |
| (const_pow2_1_to_128_operand): Ditto. |
| (const_pow2_1_to_32768_operand): Ditto. |
| * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of |
| const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2 |
| in insn constraint to check integer value of operand 3. |
| * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto. |
| |
| (PINSR_MODE): New mode iterator. |
| (sse2p4_1): New mode attribute. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb, |
| sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode |
| iterator. Use const_int_operand instead of |
| const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use |
| exact_log2 in insn constraint to check integer value of operand 3. |
| |
| 2011-05-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (blendbits): Remove mode attribute. |
| (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand |
| instead of const_0_to_<blendbits>_operand for operand 3 predicate. |
| Check integer value of operand 3 in insn constraint. |
| |
| 2011-05-09 Richard Guenther <rguenther@suse.de> |
| |
| * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p |
| for diagnostics. |
| (lto_symtab_merge): Likewise. Do not register types here. |
| (lto_symtab_merge_decls_2): Likewise. |
| (lto_symtab_merge_decls_1): Likewise. |
| * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare. |
| * gimple.c (enum gtc_mode): Declare. |
| (gimple_types_compatible_p): Make static. |
| |
| 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.md (TD/TF mem to reg move splitter): Make the |
| temporary register to match Pmode. |
| |
| 2011-05-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1 |
| and *vec_concatv4si_1_avx. |
| |
| 2011-05-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/48927 |
| * ira-conflicts.c (commutative_constraint_p): Use |
| recog_data.alternative_enabled_p to disable alternatives where |
| "enabled" attribute is false. |
| (get_dup_num): Ditto. |
| * ira-lives.c (single_reg_class): Ditto. |
| (ira_implicitly_set_insn_hard_regs): Ditto. |
| |
| 2011-05-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. |
| (dataflow_set_preserve_mem_locs): Likewise. |
| |
| 2011-05-09 Philipp Thomas <pth@suse.de> |
| |
| * config/mep/mep.c (mep_validate_vliw): Syntax description |
| should not be translated. |
| |
| 2011-05-09 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/genopt.sh, config/mips/mips-cpus.def: New files. |
| * config/mips/mips-tables.opt: New file (generated). |
| * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options. |
| * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI, |
| MIPS_ARCH_OPTION_NATIVE): Define. |
| * config/mips/mips.c (mips_cpu_info_table): Move contents to |
| mips-cpus.def. |
| (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p, |
| mips_parse_cpu): Remove. |
| (mips_cpu_info_from_opt, mips_default_arch): New. |
| (mips_handle_option): Don't assert that global structures are in |
| use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here. |
| (mips_option_override): Use new variables and functions to set |
| state of these options. Use strcmp to check for individual CPU names. |
| * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default |
| definition. |
| * config/mips/mips.opt (march=): Use ToLower and Enum. |
| (mips): Use ToLower, Enum and Var. |
| (mtune=): Use ToLower and Enum. |
| * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New. |
| |
| 2011-05-08 Jan Hubicka <jh@suse.cz> |
| |
| * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair): |
| Arrange type pairs to be UID ordered. |
| (gimple_lookup_type_leader): Make inline. |
| |
| 2011-05-09 Nick Clifton <nickc@redhat.com> |
| |
| PR target/48899 |
| * config/iq2000/iq2000.opt (iq2000_tune): Initialise to |
| PROCESSOR_DEFAULT. |
| |
| PR target/48897 |
| * config/mn10300/mn10300.c (extract_bundle): Remove spurious local |
| variable 's'. |
| |
| 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * combine.c (simplify_comparison): Abstract out parts into... |
| (simplify_compare_const): ... new function. |
| (try_combine): Generalize parallel arithmetic/compare combining |
| to call simplify_compare_const() and CANONICALIZE_COMPARE(). |
| |
| 2011-05-08 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter. |
| (cgraph_create_virtual_clone): Call hooks once virtual clone |
| is finished. |
| * cgraph.h (cgraph_clone_node): Update prototype. |
| * ipa-cp.c (ipcp_estimate_growth): Use |
| estimate_ipcp_clone_size_and_time. |
| * ipa-inline-transform.c (clone_inlined_nodes): Update. |
| * lto-cgraph.c (input_node): Update. |
| * ipa-inline.c (recursive_inlining): Update. |
| * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function. |
| (evaluate_conditions_for_known_args): Break out from ... |
| (evaluate_conditions_for_edge): ... here. |
| (evaluate_conditions_for_ipcp_clone): New function. |
| (inline_node_duplication_hook): Update clone summary based |
| on parameter map. |
| (estimate_callee_size_and_time): Rename to ... |
| (estimate_node_size_and_time): take NODE instead of EDGE; |
| take POSSIBLE_TRUTHS as argument. |
| (estimate_callee_size_and_time): Update. |
| (estimate_ipcp_clone_size_and_time): New function. |
| (do_estimate_edge_time): Update. |
| |
| 2011-05-08 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48908 |
| PR middle-end/48905 |
| * expmed.c (expand_shift_1): Compute adjusted constant shift |
| amount manually. |
| |
| 2011-05-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/avr/avr.c (print_operand_address): Fix invalid RTL access. |
| |
| 2011-05-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/rs6000.c (output_profile_hook): Fix thinko. |
| |
| 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| * doc/invoke.texi (-fuse-linker-plugin): Improve grammar. |
| |
| 2011-05-07 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (inline_call): Account when program size |
| decreases. |
| * ipa-inline.c (relative_time_benefit): New function. |
| (edge_badness): Reorganize to be power 2 based; fix thinko when |
| computing badness for negative growth; update comments to match |
| reality; better dumps. |
| |
| 2011-05-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return |
| type to bool and adjust comment. |
| * fold-const.c (fold_range_test): Adjust call to global_bindings_p. |
| (fold_mathfn_compare): Remove calls to global_bindings_p. |
| (fold_inf_compare): Likewise. |
| * stor-layout.c (variable_size): Adjust call to global_bindings_p. |
| * c-tree.h (global_bindings_p): Adjust prototype. |
| * c-decl.c (global_bindings_p): Return bool and simplify. |
| |
| 2011-05-07 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/48837 |
| * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls |
| when accumulator transformation is performed. |
| |
| 2011-05-06 Jan Hubicka <jh@suse.cz> |
| |
| * i386.h (ix86_tune_indices): Add |
| X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL. |
| (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro. |
| * i386.c (initial_ix86_tune_features): Add |
| X86_SOFTARE_PREFETCHING_BENEFICIAL. |
| (software_prefetching_beneficial_p): Remove predicate. |
| (ix86_option_override_internal): Use new macro. |
| |
| 2011-05-06 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (update_callee_keys): Don't reset node growth cache. |
| |
| 2011-05-06 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_add_thunk): Create real function node instead |
| of alias node; finalize it and mark needed/reachale; arrange visibility |
| to be right and add it into the corresponding same comdat group list. |
| (dump_cgraph_node): Dump thunks. |
| * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function, |
| cgraph_function_with_gimple_body_p, |
| cgraph_first_function_with_gimple_body, |
| cgraph_next_function_with_gimple_body): New functions. |
| (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION): |
| New macros. |
| * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected. |
| (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. |
| * cgraphunit.c (cgraph_finalize_function): Only look into possible |
| devirtualization when optimizing. |
| (verify_cgraph_node): Verify thunks. |
| (cgraph_analyze_function): Analyze thunks. |
| (cgraph_mark_functions_to_output): Output thunks only in combination |
| with function they are assigned to. |
| (assemble_thunk): Turn thunk into non-thunk; don't try to turn |
| alias into normal node. |
| (assemble_thunks): New functoin. |
| (cgraph_expand_function): Use it. |
| * lto-cgraph.c (lto_output_node): Stream thunks. |
| (input_overwrite_node): Stream in thunks. |
| * ipa-pure-const.c (analyze_function): Thunks do nothing interesting. |
| * lto-streamer-out.c (lto_output): Do not try to output thunk's body. |
| * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION. |
| * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks. |
| (inline_analyze_function): Do not care about thunk jump functions. |
| (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION. |
| * ipa-prop.c (ipa_prop_write_jump_functions): Use |
| cgraph_function_with_gimple_body_p. |
| * passes.c (do_per_function_toporder): Use |
| cgraph_function_with_gimple_body_p. |
| (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. |
| (ipa_write_summaries): Use cgraph_function_with_gimple_body_p. |
| (function_called_by_processed_nodes_p): Likewise. |
| |
| 2011-05-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi, |
| rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable |
| entries. |
| (mabi=): Replace with separate entries for mabi=altivec, |
| mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32, |
| mabi=ieeelongdouble and mabi=ibmlongdouble. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Move |
| check for -mabi=spe without SPE ABI support here. |
| (rs6000_handle_option): Replace OPT_mabi_ handling with |
| OPT_mabi_altivec and OPT_mabi_spe handling. |
| |
| 2011-05-06 Cary Coutant <ccoutant@google.com> |
| |
| * dwarf2out.c (contains_subprogram_definition): New function. |
| (should_move_die_to_comdat): Call it. |
| |
| 2011-05-06 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (create_block_for_threading): Do not call |
| remove_ctrl_stmt_and_useless_edges. |
| (create_duplicates): Call remove_ctrl_stmt_and_useless_edges. |
| (fixup_template_block, thread_single_edge): Likewise. |
| (mark_threaded_blocks): Use THREAD_TARGET. |
| |
| 2011-05-06 Alan Modra <amodra@gmail.com> |
| |
| PR target/48900 |
| * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use |
| const0_rtx as the arg to the dummy __tls_get_addr libcall. |
| |
| 2011-05-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdf_internal_nointeger): Apply "*" |
| constraint modifier to "r". |
| |
| 2011-05-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and |
| fall through for OPT_mcmodel_. |
| |
| 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_asm_trampoline_template): Comment |
| instruction sizes. |
| (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG. |
| |
| 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/47930 |
| * config/arm/arm.opt (marm): Document it. |
| (mthumb): Reject negative variant. |
| |
| 2011-05-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/48898 |
| * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name): |
| Fix typo in "ccvt" variable name. |
| |
| 2011-05-06 Tristan Gingold <gingold@adacore.com> |
| |
| PR target/48895 |
| * config/vms/vms-ar.c (main): Remove cwd variable. |
| |
| 2011-05-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48902 |
| * var-tracking.c (prepare_call_arguments): Move else before #endif. |
| |
| 2011-05-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * except.c (sjlj_emit_dispatch_table): Call build_case_label. |
| * gimplify.c (gimplify_switch_expr): Likewise. |
| * omp-low.c (expand_omp_sections): Likewise. |
| * tree-eh.c (lower_try_finally_switch): Likewise. |
| (lower_eh_dispatch): Likewise. |
| * tree.h (build_case_label): Declare. |
| * tree.c (build_case_label): Define. |
| |
| 2011-05-05 Jason Merrill <jason@redhat.com> |
| |
| PR c++/40975 |
| * tree-inline.c (copy_tree_r): Use copy_statement_list. |
| (copy_statement_list): Don't recurse. |
| * stor-layout.c (copy_self_referential_tree_r): Don't allow |
| STATEMENT_LIST. |
| |
| 2011-05-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall |
| through from -mfpu= handling. |
| * config/rs6000/rs6000.opt (mfpu=): Use Var and Init. |
| |
| 2011-05-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle |
| POST_MODIFY. |
| |
| 2011-05-05 Steve Ellcey <sje@cup.hp.com> |
| |
| * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options |
| for 11.31. |
| (hppa[12]*-*-hpux11*): Ditto. |
| (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file. |
| * config/ia64/hpux-unix2003.h: New. |
| * config/pa/pa-hpux1131.opt: New. |
| * config/pa/pa-hpux1131.h: New. |
| * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested. |
| * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value. |
| * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value. |
| |
| 2011-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48853 |
| * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode |
| instead of mode as 3rd argument to recursive call. |
| (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't |
| emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not |
| VOIDmode. |
| (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED, |
| don't give up if mode is Pmode and mem_mode is not VOIDmode. |
| (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED, |
| use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode. |
| |
| 2011-05-05 Julian Brown <julian@codesourcery.com> |
| |
| * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced |
| parenthesis in D-register case. |
| |
| 2011-05-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * opt-functions.awk (var_type_struct): Handle Enum options. |
| * optc-gen.awk: Don't check range of variables of character type. |
| * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str, |
| rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name, |
| rs6000_sdata_name, rs6000_explicit_options): Remove. |
| (rs6000_option_override_internal): Check for -malign-power here. |
| Use global_options_set instead of rs6000_explicit_options. |
| (rs6000_parse_fpu_option): Remove. |
| (rs6000_handle_option): Access variables via opts and opts_set |
| pointers. Use error_at and warning_at. Add fall-through |
| comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return, |
| OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_, |
| OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_, |
| OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly |
| here. Don't use rs6000_parse_fpu_option. |
| * config/rs6000/rs6000.h (fpu_type): Remove declaration. |
| * config/rs6000/rs6000.opt (rs6000_long_double_type_size, |
| rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries. |
| (mrecip=): Use Var. |
| (mspe): Use Var and Save. |
| (mtraceback=): Use Enum and Var. |
| (rs6000_traceback_type): New Enum and EnumValue entries. |
| (mfloat-gprs=): Use Enum, Var and Save. |
| (rs6000_float_gprs): New Enum and EnumValue entries. |
| (mlong-double-): use Var and Save. |
| (msched-costly-dep=, minsert-sched-nops=): Use Var. |
| (malign-): Use Enum and Var. |
| (rs6000_alignment_flags): New Enum and EnumValue entries. |
| (mfpu=): Use Enum. |
| (fpu_type_t): New Enum and EnumValue entries. |
| * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out |
| definition. |
| * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var. |
| (rs6000_cmodel): New Enum and EnumValue entries. |
| * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use |
| global_options_set instead of rs6000_explicit_options. |
| * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var. |
| (mtls-size=): Use Enum and Var. |
| (rs6000_tls_size): New Enum and EnumValue entries. |
| |
| 2011-05-05 Michael Matz <matz@suse.de> |
| |
| * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast. |
| * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast. |
| * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast. |
| * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast. |
| * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast. |
| * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast. |
| * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast. |
| * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast. |
| * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast. |
| * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast. |
| * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast. |
| * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast. |
| * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast. |
| * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast. |
| * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast. |
| * config/mips/linux.h (ENDFILE_SPEC): Add Ofast. |
| |
| 2011-05-05 Richard Guenther <rguenther@suse.de> |
| |
| * expmed.c (expand_variable_shift): Rename to ... |
| (expand_shift_1): ... this. Take an expanded shift amount. |
| For rotates recurse directly not building trees for the shift amount. |
| (expand_variable_shift): Wrap around expand_shift_1. |
| (expand_shift): Adjust. |
| |
| 2011-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (create_tmp_var_raw): Don't call build_type_variant. |
| |
| 2011-05-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.h (get_pending_sizes): Remove prototype. |
| (put_pending_size): Likewise. |
| (put_pending_sizes): Likewise. |
| * stor-layout.c (pending_sizes): Delete. |
| (get_pending_sizes): Likewise. |
| (put_pending_size): Likewise. |
| (put_pending_sizes): Likewise. |
| (variable_size): Do not call put_pending_size and tidy up. |
| * function.h (struct function): Remove dont_save_pending_sizes_p. |
| * lto-streamer-in.c (input_function): Do not stream it. |
| * lto-streamer-out.c (output_function): Likewise. |
| * tree-inline.c (initialize_cfun): Do not copy it. |
| * c-decl.c (store_parm_decls): Do not set it. |
| * omp-low.c (create_task_copyfn): Likewise. |
| * tree-optimize.c (tree_rest_of_compilation): Likewise. |
| |
| 2011-05-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if" |
| conditions. |
| (*movdf_internal): Ditto. |
| (*movdf_internal_nointeger): Ditto. |
| (*movsf_internal): Ditto. |
| |
| 2011-05-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (finish_decl): Don't call get_pending_sizes. |
| (grokparm): Add parameter expr. Pass it to grokdeclarator. |
| (push_parm_decl): Add parameter expr. Pass it to grokdeclarator. |
| (c_variable_size): Remove. |
| (grokdeclarator): Use save_expr instead of c_variable_size. Don't |
| call put_pending_sizes. |
| (get_parm_info): Add parameter expr. Use it to set |
| arg_info->pending_sizes. |
| (store_parm_decls): Use arg_info->pending_sizes instead or calling |
| get_pending_sizes. |
| * c-parser.c (c_parser_parms_declarator): Update call to |
| c_parser_parms_list_declarator. |
| (c_parser_parms_list_declarator): Take parameter expr. Update |
| call to push_parm_decl. Update recursive call. Don't call |
| get_pending_sizes. Update calls to get_parm_info. |
| (c_parser_objc_method_definition): Update calls to |
| c_parser_objc_method_decl and objc_start_method_definition. |
| (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl. |
| (c_parser_objc_method_decl): Add parameter expr. Update call to |
| grokparm. |
| (c_parser_objc_try_catch_finally_statement): Update call to grokparm. |
| * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree. |
| (get_parm_info, grokparm, push_parm_decl): Update prototypes. |
| |
| 2011-05-05 Michael Hope <michael.hope@linaro.org> |
| |
| PR pch/45979 |
| * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for |
| __ARM_EABI__ hosts. |
| |
| 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define. |
| (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. |
| (spu_output_mi_thunk): New function. |
| |
| 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use |
| targetm.asm_out.print_operand. |
| * config/sol2.c: Include target.h. |
| |
| 2011-05-04 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (reset_edge_caches): New function. |
| (update_caller_keys): Add check_inlinablity_for; do not |
| reset edge caches; remove now unnecesary loop. |
| (update_callee_keys): Add comments; reset node_growth_cache of callee. |
| (update_all_callee_keys): Likewise. |
| (inline_small_functions): Sanity check cache; update code |
| recomputing it. |
| |
| 2011-05-04 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR rtl-optimization/47612 |
| * df-problems.c (can_move_insns_across): Don't pick a cc0 setter |
| as the last insn of the sequence to be moved. |
| |
| 2011-05-04 Tobias Burnus <burnus@net-b.de> |
| |
| PR fortran/48864 |
| * doc/invoke.texi (Ofast): Document that it |
| enables Fortran's -fno-protect-parens. |
| |
| 2011-05-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first. |
| |
| 2011-05-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stor-layout.c (variable_size): Do not issue errors. |
| |
| 2011-05-04 Richard Guenther <rguenther@suse.de> |
| |
| * coverage.c (tree_coverage_counter_ref): Use integer_type_node |
| for array-ref indices. |
| (tree_coverage_counter_addr): Likewise. |
| (build_fn_info_type): Use size_int for index types. |
| (build_gcov_info): Likewise. |
| |
| 2011-05-04 Richard Guenther <rguenther@suse.de> |
| |
| * c-decl.c (check_bitfield_type_and_width): Do not pass NULL |
| to build_int_cst. |
| * c-typeck.c (really_start_incremental_init): Use bitsize_int |
| for constructor indices. |
| (push_init_level): Likewise. |
| |
| 2011-05-04 Richard Guenther <rguenther@suse.de> |
| |
| * explow.c (promote_mode): Move variable declarations before code. |
| |
| 2011-05-04 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (build_function_type_array): Declare. |
| (build_varargs_function_type_array): Declare. |
| (build_function_type_vec, build_varargs_function_type_vec): Define. |
| * tree.c (build_function_type_array_1): New function. |
| (build_function_type_array): New function. |
| (build_varargs_function_type_array): New function. |
| |
| 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-loop.c (vectorizable_reduction): Check reduction cost |
| before setting STMT_VINFO_TYPE. |
| |
| 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference |
| instead of spu_pass_by_reference. |
| |
| 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * calls.c (emit_library_call_value_1): Invoke |
| promote_function_mode hook on libcall arguments. |
| * explow.c (promote_function_mode, promote_mode): Handle TYPE |
| argument being NULL. |
| * targhooks.c (default_promote_function_mode): Lisewise. |
| * config/s390/s390.c (s390_promote_function_mode): Likewise. |
| * config/sparc/sparc.c (sparc_promote_function_mode): Likewise. |
| |
| * doc/tm.texi: Document that TYPE argument might be NULL. |
| |
| 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| * config/bfin/bfin.c (bfin_cpus): Update silicon revisions. |
| |
| 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Bernd Schmidt |
| * config/bfin/bfin.md (addsi3): Add an alternative for IREGS. |
| |
| 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB) |
| (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET): |
| Move ... |
| * mips-tfile.c: ... here. |
| Don't include coretypes.h, tm.h, filenames.h. |
| (saber_stop): Remove definition and all calls. |
| [__SABER__]: Remove. |
| (__LINE__): Remove default. |
| (Size_t, Ptrdiff_t): Remove definitions. |
| Replace by size_t, ptrdiff_t. |
| [!MIPS_DEBUGGING_INFO]: Remove. |
| (SHASH_SIZE, THASH_SIZE): Remove defaults. |
| (progname): Add const. |
| (STATIC): Remove. |
| Replace all uses by static. |
| (ALIGN_SYMTABLE_OFFSET): Remove default. |
| * mips-tdump.c: Don't include coretypes.h, tm.h. |
| Remove !MIPS_IS_STAB guard. |
| * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h, |
| $(TM_H), filenames.h dependencies. |
| (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies. |
| |
| 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Jie Zhang |
| *config/bfin/bfin.c (bfin_extra_live_on_entry): New. |
| (TARGET_EXTRA_LIVE_ON_ENTRY): Define. |
| |
| 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Bernd Schmidt |
| * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into |
| account and save/restore RETS. |
| (PROFILE_BEFORE_PROLOGUE): Define. |
| (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct |
| the push insn to use predecrement. |
| |
| 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Jie Zhang |
| * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2. |
| |
| 2011-05-04 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c: Include cfgloop.h. |
| (DUMP): New macro. |
| (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a |
| Lcc or a FLcc insn into the instruction stream. |
| (mn10300_block_contains_call): New function. Returns true if the |
| given basic block contains a CALL insn. |
| (mn10300_loop_contains_call_insn): New function. Returns true if |
| the given loop contains a CALL insn. |
| (mn10300_scan_for_setlb_lcc): New function. Finds opportunities |
| to use the SETLB and Lcc or FLcc insns. |
| (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing. |
| (TARGET_FLAGS): Add MASK_ALLOW_SETLB. |
| * config/mn10300/mn10300.opt (msetlb): New option. Used to |
| disable the SETLB optimization. |
| * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add |
| __SETLB__ or __NO_SETLB__. |
| * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant. |
| (movsf_internal): Handle MDR register. |
| (cmpsi): Make visible. |
| (setlb): New pattern. |
| (Lcc): New pattern. |
| (FLcc): New pattern. |
| |
| 2011-05-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/48860 |
| * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd |
| for reg<->xmm moves. |
| * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto. |
| (vec_concatv2di_rex64_sse): Ditto. |
| (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic. |
| (*vec_extractv2di_1_rex64): Ditto. |
| |
| Revert: |
| 2011-05-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for |
| reg<->xmm moves. |
| (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. |
| |
| 2011-05-04 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (int_const_binop): Remove notrunc argument. |
| * fold-const.c (int_const_binop): Remove notrunc argument. Always |
| create integer constants that are properly truncated. |
| (extract_muldiv_1): Expand one notrunc int_const_binop caller. |
| (const_binop): Remove zero notrunc argument to int_const_binop. |
| (size_binop_loc): Likewise. |
| (fold_div_compare): Likewise. |
| (maybe_canonicalize_comparison_1): Likewise. |
| (fold_comparison): Likewise. |
| (fold_binary_loc): Likewise. |
| (multiple_of_p): Likewise. |
| * expr.c (store_constructor): Likewise. |
| * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise. |
| (maybe_fold_stmt_addition): Likewise. |
| * ipa-prop.c (ipa_modify_call_arguments): Likewise. |
| * stor-layout.c (layout_type): Likewise. |
| * tree-data-ref.c (tree_fold_divides_p): Likewise. |
| * tree-sra.c (build_ref_for_offset): Likewise. |
| (build_user_friendly_ref_for_offset): Likewise. |
| * tree-ssa-address.c (maybe_fold_tmr): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. |
| * tree-ssa-loop-niter.c (inverse): Likewise. |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. |
| * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise. |
| * tree-switch-conversion.c (check_range): Likewise. |
| (build_constructors): Likewise. |
| * tree-vect-generic.c (expand_vector_piecewise): Likewise. |
| * tree-vrp.c (set_and_canonicalize_value_range): Likewise. |
| (extract_range_from_assert): Likewise. |
| (vrp_int_const_binop): Likewise. |
| (extract_range_from_binary_expr): Likewise. |
| (extract_range_from_unary_expr): Likewise. |
| (check_array_ref): Likewise. |
| (find_case_label_range): Likewise. |
| (simplify_div_or_mod_using_ranges): Likewise. |
| * tree-cfg.c (group_case_labels_stmt): Use double-ints for |
| comparing case labels for merging. |
| |
| 2011-05-03 Mark Wielaard <mjw@redhat.com> |
| |
| * dwarf2out.c (debug_str_hash_forced): Removed. |
| (gen_label_for_indirect_string): Removed. |
| (get_debug_string_label): Removed. |
| (AT_string_form): Generate label directly. |
| (output_indirect_string): Test indirect_string_node for |
| DW_FORM_strp instead of checking label and refcount. |
| (prune_indirect_string): Removed. |
| (prune_unused_types): Don't check debug_str_hash_forced or |
| call prune_indirect_string. |
| |
| 2011-05-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR other/48093 |
| * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG. |
| |
| 2011-05-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47994 |
| PR debug/47919 |
| * combine.c (try_combine): Skip debug insns at m_split tests. |
| |
| 2011-04-26 Mark Wielaard <mjw@redhat.com> |
| |
| PR42288 |
| * dwarf2out.c (dwarf2out_finish): Always call output_aranges () |
| when info_section_emitted. |
| |
| 2011-05-03 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/mips-opts.h: New. |
| * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move |
| to mips-opts.h. |
| (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove. |
| (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_ |
| or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func |
| via opts pointer. |
| * config/mips/mips.h (enum mips_code_readable_setting): Move to |
| mips-opts.h. |
| (mips_abi, mips_code_readable): Don't declare. |
| * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude. |
| (mabi=): Use Enum and Var. |
| (mips_abi): New Enum and EnumValue entries. |
| (mcode-readable=): Use Enum and Var. |
| (mips_code_readable_setting): New Enum and EnumValue entries. |
| (mr10k-cache-barrier=): Use Enum and Var. |
| (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries. |
| |
| 2011-05-03 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY; |
| replace hash by pointer map. |
| (cgraph_node_set_element_def, cgraph_node_set_element, |
| const_cgraph_node_set_element, varpool_node_set_element_def, |
| varpool_node_set_element, const_varpool_node_set_element): Remove. |
| (free_cgraph_node_set, free_varpool_node_set): New function. |
| (cgraph_node_set_size, varpool_node_set_size): Use vector size. |
| * tree-emutls.c: Free varpool node set. |
| * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add, |
| cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set, |
| debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new, |
| varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, |
| dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set): |
| Move here from ipa.c; implement using pointer_map |
| * ipa.c (cgraph_node_set_new, cgraph_node_set_add, |
| cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set, |
| debug_cgraph_node_set, varpool_node_set_new, |
| varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, |
| dump_varpool_node_set, debug_varpool_node_set): |
| Move to ipa-uitls.c. |
| * passes.c (ipa_write_summaries): Update. |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Mike Frysinger: |
| * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for |
| bf542/bf544/bf547/bf548/bf549. |
| |
| 2011-05-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * expmed.c (extract_bit_field_1): Remove write-only variable "icode". |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Bernd Schmidt: |
| * config/bfin/bfin.md (MOVCC): New mode_macro. |
| (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from |
| movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove |
| comments from generated assembly. |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Bernd Schmidt |
| * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart. |
| * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3. |
| * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3. |
| * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3. |
| * config/bfin/lib1funcs.asm (___muldi3): New function. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/stormy16/stormy16 (xstormy16_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| Rearrange initialization of `args' to do so. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/i386/i386.c (ix86_code_end): Call build_function_type_list |
| instead of build_function_type. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (spe_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| (paired_init_builtins, altivec_init_builtins): Likewise. |
| (builtin_function_type): Likewise. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/sh/sh.c (sh_media_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/sparc/sparc.c (sparc_file_end): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/alpha/alpha.c (alpha_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/xtensa/xtensa.c (xtensa_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/iq2000/i2000.c (iq2000_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| Delete `endlink' variable. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/avr/avr.c (avr_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/picochip/picochip.c (picochip_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| Delete `endlink' variable. |
| |
| 2011-05-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/bfin/bfin.c (bfin_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Bernd Schmidt |
| * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything |
| that's not CONST_INT. Seemingly redundant check is due to PR39768. |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| From Jie Zhang: |
| * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure |
| libbffastfp overrides libgcc when -mfast-fp. |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| Originally from Bernd Schmidt |
| * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro. |
| * config/bfin/bfin.c (override_options): Test it and error if |
| TARGET_FDPIC. |
| |
| 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| Originally From Bernd Schmidt |
| * config/bfin/bfin.c (override_options): Disable -fstack-limit for |
| FD-PIC. |
| |
| 2011-05-03 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (THREAD_TARGET): define. |
| (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges. |
| (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather |
| than accessing AUX field directly. Free the AUX field before |
| clearing it. |
| (thread_block, thread_through_loop_header): Likewise. |
| (thread_single_edge, mark_threaded_blocks): Likewise. |
| (redirect_edges): Delay clearing the AUX field. Free the AUX field. |
| (register_jump_thread): Do not attempt to thread to a NULL edge. |
| |
| 2011-05-03 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * function.c (init_function_start): Call decide_function_section. |
| * varasm.c (decide_function_section): New function. |
| (assemble_start_function): When not using |
| flag_reorder_blocks_and_partition, don't compute in_cold_section_p |
| or first_function_block_is_cold. |
| * rtl.h (decide_function_section): Declare. |
| |
| 2011-05-03 Uros Bizjak <ubizjak@gmail.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/48774 |
| * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode |
| only succeed if req_mode is the same as set_mode. |
| |
| 2011-05-03 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special. |
| * genemit.c (gen_exp): Handle RETURN. |
| * emit-rtl.c (verify_rtx_sharing): Likewise. |
| (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially. |
| * rtl.c (copy_rtx): RETURN is shared. |
| * rtl.h (enum global_rtl_index): Add GR_RETURN. |
| (ret_rtx): New. |
| * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN. |
| * config/s390/s390.c (s390_emit_epilogue): Likewise. |
| * config/rx/rx.c (gen_rx_rtsd_vector): Likewise. |
| * config/cris/cris.c (cris_expand_return): Likewise. |
| * config/m68k/m68k.c (m68k_expand_epilogue): Likewise. |
| * config/rs6000/rs6000.c (rs6000_make_savres_rtx, |
| rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise. |
| * config/picochip/picochip.c (picochip_expand_epilogue): Likewise. |
| * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue): |
| Likewise. |
| * config/v850/v850.c (expand_epilogue): Likewise. |
| * config/bfin/bfin.c (bfin_expand_call): Likewise. |
| * config/arm/arm.md (epilogue): Likewise. |
| * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise. |
| * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx |
| variable to ret_reg. |
| |
| 2011-05-03 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48846 |
| * lto-streamer-in.c (unpack_ts_decl_common_value_fields): |
| Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN. |
| * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. |
| |
| 2011-05-03 Richard Guenther <rguenther@suse.de> |
| |
| * c-decl.c (grokdeclarator): Instead of looking at |
| TREE_OVERFLOW check if the constant fits in the index type. |
| |
| 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders, |
| (vec_store_lanes<mode><mode>): Likewise. |
| |
| 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/md.texi (vec_load_lanes, vec_store_lanes): Document. |
| * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New |
| convert_optab_index values. |
| (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs. |
| * genopinit.c (optabs): Initialize the new optabs. |
| * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions. |
| * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES) |
| (expand_STORE_LANES): New functions. |
| * tree.h (build_array_type_nelts): Declare. |
| * tree.c (build_array_type_nelts): New function. |
| * tree-vectorizer.h (vect_model_store_cost): Add a bool argument. |
| (vect_model_load_cost): Likewise. |
| (vect_store_lanes_supported, vect_load_lanes_supported) |
| (vect_record_strided_load_vectors): Declare. |
| * tree-vect-data-refs.c (vect_lanes_optab_supported_p) |
| (vect_store_lanes_supported, vect_load_lanes_supported): New functions. |
| (vect_transform_strided_load): Split out statement recording into... |
| (vect_record_strided_load_vectors): ...this new function. |
| * tree-vect-stmts.c (create_vector_array, read_vector_array) |
| (write_vector_array, create_array_ref): New functions. |
| (vect_model_store_cost): Add store_lanes_p argument. |
| (vect_model_load_cost): Add load_lanes_p argument. |
| (vectorizable_store): Try to use store-lanes functions for |
| interleaved stores. |
| (vectorizable_load): Likewise load-lanes and loads. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call |
| to vect_model_store_cost. |
| (vect_build_slp_tree): Likewise vect_model_load_cost. |
| |
| 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * hooks.h (hook_bool_mode_uhwi_false): Declare. |
| * hooks.c (hook_bool_mode_uhwi_false): New function. |
| * target.def (array_mode_supported_p): New hook. |
| * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook. |
| * doc/tm.texi: Regenerate. |
| * stor-layout.c (mode_for_array): New function. |
| (layout_type): Use it. |
| * config/arm/arm.c (arm_array_mode_supported_p): New function. |
| (TARGET_ARRAY_MODE_SUPPORTED_P): Define. |
| |
| 2011-05-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/48723 |
| * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack |
| for -fstack-check if the size to allocate is negative. |
| |
| 2011-05-02 Lawrence Crowl <crowl@google.com> |
| |
| * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN. |
| (timevar_cond_start): New for starting a timer only when it is not |
| already running. |
| (timevar_cond_stop): New for stopping a timer when it was not already |
| running. |
| |
| * timevar.c (timevar_stop): Enable start/stop timers to start again. |
| (timevar_cond_start): New as above. |
| (timevar_cond_stop): New as above. |
| |
| * timevar.def: Add start/stop timers for compiler phases, |
| TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, |
| TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE, |
| and TV_PHASE_FINALIZE. |
| Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL. |
| Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC, |
| TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST. |
| Change push/pop timer TV_NAME_LOOKUP into a start/stop timer. |
| Make unused TV_OVERLOAD into a start/stop timer. |
| |
| Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION. |
| Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|" |
| to indicate that they are start/stop timers. |
| |
| * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL. |
| Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE. |
| Move initialization to do_compile. |
| (do_compile): Add initialization from above. |
| Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE. |
| |
| * c-decl.c (c_write_global_declarations): Add start/stop of |
| TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO. |
| |
| * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC |
| or TV_PARSE_INLINE, as appropriate. |
| (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM. |
| (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT. |
| |
| 2011-05-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/40975 |
| * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST. |
| |
| 2011-05-02 Simon Martin <simartin@users.sourceforge.net> |
| |
| PR c/35445 |
| * c-decl.c (finish_decl): Only create a composite if the types are |
| compatible. |
| |
| 2011-05-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/fr30/fr30-protos.h (Mmode): Don't define. |
| * config/m32r/m32r-protos.h (Mmode): Don't define. Expand |
| definition where used. |
| * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't |
| define. Expand definitions where used. |
| * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define. |
| Expand definitions where used. |
| * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size, |
| rx_function_arg, rx_function_arg_advance, |
| rx_function_arg_boundary): Expand definitions of those macros. |
| * config/v850/v850-protos.h (Mmode): Don't define. Expand |
| definition where used. |
| |
| 2011-05-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for |
| reg<->xmm moves. |
| (*mov<mode>_internal): Merge with *mov<mode>_internal_avx. |
| (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge |
| with *movv2sf_internal_rex64_avx. |
| (*movv2sf_internal): Merge with *movv2sf_internal_avx. |
| * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>: |
| Use %v prefix in insn mnemonic to handle TARGET_AVX. |
| (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of |
| "vex" in "prefix" attribute calculation. |
| (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute. |
| |
| 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org> |
| |
| PR target/47951 |
| * config/bfin/bfin.md (loop_end): Use matching constraints to ensure |
| inputs match the output. |
| |
| 2011-05-02 Andreas Schwab <schwab@linux-m68k.org> |
| |
| PR target/47955 |
| * config/m68k/m68k.c (m68k_expand_prologue): Set |
| current_function_static_stack_size. |
| |
| 2011-05-02 Jan Hubicka <jh@suse.cz> |
| |
| * lto-streamer.c (lto_streamer_cache_insert_1, |
| lto_streamer_cache_lookup, lto_streamer_cache_create, |
| lto_streamer_cache_delete): Use pointer map instead of hashtable. |
| * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map. |
| |
| 2011-05-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m68k/genopt.sh, config/m68k/m68k-isas.def, |
| config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h, |
| config/m68k/t-opts: New files. |
| * config/m68k/m68k-tables.opt: New file (generated). |
| * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to |
| extra_options and m68k/t-opts to tmake_file. |
| * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt. |
| (all_isas): Initialize using m68k-isas.def. |
| (all_microarchs): Initialize using m68k-microarchs.def. |
| (m68k_find_selection): Remove. |
| (m68k_handle_option): Don't assert that global structures are in |
| use. Use error_at. Access variables via opts pointer. Don't |
| handle -march=, -mcpu= and -mtune= here. Set gcc_options fields |
| directly for -m68020-40 and -m68020-60. |
| (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and |
| m68k_tune_entry here. |
| * config/m68k/m68k.h (enum uarch_type, enum target_device): Move |
| to m68k-opts.h. |
| (m68k_library_id_string): Remove declaration. |
| * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude. |
| (m68k_library_id_string): New Variable. |
| (march=, mcpu=, mtune=): Use Enum and Var. |
| |
| 2011-05-02 Richard Guenther <rguenther@suse.de> |
| |
| * varasm.c (output_constructor_regular_field): Compute zero-based |
| index with double-ints. Make sure to ICE instead of producing |
| wrong code. |
| * cgraph.c (cgraph_add_thunk): Do not create new tree nodes |
| in asserts. Properly use a signed type. |
| |
| 2011-05-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (V): New mode iterator. |
| (V_128): Rename from SSEMODE. Make V2DF mode conditional on |
| TARGET_SSE2. |
| (V_256): Rename from AVX256MODE. |
| (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction |
| condition to all users. |
| (VF1): Ditto. |
| (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction |
| condition to all users. |
| (VF_128): Make V4SF mode unconditional. |
| (VF_256): Rename from AVX256MODEF2P. |
| (VI4F_128): Rename from SSEMODE4S. |
| (VI8F_128): Rename from SSEMODE2D. |
| (VI4F_256): Rename from AVX256MODE8P. |
| (VI8F_256): Rename from AVX256MODE4P. |
| (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes. |
| (ssescalarmodesuffix): Remove SF and DF modes. |
| (SSEMODE124): Remove. |
| (SSEMODE1248): Ditto. |
| (SSEMODEF2P): Ditto. |
| (AVXMODEF2P): Ditto. |
| (AVXMODEFDP): Ditto. |
| (AVXMODEFSP): Ditto. |
| (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes |
| unconditional. |
| (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode |
| unconditional. |
| (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and |
| xop_pcmov_<mode>256. Use V mode iterator. |
| |
| Adjust RTX patterns globally for renamed mode attributes. |
| |
| 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * haifa-sched.c (sched_emit_insn): Emit insn before first |
| non-scheduled insn. Inform back-end about new insn. Add |
| new insn to scheduled_insns list. |
| |
| 2011-05-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48822 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice. |
| (process_scc): Indicate which iteration we start. |
| |
| 2011-05-02 Jan Hubicka <jh@suse.cz> |
| |
| * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h |
| (lto_section_overrun): New. |
| * lto-section-out.c (append_block): Rename to ... |
| (lto_append_block): ... this one; export. |
| (lto_output_1_stream): Move lto lto-streamer.h |
| (lto_output_data_stream): Update. |
| * lto-streamer.h (lto_section_overrun, lto_append_block): Declare. |
| (lto_output_1_stream, lto_input_1_unsigned): Turn into inline |
| functions. |
| |
| 2011-05-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (tree_code_counts): New global array. |
| (record_node_allocation_statistics): Count individual tree codes. |
| (dump_tree_statistics): Dump individual code stats. |
| |
| 2011-05-01 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (caller_growth_limits): Fix thinko when |
| looking for largest stack frame. |
| * ipa-inline.h (dump_inline_summary): Declare. |
| * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info |
| on stack usage. |
| (dump_inline_summary): Export. |
| (debug_inline_summary): Declare as DEBUG_FUNCTION. |
| |
| 2011-05-01 Anatoly Sokolov <aesok@post.ru> |
| |
| * reginfo.c (memory_move_cost): Change rclass argument type form |
| 'enum reg_class' to reg_class_t. |
| * reload.h (memory_move_cost): Update prototype. |
| * postreload.c reload_cse_simplify_set): Change type dclass var to |
| reg_class_t. |
| * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector): |
| Update prototype. |
| (ira_allocate_and_set_costs): Change aclass argument type form |
| 'enum reg_class' to reg_class_t. |
| * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector): |
| Change aclass argument type to reg_class_t. |
| (update_conflict_hard_reg_costs): Change type aclass and pref vars |
| to reg_class_t. |
| * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust |
| memory_move_cost call. |
| |
| * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and |
| 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'. |
| Change type tmp var to reg_class_t. |
| |
| 2011-04-30 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (can_inline_edge_p): Disregard limits when |
| inlining into function with flatten attribute. |
| (want_inline_small_function_p): Be more realistic about inlining |
| cold calls where callee size grows. |
| |
| 2011-04-30 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor |
| flags. |
| |
| 2011-04-30 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS, |
| PRINT_OPERAND_PUNCT_VALID_P): Remove. |
| * config/sparc/sparc-protos.h (print_operand): Remove declaration. |
| * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P, |
| TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. |
| (print_operand): Rename to... |
| (sparc_print_operand): ...this. Make static. Adjust |
| sparc_print_operand function call. |
| (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New |
| functions. |
| |
| 2011-04-30 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/48752 |
| * ipa-inline.c (early_inliner): Disable when doing late |
| addition of function. |
| |
| 2011-04-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (get_address_mode): New inline. |
| (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls, |
| if not dwarf_strict emit |
| DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when |
| desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT, |
| UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for |
| FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED. |
| (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor, |
| dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust |
| mem_loc_descriptor callers. |
| (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, |
| output_loc_operands_raw, hash_loc_operands, compare_loc_operands): |
| Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type, |
| DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret. |
| (base_types): New variable. |
| (get_base_type_offset, calc_base_type_die_sizes, |
| base_type_for_mode, mark_base_types, base_type_cmp, |
| move_marked_base_types): New functions. |
| (calc_die_sizes): Assert that die_offset is 0 or equal to |
| next_die_offset. |
| (loc_descriptor): Only handle here lowpart SUBREGs of REG, for |
| others defer to mem_loc_descriptor. Adjust mem_loc_descriptor |
| callers. If not dwarf_strict, call mem_loc_descriptor even for |
| non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE. |
| (gen_subprogram_die): Don't give up on call site parameters |
| with non-integral or large integral modes. Adjust |
| mem_loc_descriptor callers. |
| (prune_unused_types): Call prune_unused_types_mark on base_types |
| vector entries. |
| (resolve_addr): Call mark_base_types. |
| (dwarf2out_finish): Call move_marked_base_types. |
| |
| PR tree-optimization/48809 |
| * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned |
| type. |
| (gen_inbound_check): Don't compute index_expr - range_min in utype |
| again, instead reuse SSA_NAME initialized in build_arrays. |
| Remove two useless gsi_for_stmt calls. |
| |
| 2011-04-29 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadedge.c (thread_across_edge): Add missing return. |
| |
| 2011-04-29 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_postorder): Remove declaration. |
| * ipa-utils.h (ipa_free_postorder_info): Declare. |
| (ipa_reverse_postorder): Likewise. |
| * cgraphunit.c: Include ipa-utils.h. |
| (cgraph_expand_all_functions): Update call to ipa_reverse_postorder. |
| * ipa-inline.c: Include ipa-utils.h. |
| (ipa_inline): Update call to ipa_reverse_postorder. |
| * ipa-pure-const.c (propagate_pure_const): Update call to |
| ipa_reduced_postorder and ipa_print_order. Call |
| ipa_free_postorder_info to clean up. |
| (propagate_nothrow): Likewise. |
| * ipa-reference.c (propagate): Removed a useless call to |
| ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder |
| and ipa_print_order. Call ipa_free_postorder_info to clean up. |
| * ipa.c: Include ipa-utils.h. |
| (ipa_profile): Update call to ipa_reverse_postorder. |
| (cgraph_postorder): Moved to... |
| * ipa-utils.c (ipa_reverse_postorder): ...here and renamed. |
| (ipa_utils_print_order): Renamed to ipa_print_order. |
| (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated |
| comments. |
| (ipa_free_postorder_info): New function. |
| * passes.c: Include ipa-utils.h. |
| (do_per_function_toporder): Update call to ipa_reverse_postorder. |
| (ipa_write_summaries): Likewise. |
| * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies. |
| (cgraphunit.o): Likewise. |
| (ipa.o): Likewise. |
| (ipa-inline.o): Likewise. |
| |
| 2011-04-29 Jan Hubicka <jh@suse.cz> |
| |
| * gcc.dg/tree-ssa/inline-10.c: New testcase. |
| * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining. |
| * ipa-inline.h (clause_t): Turn into unsigned int. |
| * ipa-inline-analysis.c (add_clause): Do more simplification. |
| (and_predicates): Shortcut more cases. |
| (predicates_equal_p): Move forward; check that clauses are properly |
| ordered. |
| (or_predicates): Shortcut more cases. |
| (edge_execution_predicate): Rewrite as... |
| (set_cond_stmt_execution_predicate): ... this function; handle |
| __builtin_constant_p. |
| (set_switch_stmt_execution_predicate): New . |
| (compute_bb_predicates): New. |
| (will_be_nonconstant_predicate): Update TODO. |
| (estimate_function_body_sizes): Use compute_bb_predicates |
| and free them later, always try to estimate if stmt is constant. |
| (estimate_time_after_inlining, estimate_size_after_inlining): |
| Gracefully handle optimized out edges. |
| (read_predicate): Fix off by one error. |
| |
| 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * Makefile.in (ENABLE_MAINTAINER_RULES): New. |
| |
| 2011-04-27 Xinliang David Li <davidxl@google.com> |
| |
| * tree-profile.c (init_ic_make_global_vars): Set |
| tls attribute on ic vars. |
| * coverage.c (coverage_end_function): Initialize |
| function_list with zero. |
| |
| 2011-04-29 Richard Guenther <rguenther@suse.de> |
| |
| * builtins.c (fold_builtin_classify_type): Use integer_type_node |
| for the type of the result. |
| (fold_builtin_isascii): Likewise. |
| (fold_builtin_toascii): Use integer_type_node where appropriate. |
| (fold_builtin_logb): Likewise. |
| (fold_builtin_frexp): Likewise. |
| (fold_builtin_strstr): Likewise. |
| (fold_builtin_strpbrk): Likewise. |
| (fold_builtin_fputs): Likewise. |
| (fold_builtin_sprintf): Likewise. |
| (fold_builtin_snprintf): Likewise. |
| (fold_builtin_printf): Likewise. |
| (do_mpfr_remquo): Use a proper type for the assigned constant. |
| (do_mpfr_lgamma_r): Likewise. |
| * dwarf2out.c (resolve_one_addr): Use size_int. |
| * except.c (init_eh): Likewise. |
| (assign_filter_values): Use integer_type_node for filter values. |
| (sjlj_emit_dispatch_table): Use integer_type_node for dispatch |
| indices. |
| * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node |
| for EH region numbers. |
| * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node |
| for the shift amount. |
| |
| 2011-04-29 Richard Guenther <rguenther@suse.de> |
| |
| * expr.h (expand_shift): Rename to ... |
| (expand_variable_shift): ... this. |
| (expand_shift): Take a constant shift amount. |
| * expmed.c (expand_shift): Rename to ... |
| (expand_variable_shift): ... this. |
| (expand_shift): New wrapper around expand_variable_shift. |
| * expr.c (convert_move, emit_group_load_1, emit_group_store, |
| optimize_bitfield_assignment_op, store_field, expand_expr_real_2, |
| expand_expr_real_1, reduce_to_bit_field_precision): Adjust. |
| * expmed.c (store_fixed_bit_field, extract_bit_field_1, |
| extract_fixed_bit_field, extract_split_bit_field, expand_mult_const, |
| expand_mult, expand_widening_mult, expand_mult_highpart_adjust, |
| extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore, |
| emit_store_flag_1, emit_store_flag): Likewise. |
| * builtins.c (expand_builtin_signbit): Likewise. |
| * calls.c (load_register_parameters): Likewise. |
| * function.c (assign_parm_setup_block): Likewise. |
| * lower-subreg.c (resolve_shift_zext): Likewise. |
| * optabs.c (widen_bswap, expand_abs_nojump, |
| expand_one_cmpl_abs_nojump, expand_float): Likewise. |
| * spu/spu.c (spu_expand_extv): Likewise. |
| * sparc/sparc.c (sparc32_initialize_trampoline): Likewise. |
| |
| 2011-04-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node |
| for the remapped region number. |
| * predict.c (build_predict_expr): Use integer_type_node for the |
| predict kind. |
| * fold-const.c (fold_binary_loc): Use integer_type_node for |
| the shift amount. Use a proper type for the PLUS_EXPR operand. |
| |
| 2011-04-29 Michael Matz <matz@suse.de> |
| |
| * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override |
| other trees that just builtins. |
| (lto_record_common_node): Don't leave NULL TYPE_CANONICAL. |
| |
| 2011-04-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-nested.c (get_trampoline_type): Use size_int. |
| (get_nl_goto_field): Likewise. |
| * tree-eh.c (lower_try_finally_switch): Use integer_type_node |
| for all indexes. |
| (lower_eh_constructs_2): Likewise. |
| (lower_resx): Likewise. |
| (lower_eh_dispatch): Likewise. |
| * tree-mudflap.c (mf_build_string): Use size_int. |
| (mudflap_register_call): Use integer_type_node for the flag. |
| (mudflap_enqueue_constant): Use size_int. |
| * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR |
| instead of rebuilding it. |
| |
| 2011-04-29 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (get_fi_for_callee): Restructure. |
| Handle OBJ_TYPE_REF. |
| (find_func_aliases_for_call): Use it more consistently. |
| |
| 2011-04-29 Alexandre Oliva <aoliva@redhat.com> |
| |
| * haifa-sched.c (last_nondebug_scheduled_insn): New. |
| (rank_for_schedule): Use it. |
| (schedule_block): Set it. |
| |
| 2011-04-28 David Li <davidxl@google.com> |
| |
| * tree.c (crc32_string): Use crc32_byte. |
| (crc32_byte): New function. |
| * tree.h (crc32_byte): New function. |
| * gcov.c (read_graph_file): Handle new cfg_cksum. |
| (read_count_file): Ditto. |
| * profile.c (instrument_values): Ditto. |
| (get_exec_counts): Ditto. |
| (read_profile_edge_counts): Ditto. |
| (compute_branch_probabilities): Ditto. |
| (compute_value_histograms): Ditto. |
| (branch_prob): Ditto. |
| (end_branch_prob): Ditto. |
| * coverage.c (read_counts_file): Ditto. |
| (get_coverage_counts): Ditto. |
| (tree_coverage_counter_addr): Ditto. |
| (coverage_checksum_string): Ditto. |
| (coverage_begin_output): Ditto. |
| (coverage_end_function): Ditto. |
| (build_fn_info_type): Ditto. |
| (build_fn_info_value): Ditto. |
| * libgcov.c (gcov_exit): Ditto. |
| * gcov-dump.c (tag_function): Ditto. |
| (compute_checksum): Remove. |
| |
| 2011-04-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle |
| unspec plus offset. Tidy macho code. |
| |
| 2011-04-29 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph |
| node instead of a decl. Update all callers. |
| * cgraph.h: Update declaration. |
| |
| 2011-04-28 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/48765 |
| * tree-vectorizer.h (vect_make_slp_decision): Return bool. |
| * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument |
| to indicate if loop aware SLP is being used. Scan the statements |
| and update the vectorization factor according to the type of |
| vectorization before statement analysis. |
| (vect_analyze_loop_2): Get a return value from vect_make_slp_decision, |
| pass it to vect_analyze_loop_operations. |
| (vectorizable_reduction): Set number of copies to 1 in case of pure |
| SLP statement. |
| * tree-vect-stmts.c (vectorizable_conversion, |
| vectorizable_assignment, vectorizable_shift, |
| vectorizable_operation, vectorizable_type_demotion, |
| vectorizable_type_promotion, vectorizable_store, vectorizable_load): |
| Likewise. |
| (vectorizable_condition): Move the check that it is not SLP |
| vectorization before the number of copies check. |
| * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided |
| to vectorize the loop using SLP. |
| |
| 2011-04-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48597 |
| * final.c (final_scan_insn): Call dwarf2out_frame_debug even for |
| inline asm. |
| |
| 2011-04-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | |
| *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC. |
| (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | |
| i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, |
| x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use |
| linux*.h headers. |
| * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define. |
| * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine. |
| * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. |
| * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. |
| * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine. |
| * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use |
| REG_NAME. |
| * config/i386/linux.h (REG_NAME): Don't define. |
| * config/i386/linux64.h (REG_NAME): Don't define. |
| * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): |
| Undefine before defining. |
| |
| 2011-04-28 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take |
| nonconstant_names array. |
| (estimate_function_body_sizes): Build nonconstant_names array; handle |
| BUILT_IN_CONSTANT_P. |
| |
| 2011-04-28 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/48804 |
| Revert |
| 2011-04-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (solve_constraints): Build succ graph |
| as late as possible. |
| |
| 2011-04-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (dump_constraint): Don't end the line. |
| (debug_constraint): Do it here. |
| (dump_constraints): And here. |
| (rewrite_constraints): And here. |
| (dump_constraint_edge): Remove. |
| (dump_constraint_graph): Rewrite to produce DOT output. |
| (solve_constraints): Build succ graph as late as possible. |
| Dump constraint graphs before and after solving. |
| |
| 2011-04-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): |
| New function split out from ... |
| (find_func_aliases): ... here. Call it. |
| (find_func_aliases_for_call): Likewise. |
| |
| 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * internal-fn.h (internal_fn_name_array): Declare. |
| (internal_fn_flags_array): Likewise. |
| |
| 2011-04-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize, |
| ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp. |
| Move from sse.md. |
| (ssemodefsuffix): Remove. |
| (ssevecmodesuffix): New mode attribute. |
| (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse, |
| *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit, |
| *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit, |
| *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit, |
| *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse, |
| *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3, |
| *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for |
| ssemodesuffix mode attribute. |
| (float splitters): Use ssevecmodesuffix mode attribute. |
| * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode. |
| (sseinsmode): Rename from avxvecmode. |
| (avxsizesuffix): Rename from avxmodesuffix. |
| (sseintvecmode): Rename from avxpermvecmode. |
| (ssedoublevecmode): Rename from ssedoublesizemode. |
| (ssehalfvecmode): Rename from avxhalfvecmode. |
| (ssescalarmode): Rename from avxscalarmode. |
| (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler |
| templates for ssemodesuffix mode attribute. |
| (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix |
| mode attribute. |
| |
| Adjust RTX patterns globally for renamed mode attributes. |
| |
| 2011-04-27 Jan Hubcika <jh@suse.cz> |
| |
| * ipa-inline.h (struct inline_edge_summary): Add predicate pointer. |
| * ipa-inline-analysis.c: Include alloc-pool.h. |
| (edge_predicate_pool): New. |
| (trye_predicate_p): New function |
| (false_predicate_p): New function. |
| (add_clause): Sanity check that false clauses are "optimized"; |
| never add clauses to predicate that is already known to be false. |
| (and_predicate): Use flase_predicate_p. |
| (evaulate_predicate): Rename to ... |
| (evaluate_predicate): ... this one; update all callers; assert |
| that false is not listed among possible truths. |
| (dump_predicate): Use true_predicate_p. |
| (account_size_time): Use false_predicate_p. |
| (evaulate_conditions_for_edge): Rename to ... |
| (evaluate_conditions_for_edge) ... this one. |
| (edge_set_predicate): New function. |
| (inline_edge_duplication_hook): Duplicate edge predicates. |
| (inline_edge_removal_hook): Free edge predicates. |
| (dump_inline_edge_summary): Add INFO parameter; dump edge predicates. |
| (dump_inline_summary): Update. |
| (estimate_function_body_sizes): Set edge predicates. |
| (estimate_calls_size_and_time): Handle predicates. |
| (estimate_callee_size_and_time): Update. |
| (remap_predicate): Add toplev_predicate; update comment. |
| (remap_edge_predicates): New function. |
| (inline_merge_summary): Compute toplev predicate; update. |
| (read_predicate): New function. |
| (read_inline_edge_summary): Use it. |
| (inline_read_section): Likewise. |
| (write_predicate): New function. |
| (write_inline_edge_summary): Use it. |
| (inline_write_summary): Likewise. |
| (inline_free_summary): Free alloc pool and edge summary vec. |
| |
| 2011-04-27 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (changed_count): Remove. |
| (changed): Use a bitmap. |
| (unify_nodes): Adjust. |
| (do_sd_constraint): Likewise. |
| (do_ds_constraint): Likewise. |
| (do_complex_constraint): Likewise. |
| (solve_graph): Likewise. |
| |
| 2011-04-27 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue. |
| |
| 2011-04-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (avx_vpermilp_*_operand): Remove. |
| (avx_vperm2f128_*_operand): Ditto. |
| * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate. |
| Use avx_vpermilp_parallel in insn condition. |
| (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate. |
| Use avx_vperm2f128_parallel in insn condition. |
| |
| 2011-04-27 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (tree-ssa-structalias.o): Remove |
| gt-tree-ssa-structalias.h dependency. |
| (GTFILES): Remove tree-ssa-structalias.c. |
| * tree.c (allocate_decl_uid): New function. |
| (make_node_stat): Use it. |
| (copy_node_stat): Likewise. |
| * tree.h (allocate_decl_uid): Declare. |
| * tree-ssa-alias.h (delete_alias_heapvars): Remove. |
| * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars. |
| * tree-flow.h (struct var_ann_d): Remove is_heapvar flag. |
| * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag. |
| * tree-ssa-structalias.c (heapvar_for_stmt): Remove. |
| (struct heapvar_map): Likewise. |
| (heapvar_map_eq, heapvar_map_hash, heapvar_lookup, |
| heapvar_insert): Likewise. |
| (make_heapvar_for): Rename to ... |
| (make_heapvar): ... this. Simplify. |
| (fake_var_decl_obstack): New global var. |
| (build_fake_var_decl): New function. |
| (make_constraint_from_heapvar): Adjust. |
| (handle_lhs_call): Likewise. |
| (create_function_info_for): Likewise. |
| (intra_create_variable_infos): Likewise. |
| (init_alias_vars): Allocate fake_var_decl_obstack. |
| (init_alias_heapvars, delete_alias_heapvars): Remove. |
| (compute_points_to_sets): Do not call init_alias_heapvars. |
| (ipa_pta_execute): Likewise. |
| (delete_points_to_sets): Free fake_var_decl_obstack. |
| |
| 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/divmovti4.c (union qword_UTItype): New data type. |
| (si_from_UTItype, si_to_UTItype): New functions. |
| (__udivmodti4): Use them to implement type-punning. |
| * config/spu/multi3.c (union qword_TItype): New data type. |
| (si_from_TItype, si_to_TItype): New functions. |
| (__multi3): Use them to implement type-punning. |
| |
| 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier. |
| |
| 2011-04-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-prop.c (function_insertion_hook_holder): New holder. |
| (ipa_add_new_function): New function. |
| (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks): |
| Register/deregister holder. |
| |
| 2011-04-27 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48772 |
| * tree-ssa-pre.c (eliminate): Update call stmts after elimination only. |
| |
| 2011-04-27 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix |
| TARGET_MEM_REF handling. |
| |
| 2011-04-27 Nick Clifton <nickc@redhat.com> |
| |
| * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS, |
| ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS. |
| (ACC_REGS): New macro. Alias for QUAD_ACC_REGS. |
| (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS. |
| (FPR_REGS): New macro. Alias for QUAD_ACC_REGS. |
| (EVEN_REGS): New macro. Alias for QUAD_REGS. |
| * config/frv/frv.c (frv_secondary_reload_class): Remove use of |
| duplicate register classes. |
| (frv_class_likely_spilled_p): Likewise. |
| (frv_register_move_cost): Likewise. |
| |
| * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the |
| end of the regno_reg_class array. |
| |
| 2011-04-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48742 |
| * c-typeck.c (build_binary_op): Don't wrap arguments if |
| int_operands is true. |
| |
| 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/48767 |
| * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call |
| targetm.calls.must_pass_in_stack for void type. |
| |
| 2011-04-26 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphbuild.c (build_cgraph_edges): Update call |
| of cgraph_create_edge and cgraph_create_indirect_edge. |
| * cgraph.c (cgraph_create_edge_including_clones, |
| cgraph_create_edge_1, cgraph_allocate_init_indirect_info, |
| cgraph_update_edges_for_call_stmt_node): Do not take nest |
| argument; do not initialize call_stmt_size/time. |
| (dump_cgraph_node): Do not dump nest. |
| (cgraph_clone_edge): Do not take loop_nest argument; |
| do not propagate it; do not clone call_stmt_size/time. |
| (cgraph_clone_node): Likewise. |
| (cgraph_create_virtual_clone): Update. |
| * cgraph.h (struct cgraph_edge): Remove |
| call_stmt_size/call_stmt_time/loop_nest. |
| (cgraph_create_edge, cgraph_create_indirect_edge, |
| cgraph_create_edge_including_clones, cgraph_clone_node): Update |
| prototype. |
| * tree-emutls.c (gen_emutls_addr): Update. |
| * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle |
| loop_nest; handle indirect calls, too. |
| (clone_inlined_nodes): Do not care about updating inline summaries. |
| * cgraphunit.c (cgraph_copy_node_for_versioning): Update. |
| * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not |
| stream call_stmt_size/call_stmt_time/loop_nest. |
| * ipa-inline.c (edge_badness): Update. |
| (ipa_inline): dump summaries after inlining. |
| * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t): |
| New. |
| (inline_edge_summary): New function. |
| * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder. |
| (inline_edge_removal_hook): Handle edge summaries. |
| (inline_edge_duplication_hook): New hook. |
| (inline_summary_alloc): Alloc hooks. |
| (initialize_growth_caches): Do not register removal hooks. |
| (free_growth_caches); Do not free removal hook. |
| (dump_inline_edge_summary): New function. |
| (dump_inline_summary): Use it. |
| (estimate_function_body_sizes, estimate_edge_size_and_time): Update. |
| (inline_update_callee_summaries): New function. |
| (inline_merge_summary): Use it. |
| (do_estimate_edge_time, do_estimate_edge_growth): Update. |
| (read_inline_edge_summary): New function. |
| (inline_read_section): Use it. |
| (write_inline_edge_summary): New function. |
| (inline_write_summary): Use it. |
| (inline_free_summary): Free edge new holders. |
| * tree-inline.c (copy_bb): Update. |
| |
| 2011-04-26 Jason Merrill <jason@redhat.com> |
| |
| * tree-eh.c (lower_try_finally_switch): Create the label along with |
| the CASE_LABEL_EXPR. |
| |
| 2011-04-26 David S. Miller <davem@davemloft.net> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment. |
| * configure: Regenerate. |
| |
| 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/48258 |
| * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector |
| reduction. |
| (VEC_reduc): New code iterator and splitters for vector reduction. |
| (VEC_reduc_name): Ditto. |
| (VEC_reduc_rtx): Ditto. |
| (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX. |
| (reduc_<VEC_reduc_name>_v4sf): Ditto. |
| |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add |
| support for extracting SF on VSX. |
| |
| * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for |
| generating xscvspdp. |
| (vsx_extract_v4sf): New insn to extract SF from V4SF vector. |
| (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for |
| double add, minimum, maximum vector reduction. |
| (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto. |
| (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to |
| optimize double vector reduction. |
| (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto. |
| |
| 2011-04-26 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/fr30/fr30.h (inhibit_libc): Don't define. |
| * config/m32r/m32r-protos.h: Correct comment. |
| * config/v850/v850.h (GHS_default_section_names, |
| GHS_current_section_names): Use tree, not union tree_node *. |
| |
| 2011-04-26 Xinliang David Li <davidxl@google.com> |
| |
| * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code. |
| * c-family/c-opts.c (c_common_handle_option): Set |
| warn_maybe_uninitialized. |
| * opts.c (common_handle_option): Ditto. |
| * common.opt: New option. |
| * tree-ssa.c (warn_uninit): Add one more parameter. |
| (warn_uninitialized_var): Pass warning code. |
| * tree-flow.h: Interface change. |
| |
| 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI. |
| (WINT_TYPE_SIZE): Use INT_TYPE_SIZE. |
| (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards. |
| |
| 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove. |
| * config/mips/mips.opt (mmips-tfile): Remove. |
| |
| * doc/install.texi (Specific, mips-*-*): Move mips-tfile, |
| mips-tdump reference to ... |
| (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX. |
| * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS |
| reference by Tru64 UNIX. |
| |
| 2011-04-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48768 |
| * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result |
| is error_mark_node, set value to NULL. |
| |
| PR tree-optimization/48734 |
| * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up |
| if return value from maybe_fold_*_comparsions isn't something |
| the code is prepared to handle. |
| |
| 2011-04-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/predicates.md (ext_QIreg_operand): Remove extra |
| mode check. |
| (ext_QIreg_nomode_operands): Remove. |
| * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand. |
| (*andsi_1): Ditto. |
| (*andhi_1): Ditto. |
| |
| 2011-04-26 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial. |
| |
| 2011-04-26 Richard Guenther <rguenther@suse.de> |
| |
| * c-typeck.c (build_unary_op): Do not expand array-refs via |
| pointer arithmetic. Only adjust qualifiers for function types. |
| |
| 2011-04-26 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48694 |
| * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag. |
| * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs |
| compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees |
| with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set. |
| |
| 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * doc/extend.texi: Document __underlying_type. |
| |
| 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/titan.md (automata_option "progress"): Remove. |
| |
| 2011-04-25 Jeff Law <law@redhat.com> |
| |
| * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too. |
| |
| 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com> |
| |
| * system.h (ENUM_BITFIELD): Remove. |
| |
| 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals |
| for STORE_FLAG_VALUE==-1 case. |
| |
| 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/43804 |
| * config/m68k/constraints.md (T): Allow PIC operands that satisfy |
| LEGITIMATE_PIC_OPERAND_P. |
| |
| 2011-04-24 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette |
| WPA hack. |
| * ipa-prop.h (ipa_get_param, ipa_is_param_used, |
| ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty, |
| ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds. |
| * ipa-inline-analysis.c (add_clause): Fix clause ordering. |
| (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate): |
| Sanity check predicate length. |
| (remap_predicate): Likewise; sanity check jump functions. |
| (inline_read_section, inline_write_summary): Sanity check |
| predicate length. |
| |
| 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR other/48748 |
| * doc/extend.texi (Type Traits): Document __is_standard_layout, |
| __is_literal_type, and __is_trivial; update throughout about |
| possibly cv-qualified void types. |
| |
| 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS |
| testsuite and make it version agnostic. |
| |
| 2011-04-22 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-analysis.c (inline_write_summary): Fix thinko. |
| |
| 2011-04-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48685 |
| * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting |
| to VOID_TYPE even around MODIFY_EXPR. |
| |
| 2011-04-22 Mike Stump <mikestump@comcast.net> |
| |
| * gensupport.c (read_md_rtx): Fix typo in comment. |
| * config/cris/cris.opt (moverride-best-lib-options): Fix typo in |
| comment. |
| |
| 2011-04-22 Jan Hubicka <jh@suse.cz> |
| |
| * gengtype.c (open_base_files): Add ipa-inline.h include. |
| * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to |
| ipa-prop.c; update all uses. |
| * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here. |
| * ipa-inline-transform.c (inline_call): Use inline_merge_summary to |
| merge summary of inlined function into former caller. |
| * ipa-inline.c (max_benefit): Remove. |
| (edge_badness): Compensate for removal of benefits. |
| (update_caller_keys): Use |
| reset_node_growth_cache/reset_edge_growth_cache. |
| (update_callee_keys): Likewise. |
| (update_all_callee_keys): Likewise. |
| (inline_small_functions): Do not collect max_benefit; do not reset |
| estimated_growth; call free_growth_caches and initialize_growth_caches. |
| * ipa-inline.h (struct condition, type clause_t, struct predicate, |
| struct size_time_entry): New structures. |
| (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants. |
| (inline_summary): Remove size_inlining_benefit, time_inlining_benefit |
| and estimated_growth. |
| (edge_growth_cache_entry): New structure. |
| (node_growth_cache, edge_growth_cache): New global vars. |
| (estimate_growth): Turn into inline. |
| (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time, |
| initialize_growth_caches, free_growth_caches): Declare. |
| (estimate_edge_growth): Rewrite. |
| (estimate_edge_time): Implement as inline cache lookup. |
| (reset_node_growth_cache, reset_edge_growth_cache): New inline |
| functions. |
| (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE. |
| (NUM_CONDITIONS): New constant. |
| (predicate_conditions): New enum. |
| (IS_NOT_CONSTANT): New constant. |
| (edge_removal_hook_holder): New var. |
| (node_growth_cache, edge_growth_cache): New global vars. |
| (true_predicate, single_cond_predicate, false_predicate, |
| not_inlined_predicate, add_condition, add_clause, and_predicates, |
| or_predicates, predicates_equal_p, evaulate_predicate, dump_condition, |
| dump_clause, dump_predicate, account_size_time, |
| evaulate_conditions_for_edge): New functions. |
| (inline_summary_alloc): Move to heap. |
| (inline_node_removal_hook): Clear condition and entry vectors. |
| (inline_edge_removal_hook): New function. |
| (initialize_growth_caches, free_growth_caches): New function. |
| (dump_inline_summary): Update. |
| (edge_execution_predicate): New function. |
| (will_be_nonconstant_predicate): New function. |
| (estimate_function_body_sizes): Compute BB and constantness predicates. |
| (compute_inline_parameters): Do not clear estimated_growth. |
| (estimate_edge_size_and_time): New function. |
| (estimate_calls_size_and_time): New function. |
| (estimate_callee_size_and_time): New function. |
| (remap_predicate): New function. |
| (inline_merge_summary): New function. |
| (do_estimate_edge_time): New function based on... |
| (estimate_edge_time): ... this one. |
| (do_estimate_edge_growth): New function. |
| (do_estimate_growth): New function based on.... |
| (estimate_growth): ... this one. |
| (inline_analyze_function): Analyze after deciding on jump functions. |
| (inline_read_section): New function. |
| (inline_read_summary): Use it. |
| (inline_write_summary): Write all the new data. |
| * ipa-prop.c (ipa_get_param_decl_index): Export. |
| (ipa_lattice_from_jfunc): Move here from ipa-cp.c |
| * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc): |
| Declare. |
| (ipa_get_lattice): Move here from ipa-cp.c |
| * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c |
| * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11. |
| * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters, |
| cgraph_edge_inlinable_p): Remove. |
| * cgraphunit.c: Include ipainline.h |
| (cgraph_process_new_functions): Update call of |
| compute_inline_parameters. |
| |
| 2011-04-22 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build_int_cst): Properly create canonicalized integer |
| constants. |
| (build_int_cst_type): Remove scary comments. |
| |
| 2011-04-22 Xinliang David Li <davidxl@google.com> |
| |
| * toplev.c (process_options): Enable -Werror=coverage-mismatch |
| by default when -Wno-error is not specified. |
| * opts-global.c (decode_options): Remove call to |
| control_warning_options. |
| |
| 2011-04-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48717 |
| * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and |
| ~A + A optimizations use build_int_cst_type instead of build_int_cst. |
| |
| 2011-04-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/bfin/bfin-protos.h (Mmode): Don't define. Expand |
| definition where used. |
| |
| 2011-04-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48716 |
| * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also |
| TREE_STATIC variables declared inside of some OpenMP construct. |
| |
| 2011-04-22 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/48585 |
| * tree-inline.c (copy_bb): Create new edges only for analyzed nodes. |
| |
| 2011-04-22 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR c/36750 |
| * c-typeck.c (pop_init_level): Do not warn about initializing |
| with ` = {0}'. |
| |
| 2011-04-22 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL |
| when returning call_cookie. |
| (rs6000_function_ok_for_sibcall): Allow sibcalls via function |
| pointers, to functions with no more vector args than the current |
| function, and some non-local calls for ABI_V4. |
| * config/rs6000/rs6000.md (sibcall_nonlocal_aix32, |
| sibcall_nonlocal_aix64): Combine to .. |
| (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls. |
| (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine.. |
| (sibcall_value_nonlocal_aix<mode>): ..likewise. |
| (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls. |
| (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie |
| operand. |
| * config/rs6000/darwin.md (sibcall_nonlocal_darwin64, |
| sibcall_value_nonlocal_darwin64, sibcall_symbolic_64, |
| sibcall_value_symbolic_64): Delete. |
| |
| 2011-04-21 Xinliang David Li <davidxl@google.com> |
| |
| * cgraph.h: Remove pid. |
| * cgraph.c: Remove pid. |
| * value-prof.c (init_node_map): New function. |
| (del_node_map): New function. |
| (find_func_by_funcdef_no): New function. |
| (gimple_ic_transform): Call new function. |
| * cgraphunit.c (cgraph_finalize_function): Remove pid. |
| * function.c (get_last_funcdef_no): New function. |
| * function.h (get_last_funcdef_no): New function. |
| * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no |
| to libgcov function. |
| (tree-profiling): Call node map init and delete function. |
| |
| 2011-04-21 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_format_type): Use exported Go name for anonymous |
| field name. |
| |
| 2011-04-21 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable. |
| Call builtin_function_type_list instead of builtin_function_type. |
| (UNARY, BINARY, TRINARY, QUAD): Likewise. |
| |
| 2011-04-21 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/arm/arm.c (arm_init_iwmmxt_builtins): Call |
| build_function_type_list instead of build_function_type. |
| Delete variable `endlink'. |
| |
| 2011-04-21 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/s390/s390.c (s390_init_builtins): Call |
| build_function_type_list instead of build_function_type. |
| |
| 2011-04-21 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/ia64/ia64.c (ia64_init_builtins): Call |
| build_function_type_list instead of builtin_function_type. |
| |
| 2011-04-21 Easwaran Raman <eraman@google.com> |
| |
| * cfgexpand.c (stack_var): Remove OFFSET... |
| (add_stack_var): ...and its reference here... |
| (expand_stack_vars): ...and here. |
| (stack_var_cmp): Sort by descending order of size. |
| (partition_stack_vars): Change heuristic. |
| (union_stack_vars): Fix to reflect changes in partition_stack_vars. |
| (dump_stack_var_partition): Add newline after each partition. |
| |
| 2011-04-21 Dimitrios Apostolou <jimis@gmx.net> |
| Jeff Law <law@redhat.com> |
| |
| * gengtype-state.c (read_a_state_token): Fix argument to obstack_free. |
| * gengtype.c (matching_file_name_substitute): Likewise. |
| |
| 2011-04-21 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48703 |
| * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME. |
| |
| 2011-04-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights. |
| |
| 2011-04-21 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary |
| file name. |
| |
| 2011-04-21 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle |
| MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs. |
| Use DECL_P, not SSA_VAR_P. |
| (ptr_derefs_may_alias_p): Likewise. |
| (ptr_deref_may_alias_ref_p_1): Likewise. |
| (decl_refs_may_alias_p): Likewise. |
| (refs_may_alias_p_1): Likewise. |
| (ref_maybe_used_by_call_p_1): Likewise. |
| (call_may_clobber_ref_p_1): Likewise. |
| (indirect_ref_may_alias_decl_p): Assume indirect refrences |
| are either MEM_REF or TARGET_MEM_REF. |
| (indirect_refs_may_alias_p): Likewise. |
| * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF |
| for MEM_EXPR of indirect calls. |
| |
| 2011-04-21 Tristan Gingold <gingold@adacore.com> |
| |
| * vmsdbgout.c (write_srccorr): Compute file length from the string. |
| (dst_file_info_struct): Remove flen field. |
| (lookup_filename): Remove code that set flen field. |
| |
| 2011-04-21 Tristan Gingold <gingold@adacore.com> |
| |
| * config/ia64/ia64.c (ia64_start_function): Add a guard. |
| |
| 2011-04-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/48708 |
| * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate |
| vec_extract and vec_concat for non-SSE4_1 targets. |
| |
| 2011-04-21 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle |
| return statements. |
| |
| 2011-04-21 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/cygming.h (union tree_node, TREE): Don't define or |
| undefine. |
| (FILE): Don't undefine. |
| |
| 2011-04-21 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/alpha.c (struct machine_function): Use rtx, not |
| struct rtx_def *. |
| * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not |
| struct rtx_def *. |
| * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define. |
| * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *. |
| * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct |
| rtx_def *. |
| * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand |
| definitions where used. |
| * config/microblaze/microblaze.h (struct microblaze_args): Use |
| rtx, not struct rtx_def *. |
| * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct |
| rtx_def *. |
| * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *. |
| * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *. |
| * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx, |
| not struct rtx_def *. |
| * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not |
| struct rtx_def *. |
| * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct |
| rtx_def *. |
| * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *. |
| |
| 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use |
| operand_equal_p to compare DR_BASE_ADDRESSes. |
| (vect_check_interleaving): Likewise. |
| |
| 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/46329 |
| * config/arm/arm.c (arm_legitimate_constant_p_1): Return false |
| for all Neon struct constants. |
| |
| 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.def (legitimate_constant_p): New hook. |
| * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with... |
| (TARGET_LEGITIMATE_CONSTANT_P): ...this. |
| * doc/tm.texi: Regenerate. |
| * hooks.h (hook_bool_mode_rtx_true): Declare. |
| * hooks.c (hook_bool_mode_rtx_true): Define. |
| * system.h (LEGITIMATE_CONSTANT_P): Poison. |
| * calls.c (precompute_register_parameters): Replace uses of |
| LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p. |
| (emit_library_call_value_1): Likewise. |
| * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn) |
| (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise. |
| * ira-costs.c (scan_one_insn): Likewise. |
| * recog.c (general_operand, immediate_operand): Likewise. |
| * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise. |
| * reload1.c (init_eliminable_invariants): Likewise. |
| |
| * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a |
| mode argument. |
| * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode |
| argument. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| * config/alpha/predicates.md (input_operand): Update call to |
| alpha_legitimate_constant_p. |
| |
| * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete. |
| * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise. |
| (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise. |
| * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (arm_legitimate_constant_p_1, thumb_legitimate_constant_p) |
| (arm_legitimate_constant_p): New functions. |
| (arm_cannot_force_const_mem): Make static. |
| |
| * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete. |
| * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p |
| instead of bfin_legitimate_constant_p. |
| (bfin_legitimate_constant_p): Make static. Add a mode argument. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| |
| * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete. |
| * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (frv_legitimate_constant_p): Make static. Add a mode argument. |
| |
| * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete. |
| * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise. |
| |
| * config/i386/i386-protos.h (legitimate_constant_p): Delete. |
| * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/i386/i386.c (legitimate_constant_p): Rename to... |
| (ix86_legitimate_constant_p): ...this. Make static. Add a mode |
| argument. |
| (ix86_cannot_force_const_mem): Update accordingly. |
| (ix86_legitimate_address_p): Likewise. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| * config/i386/i386.md: Update commentary. |
| |
| * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete. |
| * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (ia64_legitimate_constant_p): Make static. Add a mode argument. |
| |
| * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete. |
| * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (lm32_legitimate_constant_p): Make static. Add a mode argument. |
| |
| * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete. |
| * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise. |
| |
| * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (m32r_legitimate_constant_p): New function. |
| |
| * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare. |
| * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of |
| LEGITIMATE_CONSTANT_P. |
| (LEGITIMATE_CONSTANT_P): Delete. |
| * config/m68k/m68k.c (m68k_expand_prologue): Call |
| m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P. |
| (m68k_legitimate_constant_p): New function. |
| * config/m68k/m68k.md: Update comments. |
| |
| * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (mcore_legitimate_constant_p): New function. |
| |
| * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete. |
| * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/mep/mep.c (mep_legitimate_constant_p): Make static. |
| Add a mode argument. |
| (mep_legitimate_address): Update accordingly. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| |
| * config/microblaze/microblaze-protos.h (microblaze_const_double_ok): |
| Delete. |
| * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/microblaze/microblaze.c (microblaze_const_double_ok): Make |
| static. Check OP's mode for VOIDmode. |
| (microblaze_legitimate_constant_p): New function. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| |
| * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/mips/mips.c (mips_legitimate_constant_p): New function. |
| (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| * config/mips/predicates.md: Update comments. |
| |
| * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete. |
| * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (mmix_legitimate_constant_p): Make static, return a bool, and take |
| a mode argument. |
| (mmix_print_operand_address): Update accordingly. |
| |
| * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p): |
| Delete. |
| * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make |
| static. Add a mode argument. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| |
| * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (pa_legitimate_constant_p): New function. |
| |
| * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (pdp11_legitimate_constant_p): New function. |
| |
| * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (rs6000_legitimate_constant_p): New function. |
| |
| * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with... |
| (rx_legitimate_constant_p): ...this. |
| * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/rx/rx.c (rx_is_legitimate_constant): Replace with... |
| (rx_legitimate_constant_p): ...this. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| * config/rx/rx.md (mov<register_modes:mode>): Update accordingly. |
| |
| * config/s390/s390-protos.h (legitimate_constant_p): Delete. |
| * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/s390/s390.c (legitimate_constant_p): Rename to... |
| (s390_legitimate_constant_p): ...this. Make static, return a bool, |
| and add a mode argument. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| |
| * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (sh_legitimate_constant_p): New function. |
| |
| * config/sparc/sparc-protos.h (legitimate_constant_p): Delete. |
| * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (legitimate_constant_p): Rename to... |
| (sparc_legitimate_constant_p): ...this. Make static. Add a mode |
| argument. |
| (constant_address_p): Update accordingly. |
| |
| * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode |
| argument and return a bool. |
| * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (spu_legitimate_constant_p): Add a mode argument and return a bool. |
| (spu_rtx_costs): Update accordingly. |
| * config/spu/predicates.md (vec_imm_operand): Likewise. |
| |
| * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete. |
| |
| * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/v850/v850.c (v850_legitimate_constant_p): New function. |
| (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| |
| * config/vax/vax-protos.h (legitimate_constant_p): Delete. |
| * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise. |
| * config/vax/vax.c (legitimate_constant_p): Likewise. |
| |
| * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete. |
| * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define. |
| (xtensa_legitimate_constant_p): New function. |
| |
| 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.def (cannot_force_const_mem): Add a mode argument. |
| * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly. |
| * doc/tm.texi: Regenerate. |
| * hooks.h (hook_bool_mode_rtx_false): Declare. |
| * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary. |
| (hook_bool_mode_const_rtx_true): Likewise. |
| (hook_bool_mode_rtx_false): New function. |
| * reload.c (CONST_POOL_OK_P): Take a mode argument and require it |
| to be non-VOID. Update call to cannot_force_const_mem. |
| (find_reloads): Update accordingly. |
| * varasm.c (force_const_mem): Update call to cannot_force_const_mem. |
| * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode |
| argument. |
| * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise. |
| * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call. |
| * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument. |
| * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise. |
| * config/frv/frv.c (frv_cannot_force_const_mem): Likewise. |
| * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise. |
| * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise. |
| * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to... |
| (m68k_cannot_force_const_mem): ...this new function. |
| * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode |
| argument. |
| (mips_const_insns, mips_legitimize_const_move): Update calls. |
| (mips_secondary_reload_class): Likewise. |
| * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to... |
| (pa_cannot_force_const_mem): ...this new function. |
| * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to... |
| (rs6000_cannot_force_const_mem): ...this new function. |
| * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode |
| argument. |
| * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise. |
| * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine |
| to... |
| (xtensa_cannot_force_const_mem): ...this new function. |
| |
| 2011-04-20 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/mips/mips.c (mips16_build_function_stub): Call |
| build_function_type_list instead of build_function_type. |
| (mips16_build_call_stub): Likewise. |
| |
| 2011-04-20 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/mep/mep.c (mep_init_builtins): Call build_function_type_list |
| instead of build_function_type. |
| |
| 2011-04-20 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/pa/pa.c (pa_init_builtins): Call build_function_type_list |
| instead of build_function_type. |
| |
| 2011-04-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/48678 |
| * config/i386/i386.md (insv): Change operand 0 constraint to |
| "register_operand". Change operand 1 and 2 constraint to |
| "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate. |
| * config/i386/sse.md (sse4_1_pinsrb): Export. |
| (sse2_pinsrw): Ditto. |
| (sse4_1_pinsrd): Ditto. |
| (sse4_1_pinsrq): Ditto. |
| * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype. |
| * config/i386/i386.c (ix86_expand_pinsr): New. |
| |
| 2011-04-20 Easwaran Raman <eraman@google.com> |
| |
| * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable |
| containing union type only with -fstrict-aliasing. |
| |
| 2011-04-20 Jim Meyering <meyering@redhat.com> |
| |
| Remove useless if-before-free tests. |
| * calls.c (expand_call, save_area): Likewise. |
| * cfgcleanup.c (try_forward_edges): Likewise. |
| * collect2.c (collect_execute): Likewise. |
| * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise. |
| * config/mcore/mcore.c (mcore_expand_prolog): Likewise. |
| * coverage.c (coverage_checksum_string): Likewise. |
| * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise. |
| * cselib.c (cselib_init): Likewise. |
| * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise. |
| (df_set_clean_cfg): Likewise. |
| * function.c (free_after_compilation): Likewise. |
| * gcc.c (do_spec_1, main): Likewise. |
| * gcov.c (create_file_names): Likewise. |
| * gensupport.c (identify_predicable_attribute): Likewise. |
| * graphite-clast-to-gimple.c (save_clast_name_index): Likewise. |
| * graphite-sese-to-poly.c (free_data_refs_aux): Likewise. |
| * haifa-sched.c (haifa_finish_h_i_d): Likewise. |
| * ipa-prop.c (ipa_free_node_params_substructures): Likewise. |
| * ipa-pure-const.c (local_pure_const): Likewise. |
| * ipa-reference.c (propagate): Likewise. |
| * ira-costs.c (free_ira_costs): Likewise. |
| * ira.c (free_register_move_costs, build_insn_chain): Likewise. |
| * matrix-reorg.c (mat_free): Likewise. |
| * prefix.c (get_key_value): Likewise. |
| * profile.c (compute_value_histograms): Likewise. |
| * reload1.c (free_reg_equiv): Likewise. |
| * sched-deps.c (free_deps): Likewise. |
| * sel-sched-ir.c (fence_clear): Likewise. |
| * sese.c (set_rename, if_region_set_false_region): Likewise. |
| * tree-data-ref.c (free_rdg): Likewise. |
| * tree-eh.c (lower_try_finally): Likewise. |
| * tree-ssa-coalesce.c (delete_coalesce_list): Likewise. |
| * tree-ssa-live.c (delete_var_map): Likewise. |
| * tree-ssa-loop-ivopts.c (free_loop_data): Likewise. |
| * tree-ssa-pre.c (phi_trans_add): Likewise. |
| |
| 2011-04-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48611 |
| * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate |
| beyond ERT_MUST_NOT_THROW region. |
| |
| 2011-04-20 Catherine Moore <clm@codesourcery.com> |
| |
| * config/mips/mips.opt (mfix-24k): New. |
| * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k. |
| * config/mips/mips.md (length): Increase by 4 for stores if |
| fixing 24K errata. |
| * config/mips/mips.c (mips_reorg_process_insns): Do not allow |
| all noreorder if fixing 24K errata. |
| * doc/invoke.texi: Document mfix-24k. |
| |
| 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/arm/arm.c (arm_legitimize_reload_address): For NEON |
| quad-word modes, reduce to 9-bit index range when above 1016 limit. |
| |
| 2011-04-20 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (arm_gen_constant): Move movw support .... |
| (const_ok_for_op): ... to here. |
| |
| 2011-04-20 Kai Tietz <ktietz@redhat.com> |
| |
| * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y) |
| and (X && !Y) | (!X && Y) optimization to (X ^ Y). |
| |
| 2011-04-20 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert. |
| |
| 2011-04-20 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47892 |
| * tree-if-conv.c (if_convertible_stmt_p): Const builtins |
| are if-convertible. |
| |
| 2011-04-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine. |
| |
| 2011-04-20 Tristan Gingold <gingold@adacore.com> |
| |
| * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld. |
| |
| 2011-04-20 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/18145 |
| |
| * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete. |
| (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. |
| (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. |
| (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define. |
| (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section. |
| |
| * config/avr/avr-protos.h (avr_asm_output_aligned_common): |
| New prototype. |
| |
| * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define. |
| (avr_asm_named_section, avr_asm_output_aligned_common, |
| avr_output_data_section_asm_op, avr_output_bss_section_asm_op): |
| New functions to update... |
| (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables. |
| (avr_asm_init_sections): Overwrite section callbacks for |
| data_section, bss_section. |
| (avr_file_start): Move output of __do_copy_data, __do_clear_bss |
| from here to... |
| (avr_file_end): ...here. |
| |
| 2011-04-20 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48695 |
| * tree-ssa-alias.c (aliasing_component_refs_p): Compute base |
| objects and types here. Adjust for their offset before comparing. |
| |
| 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_store): Only chain one related |
| statement per copy. |
| |
| 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define. |
| (GIMPLE_H): Include $(INTERNAL_FN_H). |
| (OBJS-common): Add internal-fn.o. |
| (internal-fn.o): New rule. |
| * internal-fn.def: New file. |
| * internal-fn.h: Likewise. |
| * internal-fn.c: Likewise. |
| * gimple.h: Include internal-fn.h. |
| (GF_CALL_INTERNAL): New gf_mask. |
| (gimple_statement_call): Put fntype into a union with a new |
| internal_fn field. |
| (gimple_build_call_internal): Declare. |
| (gimple_build_call_internal_vec): Likewise. |
| (gimple_call_same_target_p): Likewise. |
| (gimple_call_internal_p): New function. |
| (gimple_call_internal_fn): Likewise. |
| (gimple_call_fntype): Return null for internal calls. |
| (gimple_call_set_fntype): Assert that the function is not internal. |
| (gimple_call_set_fn): Likewise. |
| (gimple_call_set_fndecl): Likewise. |
| (gimple_call_set_internal_fn): New function. |
| (gimple_call_addr_fndecl): Handle null functions. |
| (gimple_call_return_type): Likewise null types. |
| * gimple.c (gimple_build_call_internal_1): New function. |
| (gimple_build_call_internal): Likewise. |
| (gimple_build_call_internal_vec): Likewise. |
| (gimple_call_same_target_p): Likewise. |
| (gimple_call_flags): Handle calls to internal functions. |
| (gimple_call_fnspec): New function. |
| (gimple_call_arg_flags, gimple_call_return_flags): Use it. |
| (gimple_has_side_effects): Handle null functions. |
| (gimple_rhs_has_side_effects): Likewise. |
| (gimple_call_copy_skip_args): Handle calls to internal functions. |
| * cfgexpand.c (expand_call_stmt): Likewise. |
| * expr.c (expand_expr_real_1): Assert that the call isn't internal. |
| * gimple-fold.c (gimple_fold_call): Handle null functions. |
| (gimple_fold_stmt_to_constant_1): Don't fold |
| calls to internal functions. |
| * gimple-low.c (gimple_check_call_args): Handle calls to internal |
| functions. |
| * gimple-pretty-print.c (dump_gimple_call): Likewise. |
| * ipa-prop.c (ipa_analyze_call_uses): Handle null functions. |
| * tree-cfg.c (verify_gimple_call): Handle calls to internal functions. |
| (do_warn_unused_result): Likewise. |
| * tree-eh.c (same_handler_p): Use gimple_call_same_target_p. |
| * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions. |
| * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record |
| the target of a call. |
| (initialize_hash_element): Update accordingly. |
| (hashable_expr_equal_p): Use gimple_call_same_target_p. |
| (iterative_hash_hashable_expr): Handle calls to internal functions. |
| (print_expr_hash_elt): Likewise. |
| * tree-ssa-pre.c (can_value_number_call): Likewise. |
| (eliminate): Handle null functions. |
| * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions. |
| * tree-ssa-structalias.c (get_fi_for_callee): Likewise. |
| (find_func_aliases): Likewise. |
| * value-prof.c (gimple_ic_transform): Likewise. |
| (gimple_indirect_call_to_profile): Likewise. |
| * lto-streamer-in.c (input_gimple_stmt): Likewise. |
| * lto-streamer-out.c (output_gimple_stmt): Likewise. |
| |
| 2011-04-19 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline-transform.c (save_inline_function_body): Add comments. |
| * ipa-inline.c (inline_small_functions): Compute summaries first, |
| populate heap later. |
| |
| 2011-04-19 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (save_inline_function_body): Remove. |
| * ipa-inline-transform.c: New file, broke out of... |
| * ipa-inline.c: ... this one; Update toplevel comment. |
| (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c; |
| make global. |
| (update_noncloned_frequencies): Move to ipa-inline-transform.c |
| (cgraph_mark_inline_edge): Rename to inline_call; move to |
| ipa-inline-transform.c. |
| (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes; |
| move to ipa-inline-transform.c |
| (recursive_inlining, inline_small_functions, flatten_function, |
| ipa_inline, inline_always_inline_functions, |
| early_inline_small_functions): Update. |
| (inline_transform): Move to ipa-inline-transform.c. |
| * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes): |
| Declare. |
| * Makefile.in (ipa-inline-transform.o): New file. |
| * cgraphunit.c (save_inline_function_body): Move to |
| ipa-inline-transform.c |
| |
| 2011-04-19 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push |
| registers if we already know there aren't any. |
| (m32c_emit_epilogue): Don't emit a barrier here. |
| (m32c_emit_eh_epilogue): Likewise. |
| * config/m32c/blkmov.md (movstr): Don't fail on wrong-type |
| operands at expand time. |
| * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long |
| int" wchar type. |
| (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove |
| duplicates. Provide aliases instead. |
| * config/m32c/prologue.md (eh_return): Emit a barrier here. |
| (eh_epilogue): Add a "(return)" here as a hint to other parts of |
| the compiler. |
| |
| 2011-04-19 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove. |
| * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define. |
| (general_or_i64_p, sparc_register_move_cost): New function. |
| |
| 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/install.texi (Configuration, --enable-threads): Remove mach. |
| Add lynx, mipssde. Sort table. |
| |
| 2011-04-19 Xinliang David Li <davidxl@google.com> |
| |
| * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is |
| not negative. |
| |
| 2011-04-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/48678 |
| * config/i386/i386.md (movstrict<mode>): FAIL if operands[0] |
| is a SUBREG with non-MODE_INT mode inside of it. |
| |
| 2011-04-19 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize |
| also according to actual contants. |
| * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function. |
| (gimple_fold_call): Use it. |
| * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare. |
| |
| 2011-04-19 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar |
| non-pointer assignments. |
| |
| 2011-04-19 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into |
| account anc_offset and otr_type from the indirect edge info. |
| * ipa-prop.c (get_ancestor_addr_info): New function. |
| (compute_complex_ancestor_jump_func): Assignment analysis moved to |
| get_ancestor_addr_info, call it. |
| (ipa_note_param_call): Do not initialize information about polymorphic |
| calls, return the indirect call graph edge. Remove the last |
| parameter, adjust all callers. |
| (ipa_analyze_virtual_call_uses): Process also calls to ancestors of |
| parameters. Initialize polymorphic information in the indirect edge. |
| |
| 2011-04-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/48148 |
| * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge |
| the types if they have different enumeration identifiers. |
| |
| 2011-04-19 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (cgraph_optimize_for_size_p): Declare. |
| * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p. |
| * predict.c (cgraph_optimize_for_size_p): Break out from ... |
| (optimize_function_for_size_p) ... here. |
| |
| 2011-04-19 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48207 |
| * tree.c (free_lang_data): Do not reset the decl-assembler-name |
| langhook. |
| |
| 2011-04-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-inline.c (expand_call_inline): Do not issue a -Winline warning |
| if DECL_NO_INLINE_WARNING_P is set on the function. |
| |
| 2011-04-19 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR fortran/47976 |
| * reload1.c (inc_for_reload): Return void. All callers changed. |
| (emit_input_reload_insns): Don't try to delete previous output |
| reloads to a register, or record spill_reg_store for autoincs. |
| |
| 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * gengtype.h: Updated copyright year. |
| (struct input_file_st): Add inpisplugin field. |
| (type_fileloc): New function. |
| * gengtype.c |
| (write_typed_struct_alloc_def): Add gcc_assert. |
| (write_typed_alloc_defns): Ditto. Don't output for plugin files. |
| (write_typed_alloc_defns): Don't output for plugin files. |
| (input_file_by_name): Clear inpisplugin field. |
| (main): Set inpisplugin field for plugin files. |
| |
| 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * gengtype-state.c (string_eq): New. |
| (read_state): Use string_eq instead of strcmp when creating the |
| state_ident_tab. |
| |
| 2011-04-19 Wei Guozhi <carrot@google.com> |
| |
| PR target/47855 |
| * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype. |
| * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static |
| linkage. |
| * config/arm/constraints.md (Uu): New constraint. |
| * config/arm/arm.md (*arm_movqi_insn): Compute attr "length". |
| |
| 2011-04-19 Tristan Gingold <gingold@adacore.com> |
| |
| * config.gcc (-*-*-*vms): Added. |
| (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common |
| definitions moved. |
| * config/vms/vms-ld.c: New file. |
| * config/vms/vms-ar.c: New file. |
| * config/vms/t-vmsnative: New file. |
| |
| 2011-04-18 Xinliang David Li <davidxl@google.com> |
| |
| * final.c (dump_basic_block_info): Use ASM_COMMENT_START. |
| |
| 2011-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48661 |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL |
| if TREE_TYPE (v) is non-NULL. |
| |
| * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from |
| gimple_get_virt_mehtod_for_binfo. |
| * gimple.h (gimple_get_virt_method_for_binfo): Likewise. |
| * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust |
| callers. |
| * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. |
| |
| 2011-04-18 Michael Matz <matz@suse.de> |
| Steve Ellcey <sje@cup.hp.com> |
| |
| * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant, |
| use its mode as source mode if it isn't VOIDmode. |
| |
| 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org> |
| |
| * doc/passes.texi: Fill crossref nodes. |
| |
| 2011-04-18 Jim Meyering <meyering@redhat.com> |
| |
| Fix doubled-word typos in comments and strings |
| * config/alpha/vms-unwind.h: s/for for/for/ |
| * config/arm/unwind-arm.h: Likewise. |
| * config/microblaze/microblaze.c: Likewise. |
| * config/sh/constraints.md: s/in in/in/ |
| * tree-cfg.c (verify_types_in_gimple_reference): Likewise. |
| |
| 2011-04-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove. |
| (AVX_FLOAT_MODE_P): Ditto. |
| (AVX128_VEC_FLOAT_MODE_P): Ditto. |
| (AVX256_VEC_FLOAT_MODE_P): Ditto. |
| (AVX_VEC_FLOAT_MODE_P): Ditto. |
| * config/i386/i386.md (UNSPEC_MASKLOAD): Remove. |
| (UNSPEC_MASKSTORE): Ditto. |
| * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>): |
| Merge from <sse>_movmsk<ssemodesuffix> and |
| avx_movmsk<ssemodesuffix>256. Use VF mode iterator. |
| (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode |
| iterator. |
| (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander. |
| (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto. |
| (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn. |
| |
| 2011-04-18 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.c (inline_small_functions): Fix pasto in previous patch. |
| |
| * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h |
| (want_inline_function_called_once_p): Break out the logic from |
| ipa_inline. |
| (edge_badness): Ensure that profile is not misupdated. |
| (lookup_recursive_calls): Prioritize by call frequencies. |
| (inline_small_functions): Move program size estimates here; |
| actually process whole queue even when unit growth has been |
| met. (to properly compute inline_failed reasons and for the |
| case unit size decrease.) Revisit comments on recursive inlining. |
| (ipa_inline): Remove unit summary code; first inline hot calls |
| of functions called once, cold calls next. |
| (order, nnodes): Remove unused variables. |
| * Makefile.in (ipa-inline.o): No longer depent on ggc files. |
| (GTFILES): Remove ipa-inline.c |
| * sel-sched.c (fill_insns): Silence uninitialized var warning. |
| |
| 2011-04-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype. |
| |
| 2011-04-18 Jie Zhang <jie@codesourcery.com> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm.c (neon_builtin_type_bits): Remove. |
| (typedef enum neon_builtin_mode): New. |
| (T_MAX): Don't define. |
| (typedef enum neon_builtin_datum): Remove bits, codes[], |
| num_vars and base_fcode. Add mode, code and fcode. |
| (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9 |
| VAR10): Change accordingly. |
| (neon_builtin_data[]): Change accordingly |
| (arm_init_neon_builtins): Change accordingly. |
| (neon_builtin_compare): Remove. |
| (locate_neon_builtin_icode): Remove. |
| (arm_expand_neon_builtin): Change accordingly. |
| |
| * arm.h (enum arm_builtins): Move to ... |
| * arm.c (enum arm_builtins): ... here; and rearrange builtin code. |
| |
| * arm.c (arm_builtin_decl): Declare. |
| (TARGET_BUILTIN_DECL): Define. |
| (enum arm_builtins): Correct ARM_BUILTIN_MAX. |
| (arm_builtin_decls[]): New. |
| (arm_init_neon_builtins): Store builtin declarations in |
| arm_builtin_decls[]. |
| (arm_init_tls_builtins): Likewise. |
| (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code. |
| (arm_builtin_decl): New. |
| |
| 2011-04-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (upper_bound_in_type): Build properly canonicalized |
| INTEGER_CSTs. |
| (lower_bound_in_type): Likewise. |
| |
| 2011-04-18 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.h (gimple_call_addr_fndecl): New function. |
| (gimple_call_fndecl): Use it. |
| * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs |
| for direct calls. |
| * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding. |
| * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs. |
| |
| 2011-04-18 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48650 |
| * tree.c (build_string): STRING_CST is now derived from tree_typed. |
| |
| 2011-04-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/48492 |
| * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a |
| DECL_IN_CONSTANT_POOL without RTL. |
| |
| 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org> |
| Ira Rosen <ira.rosen@linaro.org> |
| |
| PR target/48252 |
| * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments |
| to match neon_vzip/vuzp/vtrn_internal. |
| * config/arm/neon.md (neon_vtrn<mode>_internal): Make both |
| outputs explicitly dependent on both inputs. |
| (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise. |
| |
| 2011-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48616 |
| * tree-vect-stmts.c (vectorizable_shift): If SLP, determine |
| whether the shift is by scalar or vector based on whether all SLP |
| scalar stmts have the same rhs. |
| |
| 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC |
| memory operands. |
| |
| 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/43700 |
| * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global |
| registers. |
| |
| 2011-04-17 Jan Hubicka <jh@suse.cz> |
| |
| * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend. |
| * cgrpahunit.c (cgraph_finalize_function): Do not set |
| finalized_by_frontend. |
| * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream |
| finalized_by_frontend. |
| |
| 2011-04-17 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_clone_node): Do not handle vtable_method |
| * cgraph.h (struct cgraph_local_info): Drop vtable_method. |
| * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method. |
| * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable |
| method. |
| * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in |
| gimple-fold.c |
| * varasm.c (mark_decl_referenced): Drop vtable_method handling code. |
| |
| 2011-04-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/48538 |
| * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data |
| is non-null before accessing it. |
| (input_cgraph): Remove trailing spaces. |
| |
| 2011-04-17 Revital Eres <revital.eres@linaro.org> |
| |
| * params.def (sms-min-sc): New param flag. |
| * modulo-sched.c (sms_schedule): Use it. |
| * doc/invoke.texi (sms-min-sc): Document it. |
| |
| 2011-04-17 Jan Hubicka <jh@suse.cz> |
| |
| * lto-symtab.c (lto_cgraph_replace_node): When call statement is |
| present, also set gimple_call_set_cannot_inline. |
| * ipa-inline.c: Update toplevel comment. |
| (MAX_TIME): Remove. |
| (cgraph_clone_inlined_nodes): Fix linebreaks. |
| (cgraph_check_inline_limits): Restructure to ... |
| (caller_growth_limits): ... this one; be more tolerant |
| on growth in nested inline chains; add explanatory comment; |
| fix stack accounting thinko introduced by previous patch. |
| (cgraph_default_inline_p): Remove. |
| (report_inline_failed_reason): New function. |
| (can_inline_edge_p): New function. |
| (can_early_inline_edge_p): New function. |
| (leaf_node_p): Move upwards in file. |
| (want_early_inline_function_p): New function. |
| (want_inline_small_function_p): New function. |
| (want_inline_self_recursive_call_p): New function. |
| (cgraph_edge_badness): Rename to ... |
| (edge_badness) ... this one; fix linebreaks. |
| (update_edge_key): Update call of edge_baddness; add |
| detailed dump about queue updates. |
| (update_caller_keys): Use can_inline_edge_p and |
| want_inline_small_function_p. |
| (cgraph_decide_recursive_inlining): Rename to... |
| (recursive_inlining): Use can_inline_edge_p and |
| want_inline_self_recursive_call_p; simplify and remove no longer |
| valid FIXME. |
| (cgraph_set_inline_failed): Remove. |
| (add_new_edges_to_heap): Use can_inline_edge_p and |
| want_inline_small_function_p. |
| (cgraph_decide_inlining_of_small_functions): Rename to ... |
| (inline_small_functions): ... this one; cleanup; use |
| can/want predicates; cleanup debug ouput; work edges till fibheap |
| is exhausted and do not stop once unit growth is reached; remove |
| later loop processing remaining edges. |
| (cgraph_flatten): Rename to ... |
| (flatten_function): ... this one; use can_inline_edge_p |
| and can_early_inline_edge_p predicates. |
| (cgraph_decide_inlining): Rename to ... |
| (ipa_inline): ... this one; remove unreachable nodes before |
| inlining functions called once; simplify the pass. |
| (cgraph_perform_always_inlining): Rename to ... |
| (inline_always_inline_functions): ... this one; use |
| DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate. |
| (cgraph_decide_inlining_incrementally): Rename to ... |
| (early_inline_small_functions): ... this one; simplify |
| using new predicates; cleanup; make dumps prettier. |
| (cgraph_early_inlining): Rename to ... |
| (early_inliner): newer inline regular functions into always-inlines; |
| fix updating of call stmt summaries. |
| (pass_early_inline): Update for new names. |
| (inline_transform): Fix formating. |
| (gate_cgraph_decide_inlining): Rename to ... |
| (pass_ipa_inline): ... this one. |
| * ipa-inline.h (inline_summary): Remove disregard_inline_limits. |
| * ipa-inline-analysis.c (dump_inline_summary): Update. |
| (compute_inline_parameters): Do not compute disregard_inline_limits; |
| look for mismatching arguments. |
| (estimate_growth): Fix handlig of non-trivial self recursion. |
| (inline_read_summary): Do not read info->disregard_inline_limits. |
| (inline_write_summary): Do not write info->disregard_inline_limits. |
| * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove |
| and move all checks into can_inline_edge_p predicate; re-enable code |
| comparing optimization levels. |
| (expand_call_inline): Do not test inline_forbidden_into_p. |
| * Makefile.in (ipa-inline.o): Update arguments. |
| |
| 2011-04-17 Revital Eres <revital.eres@linaro.org> |
| |
| * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs. |
| |
| 2011-04-17 Revital Eres <revital.eres@linaro.org> |
| |
| * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails. |
| |
| 2011-04-17 Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/48622 |
| PR lto/48645 |
| * ipa-inline-analysis.c (inline_read_summary): Read size/time |
| in same order as they're written. |
| |
| 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/predicates.md: Reorganize and simplify predicates. |
| Eliminate duplicate code checks. |
| (arith_operand): Rename to arith14_operand |
| (reg_or_ior_operand): Rename to reg_or_cint_ior_operand. |
| * config/pa/pa.md: Use renamed operands. |
| * config/pa/pa-protos.h (symbolic_operand): Delete declaration. |
| (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand, |
| arith11_operand, adddi3_operand, indexed_memory_operand, |
| symbolic_memory_operand, int11_operand, reg_or_cint_move_operand, |
| arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator, |
| borx_reg_operand, shadd_operand, arith_operand, read_only_operand, |
| move_dest_operand, move_src_operand, prefetch_cc_operand, |
| prefetch_nocc_operand, and_operand, ior_operand, arith32_operand, |
| uint32_operand, reg_before_reload_operand, reg_or_0_operand, |
| reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand, |
| div_operand, int5_operand, movb_comparison_operator, |
| ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand, |
| arith_double_operand, ireg_operand, lhs_lshift_operand, |
| pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator, |
| integer_store_memory_operand): Likewise. |
| * config/pa/pa.c (adddi3_operand): Move to predicates.md. |
| (integer_store_memory_operand, read_only_operand, |
| function_label_operand, borx_reg_operand, |
| non_hard_reg_operand): Likewise. |
| (eq_neq_comparison_operator): Delete unused operator. |
| (legitimize_pic_address): Use VOIDmode for mode argument in calls to |
| function_label_operand. |
| (emit_move_sequence): Likewise. |
| |
| 2011-04-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sseunpackmode): New mode attribute. |
| (ssepackmode): Ditto. |
| (vec_pack_trunc_<mode>): Macroize expander from |
| vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator. |
| (vec_unpacks_lo_<mode>): Macroize expander from |
| vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator. |
| (vec_unpacks_hi_<mode>): Macroize expander from |
| vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator. |
| (vec_unpacku_lo_<mode>): Macroize expander from |
| vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator. |
| (vec_unpacku_hi_<mode>): Macroize expander from |
| vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator. |
| * config/i386/i386.c (ix86_expand_sse_unpack): Merge with |
| ix86_expand_sse4_unpack. |
| * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove. |
| |
| 2011-04-16 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphbuild.c: Include ipa-inline.h. |
| (reset_inline_failed): Use initialize_inline_failed. |
| * cgraph.c: Include ipa-inline.h. |
| (cgraph_create_node_1): Do not initialize estimated_growth. |
| (initialize_inline_failed): More to ipa-inline-analysis.c |
| (dump_cgraph_node): Do not dump inline flags. |
| * cgraph.h (cgraph_local_info): Remove inlineable, versionable |
| and disregard_inline_limits flags. |
| (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset, |
| time, size, estimated_growth. |
| * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary): |
| Update. |
| * cgraphunit.c (cgraph_decide_is_function_needed): Use |
| DECL_DISREGARD_INLINE_LIMITS. |
| (cgraph_analyze_function): Do not initialize |
| node->local.disregard_inline_limits. |
| * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream |
| inlinable, versionable and disregard_inline_limits. |
| * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, |
| cgraph_check_inline_limits, cgraph_default_inline_p, |
| cgraph_edge_badness, update_caller_keys, update_callee_keys, |
| add_new_edges_to_heap): Update. |
| (cgraph_decide_inlining_of_small_function): Update; set |
| CIF_FUNCTION_NOT_INLINABLE for uninlinable functions. |
| (cgraph_decide_inlining, cgraph_edge_early_inlinable_p, |
| cgraph_decide_inlining_incrementally): Update. |
| * ipa-inline.h (inline_summary): Add inlinable, versionable, |
| disregard_inline_limits, estimated_stack_size, stack_frame_offset, |
| time, size and estimated_growth parameters. |
| (estimate_edge_growth): Update. |
| (initialize_inline_failed): Declare. |
| * ipa-split.c: Include ipa-inline.h |
| (execute_split_functions): Update. |
| * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS. |
| (cgraph_remove_unreachable_nodes): Do not clear inlinable flag. |
| (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS. |
| * ipa-inline-analysis.c (inline_node_removal_hook): Update; set |
| estimated_growth to INT_MIN. |
| (inline_node_duplication_hook): Likewise. |
| (dump_inline_summary): Dump new fields. |
| (compute_inline_parameters): Update. |
| (estimate_edge_time, estimate_time_after_inlining, |
| estimate_size_after_inlining, estimate_growth, inline_read_summary, |
| inline_write_summary): |
| (initialize_inline_failed): Move here from cgraph.c. |
| * tree-sra.c: Include ipa-inline.h. |
| (ipa_sra_preliminary_function_checks): Update. |
| * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on |
| ipa-inline.h. |
| |
| 2011-04-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (V16): New mode iterator. |
| (VI1, VI8): Ditto. |
| (AVXMODEQI, AVXMODEDI): Remove. |
| (sse2, sse3): New mode attribute. |
| (mov<mode>): Use V16 mode iterator. |
| (*mov<mode>_internal): Merge with *avx_mov<mode>_internal. |
| (push<mode>1): Use V16 mode iterator. |
| (movmisalign<mode>): Ditto. |
| (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from |
| <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>. |
| (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from |
| *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>. |
| (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and |
| avx_movdqu<avxmodesuffix>. |
| (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and |
| *avx_movdqu<avxmodesuffix>. |
| (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and |
| avx_lddqu<avxmodesuffix>. |
| (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>. |
| (<sse2>_movnt<mode>): Merge from sse2_movntv2di and |
| avx_movnt<AVXMODEDI:mode>. |
| * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for |
| renamed sse_movups, sse2_movupd and sse2_movdqu patterns. |
| |
| 2011-04-16 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR target/48629 |
| * haifa-sched.c (prune_ready_list, schedule_block): Use |
| sched_pressure_p rather than flag_sched_pressure. |
| |
| 2011-04-15 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (call_ABI_of_interest): Call |
| cgraph_get_node instead of cgraph_get_create_node. |
| |
| 2011-04-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * cfgexpand.c (expand_debug_expr): Use |
| simplify_gen_{unary,binary,ternary} instead of gen_rtx_*. |
| |
| 2011-04-15 Michael Matz <matz@suse.de> |
| |
| * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P. |
| * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P. |
| * function.c (gimplify_parameters): Ditto. |
| * gimplify.c (gimplify_vla_decl): Ditto. |
| |
| * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR. |
| (gimple_call_set_alloca_for_var): New inline function. |
| (gimple_call_alloca_for_var_p): Ditto. |
| * gimple.c (gimple_build_call_from_tree): Remember |
| CALL_ALLOCA_FOR_VAR_P state. |
| * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state. |
| |
| * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca |
| calls if they were for VLA objects. |
| |
| 2011-04-15 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling |
| of ADR_EXPRs. |
| |
| 2011-04-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/48601 |
| * tree-emutls.c (lower_emutls_function_body): Call |
| cgraph_get_create_node instead of cgraph_get_node. Do not assert the |
| result is non-NULL. |
| |
| 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-decl.c (detect_field_duplicates): Call |
| objc_detect_field_duplicates instead of objc_get_interface_ivars. |
| |
| 2011-04-15 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * gimple.h (gimple_asm_clobbers_memory_p): Declare. |
| * gimple.c (gimple_asm_clobbers_memory_p): Define. |
| * ipa-pure-const.c (check_stmt): Call it. |
| * tree-ssa-operands.c (get_asm_expr_operands): Likewise. |
| |
| 2011-04-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48290 |
| * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants. |
| Properly decide inhibiting propagation based on the valueized |
| operand. Do loop-closed SSA form preserving here ... |
| (init_copy_prop): ... not here. |
| |
| 2011-04-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/48612 |
| * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics. |
| (*ieee_smax<mode>3): Likewise. |
| |
| 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2): |
| Replace match_operand with match_dup for the third operand in |
| these expanders. |
| |
| 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * combine.c (subst, combine_simlify_rtx): Add new argument, use it |
| to track processing of conditionals. Update all callers. |
| (try_combine, simplify_if_then_else): Update. |
| |
| 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_sched_variable_issue): Handle |
| -fsched-pressure. |
| |
| 2011-04-15 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup |
| instead of match_operand for operand 3. |
| |
| 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * recog.h (insn_operand_data): Add an "allows_mem" field. |
| * genoutput.c (output_operand_data): Initialize it. |
| * optabs.c (maybe_legitimize_operand_same_code): New function. |
| (maybe_legitimize_operand): Use it when matching the original |
| op->value. |
| |
| 2011-04-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimplify.c: Fix issues in comments throughout. |
| (voidify_wrapper_expr): Fix long line. |
| (build_stack_save_restore): Likewise. |
| (gimplify_loop_expr): Likewise. |
| (gimplify_compound_lval): Likewise. |
| (gimplify_init_ctor_eval): Likewise. |
| (gimplify_modify_expr_rhs): Likewise. |
| (omp_notice_threadprivate_variable): Likewise. |
| |
| 2011-04-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgexpand.c (expand_call_stmt): Convert the function type to the |
| original one if this is not a builtin function. |
| |
| 2011-04-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/48605 |
| * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM, |
| offset it as needed based on top 2 bits in operands[3], change |
| MEM mode to SFmode and mask those 2 bits away from operands[3]. |
| |
| 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-parser.c (c_parser_objc_protocol_definition): Updated for |
| change from objc_declare_protocols() to objc_declare_protocol(). |
| |
| 2011-04-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sse4_1): New mode attribute. |
| (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from |
| avx_blend<ssemodesuffix><avxmodesuffix> and |
| sse4_1_blend<ssemodesuffix> using VF mode iterator. |
| (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from |
| avx_blendv<ssemodesuffix><avxmodesuffix> and |
| sse4_1_blendv<ssemodesuffix> using VF mode iterator. |
| (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from |
| avx_dp<ssemodesuffix><avxmodesuffix> and |
| sse4_1_dp<ssemodesuffix> using VF mode iterator. |
| (sse4_1_mpsadbw): Merge with *avx_mpsadbw. |
| (sse4_1_packusdw): Merge with *avx_packusdw. |
| (sse4_1_pblendvb): Merge with *avx_pblendvb. |
| (sse4_1_pblendw): Merge with *avx_pblendw. |
| (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator. |
| (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from |
| avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using |
| VF mode iterator. |
| (sse4_1_round<ssescalarmodesuffix>): Merge with |
| *avx_round<ssescalarmodesuffix>. |
| (aesenc): Merge with *avx_aesenc. |
| (aesenclast): Merge with *avx_aesenclast. |
| (aesdec): Merge with *avx_aesdec. |
| (aesdeclast): Merge with *avx_aesdeclast. |
| (pclmulqdq): Merge with *pclmulqdq. |
| * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx): |
| New predicate. |
| (nonimm_not_xmm0_operand_maybe_avx): Ditto. |
| |
| 2011-04-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/48608 |
| * cfgexpand.c (get_decl_align_unit): Renamed to ... |
| (align_local_variable): This. Update DECL_ALIGN. |
| (add_stack_var): Updated. |
| (expand_one_stack_var): Likewise. |
| |
| 2011-04-14 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data): |
| Remove. |
| (dse_initialize_block_local_data, dse_leave_block, |
| record_voperand_set, get_stmt_uid): Likewise. |
| (dse_possible_dead_store_p): Allow any kind of killing stmt. |
| (dse_optimize_stmt): Remove voperand set handling code. |
| Simplify and improve to handle any kind of killing stmt. |
| (dse_record_phi): Remove. |
| (dse_enter_block): Simplify. |
| (tree_ssa_dse): Likewise. |
| * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins. |
| |
| 2011-04-14 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (dump_cgraph_node): Do not dump inline summaries. |
| * cgraph.h (struct inline_summary): Move to ipa-inline.h |
| (cgraph_local_info): Remove inline_summary. |
| * ipa-cp.c: Include ipa-inline.h. |
| (ipcp_cloning_candidate_p, ipcp_estimate_growth, |
| ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary |
| accesor. |
| * lto-cgraph.c (lto_output_node): Do not stream inline summary. |
| (input_overwrite_node): Do not set inline summary. |
| (input_node): Do not stream inline summary. |
| * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries. |
| (cgraph_decide_inlining_incrementally): Do not try to estimate overall |
| growth; we do not have inline parameters computed for that anyway. |
| (cgraph_early_inlining): After inlining compute call_stmt_sizes. |
| * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h |
| (inline_summary_t): New type and VECtor. |
| (debug_inline_summary, dump_inline_summaries): Declare. |
| (inline_summary): Use VOCtor. |
| (estimate_edge_growth): Kill hack computing call stmt size directly. |
| * lto-section-in.c (lto_section_name): Add inline section. |
| * ipa-inline-analysis.c: Include lto-streamer.h |
| (node_removal_hook_holder, node_duplication_hook_holder): New holders |
| (inline_node_removal_hook, inline_node_duplication_hook): New functions. |
| (inline_summary_vec): Define. |
| (inline_summary_alloc, dump_inline_summary, debug_inline_summary, |
| dump_inline_summaries): New functions. |
| (estimate_function_body_sizes): Properly compute size/time of outgoing |
| calls. |
| (compute_inline_parameters): Alloc inline_summary; do not compute |
| size/time of incomming calls. |
| (estimate_edge_time): Avoid missing time summary hack. |
| (inline_read_summary): Read inline summary info. |
| (inline_write_summary): Write inline summary info. |
| (inline_free_summary): Free all hooks and inline summary vector. |
| * lto-streamer.h: Add LTO_section_inline_summary section. |
| * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies. |
| * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating. |
| |
| 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vectorizer.h (vect_strided_store_supported): Add a |
| HOST_WIDE_INT argument. |
| (vect_strided_load_supported): Likewise. |
| (vect_permute_store_chain): Return void. |
| (vect_transform_strided_load): Likewise. |
| (vect_permute_load_chain): Delete. |
| * tree-vect-data-refs.c (vect_strided_store_supported): Take a |
| count argument. Check that the count is a power of two. |
| (vect_strided_load_supported): Likewise. |
| (vect_permute_store_chain): Return void. Update after above changes. |
| Assert that the access is supported. |
| (vect_permute_load_chain): Likewise. |
| (vect_transform_strided_load): Return void. |
| * tree-vect-stmts.c (vectorizable_store): Update calls after |
| above interface changes. |
| (vectorizable_load): Likewise. |
| (vect_analyze_stmt): Don't check for strided powers of two here. |
| |
| 2011-04-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48590 |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle |
| BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. |
| (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and |
| BUILT_IN_STACK_SAVE. |
| * tree-ssa-dce.c (propagate_necessity): Handle |
| BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE. |
| |
| 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-parser.c (c_parser_objc_class_declaration): Updated call to |
| objc_declare_class. |
| |
| 2011-04-14 Richard Guenther <rguenther@suse.de> |
| |
| * tree.h (get_object_alignment_1): Declare. |
| * builtins.c (get_object_alignment_1): Split out worker from ... |
| (get_object_alignment): ... here. |
| * fold-const.c (get_pointer_modulus_and_residue): Use |
| get_object_alignment_1. |
| |
| 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra |
| type parameter. |
| * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type |
| parameter. Generalise code to handle arrays as well as vectors. |
| (vect_setup_realignment): Update accordingly. |
| * tree-vect-stmts.c (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| |
| 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain |
| within the per-copy loop. |
| |
| 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_load): Print the number of copies |
| in the dump file. |
| |
| 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/options.texi (Negative): Explicitly mention that the |
| Negative chain must be circular. |
| |
| 2011-04-14 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * function.h (block_chainon): Declare. |
| * function.c (block_chainon): Define. |
| |
| 2011-04-14 Anatoly Sokolov <aesok@post.ru> |
| Eric Weddington <eric.weddington@atmel.com> |
| Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"): |
| New Includes |
| (avr_init_builtins, avr_expand_builtin, |
| avr_expand_delay_cycles, avr_expand_unop_builtin, |
| avr_expand_binop_builtin ): New functions. |
| (avr_builtin_id): New enum |
| (struct avr_builtin_description): New struct |
| (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins. |
| (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. |
| |
| * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU, |
| UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR, |
| UNSPECV_DELAY_CYCLES): new enumeration values |
| (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values |
| ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS |
| ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS |
| ("*rotlqi3_4"): rename insn to "rotlqi3_4" |
| ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3", |
| "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls", |
| "fmulsu"): New insns |
| |
| * config/avr/avr-c.c: fix line endings |
| (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP, |
| __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR, |
| __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP, |
| __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL, |
| __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU. |
| |
| * doc/extend.texi (AVR Built-in Functions): New node |
| (Target Builtins): Add documentation of AVR |
| built-in functions. |
| |
| 2011-04-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/44643 |
| * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY |
| alone. Error if non-const data has attribute progmem. |
| |
| 2011-04-13 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct tree_constructor): Include tree_typed instead of |
| tree_common. |
| * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as |
| TS_TYPED instead of TS_COMMON. |
| |
| 2011-04-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3. |
| (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3. |
| (sse2_psadbw): Merge with *avx_psadbw. |
| (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3. |
| (ssse3_phadddv4si3): Merge with *avx_phadddv4si3. |
| (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3. |
| (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3. |
| (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3. |
| (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3. |
| (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128. |
| (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3. |
| (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3. |
| (ssse3_psign<mode>3): Merge with *avx_psign<mode>3. |
| (ssse3_palignrti): Merge with *avx_palignrti. |
| |
| 2011-04-13 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree-flow.h (struct gimple_df): Make free_ssanames a VEC. |
| * tree-ssanames.c (fini_ssanames): VEC_free it. |
| (make_ssa_name_fn): Update for VECness of free_ssanames. |
| (release_ssa_name, release_dead_ssa_names): Likewise. |
| * tree.h (struct tree_ssa_name): Include tree_typed instead of |
| tree_common. |
| * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as |
| TS_TYPED instead of TS_COMMON. |
| |
| 2011-04-13 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * postreload-gcse.c (gcse_after_reload_main): Add calls to |
| statistics_counter_event. |
| * tree-ssa-copyrename.c (stats): Define. |
| (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to |
| statistics_counter_event. |
| * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define. |
| (bswap_stats, widen_mul_stats): Define. |
| (insert_reciprocals): Increment rdivs_inserted. |
| (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment |
| rfuncs_inserted. Add calls to statistics_counter_event. |
| (execute_cse_sincos_1): Increment inserted. |
| (execute_cse_sincos): Zeroize sincos_stats. Add call to |
| statistics_counter_event. |
| (execute_optimize_bswap): Zeroize bswap_stats. Increment fields |
| of bswap_stats. Add calls to statistics_counter_event. |
| (convert_mult_to_widen): Increment widen_mults_inserted. |
| (convert_plusminus_to_widen): Increment maccs_inserted. |
| (convert_mult_to_fma): Increment fmas_inserted. |
| (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add |
| calls to statistics_counter_event. |
| |
| 2011-04-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48455 |
| * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of |
| `temp_costs->mem_cost'. |
| |
| 2011-04-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-inline.h: New file. |
| * ipa-inline-analysis.c: New file. Broken out of ... |
| * ipa-inline.c: ... this file; update toplevel comment; |
| include ipa-inline.h |
| (inline_summary): Move to ipa-inline.h |
| (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to |
| ipa-inline-analysis.c. |
| (cgraph_estimate_time_after_inlining): Rename to |
| estiamte_time_after_inlining; move to ipa-inline-analysis.c |
| (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename |
| to estimate_edge_growth. |
| (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c; |
| rename to estimate_size_after_inlining. |
| (cgraph_mark_inline_edge): Update for new naming convention. |
| (cgraph_check_inline_limits): Likewise. |
| (cgraph_edge_badness): Likewise. |
| (cgraph_decide_recursive_inlining): Likewise. |
| (cgraph_decide_inlining_of_small_functions): Likewise. |
| (cgraph_decide_inlining_incrementally): Likewise. |
| (cgraph_estimate_growth): Rename to estimate_growth; move to |
| ipa-inline-analysis.c. |
| (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c. |
| (estimate_function_body_sizes): Move to ipa-inline-analysis.c. |
| (compute_inline_parameters): Likewise. |
| (compute_inline_parameters_for_current): Likewise. |
| (pass_inline_parameters): Likewise. |
| (inline_indirect_intraprocedural_analysis): Likewise. |
| (analyze_function): Rename to inline_analyze_function; likewise. |
| (add_new_function): Move to ipa-inline-analysis.c. |
| (inline_generate_summary): Likewise. |
| (inline_read_summary): Likewise. |
| (inline_write_summary): Likewise. |
| * Makefile.in (ipa-inline-analysis.c): New file. |
| |
| 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check. |
| * configure: Regenerate. |
| |
| 2011-04-13 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct tree_int_cst, struct real_value): Include tree_typed |
| instead of tree_common. |
| (struct tree_fixed_cst, struct tree_string, struct tree_complex): |
| Likewise. |
| * tree.c (initialize_tree_contains_struct): Mark such nodes as being |
| TS_TYPED rather than TS_COMMON. |
| * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN. |
| |
| 2011-04-01 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/45263 |
| * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use |
| r20 around calls of __tablejump_elpm__ |
| |
| 2011-04-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48591 |
| * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is |
| NULL. |
| (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL. |
| |
| 2011-04-13 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next. |
| (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps. |
| (cfi_vec): New typedef. |
| (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace |
| dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index. |
| (cie_cfi_vec): New static variable. |
| (cie_cfi_head): Delete. |
| (add_cfi): Accept a cfi_vec * as first argument. All callers and |
| declaration changed. Use vector rather than list operations. |
| (new_cfi): Don't initialize the dw_cfi_next field. |
| (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector |
| rather than list operations. |
| (lookup_cfa): Use vector rather than list operations. |
| (output_cfis): New argument upto. Accept a cfi_vec rather than |
| a dw_cfi_ref list head as argument. All callers changed. |
| Iterate over the vector using upto as a maximum index. |
| (output_all_cfis): New static function. |
| (output_fde): Use vector rather than list operations. Use the |
| new upto argument for output_cfis rather than manipulating a |
| list. |
| (dwarf2out_begin_prologue): Change initializations to match |
| new struct members. |
| (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index |
| from the vector length rather than searching for the end of a list. |
| Use output_all_cfis. |
| (convert_cfa_to_fb_loc_list): Use vector rather than list operations. |
| |
| 2011-04-13 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (movmemsi): Do not use this pattern when |
| volatile pointers are involved. |
| |
| 2011-04-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (pinsrbits): Remove. |
| (sse2_packsswb): Merge with *avx_packsswb. |
| (sse2_packssdw): Merge with *avx_packssdw. |
| (sse2_packuswb): Merge with *avx_packuswb. |
| (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi. |
| (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi. |
| (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi. |
| (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi. |
| (vec_interleave_highv4si): Merge with *avx_interleave_highv4si. |
| (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si. |
| (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>. |
| (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>. |
| (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>. |
| (*sse4_1_pinsrq): Merge with *avx_pinsrq. |
| (sse2_loadld): Merge with *avx_loadld. |
| (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx. |
| (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx. |
| (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx. |
| (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx. |
| (vec_concatv2di): Merge with *vec_concatv2di_avx. |
| |
| 2011-04-12 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * c-decl.c (union lang_tree_node): Check for TS_COMMON before |
| calling TREE_CHAIN. |
| * print-tree.c (print_node): Likewise. |
| * tree-inline.c (copy_tree_r): Likewise. |
| * c-lang.c (LANG_HOOKS_INIT_TS): Define. |
| * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED |
| instead of TS_COMMON. |
| * lto-streamer-out.c (lto_output_tree_pointers): Likewise. |
| * tree.c (initialize_tree_contains_struct): Handle TS_TYPED. |
| (copy_node_stat): Zero TREE_CHAIN only if necessary. |
| (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these... |
| (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL): |
| ...and these... |
| (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these... |
| * tree.h: ...here. |
| (TREE_CHAIN): Check for a TS_COMMON structure. |
| (TREE_TYPE): Check for a TS_TYPED structure. |
| |
| 2011-04-12 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (call_ABI_of_interest): Call |
| cgraph_get_create_node instead of cgraph_node. |
| |
| 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-parser.c (c_parser_initelt): Updated call to |
| objc_build_message_expr. |
| (c_parser_postfix_expression): Likewise. |
| |
| 2011-04-12 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add |
| MASK_MS_BITFIELD_LAYOUT bit. |
| |
| 2011-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * combine.c (update_cfg_for_uncondjump): Instead of testing at_end |
| assert it is always true. |
| (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump |
| moves. |
| |
| 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-parser.c (c_lex_one_token): Rewritten conditional used when |
| compiling Objective-C to be more efficient. |
| |
| 2011-04-12 Axel Freyn <axel-freyn@gmx.de> |
| |
| * opts-common.c (decode_cmdline_options_to_array): Remove variable |
| argv_copied. |
| |
| 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * recog.h, genoutput.c, optabs.c: Revert last patch. |
| |
| 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/48090 |
| * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints. |
| |
| 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * recog.h (insn_operand_data): Add an "allows_mem" field. |
| * genoutput.c (output_operand_data): Initialize it. |
| * optabs.c (maybe_legitimize_operand_same_code): New function. |
| (maybe_legitimize_operand): Use it when matching the original |
| op->value. |
| |
| 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * genpreds.c (process_define_predicate): Move most processing |
| to gensupport.c. Continue to validate the expression. |
| * genrecog.c (did_you_mean_codes, compute_predicate_codes) |
| (process_define_predicate): Move processing to gensupport.c. |
| (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases. |
| * gensupport.c (did_you_mean_codes): Moved from genrecog.c. |
| (compute_predicate_codes): Moved from genrecog.c. Add lineno |
| argument. |
| (valid_predicate_name_p): New function, split out from old |
| genpreds.c:process_define_predicate. |
| (process_define_predicate): New function, combining code from |
| old genpreds.c and genrecog.c functions. |
| (process_rtx): Call it for DEFINE_PREDICATE and |
| DEFINE_SPECIAL_PREDICATE. |
| |
| 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the |
| size of a '%A' memory reference. |
| (T_DREG, T_QREG): New neon_builtin_type_bits. |
| (arm_init_neon_builtins): Assert that the load and store operands |
| are neon_struct_operands. |
| (locate_neon_builtin_icode): Provide the neon_builtin_type_bits. |
| (NEON_ARG_MEMORY): New builtin_arg. |
| (neon_dereference_pointer): New function. |
| (arm_expand_neon_args): Add a neon_builtin_type_bits argument. |
| Handle NEON_ARG_MEMORY. |
| (arm_expand_neon_builtin): Update after above interface changes. |
| Use NEON_ARG_MEMORY for loads and stores. |
| * config/arm/predicates.md (neon_struct_operand): New predicate. |
| * config/arm/iterators.md (V_two_elem): Tweak formatting. |
| (V_three_elem): Use BLKmode for accesses that have no associated mode. |
| (V_four_elem): Tweak formatting. |
| * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>) |
| (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>) |
| (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>) |
| (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>) |
| (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>) |
| (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>) |
| (neon_vst4<mode>): Replace pointer operand with a memory operand. |
| Use %A in the output template. |
| (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>) |
| (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>) |
| (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve |
| the width of the memory access. Remove post-increment. |
| * config/arm/neon-testgen.ml: Allow addresses to have an alignment. |
| |
| 2011-04-12 Nick Clifton <nickc@redhat.com> |
| |
| * config/v850/v850.c (expand_prologue): Do not use the CALLT |
| instruction for interrupt handlers if the target is the basic V850 |
| architecture. |
| (expand_epilogue): Likewise. |
| |
| 2011-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/48549 |
| * combine.c (propagate_for_debug): Also stop after BB_END of |
| this_basic_block. Process LAST and just stop processing after it. |
| (combine_instructions): If last_combined_insn has been deleted, |
| set last_combined_insn to its PREV_INSN. |
| |
| 2011-04-12 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/46076 |
| * gimple.h (struct gimple_statement_call): Add fntype field. |
| (gimple_call_fntype): Adjust. |
| (gimple_call_set_fntype): New function. |
| * gimple.c (gimple_build_call_1): Set the call function type. |
| * gimplify.c (gimplify_call_expr): Preserve the function |
| type the frontend used for the call. |
| (gimplify_modify_expr): Likewise. |
| * lto-streamer-in.c (input_gimple_stmt): Input the call stmts |
| function type. |
| * lto-streamer-out.c (output_gimple_stmt): Output the call stmts |
| function type. |
| * tree-ssa.c (useless_type_conversion_p): Function pointer |
| conversions are useless. |
| |
| 2011-04-12 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (cgraph_node): Remove function declaration. |
| (cgraph_create_node): Declare. |
| (cgraph_get_create_node): Likewise. |
| * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1. |
| Updated all callers. |
| (cgraph_node): Renamed to cgraph_create_node, assert that a node for |
| the decl does not already exist. Call cgraph_get_create_node instead |
| of cgraph_node. |
| (cgraph_get_create_node): New function. |
| (cgraph_same_body_alias): Update comment. |
| (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node, |
| assert it does not return NULL. |
| (cgraph_update_edges_for_call_stmt): Likewise. |
| (cgraph_clone_edge): Likewise. |
| (cgraph_create_virtual_clone): Likewise. |
| (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node |
| instead of cgraph_node. |
| (cgraph_add_new_function): Call cgraph_create_node or |
| cgraph_get_create_node instead of cgraph_node. |
| * cgraphbuild.c (record_reference): Call cgraph_get_create_node |
| instead of cgraph_node. |
| (record_eh_tables): Likewise. |
| (mark_address): Likewise. |
| (mark_load): Likewise. |
| (build_cgraph_edges): Call cgraph_get_create_node instead |
| of cgraph_node. |
| (rebuild_cgraph_edges): Likewise. |
| * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node |
| instead of cgraph_node. |
| (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of |
| cgraph_node. |
| * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call |
| cgraph_create_node instead of cgraph_node. |
| * c-decl.c (finish_function): Call cgraph_get_create_node instead |
| of cgraph_node. |
| * lto-cgraph.c (input_node): Likewise. |
| * lto-streamer-in.c (input_function): Likewise. |
| * varasm.c (mark_decl_referenced): Likewise. |
| (assemble_alias): Likewise. |
| |
| 2011-04-12 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-inline.c (tree_function_versioning): Call cgraph_get_node |
| instead of cgraph_node and assert it does not return NULL. |
| * lto-streamer-in.c (lto_read_body): Likewise. |
| * omp-low.c (new_omp_context): Likewise. |
| (create_task_copyfn): Likewise. |
| * tree-emutls.c (lower_emutls_function_body): Likewise. |
| * matrix-reorg.c (transform_allocation_sites): Likewise. |
| |
| 2011-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48552 |
| * c-typeck.c (build_asm_expr): Error out on attempts to use |
| void type outputs or inputs for constraints that allow reg or |
| don't allow memory. |
| |
| 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/48250 |
| * config/arm/arm.c (arm_legitimize_reload_address): Update cases |
| to use sign-magnitude offsets. Reject unsupported unaligned |
| cases. Add detailed description in comments. |
| * config/arm/arm.md (reload_outdf): Disable for ARM mode; change |
| condition from TARGET_32BIT to TARGET_ARM. |
| |
| 2011-04-11 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct typed_tree): New. |
| (struct tree_common): Include it instead of tree_base. |
| (TREE_TYPE): Update for new location of type field. |
| (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly. |
| (DECL_USER_ALIGN, DECL_PACKED): Likewise. |
| (union tree_node): Add typed field. |
| * treestruct.def (TS_TYPED): New. |
| * lto-streamer.c (check_handled_ts_structures): Handle it. |
| * tree.c (MARK_TS_TYPED): New macro. |
| (MARK_TS_COMMON): Call it instead of MARK_TS_BASE. |
| |
| 2011-04-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfghooks.c (redirect_edge_and_branch_force): Localize variable. |
| (force_nonfallthru): Do not alter the loop nest if no basic block |
| was created. |
| |
| 2011-04-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (VI): New mode iterator. |
| (SSEMODEI): Remove. |
| (AVX256MODEI): Ditto. |
| (AVXMODEF4P): Ditto. |
| (avxvecpsmode): Ditto. |
| (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator. |
| (sse2_andnot<mode>3): New expander. |
| (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and |
| *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator. |
| (<any_logic:code><mode>3): Use VI mode iterator. |
| (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3 |
| and *avx_<any_logic:code><mode>3. Use VI mode iterator. |
| (*andnottf3): Handle AVX three-operand constraints. |
| (*<any_logic:code>tf3): Handle AVX three-operand constraints. |
| |
| 2011-04-11 Joseph Myers <joseph@codesourcery.com> |
| Robert Millan <rmh@gnu.org> |
| |
| * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h. |
| * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32, |
| GNU_USER_DYNAMIC_LINKER64): Define. |
| (REG_NAME): Don't undefine. |
| (MD_UNWIND_SUPPORT): Undefine. |
| * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define. |
| (REG_NAME): Don't undefine. |
| (MD_UNWIND_SUPPORT): Undefine. |
| * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define. |
| |
| 2011-04-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define. |
| (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove. |
| |
| 2011-04-11 Xinliang David Li <davidxl@google.com> |
| |
| * value-profile.c (check_ic_target): New function. |
| (gimple_ic_transform): Sanity check indirect call target. |
| * gimple-low.c (gimple_check_call_args): Interface change. |
| (gimple_check_call_matching_types): New function. |
| * tree-inline.c (tree_can_inline_p): Call new function. |
| |
| 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h |
| tree-pretty-print.h & realmpfr.h. |
| |
| 2011-04-11 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/48464 |
| * ira.c (setup_pressure_classes): Fix typo in loop condition. |
| (setup_allocno_and_important_classes): Ditto. |
| |
| 2011-04-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change |
| LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. |
| (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change |
| LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. |
| (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove. |
| * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32, |
| GNU_USER_DYNAMIC_LINKER64): Remove. |
| * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename |
| to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER. |
| (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32. |
| (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64. |
| * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to |
| GNU_USER_DYNAMIC_LINKERN32. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to |
| GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to |
| GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to |
| GNU_USER_DYNAMIC_LINKER32. |
| * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. |
| * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to |
| GNU_USER_DYNAMIC_LINKER32. |
| (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64. |
| * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to |
| GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to |
| GNU_USER_DYNAMIC_LINKER64. |
| * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to |
| GNU_USER_DYNAMIC_LINKER32. |
| (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to |
| GNU_USER_DYNAMIC_LINKER64. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to |
| GNU_USER_DYNAMIC_LINKER64. |
| * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change |
| LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER. |
| |
| 2011-04-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/gnu-user.h: Copy from linux.h. Update comments. |
| (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove. |
| (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and |
| GNU_USER_DYNAMIC_LINKER. |
| (MD_UNWIND_SUPPORT, REG_NAME): Remove. |
| * config/i386/gnu-user64.h: Copy from linux64.h. Update comments. |
| (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove. |
| (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and |
| GNU_USER_DYNAMIC_LINKER64. |
| (MD_UNWIND_SUPPORT, REG_NAME): Remove. |
| * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to |
| GNU_USER_LINK_EMULATION. |
| * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE, |
| DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, |
| ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS, |
| MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE, |
| PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS, |
| CPP_SPEC, CC1_SPEC): Remove. |
| (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION. |
| (GNU_USER_DYNAMIC_LINKER): Define. |
| (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC, |
| ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN, |
| ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA, |
| LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE, |
| TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP, |
| STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET, |
| TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. |
| * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC, |
| CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN, |
| TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC, |
| LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE, |
| LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove. |
| (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define. |
| (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN, |
| TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK, |
| TARGET_THREAD_SPLIT_STACK_OFFSET): Remove. |
| * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to |
| GNU_USER_DYNAMIC_LINKER. |
| * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to |
| GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. |
| * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to |
| GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. |
| * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to |
| GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine. |
| * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | |
| i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | |
| i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* | |
| x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers. |
| |
| 2011-04-11 Kai Tietz <ktietz@redhat.com> |
| |
| PR target/9601 |
| PR target/11772 |
| * config/i386/i386-protos.h (ix86_get_callcvt): New prototype. |
| * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust |
| comment. |
| (ix86_is_msabi_thiscall): Removed. |
| (ix86_is_type_thiscall): Likewise. |
| (ix86_get_callcvt): New function. |
| (ix86_comp_type_attributes): Simplify check. |
| (ix86_function_regparm): Use ix86_get_callcvt for calling |
| convention attribute checks. |
| (ix86_return_pops_args): Likewise. |
| (ix86_static_chain): Likewise. |
| (x86_this_parameter): Likewise. |
| (x86_output_mi_thunk): Likewise. |
| (ix86_function_type_abi): Optimize check for types without attributes. |
| * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL, |
| IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM, |
| IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention |
| by flag-values. |
| (IX86_BASE_CALLCVT): Helper macro. |
| * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name): |
| Use ix86_get_callcvt for calling convention attribute checks and avoid |
| symbol-decoration for stdcall in TARGET_RTD case. |
| * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name): |
| Likewise. |
| (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN |
| for declaration. |
| |
| 2011-04-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (VI_128): New mode iterator. |
| (VI12_128): Rename from SSEMODE12. |
| (VI14_128): Rename from SSEMODE14. |
| (VI124_128): New mode iterator. |
| (VI24_128): Rename from SSEMODE248. |
| (VI248_128): Rename from SSEMODE248. |
| (SSEMODE124C8): Remove. |
| (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3. |
| (*sse2_<plusminus_insn><mode>3): Merge with |
| *avx_<plusminus_insn><mode>3. |
| (*mulv8hi3): Merge with *avx_mulv8hi3. |
| (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart. |
| (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3. |
| (*sse2_pmaddwd): Merge with *avx_pmaddwd. |
| (*sse4_1_mulv4si3): Merge with *avx_mulv4si3. |
| (ashr<mode>3): Merge with *avx_ashr<mode>3. |
| (lshr<mode>3): Merge with *avx_lshr<mode>3. |
| (ashl<mode>3): Merge with *avx_ashl<mode>3. |
| (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3. |
| (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3. |
| (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3. |
| (*<smaxmin:code>v8hi3): Ditto. |
| (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3. |
| (*<smaxmin:code>v16qi3): Ditto. |
| (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3. |
| (*sse2_eq<mode>3): Ditto. |
| (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3. |
| (*sse2_gt<mode>3): Ditto. |
| (vcondv2di): Split out of vcond<mode>. |
| (vconduv2di): Split out of vcondu<mode>. |
| |
| 2011-04-11 Richard Guenther <rguenther@suse.de> |
| |
| * gimplify.c (gimple_fold_indirect_ref): Check host_integerp |
| before calling tree_low_cst. |
| |
| 2011-04-11 Richard Guenther <rguenther@suse.de> |
| |
| * stor-layout.c (layout_type): Compute all array index size operations |
| in the original type. |
| (initialize_sizetypes): Add comment. |
| (set_sizetype): Do not set TREE_TYPE of a TREE_VEC. |
| |
| 2011-04-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * common.opt (Tbss=, Tdata=, Ttext=): New options. |
| |
| 2011-04-11 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.c (cgraph_local_info): Call cgraph_get_node instead |
| of cgraph_node, handle NULL return value. |
| (cgraph_global_info): Likewise. |
| (cgraph_rtl_info): Likewise. |
| * tree-inline.c (estimate_num_insns): Likewise. |
| * gimplify.c (unshare_body): Likewise. |
| (unvisit_body): Likewise. |
| (gimplify_body): Likewise. |
| * predict.c (optimize_function_for_size_p): Likewise. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. |
| (call_may_clobber_ref_p_1): Likewise. |
| * varasm.c (function_section_1): Likewise. |
| (assemble_start_function): Likewise. |
| |
| 2011-04-11 Martin Jambor <mjambor@suse.cz> |
| |
| * except.c (set_nothrow_function_flags): Call cgraph_get_node instead |
| of cgraph_node. |
| * final.c (rest_of_clean_state): Likewise. |
| * gimple-iterator.c (update_call_edge_frequencies): Likewise. |
| * passes.c (pass_init_dump_file): Likewise. |
| (execute_all_ipa_transforms): Likewise. |
| (function_called_by_processed_nodes_p): Likewise. |
| * predict.c (maybe_hot_frequency_p): Likewise. |
| (probably_never_executed_bb_p): Likewise. |
| (compute_function_frequency): Likewise. |
| * tree-nested.c (check_for_nested_with_variably_modified): Likewise. |
| (unnest_nesting_tree_1): Likewise. |
| (lower_nested_functions): Likewise. |
| * tree-optimize.c (execute_fixup_cfg): Likewise. |
| (tree_rest_of_compilation): Likewise. |
| * tree-profile.c (gimple_gen_ic_func_profiler): Likewise. |
| * tree-sra.c (ipa_early_sra): Likewise. |
| * tree-ssa-loop-ivopts.c (computation_cost): Likewise. |
| * config/i386/i386.c (ix86_compute_frame_layout): Likewise. |
| * ipa.c (record_cdtor_fn): Likewise. |
| * ipa-inline.c (cgraph_early_inlining): Likewise. |
| (compute_inline_parameters_for_current): Likewise. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. |
| * ipa-pure-const.c (local_pure_const): Likewise. |
| * ipa-split.c (split_function): Likewise. |
| (execute_split_functions): Likewise. |
| * cgraphbuild.c (build_cgraph_edges): Likewise. |
| (rebuild_cgraph_edges): Likewise. |
| (cgraph_rebuild_references): Likewise. |
| (remove_cgraph_callee_edges): Likewise. |
| * cgraphunit.c (cgraph_mark_if_needed): Likewise. |
| (verify_cgraph_node): Likewise. |
| (cgraph_analyze_functions): Likewise. |
| (cgraph_preserve_function_body_p): Likewise. |
| (save_inline_function_body): Likewise. |
| (save_inline_function_body): Likewise. |
| * tree-inline.c (copy_bb): Likewise. |
| (optimize_inline_calls): Likewise. |
| |
| 2011-04-11 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/48195 |
| * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and |
| ipa_check_create_edge_args. |
| (ipcp_generate_summary): Do not call ipa_check_create_node_params and |
| ipa_check_create_edge_args. |
| * ipa-inline.c (inline_generate_summary): Do not call |
| ipa_check_create_node_params and ipa_check_create_edge_args. |
| * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and |
| ipa_check_create_edge_args. |
| |
| 2011-04-09 Anatoly Sokolov <aesok@post.ru> |
| |
| * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function |
| instead of loop. |
| * sel-sched.c (mark_unavailable_hard_regs): Likewise. |
| * function.c (record_hard_reg_sets): Likewise. |
| * ira.c (compute_regs_asm_clobbered): Likewise. |
| * sched-deps.c (sched_analyze_1): Likewise. |
| * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise. |
| |
| 2011-04-09 Xinliang David Li <davidxl@google.com> |
| |
| PR tree-optimization/PR48484 |
| * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set |
| has_valid_pred lazily |
| |
| 2011-04-09 Duncan Sands <baldrick@free.fr> |
| |
| * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set. |
| |
| 2011-04-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * combine.c (combine_validate_cost): Adjust comments. Set registered |
| cost of I0 to zero at the end, if any. |
| |
| 2011-04-08 Xinliang David Li <davidxl@google.com> |
| |
| * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due |
| to insane profile data. |
| |
| 2011-04-08 Xinliang David Li <davidxl@google.com> |
| |
| * ipa-cp.c (ipcp_update_profiling): Correct |
| negative scale factor due to insane profile data. |
| |
| 2011-04-08 Xinliang David Li <davidxl@google.com> |
| |
| * final.c (dump_basic_block_info): New function. |
| (final): Dump basic block. |
| (final_scan_insn): Remove old dump. |
| |
| 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org> |
| |
| PR target/47829 |
| * config.gcc (i386-*-freebsd): Disable unwind table generation for |
| crtbegin/crtend. |
| |
| 2011-04-08 Michael Matz <matz@suse.de> |
| |
| PR middle-end/48389 |
| * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New |
| functions. |
| (rebuild_jump_labels): Call rebuild_jump_labels_1. |
| * rtl.h (rebuild_jump_labels_chain): Declare. |
| * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on |
| insns inserted on edges. |
| |
| 2011-04-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options. |
| * config/arm/arm-arches.def: New. |
| * config/arm/arm-opts.h: New. |
| * config/arm/genopt.sh: New. |
| * config/arm/arm-tables.opt: New (generated). |
| * config/arm/arm.c (arm_handle_option, arm_target_help, |
| TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove. |
| (all_architectures): Get most table contents from arm-arches.def. |
| (arm_option_override): Set arm_selected_arch, arm_selected_cpu and |
| arm_selected_tune here. |
| * config/arm/arm.h (enum processor_type): Move to arm-opts.h. |
| * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude. |
| (march=, mcpu=, mtune=): Use Enum and Var. |
| * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New. |
| (arm.o): Update dependencies. |
| |
| 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net> |
| |
| * gengtype.c (write_typed_alloc_def): New argument f. Use it instead |
| of header_file. |
| (write_typed_struct_alloc_def, write_typed_typedef_alloc_def) |
| (write_typed_alloc_defns): Likewise. |
| (main): Calls write_typed_alloc_defns with output_header. |
| |
| 2011-04-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR inline-asm/48435 |
| * ira-color.c (setup_profitable_hard_regs): Add comments. |
| Don't take prohibited hard regs into account. |
| (setup_conflict_profitable_regs): Rename to |
| get_conflict_profitable_regs. |
| (check_hard_reg_p): Check prohibited hard regs. |
| |
| 2011-04-08 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg. |
| * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise. |
| * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise. |
| |
| 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/48366 |
| * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of |
| move from floating point to shift amount register. |
| (emit_move_sequence): Remove secondary reload support for floating |
| point to shift amount amount register copies. |
| (pa_secondary_reload): Return GENERAL_REGS for floating point/shift |
| amount register copies. |
| * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount |
| register, return false if mode isn't a scalar integer mode. |
| * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise. |
| |
| 2011-04-08 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_call_flags): Remove kludge. |
| |
| 2011-04-08 Alexander Monakov <amonakov@ispras.ru> |
| |
| * sel-sched.c (sel_region_init): Move call to |
| sel_setup_region_sched_flags after setup_current_loop_nest. |
| |
| 2011-04-08 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/48272 |
| * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to |
| init_insn_reg_pressure_info. Adjust a caller. |
| * sched-int.h (init_insn_reg_pressure_info): Declare. |
| * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info |
| when sched-pressure is enabled. |
| |
| 2011-04-08 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_set_modified): Do not queue calls to |
| MODIFIED_NORETURN_CALLS here ... |
| * tree-ssa-operands.c (update_stmt_operands): ... but here. |
| |
| 2011-04-08 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48467 |
| * toplev.c (lang_dependent_init): Do not open asm_out_file |
| in WPA mode, nor perform debug machinery initialization. |
| (finalize): Do not unlink asm_out_file in WPA mode. |
| |
| 2011-04-08 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.h (gimple_call_fntype): New function. |
| (gimple_call_return_type): Use it. |
| * expr.c (expand_expr_real_1): Use gimple_call_fntype. |
| * gimple-low.c (gimple_check_call_args): Likewise. |
| * gimple.c (gimple_call_flags): Likewise. |
| (gimple_call_arg_flags): Likewise. |
| (gimple_call_return_flags): Likewise. |
| * tree-cfg.c (verify_gimple_call): Likewise. |
| (do_warn_unused_result): Likewise. |
| * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. |
| * value-prof.c (gimple_ic_transform): Fix fndecl check. |
| |
| 2011-04-08 Dmitry Melnik <dm@ispras.ru> |
| |
| PR rtl-optimization/48235 |
| * sel-sched.c (code_motion_process_successors): Recompute the last |
| insn in basic block if control flow changed. |
| (code_motion_path_driver): Ditto. Recompute the first insn as well. |
| Update condition for ilist_remove. |
| |
| 2011-04-08 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/48302 |
| * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype. |
| * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use |
| it to record added preheader blocks. |
| * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it |
| on to sel_add_loop_preheaders. |
| (sel_region_init): Move call to setup_current_loop_nest after |
| sel_init_bbs. |
| |
| 2011-04-08 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR target/48273 |
| * cfgloop.h (loop_has_exit_edges): New helper. |
| * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs |
| non-clonable. |
| * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops |
| that have no exit edges. |
| |
| 2011-04-08 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/48442 |
| * sel-sched.c (init_seqno): Remove number_of_insns argument. Update |
| all callers. Adjust assert. |
| |
| 2011-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48377 |
| * tree-vect-data-refs.c (vector_alignment_reachable_p): Set |
| is_packed to true even for types with smaller TYPE_ALIGN than |
| TYPE_SIZE. |
| |
| 2011-04-08 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/48513 |
| * doc/tm.texi: Re-generate. |
| |
| 2011-04-08 Wei Guozhi <carrot@google.com> |
| |
| PR target/47855 |
| * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype. |
| * config/arm/arm.c (arm_attr_length_push_multi): New function. |
| * config/arm/arm.md (*push_multi): Change the length computation to |
| call a C function. |
| |
| 2011-04-08 Anatoly Sokolov <aesok@post.ru> |
| |
| * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation. |
| (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation. |
| * doc/tm.texi: Regenerate. |
| * system.h (ASM_OUTPUT_BSS): Poison. |
| * varasm.c (asm_output_bss): Remove function. |
| (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro. |
| |
| * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment. |
| * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise. |
| * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise. |
| * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): |
| Likewise. |
| * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): |
| Likewise. |
| * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): |
| Likewise. |
| * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. |
| |
| 2011-04-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on |
| EnumValue lines. |
| |
| 2011-04-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_handle_option): Don't handle |
| OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020, |
| OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and |
| OPT_mcpu32. |
| * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't |
| handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020, |
| -m68030, -m68040, -m68060, -mcpu32 and -m68332. |
| * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040, |
| m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias. |
| * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove. |
| (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS). |
| (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu= |
| options. Don't map other m68k options manually. Don't handle |
| old-style options as canonical. |
| (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS). |
| * doc/install.texi (m68k-*-*): Document binutils version requirement. |
| |
| 2011-04-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * basic-block.h (force_nonfallthru): Move to... |
| * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook. |
| (force_nonfallthru): ...here. |
| * cfghooks.c (force_nonfallthru): New function. |
| * cfgrtl.c (force_nonfallthru): Rename into... |
| (rtl_force_nonfallthru): ...this. |
| (commit_one_edge_insertion): Do not set AUX field. |
| (commit_edge_insertions): Do not discover new basic blocks. |
| (rtl_cfg_hooks): Add rtl_force_nonfallthru. |
| (cfg_layout_rtl_cfg_hooks): Likewise. |
| * function.c (thread_prologue_and_epilogue_insns): Remove bogus |
| ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns. |
| * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru. |
| |
| 2011-04-07 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): |
| Remove macros. |
| |
| 2011-04-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md: Update copyright year. |
| (avxcvtvecmode): Remove. |
| (sse_movhlps): Merge with *avx_movhlps. |
| (sse_movlhps): Merge with *avx_movlhps. |
| (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf. |
| (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf. |
| (sse_shufps_<mode>): Merge with *avx_shufps_<mode>. |
| (sse_loadhps): Merge with *avx_loadhps. |
| (sse_storelps): Merge with *avx_storelps. |
| (sse_loadlps): Merge with *avx_loadlps. |
| (sse_movss): Merge with *avx_movss. |
| (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx. |
| (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx. |
| (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx. |
| (*vec_set<mode>_0_sse2): Split multi-unit alternative. |
| (vec_set<mode>_0): Ditto. |
| (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx. |
| (sse4_1_insertps): Merge with *avx_insertps. |
| (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df. |
| (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df. |
| (vec_interleave_highv2di): Merge with *avx_interleave_highv2di. |
| (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>. |
| (sse2_storehpd): Merge with *avx_storehpd. |
| (sse2_loadhpd): Merge with *avx_loadhpd. |
| (sse2_loadlpd): Merge with *avx_loadlpd. |
| (sse2_movsd): Merge with *avx_movsd. |
| (*vec_concatv2df): Merge with *vec_concatv2df. |
| |
| 2011-04-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48343 |
| * combine.c (combine_instructions): Add last_combined_insn, |
| update it if insn is after it, pass it to all try_combine calls. |
| (try_combine): Add last_combined_insn parameter, pass it instead of |
| i3 to propagate_for_debug. |
| |
| 2011-04-07 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.md (movqi_internal): Add alternatives |
| to handle MDR <-> data register transfers. |
| (movhi_internal): Likewise. |
| |
| 2011-04-07 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against |
| previous stack info. |
| |
| 2011-04-07 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/43920 |
| * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to |
| flow_find_cross_jump. Swap variables to implement backward replacement. |
| (try_crossjump_bb): Add argument to try_crossjump_to_edge. |
| |
| 2011-04-07 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/43920 |
| * cfgcleanup.c (walk_to_nondebug_insn): New function. |
| (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1 |
| and bb2. |
| (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not |
| src1 or src2. Redirect edges to the last basic block. Update |
| frequency and count on multiple basic blocks in case of fallthru. |
| |
| 2011-04-07 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/43920 |
| * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New |
| function. |
| (old_insns_match_p): Change return type. Replace return false/true |
| with return dir_none/dir_both. Use can_replace_by. |
| (flow_find_cross_jump): Add dir_p parameter. Init replacement |
| direction from dir_p. Register replacement direction in dir, last_dir |
| and afterlast_dir. Handle new return type of old_insns_match_p using |
| merge_dir. Return replacement direction in dir_p. |
| (flow_find_head_matching_sequence, outgoing_edges_match): Handle new |
| return type of old_insns_match_p. |
| (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump. |
| * ifcvt.c ( cond_exec_process_if_block): Add argument to call to |
| flow_find_cross_jump. |
| * basic-block.h (enum replace_direction): New type. |
| (flow_find_cross_jump): Add parameter to declaration. |
| |
| 2011-04-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove. |
| (AVXMODEDCVTPS2DQ): Ditto. |
| (VEC_FLOAT_MODE): Ditto. |
| (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode |
| iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. |
| (<any_logic:code><mode>3): Use VF mode iterator. |
| (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3. |
| Use VF mode iterator. |
| (copysign<mode>3): Use VF mode iterator. |
| (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle |
| TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag. |
| (*<any_logic:code><MODEF:mode>3): Merge with |
| *avx_<any_logic:code><MODEF:mode>3. |
| (sse_cvtsi2ss): Merge with *avx_cvtsi2ss. |
| (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq. |
| (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>. |
| (avx_cvtdq2ps<avxmodesuffix>): Remove. |
| (sse2_cvtdq2ps): Use %v modifier. |
| (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>. |
| (avx_cvtps2dq<avxmodesuffix>): Remove. |
| (sse2_cvtps2dq): Use %v modifier. |
| (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>. |
| (avx_cvttps2dq<avxmodesuffix>): Remove. |
| (sse2_cvttps2dq): Use %v modifier. |
| (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd. |
| (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq. |
| (sse2_cvtsd2siq): Fix insn template. |
| (sse2_cvtsd2siq_2): Ditto. |
| (sse2_cvttsd2siq): Ditto. |
| (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss. |
| (sse2_cvtss2sd): Merge with *avx_cvtss2sd. |
| |
| 2011-04-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * gcov-io.c: Use GCC Runtime Library Exception. |
| |
| 2011-04-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48466 |
| * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use |
| as base_reg whatever register reg has been eliminated to, instead |
| of hardcoding STACK_POINTER_REGNUM. |
| |
| 2011-04-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/tm.texi.in: Document C target hooks as separate from general |
| target hooks. |
| * doc/tm.texi: Regenerate. |
| * genhooks.c (struct hook_desc): Add docname field. |
| (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize |
| docname field. |
| (hook_array): Include c-target.def. |
| (emit_documentation): Use docname field in output. |
| (emit_init_macros): Take docname argument. Only emit definitions |
| for hooks matching docname. |
| (main): Expect additional arguments in all cases. Pass argument |
| to emit_init_macros. |
| * target.def: Move initial macro definitions and comments to |
| target-hooks-macros.h. |
| (gcc_targetcm): Move to c-family/c-target.def. |
| * target.h (targetcm): Move declaration to c-family/c-target.h. |
| * targhooks.c (default_handle_c_option): Move to |
| c-family/c-opts.c. |
| * targhooks.h (default_handle_c_option): Move declaration to |
| c-family/c-common.h. |
| * target-hooks-macros.h: New file. |
| * config.gcc (target_has_targetcm): Define and use to add to |
| c_target_objs and cxx_target_objs. |
| * config/default-c.c: New file. |
| * config/darwin-c.c: Include c-target.h and c-target-def.h instead |
| of target.h and target-def.h. |
| (TARGET_HANDLE_C_OPTION, targetcm): Define later in file. |
| (darwin_objc_construct_string, darwin_cfstring_ref_p, |
| darwin_check_cfstring_format_arg): Make static. |
| (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, |
| TARGET_STRING_OBJECT_REF_TYPE_P, |
| TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here. |
| * config/darwin-protos.h (darwin_objc_construct_string, |
| darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't |
| declare. |
| * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT, |
| TARGET_STRING_OBJECT_REF_TYPE_P, |
| TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove. |
| * config/t-darwin (darwin-c.o): Update dependencies. |
| * system.h (TARGET_HAS_TARGETCM): Poison. |
| * Makefile.in (TARGET_H): Update. |
| (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define. |
| (c-family/c-format.o, c-family/c-opts.o): Update dependencies. |
| (default-c.o): New target. |
| (s-target-hooks-def-h): Pass "Target Hook" string to genhooks. |
| (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets. |
| (s-tm-texi): Pass -d option to genhooks. Also test timestamp on |
| c-target.def. |
| (build/genhooks.o): Update dependencies. |
| |
| 2011-04-06 Richard Guenther <rguenther@suse.de> |
| |
| * ipa-inline.c (enum inlining_mode): Remove. |
| (cgraph_flatten): Use some other token. |
| (cgraph_edge_early_inlinable_p): New function, split out from ... |
| (cgraph_perform_always_inlining): New function, split out from ... |
| (cgraph_decide_inlining_incrementally): ... here. |
| (cgraph_mark_inline_edge): Adjust. |
| (cgraph_early_inlining): Re-structure. |
| (pass_early_inline): Require SSA form. |
| |
| 2011-04-06 Andrew Stubbs <ams@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Mark Shinwell <shinwell@codesourcery.com> |
| |
| * config/arm/arm.h (arm_class_likely_spilled_p): Check against |
| LO_REGS only for Thumb-1. |
| (MODE_BASE_REG_CLASS): Restrict base registers to those which can |
| be used in short instructions when optimising for size on Thumb-2. |
| |
| 2011-04-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-low.c (lower_gimple_return): When not optimizing, force labels |
| associated with user returns to be preserved. |
| |
| 2011-04-06 Tristan Gingold <gingold@adacore.com> |
| |
| * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index, |
| symbol_queue_size, DBXOUT_DECR_NESTING, |
| (DBXOUT_DECR_NESTING_AND_RETURN): Also define |
| if XCOFF_DEBUGGING_INFO. |
| |
| 2011-04-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (attribute isa): New. |
| (attribute enabled): New. |
| (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>. |
| (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx. |
| (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx. |
| (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx. |
| (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx. |
| (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3. |
| (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. |
| (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. |
| |
| * config/i386/sse.md (VF): New mode iterator. |
| (VF1): Ditto. |
| (VF2): Ditto. |
| (VF_128): Ditto. |
| (SSEMODEF4): Remove. |
| (attribute sse): Handle V8SF and V4DF modes. |
| (<absneg:code><mode>2): Use VF mode iterator. |
| (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF |
| mode iterator. |
| (<plusminus_insn><mode>3): Use VF mode iterator. |
| (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3. |
| Use VF mode iterator. |
| (<sse>_vm<plusminus_insn><mode>3): Merge with |
| *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator. |
| (mul<mode>3): Use VF mode iterator. |
| (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator. |
| (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128 |
| mode iterator. |
| (div<VF2:mode>3): Merge from divv2df3 and divv4df3. |
| (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3. |
| (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator. |
| (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128 |
| mode iterator. |
| (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2. |
| Use VF1 mode iterator. |
| (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2. |
| (sqrt<VF2:mode>2): New expander. |
| (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2. |
| (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2 |
| and sqrtv2df2. Use VF mode iterator. |
| (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128 |
| mode iterator. |
| (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2. |
| (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2. |
| Use VF1 mode iterator. |
| (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2. |
| (<smaxmin:code><mode>3): Use VF mode iterator. |
| (*<smaxmin:code><mode>3_finite): Merge with |
| *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator. |
| (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3. |
| (<sse>_vm<smaxmin:code><mode>2): Merge with |
| *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator. |
| (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF |
| mode iterator. |
| (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF |
| mode iterator. |
| (sse3_addsubv2df3): Merge with *avx_addsubv2df3. |
| (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3. |
| (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3. |
| (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3. |
| (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use |
| VF mode iterator. |
| (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3. |
| Use VF_128 mode iterator. |
| (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF |
| mode iterator. |
| (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use |
| VF_128 mode iterator. |
| (vcond<mode>): Use VF mode iterator. |
| * config/i386/predicates.md (sse_comparison_operator): Merge with |
| avx_comparison_float_operator. Do not declare as special_predicate. |
| * config/i386/i386.c (struct builtin_description): Update for renamed |
| compare patterns. |
| (ix86_expand_args_builtin): Ditto. |
| (ix86_expand_sse_compare_mask): Ditto. |
| |
| 2011-04-06 Richard Guenther <rguenther@suse.de> |
| |
| * tree-inline.c (estimate_num_insns): For calls simply account |
| for all passed arguments and a used return value. |
| |
| 2011-04-06 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47663 |
| * cgraph.h (struct cgraph_edge): Add call_stmt_size and |
| call_stmt_time fields. |
| (cgraph_edge_inlinable_p): Declare. |
| (cgraph_edge_recursive_p): New inline function. |
| * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size. |
| (cgraph_clone_edge): Copy it. |
| * ipa-inline.c (cgraph_estimate_edge_time): New function. |
| Account for call stmt time. |
| (cgraph_estimate_time_after_inlining): Take edge argument. |
| (cgraph_estimate_edge_growth): Account call stmt size. |
| (cgraph_estimate_size_after_inlining): Take edge argument. |
| (cgraph_mark_inline_edge): Adjust. |
| (cgraph_check_inline_limits): Likewise. |
| (cgraph_recursive_inlining_p): Remove. |
| (cgraph_edge_badness): Use cgraph_edge_recursive_p. |
| (cgraph_decide_recursive_inlining): Take edge argument and |
| adjust. |
| (cgraph_decide_inlining_of_small_functions): Do not avoid |
| diags for recursive inlining here. |
| (cgraph_flatten): Adjust. |
| (cgraph_decide_inlining_incrementally): Likewise. |
| (estimate_function_body_sizes): Remove call cost handling. |
| (compute_inline_parameters): Initialize caller edge call costs. |
| (cgraph_estimate_edge_growth): New function. |
| (cgraph_estimate_growth): Use it. |
| (cgraph_edge_badness): Likewise. |
| (cgraph_check_inline_limits): Take an edge argument. |
| (cgraph_decide_inlining_of_small_functions): Adjust. |
| (cgraph_decide_inlining): Likewise. |
| * tree-inline.c (estimate_num_insns): Only account for call |
| return value if it is used. |
| (expand_call_inline): Avoid diagnostics on recursive inline |
| functions here. |
| * lto-cgraph.c (lto_output_edge): Output edge call costs. |
| (input_edge): Input edge call costs. |
| |
| 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define. |
| |
| 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| * doc/invoke.texi (Spec Files): Fix typo. |
| |
| 2011-04-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * profile.c (branch_prob): Move declaration of local variable. Remove |
| obsolete ??? comment. Expand the location explicitly instead of using |
| the LOCATION_FILE and LOCATION_LINE macros. |
| |
| 2011-04-06 Wei Guozhi <carrot@google.com> |
| |
| PR target/47855 |
| * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length". |
| (arm_cond_branch): Likewise. |
| (arm_cond_branch_reversed): Likewise. |
| (arm_jump): Likewise. |
| (push_multi): Likewise. |
| * config/arm/constraints.md (Py): New constraint. |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR bootstrap/48471 |
| * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index): |
| Move these... |
| (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these... |
| (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under |
| #ifdef DBX_DEBUGGING_INFO. |
| |
| 2011-04-05 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR bootstrap/48403 |
| * haifa-sched.c (schedule_block): Increment cycle_issued_insns only |
| if old and new states differ. |
| |
| 2011-04-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200, |
| OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e. |
| * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't |
| handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e. |
| * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, |
| mcfv4e): Use Alias. |
| * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy |
| ColdFire options to -mcpu= options. |
| |
| 2011-04-05 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (determine_bb_domination_status): Always |
| check if BB is a successor of LOOP->header and return |
| NONDOMINATING if it is not, regardless of ENABLE_CHECKING. |
| |
| 2011-04-05 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cprop.c (struct reg_use): Remove. |
| (reg_use_table): Make an array of RTX. |
| (find_used_regs, constprop_register, local_cprop_pass, |
| bypass_block): Simplify users of reg_use_table. |
| (cprop_insn): Likewise. Iterate if copy propagation succeeded |
| on one of the uses found by find_used_regs. |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR bootstrap/48469 |
| * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links |
| declaration. |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links |
| as an rtx. |
| (try_combine) [AUTO_INC_DEC]: Declare a local link rtx. |
| |
| 2011-04-05 Steven Bosscher <steven@gcc.gnu.org> |
| |
| PR middle-end/48441 |
| * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns. |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * combine.c: Include obstack.h. |
| (struct insn_link): Define. |
| (uid_log_links): Adjust type. |
| (FOR_EACH_LOG_LINK): New macro. |
| (insn_link_obstack): Declare. |
| (alloc_insn_link): Define. |
| (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust |
| type of link variables. |
| (find_single_use, insn_a_feeds_b, combine_instructions): Likewise. |
| (try_combine, record_promoted_values, distribute_notes): Likewise. |
| (distribute_links): Likewise. Tweak prototype. |
| (clear_log_links): Delete. |
| (adjust_for_new_dest): Call alloc_insn_link. |
| * Makefile.in (combine.o): Depend on $(OBSTACK_H). |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * gcse.c (modify_mem_list): Convert to an array of VECs. |
| (canon_modify_mem_list, compute_transp): Tweak formatting. |
| (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change. |
| (load_killed_in_block_p): Likewise. |
| (record_last_mem_set_info): Likewise. |
| (clear_modify_mem_tables): Likewise. |
| |
| 2011-04-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/48461 |
| * function.c (emit_use_return_register_into_block): Only define if |
| HAVE_return. |
| |
| 2011-04-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stor-layout.c (self_referential_size): Fix 2010-07-13 commit. |
| |
| 2011-04-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rx/rx-opts.h: New. |
| * config/rx/rx.c (rx_cpu_type): Remove. |
| (rx_handle_option): Don't assert that global structures are in |
| use. Access variables via opts pointer. Defer most handling of |
| OPT_mint_register_. Use error_at. |
| (rx_option_override): Handle deferred OPT_mint_register_ here. |
| * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h. |
| * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude. |
| (mcpu=): Use Enum and specifiy rx_cpu_type with Var. |
| (rx_cpu_types): New Enum and EnumValue entries. |
| (mint-register=): Use Defer and use Var accordingly. |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete. |
| (debug_free_queue, debug_nesting, symbol_queue_index): Delete. |
| * final.c (debug_flush_symbol_queue, debug_queue_symbol): |
| Move these... |
| (debug_free_queue, debug_nesting, symbol_queue_index): |
| ...and these... |
| * dbxout.c: ...to here. Make static. |
| |
| 2011-04-05 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * gcse.c (modify_pair): Define. Define a VEC of it. |
| (canon_modify_mem_list): Convert to an array of VECs. |
| (free_insn_expr_list_list): Delete. |
| (clear_modify_mem_tables): Call VEC_free instead. |
| (record_last_mem_set_info): Don't modify canon_modify_mem_list. |
| (alloc_gcse_mem): Adjust for canon_modify_mem_list change. |
| (canon_list_insert, compute_transp): Likewise. |
| |
| 2011-04-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/43920 |
| * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing |
| for size. |
| |
| 2011-04-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/43920 |
| * function.c (emit_use_return_register_into_block): New function. |
| (thread_prologue_and_epilogue_insns): Use |
| emit_use_return_register_into_block. |
| |
| 2011-04-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/43920 |
| * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as |
| insn. |
| |
| 2011-04-05 Tom de Vries <tom@codesourcery.com> |
| |
| * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables. |
| |
| 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com> |
| |
| * config/arm/arm.md (define_constants for unspec): Replace with |
| define_c_enum. |
| (define_constants for unspecv): Replace with define_c_enum. |
| * config/arm/neon.md (define_constants for unspec): Replace with |
| define_c_enum. |
| |
| 2011-04-04 Richard Henderson <rth@redhat.com> |
| |
| PR bootstrap/48400 |
| * dwarf2out.c (output_line_info): Always emit line info from |
| at least one section. |
| (dwarf2out_init): Create text_section_line_info here ... |
| (set_cur_line_info_table): ... not here. |
| |
| 2011-04-04 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/48380 |
| * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is |
| not called. |
| |
| * ira-emit.c (emit_move_list): Update reg_equiv_init insn list. |
| |
| 2011-04-04 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'. |
| (expr_equiv_p): Remove. |
| (insert_set_in_table): Look at <dest, src> pair instead of expr. |
| (hash_scan_set): Update call to insert_set_in_table. |
| (dump_hash_table): Dump <dest, src> pair. |
| (lookup_set): Simplify. Lookup <dest, src> pair. |
| (compute_transp): Remove, fold heavily simplified code into... |
| (compute_local_properties): ...here. Expect COMP and TRANSP |
| unconditionally. |
| (find_avail_set): Take set directly from struct expr. |
| (find_bypass-set): Likewise. |
| (bypass_block): Likewise. |
| (cprop_insn): Likewise. Remove redundant INSN_P test. |
| |
| * cprop.c (implicit_set_cond_p): Assume nothing about COND, move |
| checks on form of COND from find_implicit_sets to here. |
| (find_implicit_sets): Cleanup control flow. Split critical edges |
| if it exposes implicit sets. Allocate/resize implicit_sets as |
| necessary. |
| (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass |
| changed something. Run df_analyze after find_implicit_sets if any |
| edges were split. Do not allocate implicit_sets here. |
| |
| * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse. |
| (gcse_obstack): Renamed to cprop_obstack. |
| (GNEW, GNEWVEC, GNEWVAR): Remove. |
| (gmalloc): Remove. |
| (alloc_hash_table): Use XNEWVAR instead of GNEWVAR. |
| (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming. |
| (gcse_alloc): Likewise, and rename to cprop_alloc. |
| (alloc_gcse_men, free_gcse_mem): Remove. |
| (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers. |
| (compute_hash_table_work): Allocate and free reg_set_bitmap here. |
| (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming. |
| |
| * cprop.c (oprs_not_set_p): Remove. |
| (mark_set, mark_clobber): Remove. |
| (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache. |
| (reg_not_set_p): New function. |
| (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p. |
| (cprop_insn): Likewise. |
| (cprop_jump): Use FOR_EACH_EDGE. |
| |
| 2011-04-04 Bernd Schmidt <bernds@codesourcery.com> |
| |
| PR bootstrap/48403 |
| * haifa-sched.c (nonscheduled_insns_begin): New static variable. |
| (rank_for_schedule): Use scheduled_insns vector instead of |
| last_scheduled_insn. |
| (ok_for_early_queue_removal): Likewise. |
| (queue_to_ready): Search forward in nonscheduled_insns_begin if |
| we have a dbg_cnt. |
| (choose_ready): Likewise. |
| (commit_schedule): Use VEC_iterate. |
| (schedule_block): Initialize nonscheduled_insns_begin. If we have |
| a dbg_cnt, use it and ensure the first insn is in the ready list. |
| (haifa_sched_init): Allocate scheduled_insns. |
| (sched_extend_ready_list): Don't allocate it; reserve space. |
| (haifa_sched_finish): Free it. |
| |
| 2011-04-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * optc-gen.awk: Always remove type from Variable entry before |
| recording in var_seen. |
| |
| 2011-04-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfghooks.c (tidy_fallthru_edges): Add ??? comment. |
| * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove |
| call to tidy_fallthru_edges. |
| |
| 2011-04-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/options.texi (ToLower): Document. |
| * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field. |
| * opts-common.c (decode_cmdline_option): Handle cl_tolower. |
| * opts.h (cl_option): Add cl_tolower field. |
| * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu= |
| arguments with lowercase strings. |
| * config/rx/rx.opt (mcpu=): Add ToLower. |
| * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu= |
| argument. |
| |
| 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete. |
| |
| 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/vax/vax.c: Include reload.h. |
| |
| 2011-04-04 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove. |
| * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define. |
| (sparc_preferred_reload_class): New function. |
| |
| 2011-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48401 |
| * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. |
| Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC. |
| |
| 2011-04-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (struct tree_const_decl): Inherit from tree_decl_common. |
| * tree.c (initialize_tree_contains_struct): Adjust accordingly. |
| |
| 2011-04-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.h (ASM_OUTPUT_BSS): Remove. |
| (ASM_OUTPUT_ALIGNED_BSS): Define. |
| |
| 2011-04-03 Michael Matz <matz@suse.de> |
| |
| * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets |
| and next_slot members. |
| (lto_streamer_cache_insert, lto_streamer_cache_insert_at, |
| lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes. |
| (lto_streamer_cache_append): Declare. |
| * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use |
| unsigned index, remove offset parameter, ensure that we append |
| or update existing entries. |
| (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p |
| parameter, update next_slot for append. |
| (lto_streamer_cache_insert): Use unsigned index, remove offset_p |
| parameter. |
| (lto_streamer_cache_insert_at): Likewise. |
| (lto_streamer_cache_append): New function. |
| (lto_streamer_cache_lookup): Use unsigned index. |
| (lto_streamer_cache_get): Likewise. |
| (lto_record_common_node): Don't test tree_node_can_be_shared. |
| (preload_common_node): Adjust call to lto_streamer_cache_insert. |
| (lto_streamer_cache_delete): Don't free offsets member. |
| * lto-streamer-out.c (eq_string_slot_node): Use memcmp. |
| (lto_output_string_with_length): Use lto_output_data_stream. |
| (lto_output_tree_header): Remove ix parameter, don't write it. |
| (lto_output_builtin_tree): Likewise. |
| (lto_write_tree): Adjust callers to above, don't track and write |
| offset, write unsigned index. |
| (output_unreferenced_globals): Don't emit all global vars. |
| (write_global_references): Use unsigned indices. |
| (lto_output_decl_state_refs): Likewise. |
| (write_symbol): Likewise. |
| * lto-streamer-in.c (lto_input_chain): Move earlier. |
| (input_function): Use unsigned index. |
| (input_alias_pairs): Don't read and then ignore all global vars. |
| (lto_materialize_tree): Remove ix_p parameter, don't read index, |
| don't pass it back, use lto_streamer_cache_append. |
| (lto_register_var_decl_in_symtab): Use unsigned index. |
| (lto_register_function_decl_in_symtab): Likewise. |
| (lto_get_pickled_tree): Don't read in or handle offset, read unsigned |
| index. |
| (lto_get_builtin_tree): Don't read index, use |
| lto_streamer_cache_append. |
| (lto_read_tree): Adjust call to lto_materialize_tree. |
| |
| * ipa-inline.c (cgraph_edge_badness): Move growth calculaton, |
| don't use function calls in arguments to MIN. |
| |
| * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC |
| twice. |
| |
| * gimple.c (gimple_type_leader_entry): Mark deletable. |
| |
| 2011-04-03 Alan Modra <amodra@gmail.com> |
| |
| * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM. |
| |
| 2011-04-03 Michael Matz <matz@suse.de> |
| |
| * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not |
| an integer. |
| * tree.h (tree_decl_non_common.vindex): Adjust comment. |
| |
| 2011-04-03 Michael Matz <matz@suse.de> |
| |
| * cgraphbuild.c (record_reference): Canonicalize constructor values. |
| * gimple-fold.c (canonicalize_constructor_val): Accept being called |
| without function context. |
| * cgraphunit.c (cgraph_finalize_compilation_unit): Clear |
| current_function_decl and cfun. |
| |
| 2011-04-03 Michael Matz <matz@suse.de> |
| |
| * tree.c (decl_init_priority_insert): Don't create entry for |
| default priority. |
| (decl_fini_priority_insert): Ditto. |
| (fields_compatible_p, find_compatible_field): Remove. |
| * tree.h (fields_compatible_p, find_compatible_field): Remove. |
| * gimple.c (gimple_compare_field_offset): Adjust block comment. |
| |
| 2011-04-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * combine.c (try_combine): Remove useless local variable. |
| |
| 2011-04-03 Richard Guenther <rguenther@suse.de> |
| Ira Rosen <ira.rosen@linaro.org> |
| |
| * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all |
| non-variable offsets and compare the remaining bases of the two |
| accesses instead of looking for exact same data-ref. |
| |
| 2011-04-02 Kai Tietz <ktietz@redhat.com> |
| |
| PR target/48416 |
| * i386.c (ix86_function_arg_boundary): Fix printf formatter. |
| |
| * i386.c (ix86_is_msabi_thiscall): New helper function. |
| (ix86_is_type_thiscall): New helper function. |
| (ix86_comp_type_attributes): Handle thiscall for method-functions |
| special. |
| (init_cumulative_args): Likewise. |
| (find_drap_reg): Likewise. |
| (ix86_static_chain): Likewise. |
| (x86_this_parameter): Likewise. |
| (x86_output_mi_thunk): Likewise. |
| |
| 2011-04-01 Olivier Hainque <hainque@adacore.com> |
| Nicolas Setton <setton@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type. |
| (add_gnat_descriptive_type_attribute): New function. |
| (gen_array_type_die): Call it. |
| (gen_enumeration_type_die): Likewise. |
| (gen_struct_or_union_type_die): Likewise. |
| (modified_type_die): Likewise. |
| * langhooks.h (lang_hooks_for_types): New descriptive_type hook. |
| * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE. |
| |
| 2011-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/48148 |
| * dwarf2out.c (resolve_addr): Don't call force_decl_die |
| if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN. |
| |
| Revert: |
| 2011-03-17 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/48148 |
| * lto-cgraph.c (input_overwrite_node): Clear the abstract |
| origin for decls in other ltrans units. |
| (input_varpool_node): Likewise. |
| |
| 2011-04-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48335 |
| * expr.c (expand_assignment): Handle all possibilities |
| if TO_RTX is CONCAT. |
| * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs. |
| (store_split_bit_field): If SUBREG_REG (op0) or |
| op0 itself has smaller mode than word, return it |
| for offset 0 and const0_rtx for out-of-bounds stores. |
| If word is const0_rtx, skip it. |
| |
| 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com> |
| |
| * config/h8300/h8300.c (print_operand_address): Rename to... |
| (h8300_print_operand_address): ...this. Make static. Adjust comments. |
| Call h8300_print_operand and h8300_print_operand_address instead of |
| print_operand and print_operand_address. Declare. |
| (print_operand): Renake to... |
| (h8300_print_operand): ...this. Make static. Adjust comments. |
| Call h8300_print_operand instead of print_operand. Declare. |
| (h8300_print_operand_punct_valid_p): Moved from h8300.h file. |
| (h8300_register_move_cost): Likewise. |
| (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND |
| TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define. |
| * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND |
| PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete. |
| * config/h8300/h8300-protos.h (print_operand): Delete. |
| (print_operand_address): Delete. |
| |
| 2011-04-01 Richard Henderson <rth@redhat.com> |
| |
| PR 48400 |
| * dwarf2out.c (dwarf2out_source_line): Disable discriminators |
| in strict mode before dwarf4. Re-order tests to early out |
| before switching sections. |
| |
| 2011-04-01 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/h8300/constraints.md: New file. |
| * config/h8300/h8300.md: Include it. Use satisfies_constraint_J, |
| satisfies_constraint_L, and satisfies_constraint_N for peephole2s. |
| (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U. |
| * config/h8300/predicates.md (bit_operand): Likewise. |
| (incdec_operand): Use satisfies_constraint_M and |
| satisfies_constraint_O. Don't use C code block. |
| * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete. |
| * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete. |
| (compute_mov_length): Use satisfies_constraint_G. |
| (fix_bit_operand): Use satisfies_constraint_U. |
| * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete. |
| (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete. |
| (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete. |
| (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete. |
| (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete. |
| (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. |
| (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete. |
| (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete. |
| (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete. |
| (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete. |
| (EXTRA_MEMORY_CONSTRAINT): Delete. |
| |
| 2011-04-01 Andrew Pinski <pinskia@gmail.com> |
| Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/48262 |
| * config/rs6000/vector.md (movmisalign<mode>): Allow for memory |
| operands, as per the specifications. |
| |
| * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes. |
| (vec_extract_evenv4sf): Ditto. |
| (vec_extract_evenv8hi): Ditto. |
| (vec_extract_evenv16qi): Ditto. |
| (vec_extract_oddv4si): Ditto. |
| |
| 2011-03-31 Mark Wielaard <mjw@redhat.com> |
| |
| * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or |
| high_pc attribute if the CU has no associated code. Only output |
| DW_AT_entry_pc for CU if not generating strict dwarf and |
| dwarf_version < 4. |
| |
| 2011-04-01 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * dwarf2out.h (dwarf2out_frame_debug_init): Declare. |
| * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken |
| out of ... |
| (dwarf2out_frame_debug): ... here. Don't handle a NULL argument. |
| * final.c (final_start_function): Call the new function rather |
| than using a NULL argument for dwarf2out_frame_debug. |
| |
| * ifcvt.c (cond_exec_process_insns): Disallow converting a block |
| that contains the prologue. |
| |
| * haifa-sched.c (queue_insn): New arg REASON. All callers |
| changed. Print it in debugging output. |
| |
| * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag. |
| |
| * sched-ebb.c (begin_schedule_ready): Remove second argument. |
| Split most of the code into... |
| (begin_move_insn): ... here. New function. |
| (ebb_sched_info): Add a pointer to it. |
| * haifa-sched.c (scheduled_insns): New static variable. |
| (sched_extend_ready_list): Allocate it. |
| (schedule_block): Use it to record the order of scheduled insns. |
| Perform RTL changes to move insns only after all scheduling |
| decisions have been made. |
| * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the |
| begin_move_insn field. |
| * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise. |
| * sched-int.h (struct haifa_sched_info): Remove second argument |
| from begin_schedule_ready hook. Add new member begin_move_insn. |
| * sched-rgn.c (begin_schedule_ready): Remove second argument. |
| (rgn_const_sched_info): Add NULL entry for the begin_move_insn field. |
| |
| * haifa-sched.c (prune_ready_list): New function, broken out of |
| schedule_block. |
| (schedule_block): Use it. |
| |
| 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>. |
| |
| 2011-04-01 Kai Tietz <ktietz@redhat.com> |
| |
| * config.gcc (*-*-mingw*): Allow as option the |
| posix threading model. |
| * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2): |
| New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT |
| definition. |
| (CPP_SPEC): Add pthread/no-pthread handling. |
| (LIB_SPEC): Likewise. |
| * config/i386/mingw-w64.h (CPP_SPEC):Likewise. |
| (LIB_SPEC): Likewise. |
| * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New |
| flag to pass -pthread option for shared libgcc build. |
| (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread |
| for shared libgcc build. |
| * config/i386/t-mingw-pthread: New file. |
| * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT): |
| New define to enable use of library pthread by default. |
| * config/i386/mingw.opt (pthread): New driver option. |
| (no-pthread): New driver option. |
| * config/i386/cygming.opt: Make sure trailing empty line is retained. |
| * config/i386/mingw-w64.opt: Likewise. |
| |
| 2011-04-01 Gary Funck <gary@intrepid.com> |
| |
| * c-decl.c (grokdeclarator): Fix formatting. |
| |
| 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * expr.c (emit_block_move_via_movmem): Use n_generator_args |
| instead of n_operands. |
| (set_storage_via_setmem): Likewise. |
| * optabs.c (maybe_gen_insn): Likewise. |
| * config/arm/arm.c (arm_init_neon_builtins): Likewise. |
| * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise. |
| (mips_expand_builtin_direct): Likewise. |
| * config/spu/spu.c (expand_builtin_args): Likewise. |
| |
| 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * recog.h (insn_data_d): Add n_generator_args. |
| * genoutput.c (data): Likewise. |
| (output_insn_data): Print it. |
| (max_opno, num_dups): Delete. |
| (scan_operands): Just fill in "d->operand[...]". |
| (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats. |
| |
| 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * gensupport.h (pattern_stats): New structure. |
| * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions. |
| * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete. |
| (max_operand_1, max_operand_vec): Delete. |
| (gen_insn, gen_expand, gen_split): Use get_pattern_stats. |
| |
| 2011-03-31 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * emit-rtl.c (emit_pattern_after_setloc): New function. |
| (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it. |
| (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise. |
| (emit_pattern_after): New function. |
| (emit_insn_after, emit_jump_insn_after): Call it. |
| (emit_call_insn_after, emit_debug_insn_after): Likewise. |
| (emit_pattern_before_setloc): New function. |
| (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it. |
| (emit_call_insn_before_setloc, emit_debug_insn_before_setloc): |
| Likewise. |
| (emit_pattern_before): New function. |
| (emit_insn_before, emit_jump_insn_before): Call it. |
| (emit_call_insn_before, emit_debug_insn_before): Likewise. |
| |
| 2011-03-31 Richard Henderson <rth@redhat.com> |
| |
| * dwarf2out.c (dw_separate_line_info_ref): Remove. |
| (dw_separate_line_info_entry): Remove. |
| (enum dw_line_info_opcode): New. |
| (dw_line_info_entry): Use it. |
| (dw_line_info_table, dw_line_info_table_p): New. |
| (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes. |
| (line_info_table, line_info_label_num): Remove. |
| (line_info_table_in_use): Remove. |
| (separate_line_info_table): Remove. |
| (separate_line_info_table_allocated): Remove. |
| (separate_line_info_table_in_use): Remove. |
| (LINE_INFO_TABLE_INCREMENT): Remove. |
| (line_info_label_num): New. |
| (cur_line_info_table): New. |
| (text_section_line_info, cold_text_section_line_info): New. |
| (separate_line_info): New. |
| (SEPARATE_LINE_CODE_LABEL): Remove. |
| (print_dwarf_line_table): Remove. |
| (debug_dwarf): Don't dump it. |
| (output_one_line_info_table): New. |
| (output_line_info): Use it. |
| (new_line_info_table): New. |
| (set_cur_line_info_table): New. |
| (dwarf2out_switch_text_section): Use it. |
| (dwarf2out_begin_function): Likewise. |
| (push_dw_line_info_entry): New. |
| (dwarf2out_source_line): Rewrite for new line info tables. |
| (dwarf2out_init): Remove dead initailizations. |
| |
| 2011-03-31 Joseph Myers <joseph@codesourcery.com> |
| |
| * opts.h (cl_option): Add comments to fields. Add bit-fields for |
| various flags. |
| (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK, |
| CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, |
| CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK, |
| CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove. |
| (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions. |
| * opt-functions.awk (flag_init, switch_bit_fields): New. |
| (switch_flags): Don't handle flags moved to bit-fields. Don't |
| generate CL_MISSING_OK or CL_SAVE. |
| * optc-gen.awk: Update to generate bit-field output as well as |
| flags field. |
| * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver |
| bit-field instead of CL_REJECT_DRIVER flag. |
| * opts-common.c (generate_canonical_option, |
| decode_cmdline_option): Use bit-fields instead of CL_* flags. |
| * opts.c (maybe_default_option): Use cl_reject_negative bit-field |
| instead of CL_REJECT_NEGATIVE flag. |
| * toplev.c (print_switch_values): Use cl_report bit-field instead |
| of CL_REPORT flag. |
| |
| 2011-03-31 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop |
| a zero minimum index only if it is redundant. |
| |
| 2011-03-31 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48381 |
| * ira-color.c (assign_hard_reg): Use hard reg set intersection |
| instead of ira_class_hard_reg_index for calculating conflicting |
| hard registers. |
| |
| 2011-03-31 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * cprop.c: Clean up hash table building. |
| (reg_avail_info): Remove. |
| (oprs_available_p): Remove. |
| (record_last_reg_set_info): Remove. |
| (record_last_set_info): Remove. |
| (reg_available_p): New function. |
| (gcse_constant_p): Do not treat unfolded conditions as constants. |
| (make_set_regs_unavailable): New function. |
| (hash_scan_set): Simplify with new reg_available_p. |
| (compute_hash_table_work): Traverse insns stream only once. |
| Do not compute reg_avail_info. Traverse insns in reverse order. |
| Record implicit sets after recording explicit sets from the block. |
| |
| 2011-03-31 Michael Matz <matz@suse.de> |
| |
| * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc. |
| |
| 2011-03-31 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro. |
| * config/h8300/h8300-protos.h (h8300_get_index): Remove. |
| * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. |
| (h8300_mode_dependent_address_p): New function. |
| (h8300_get_index): Make static. |
| |
| 2011-03-31 Jeff Law <law@redhat.com> |
| |
| * reload1.c (elimination_effects): Fix typo in recent change. |
| |
| * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid |
| typo potentially leading to null pointer dereference. |
| |
| * caller-save.c (new_saved_hard_reg): Eliminate return value. |
| (setup_save_areas): Corresponding changes to avoid useless |
| assignments. |
| |
| * jump.c (reversed_comparison_code_parts): Avoid successive return |
| statements when REVERSE_CONDITION is defined. |
| |
| * expr.c (expand_assignment): Avoid useless assignments. |
| (expand_expr_real_1): Likewise. |
| (expand_expr_real_2): Avoid useless statements. |
| |
| * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement. |
| |
| * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment. |
| |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless |
| statements. |
| |
| * stmt.c (expand_expr_stmt): Avoid useless assignment. |
| |
| 2011-03-31 Joseph Myers <joseph@codesourcery.com> |
| |
| PR target/47109 |
| * doc/tm.texi.in (TARGET_VERSION): Remove. |
| * doc/tm.texi: Regenerate. |
| * system.h (TARGET_VERSION, MACHINE_TYPE): Poison. |
| * collect2.c (main): Don't use TARGET_VERSION. |
| * mips-tdump.c (main): Don't use TARGET_VERSION. |
| * mips-tfile.c (main): Don't use TARGET_VERSION. |
| * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h. |
| * config/rs6000/vxworksae.h: Remove. |
| * config/alpha/alpha.h (TARGET_VERSION): Remove. |
| * config/alpha/freebsd.h (TARGET_VERSION): Remove. |
| * config/alpha/linux-elf.h (TARGET_VERSION): Remove. |
| * config/alpha/netbsd.h (TARGET_VERSION): Remove. |
| * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove. |
| * config/arm/arm.h (TARGET_VERSION): Remove. |
| * config/arm/coff.h (TARGET_VERSION): Remove. |
| * config/arm/ecos-elf.h (TARGET_VERSION): Remove. |
| * config/arm/elf.h (TARGET_VERSION): Remove. |
| * config/arm/freebsd.h (TARGET_VERSION): Remove. |
| * config/arm/linux-elf.h (TARGET_VERSION): Remove. |
| * config/arm/netbsd-elf.h (TARGET_VERSION): Remove. |
| * config/arm/pe.h (TARGET_VERSION): Remove. |
| * config/arm/rtems-elf.h (TARGET_VERSION): Remove. |
| * config/arm/semi.h (TARGET_VERSION): Remove. |
| * config/arm/uclinux-elf.h (TARGET_VERSION): Remove. |
| * config/arm/unknown-elf.h (TARGET_VERSION): Remove. |
| * config/arm/vxworks.h (TARGET_VERSION): Remove. |
| * config/avr/avr.h (TARGET_VERSION): Remove. |
| * config/bfin/bfin.h (TARGET_VERSION): Remove. |
| * config/fr30/fr30.h (TARGET_VERSION): Remove. |
| * config/frv/frv.h (TARGET_VERSION): Remove. |
| * config/h8300/h8300.h (TARGET_VERSION): Remove. |
| * config/i386/cygwin.h (TARGET_VERSION): Remove. |
| * config/i386/darwin.h (TARGET_VERSION): Remove. |
| * config/i386/darwin64.h (TARGET_VERSION): Remove. |
| * config/i386/djgpp.h (TARGET_VERSION): Remove. |
| * config/i386/freebsd.h (TARGET_VERSION): Remove. |
| * config/i386/freebsd64.h (TARGET_VERSION): Remove. |
| * config/i386/gnu.h (TARGET_VERSION): Remove. |
| * config/i386/i386-interix.h (TARGET_VERSION): Remove. |
| * config/i386/i386elf.h (TARGET_VERSION): Remove. |
| * config/i386/linux.h (TARGET_VERSION): Remove. |
| * config/i386/linux64.h (TARGET_VERSION): Remove. |
| * config/i386/lynx.h (TARGET_VERSION): Remove. |
| * config/i386/mingw32.h (TARGET_VERSION): Remove. |
| * config/i386/netbsd-elf.h (TARGET_VERSION): Remove. |
| * config/i386/netbsd64.h (TARGET_VERSION): Remove. |
| * config/i386/netware.h (TARGET_VERSION): Remove. |
| * config/i386/nto.h (TARGET_VERSION): Remove. |
| * config/i386/openbsd.h (TARGET_VERSION): Remove. |
| * config/i386/vxworks.h (TARGET_VERSION): Remove. |
| * config/ia64/elf.h (TARGET_VERSION): Remove. |
| * config/ia64/freebsd.h (TARGET_VERSION): Remove. |
| * config/ia64/hpux.h (TARGET_VERSION): Remove. |
| * config/ia64/linux.h (TARGET_VERSION): Remove. |
| * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove. |
| * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE, |
| TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. |
| * config/lm32/lm32.h (TARGET_VERSION): Remove. |
| * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove. |
| * config/m32c/m32c.h (TARGET_VERSION): Remove. |
| * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove. |
| * config/m32r/m32r.h (TARGET_VERSION): Remove. |
| * config/m68k/linux.h (TARGET_VERSION): Remove. |
| * config/m68k/m68k.h (TARGET_VERSION): Remove. |
| * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove. |
| * config/m68k/uclinux.h (TARGET_VERSION): Remove. |
| * config/mcore/mcore-elf.h (TARGET_VERSION): Remove. |
| * config/mep/mep.h (TARGET_VERSION): Remove. |
| * config/microblaze/microblaze.h (MICROBLAZE_VERSION, |
| MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. |
| * config/mips/iris6.h (MACHINE_TYPE): Remove. |
| * config/mips/linux.h (TARGET_VERSION): Remove. |
| * config/mips/netbsd.h (MACHINE_TYPE): Remove. |
| * config/mips/vxworks.h (TARGET_VERSION): Remove. |
| * config/mmix/mmix.h (TARGET_VERSION): Remove. |
| * config/mn10300/linux.h (TARGET_VERSION): Remove. |
| * config/mn10300/mn10300.h (TARGET_VERSION): Remove. |
| * config/pa/pa.h (TARGET_VERSION): Remove. |
| * config/pdp11/pdp11.h (TARGET_VERSION): Remove. |
| * config/picochip/picochip.h (TARGET_VERSION): Remove. |
| * config/rs6000/aix.h (TARGET_VERSION): Remove. |
| * config/rs6000/darwin.h (TARGET_VERSION): Remove. |
| * config/rs6000/darwin64.h (TARGET_VERSION): Remove. |
| * config/rs6000/eabi.h (TARGET_VERSION): Remove. |
| * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove. |
| * config/rs6000/eabisim.h (TARGET_VERSION): Remove. |
| * config/rs6000/eabispe.h (TARGET_VERSION): Remove. |
| * config/rs6000/freebsd.h (TARGET_VERSION): Remove. |
| * config/rs6000/linux.h (TARGET_VERSION): Remove. |
| * config/rs6000/linux64.h (TARGET_VERSION): Remove. |
| * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove. |
| * config/rs6000/linuxspe.h (TARGET_VERSION): Remove. |
| * config/rs6000/lynx.h (TARGET_VERSION): Remove. |
| * config/rs6000/netbsd.h (TARGET_VERSION): Remove. |
| * config/rs6000/sysv4.h (TARGET_VERSION): Remove. |
| * config/rs6000/vxworks.h (TARGET_VERSION): Remove. |
| * config/s390/linux.h (TARGET_VERSION): Remove. |
| * config/s390/s390.h (TARGET_VERSION): Remove. |
| * config/s390/tpf.h (TARGET_VERSION): Remove. |
| * config/score/score.h (TARGET_VERSION): Remove. |
| * config/sh/linux.h (TARGET_VERSION): Remove. |
| * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN, |
| TARGET_VERSION_CPU, TARGET_VERSION): Remove. |
| * config/sh/sh.h (TARGET_VERSION): Remove. |
| * config/sh/sh64.h (TARGET_VERSION): Remove. |
| * config/sh/superh.h (TARGET_VERSION): Remove. |
| * config/sh/vxworks.h (TARGET_VERSION): Remove. |
| * config/sparc/freebsd.h (TARGET_VERSION): Remove. |
| * config/sparc/linux.h (TARGET_VERSION): Remove. |
| * config/sparc/linux64.h (TARGET_VERSION): Remove. |
| * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64, |
| TARGET_NAME32, TARGET_NAME): Remove. |
| * config/sparc/openbsd64.h (TARGET_VERSION): Remove. |
| * config/sparc/sp-elf.h (TARGET_VERSION): Remove. |
| * config/sparc/sp64-elf.h (TARGET_VERSION): Remove. |
| * config/sparc/sysv4.h (TARGET_VERSION): Remove. |
| * config/sparc/vxworks.h (TARGET_VERSION): Remove. |
| * config/spu/spu.h (TARGET_VERSION): Remove. |
| * config/stormy16/stormy16.h (TARGET_VERSION): Remove. |
| * config/v850/v850.h (TARGET_VERSION): Remove. |
| * config/vax/linux.h (TARGET_VERSION): Remove. |
| * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove. |
| * config/xtensa/elf.h (TARGET_VERSION): Remove. |
| * config/xtensa/linux.h (TARGET_VERSION): Remove. |
| |
| 2011-03-31 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/48142 |
| * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate |
| frame-related from frame-unrelated adjustments to the stack pointer. |
| |
| 2011-03-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * common.opt (fdebug-types-section): Move earlier. |
| * doc/invoke.texi: Fix up -fno-debug-types-section documentation. |
| |
| 2011-03-31 Andreas Tobler <andreast@fgznet.ch> |
| |
| * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel |
| var. |
| |
| 2011-03-30 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.h (CASE_CHAIN): Define. |
| * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it. |
| (gimple_redirect_edge_and_branch): Likewise. |
| |
| 2011-03-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/48367 |
| * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost |
| calculation. |
| |
| 2011-03-30 Jeff Law <law@redhat.com> |
| |
| * PR bootstrap/48371 |
| * reload1.c (reload): Fix botch in last change. |
| |
| * reload.h (struct reload): Fix typo introduced in last change. |
| |
| 2011-03-30 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/arm.opt (mhard-float, msoft-float): Mark |
| Undocumented. Remove help text. |
| * doc/invoke.texi (ARM Options): Don't document -msoft-float and |
| -mhard-float. |
| |
| 2011-03-30 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/options.texi (NegativeAlias): Document. |
| (Alias): Mention NegativeAlias. |
| * opt-functions.awk: Handle NegativeAlias. |
| * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments. |
| * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS. |
| * opts.h (CL_NEGATIVE_ALIAS): Define. |
| * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove. |
| (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and |
| OPT_mspe_. |
| * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with |
| Alias entries. |
| * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use |
| mno-spe and mno-isel instead of mspe=no and -misel=no. |
| |
| 2011-03-29 Mark Wielaard <mjw@redhat.com> |
| |
| * common.opt (fdebug-types-section): New flag. |
| * doc/invoke.texi: Document new -fno-debug-types-section flag. |
| * dwarf2out.c (use_debug_types): New define. |
| (struct die_struct): Mark die_id with GTY desc use_debug_types. |
| (print_die): Guard output of type unit signatures using |
| use_debug_types. |
| (build_abbrev_table): Replace assert of dwarf_version >= 4 |
| with assert on use_debug_types. |
| (size_of_die): Likewise. |
| (unmark_dies): Likewise. |
| (value_format): Decide AT_ref_external form on use_debug_types. |
| (output_die): Replace dwarf_version version check guard with |
| use_debug_types where appropriate. |
| (modified_type_die): Likewise. |
| (gen_reference_type_die): Likewise. |
| (dwarf2out_start_source_file): Likewise. |
| (dwarf2out_end_source_file): Likewise. |
| (prune_unused_types_walk_attribs): Likewise. |
| (dwarf2out_finish): Likewise. |
| |
| 2011-03-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'. |
| |
| 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR rtl-optimization/48332 |
| * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated |
| mode of input operand N and modeN to its actual mode. |
| |
| 2011-03-30 Jeff Law <law@redhat.com> |
| |
| * reload.h (reg_equiv_constant): Move into new structure reg_equivs, |
| define accessor macro. |
| (reg_equiv_invariant, reg_equiv_memory_loc): Likewise. |
| (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise. |
| (reg_equiv_init): Likewise. |
| (reg_equivs_size): New variable. |
| (reg_equiv_init_size): Remove. |
| (allocate_initial_values): Move prototype to here from.... |
| * integrate.h (allocate_initial_values): Remove prototype. |
| * integrate.c: Include reload.h. |
| (allocate_initial_values): Corresponding changes. |
| * ira.c (find_reg_equiv_invariant_cost): Corresponding changes. |
| (fix_reg_equiv_init, no_equiv): Corresponding changes. |
| (update_equiv_regs): Corresponding changes. |
| (ira): Corresponding changes. |
| * reload.c (push_reg_equiv_alt_mem): Corresponding changes. |
| (push_secondary_reload): Corresponding changes. |
| (push_reload, find_reloads, find_reloads_toplev): Corresponding changes. |
| (make_memloc, find_reloads_address): Corresponding changes. |
| (subst_reg_equivs, subst_indexed_address): Corresponding changes. |
| (find_reloads_address_1): Corresponding changes. |
| (find_reloads_subreg_address, subst_reloads): Corresponding changes. |
| (refers_to_regno_for_reload_p): Corresponding changes. |
| (reg_overlap_mentioned_for_reload_p): Corresponding changes. |
| (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes. |
| * reload1.c: Include ggc.h. |
| (grow_reg_equivs): New function. |
| (replace_pseudos_in, reload): Corresponding changes. |
| (calculate_needs_all_insns, alter_regs): Corresponding changes. |
| (eliminate_regs_1, elimination_effects): Corresponding changes. |
| (emit_input_reload_insns, emit_output_reload_insns): Likewise. |
| (delete_output_reload): Likewise. |
| * caller-save.c (mark_referenced_regs): Corresponding changes. |
| * alpha/alpha.c (resolve_reload_operand): Corresponding changes. |
| * frv/predicates.md (frv_load_operand): Corresponding changes. |
| * microblaze/microblaze.c (double_memory_operand): Corresponding |
| changes. |
| * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes. |
| * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes. |
| * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes. |
| * m68k/m68k.c (emit_move_sequence): Corresponding changes. |
| * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding |
| changes. |
| * pa/pa.c (emit_move_sequence): Corresponding changes. |
| * vax/vax.c (nonindexed_address_p): Corresponding changes. |
| |
| 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/47551 |
| * config/arm/arm.c (coproc_secondary_reload_class): Handle |
| structure modes. Don't check neon_vector_mem_operand for |
| vector or structure modes. |
| |
| 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/43590 |
| * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove |
| operand 1 and reshuffle the operands to match. |
| (neon_vld3<mode>, neon_vld4<mode>): Update accordingly. |
| |
| 2011-03-30 Christian Schüler <cschueler@gmx.de> |
| |
| PR driver/48208 |
| * config/c.opt (F): Added 'Driver' to -F option. |
| |
| PR driver/48260 |
| * config/darwin-driver.c (darwin_driver_init): Add '-arch' to |
| handler function. |
| * config/darwin.opt: Added '-arch' option. |
| |
| 2011-03-30 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md: Add peepholes and patterns to combine |
| extending loads and simple arithmetic instructions. |
| * config/rx/rx.h (ADJUST_INSN_LENGTH): Define. |
| * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype. |
| * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI |
| modes to use pre-decrement and post-increment addressing. |
| (rx_is_restricted_memory_address): Add range checking of REG+INT |
| addresses. |
| (rx_print_operand): Add support for %Q. Fix handling of %Q. |
| (rx_memory_move_cost): Adjust cost of stores. |
| (rx_adjust_insn_length): New function. |
| |
| 2011-03-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48305 |
| * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure |
| arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to |
| matching arg00/arg01 types. |
| |
| 2011-03-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfglayout.c (insn_locators_alloc): Initialize curr_location and |
| last_location to UNKNOWN_LOCATION. |
| |
| 2011-03-30 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/48349 |
| * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in |
| FLOAT_SSE_REGS. |
| |
| 2011-03-30 Joseph Myers <joseph@codesourcery.com> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/48337 |
| * config/sparc/sparc.opt (sparc_cpu_and_features): Add |
| Init(PROCESSOR_V7). |
| (sparc_cpu): Likewise. |
| * config/sparc/sparc.c (sparc_option_override): Replace 0 by |
| PROCESSOR_V7. |
| |
| 2011-03-29 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/48336 |
| PR middle-end/48342 |
| PR rtl-optimization/48345 |
| * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited |
| hard regs for given mode from profitable regs when doing secondary |
| allocation. |
| |
| 2011-03-29 Jeff Law <law@redhat.com> |
| |
| PR bootstrap/48327 |
| * tree-ssa-threadupdate.c (struct redirection_data): Remove |
| do_not_duplicate field. |
| (lookup_redirection_data): Corresponding changes. |
| (create_duplicates): Always create a template block. |
| (redirect_edges): Remove code which reused the original block |
| when it was going to become unreachable code. |
| (thread_block): Don't set do_not_duplicate field. |
| |
| 2011-03-29 Joseph Myers <joseph@codesourcery.com> |
| |
| * lto-opts.c (register_user_option_p, lto_register_user_option): |
| Make type argument unsigned. |
| * lto-streamer.h (lto_register_user_option): Make type argument |
| unsigned. |
| * opth-gen.awk: Make CL_* macros unsigned. |
| * opts-common.c (find_opt): Make lang_mask argument unsigned. |
| * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, |
| CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS, |
| CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED, |
| CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE, |
| CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned. |
| (find_opt): Make lang_mask argument unsigned. |
| |
| 2011-03-29 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/48331 |
| PR rtl-optimization/48334 |
| * ira-color.c (color_allocnos): Call setup_profitable_hard_regs |
| for any used algorithm. |
| |
| 2011-03-29 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-conflicts.c (build_object_conflicts): Add unused attribute |
| to parent_max. |
| |
| 2011-03-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_sr_alias_set): Don't define. |
| (alpha_option_override): Don't set alpha_sr_alias_set. |
| (emit_frame_store_1): Use gen_frame_mem rather than calling |
| set_mem_alias_set. |
| (alpha_expand_epilogue): Ditto. |
| |
| 2011-03-29 Ira Rosen <ira.rosen@linaro.org> |
| |
| PR tree-optimization/48290 |
| * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop |
| vectorization, check that relevant phis in the basic block after |
| the inner loop are really inner loop's exit phis. |
| |
| 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR debug/48190 |
| * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced. |
| (cached_dw_loc_list_def): New structure. |
| (cached_dw_loc_list): New typedef. |
| (cached_dw_loc_list_table): New variable. |
| (cached_dw_loc_list_table_hash): New function. |
| (cached_dw_loc_list_table_eq): Likewise. |
| (add_location_or_const_value_attribute): Take a bool cache_p. |
| Cache the list when the parameter is true. |
| (gen_formal_parameter_die): Update caller. |
| (gen_variable_die): Likewise. |
| (dwarf2out_finish): Likewise. |
| (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table |
| while generating debug info for the decl. |
| (dwarf2out_function_decl): Clear cached_dw_loc_list_table. |
| (dwarf2out_init): Initialize cached_dw_loc_list_table. |
| (resolve_addr): Cache the result of resolving a chain of |
| location lists. |
| |
| 2011-03-28 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-color.c (update_left_conflict_sizes_p): Don't assume that |
| conflict object hard regset nodes have intersecting hard reg sets. |
| |
| * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call |
| after regstat_init_n_sets_and_refs. |
| |
| * ira.c: Add more comments at the top. |
| (setup_stack_reg_pressure_class, setup_pressure_classes): |
| Add comments how we compute the register pressure classes. |
| (setup_allocno_and_important_classes): Add more comments. |
| (setup_class_translate_array, reorder_important_classes) |
| (setup_reg_class_relations): Add comments. |
| |
| * ira-emit.c: Add 2011 to the Copyright line. Add comments at the |
| start of the file. |
| |
| * ira-color.c: Add 2011 to the Copyright line. |
| (assign_hard_reg): Add more comments. |
| (improve_allocation): Ditto. |
| |
| * ira-costs.c: Add 2011 to the Copyright line. |
| (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more |
| comments. |
| (setup_regno_cost_classes_by_mode): Ditto. |
| |
| Initial patches from ira-improv branch: |
| |
| 2010-08-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-build.c (ira_create_object): Remove initialization of |
| OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA. |
| (ira_create_allocno): Remove initialization of |
| ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P, |
| ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P, |
| ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P, |
| ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO, |
| ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO. |
| Initialize ALLOCNO_ADD_DATA. |
| (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA |
| and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and |
| ALLOCNO_REG. |
| (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of |
| ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P. |
| |
| * ira.c (ira_reallocate): Remove. |
| (setup_pressure_classes): Call |
| ira_init_register_move_cost_if_necessary. Use |
| ira_register_move_cost instead of ira_get_register_move_cost. |
| (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA. |
| (ira): Call ira_initiate_emit_data and ira_finish_emit_data. |
| |
| * ira-color.c: Use ALLOCNO_COLOR_DATA instead of |
| ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P, |
| ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO, |
| ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA |
| instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE, |
| OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM. |
| Fix formatting. |
| (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h. |
| (struct object_hard_regs, struct object_hard_regs_node): Ditto. |
| (struct allocno_color_data): New. |
| (allocno_color_data_t): New typedef. |
| (allocno_color_data): New definition. |
| (ALLOCNO_COLOR_DATA): New macro. |
| (struct object_color_data): New. |
| (object_color_data_t): New typedef. |
| (object_color_data): New definition. |
| (OBJECT_COLOR_DATA): New macro. |
| (update_copy_costs, calculate_allocno_spill_cost): Call |
| ira_init_register_move_cost_if_necessary. Use |
| ira_register_move_cost instead of ira_get_register_move_cost. |
| (move_spill_restore, update_curr_costs): Ditto. |
| (allocno_spill_priority): Make it inline. |
| (color_pass): Allocate and free allocno_color_dat and object_color_data. |
| (struct coalesce_data, coalesce_data_t): New. |
| (allocno_coalesce_data): New definition. |
| (ALLOCNO_COALESCE_DATA): New macro. |
| (merge_allocnos, coalesced_allocno_conflict_p): Use |
| ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO, |
| ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP. |
| (coalesce_allocnos): Ditto. |
| (setup_coalesced_allocno_costs_and_nums): Ditto. |
| (collect_spilled_coalesced_allocnos): Ditto. |
| (slot_coalesced_allocno_live_ranges_intersect_p): Ditto. |
| (setup_slot_coalesced_allocno_live_ranges): Ditto. |
| (coalesce_spill_slots): Ditto. |
| (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and |
| free allocno_coalesce_data. |
| |
| * ira-conflicts.c: Fix formatting. |
| (process_regs_for_copy): Call |
| ira_init_register_move_cost_if_necessary. Use |
| ira_register_move_cost instead of ira_get_register_move_cost. |
| (build_object_conflicts): Optimize. |
| |
| * ira-costs.c (record_reg_classes): Optimize. Call |
| ira_init_register_move_cost_if_necessary. Use |
| ira_register_move_cost, ira_may_move_in_cost, and |
| ira_may_move_out_cost instead of ira_get_register_move_cost and |
| ira_get_may_move_cost. |
| (record_address_regs): Ditto. |
| (scan_one_insn): Optimize. |
| (find_costs_and_classes): Optimize. |
| (process_bb_node_for_hard_reg_moves): Call |
| ira_init_register_move_cost_if_necessary. Use |
| ira_register_move_cost instead of ira_get_register_move_cost. |
| |
| * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of |
| ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST, |
| ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P. |
| (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New |
| definitions. |
| (ira_initiate_emit_data, ira_finish_emit_data) |
| (create_new_allocno): New functions. |
| (modify_move_list): Call create_new_alloc instead of ira_create_allocno. |
| (emit_move_list): Call ira_init_register_move_cost_if_necessary. |
| Use ira_register_move_cost instead of ira_get_register_move_cost. |
| |
| * ira-int.h: Fix some comments. |
| (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c. |
| (struct object_hard_regs, struct object_hard_regs_node): Ditto. |
| (struct ira_object): Remove profitable_hard_regs, hard_regs_node, |
| hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member |
| add_data. |
| (struct ira_allocno): Make mode and aclass a bitfield. Move other |
| bitfield after mode. Make hard_regno a short int. Make |
| hard_regno short. Remove first_coalesced_allocno and |
| next_coalesced_allocno. Move mem_optimized_dest_p, |
| somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest |
| into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p, |
| available_regs_num, next_bucket_allocno, prev_bucket_allocno, |
| temp, colorable_p. Add new member add_data. |
| (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove. |
| (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove. |
| (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove. |
| (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove. |
| (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove. |
| (ALLOCNO_ADD_DATA): New macro. |
| (ira_emit_data_t): New typedef. |
| (struct ira_emit_data): New. Move mem_optimized_dest_p, |
| somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest |
| from struct ira_allocno. |
| (ALLOCNO_EMIT_DATA): New macro. |
| (ira_allocno_emit_data, allocno_emit_reg): New. |
| (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove. |
| (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove. |
| (OBJECT_ADD_DATA): New macro. |
| (ira_reallocate): Remove. |
| (ira_initiate_emit_data, ira_finish_emit_data): New. |
| (ira_get_register_move_cost, ira_get_may_move_cost): Remove. |
| (ira_init_register_move_cost_if_necessary): New. |
| (ira_object_conflict_iter_next): Merge into |
| ira_object_conflict_iter_cond. |
| (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next. |
| |
| * ira-live.c (process_single_reg_class_operands): Call |
| ira_init_register_move_cost_if_necessary. Use |
| ira_register_move_cost instead of ira_get_register_move_cost. |
| |
| 2010-08-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-int.h (struct target_ira_int): Remove x_cost_classes. |
| |
| * ira-costs.c: Fix formatting. |
| (cost_classes, cost_classes_num): Remove. |
| (struct cost_classes, cost_classes_t, const_cost_classes_t): New. |
| (regno_cost_classes, cost_classes_hash, cost_classes_eq): New. |
| (cost_classes_del, cost_classes_htab): New. |
| (cost_classes_aclass_cache, cost_classes_mode_cache): New. |
| (initiate_regno_cost_classes, setup_cost_classes): New. |
| (setup_regno_cost_classes_by_aclass): New. |
| (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New. |
| (record_reg_classes): Use regno_cost_classes instead of |
| cost_classes. Move checking opposite operand up. |
| (record_address_regs): Use regno_cost_classes |
| instead of cost_classes. |
| (scan_one_insn): Ditto. Use always general register. |
| (print_allocno_costs): Use regno_cost_classes instead of |
| cost_classes. |
| (print_pseudo_costs): Ditto. Use Reg_N_REFS. |
| (find_costs_and_classes): Set up cost classes for each registers. |
| Use also their mode for this. Use regno_cost_classes instead of |
| cost_classes. |
| (setup_allocno_class_and_costs): Use regno_cost_classes instead of |
| cost_classes. |
| (free_ira_costs, ira_init_costs): Don't use cost_classes. |
| (ira_costs, ira_set_pseudo_classes): Call |
| initiate_regno_cost_classes and finish_regno_cost_classes. |
| |
| 2010-10-04 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * target-def.h (TARGET_IRA_COVER_CLASSES): Remove. |
| |
| * target.def (ira_cover_classes): Remove. |
| |
| * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES. |
| |
| * doc/tm.texi.in: Ditto. |
| |
| * ira-conflicts.c: Remove mentioning cover classes from the file. |
| Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use |
| ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting. |
| |
| * targhooks.c (default_ira_cover_classes): Remove. |
| |
| * targhooks.h (default_ira_cover_classes): Ditto. |
| |
| * haifa-sched.c: Remove mentioning cover classes from the file. |
| Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use |
| ira_pressure_classes and ira_pressure_classes_num instead of |
| ira_reg_class_cover_size and ira_reg_class_cover. Use |
| sched_regno_pressure_class instead of sched_regno_cover_class. |
| (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use |
| ira_reg_class_max_nregs instead of ira_reg_class_nregs. |
| |
| * ira-int.h: Add 2010 to Copyright. Remove mentioning cover |
| classes from the file. |
| (object_hard_regs_t, object_hard_regs_node_t): New typedefs. |
| (struct object_hard_regs, struct object_hard_regs_node): New. |
| (struct ira_object): New members profitable_hard_regs, |
| hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num. |
| (struct ira_allocno): Rename cover_class to aclass. Rename |
| cover_class_cost and updated_cover_class_cost to class_cost and |
| updated_class_cost. Remove splay_removed_p and |
| left_conflict_size. Add new members colorable_p. |
| (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove. |
| (ALLOCNO_COLORABLE_P): New macro. |
| (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS. |
| (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST): |
| Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST. |
| (OBJECT_...): Rename parameter C to O. |
| (OBJECT_PROFITABLE_HARD_REGS): New macro. |
| (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START) |
| (OBJECT_HARD_REGS_SUBNODES_NUM): New macros. |
| (struct target_ira_int): New members x_ira_max_memory_move_cost, |
| x_ira_max_register_move_cost, x_ira_max_may_move_in_cost, |
| x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p, |
| x_ira_reg_pressure_class_p, x_ira_important_class_nums, |
| x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to |
| x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to |
| x_ira_reg_class_subunion. |
| (ira_max_memory_move_cost, ira_max_register_move_cost) |
| (ira_max_may_move_in_cost, ira_max_may_move_out_cost) |
| (ira_reg_allocno_class_p, ira_reg_pressure_class_p) |
| (ira_important_class_nums, ira_reg_class_superunion): New macros. |
| (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs. |
| (ira_reg_class_union): Rename to ira_reg_class_subunion. |
| (ira_debug_class_cover): Rename to ira_debug_allocno_classes. |
| (ira_set_allocno_cover_class): Rename to ira_set_allocno_class. |
| (ira_tune_allocno_costs_and_cover_classes): Rename to |
| ira_tune_allocno_costs. |
| (ira_debug_hard_regs_forest): New. |
| (ira_object_conflict_iter_init, ira_object_conflict_iter_cond) |
| (ira_object_conflict_iter_next): Fix comments. |
| (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions. |
| (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename |
| cover_class to aclass. |
| (ira_allocate_and_accumulate_costs): Ditto. |
| (ira_allocate_and_set_or_copy_costs): Ditto. |
| |
| * opts.c (decode_options): Remove ira_cover_class check. |
| |
| * ira-color.c: Remove mentioning cover classes from the file. Use |
| ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST |
| instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and |
| ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting. |
| (splay-tree.h): Remove include. |
| (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move |
| before copy_freq_compare_func. |
| (allocnos_for_spilling, removed_splay_allocno_vec): Remove. |
| (object_hard_regs_vec, object_hard_regs_htab, node_check_tick): |
| New definitions. |
| (hard_regs_roots, hard_regs_node_vec): Ditto. |
| (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto. |
| (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto. |
| (finish_object_hard_regs, object_hard_regs_compare): Ditto. |
| (create_new_object_hard_regs_node): Ditto. |
| (add_new_object_hard_regs_node_to_forest): Ditto. |
| (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto. |
| (setup_object_hard_regs_nodes_parent, first_common_ancestor_node): |
| Ditto. |
| (print_hard_reg_set, print_hard_regs_subforest): Ditto. |
| (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto. |
| (remove_unused_object_hard_regs_nodes): Ditto. |
| (enumerate_object_hard_regs_nodes): Ditto. |
| (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto. |
| (object_hard_regs_subnode_t): Ditto. |
| (struct object_hard_regs_subnode): Ditto. |
| (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto. |
| (setup_object_hard_regs_subnode_index): Ditto. |
| (get_object_hard_regs_subnodes_num): Ditto. |
| (form_object_hard_regs_nodes_forest): Ditto. |
| (finish_object_hard_regs_nodes_tree): Ditto. |
| (finish_object_hard_regs_nodes_forest): Ditto. |
| (allocnos_have_intersected_live_ranges_p): Rename to |
| allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func. |
| (pseudos_have_intersected_live_ranges_p): Rename to |
| conflict_by_live_ranges_p. Move before copy_freq_compare_func. |
| (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto. |
| (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto. |
| (update_copy_costs): Remove assert. Skip cost update if the hard |
| reg does not belong the class. |
| (assign_hard_reg): Process only profitable hard regs. |
| (uncolorable_allocnos_num): Make it scalar. |
| (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM |
| and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE |
| and ira_reg_class_max_nregs. |
| (bucket_allocno_compare_func): Check frequency first. |
| (sort_bucket): Add compare function as a parameter. |
| (add_allocno_to_ordered_bucket): Assume no coalesced allocnos. |
| (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove. |
| (push_allocno_to_stack): Rewrite for checking new allocno |
| colorability. |
| (remove_allocno_from_bucket_and_push): Print cost too. Remove assert. |
| (push_only_colorable): Pass new parameter to sort_bucket. |
| (push_allocno_to_spill): Remove. |
| (allocno_spill_priority_compare): Make it inline and rewrite. |
| (splay_tree_allocate, splay_tree_free): Remove. |
| (allocno_spill_sort_compare): New function. |
| (push_allocnos_to_stack): Sort allocnos for spilling once. Don't |
| build and use splay tree. Choose first allocno in uncolorable |
| allocno bucket to spill. Remove setting spill cost. |
| (all_conflicting_hard_regs): Remove. |
| (setup_allocno_available_regs_num): Check only profitable hard |
| regs. Print info about hard regs nodes. |
| (setup_allocno_left_conflicts_size): Remove. |
| (put_allocno_into_bucket): Don't call |
| setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p. |
| (improve_allocation): New. |
| (color_allocnos): Call setup_profitable_hard_regs, |
| form_object_hard_regs_nodes_forest, improve_allocation, |
| finish_object_hard_regs_nodes_forest. Setup spill cost. |
| (print_loop_title): Use pressure classes. |
| (color_allocnso): Ditto. |
| (do_coloring): Remove allocation and freeing splay_tree_node_pool |
| and allocnos_for_spilling. |
| (ira_sort_regnos_for_alter_reg): Don't setup members |
| {first,next}_coalesced_allocno. |
| (color): Remove allocating and freeing removed_splay_allocno_vec. |
| (fast_allocation): Use ira_prohibited_class_mode_regs instead of |
| prohibited_class_mode_regs. |
| |
| * ira-lives.c: Remove mentioning cover classes from the file. Fix |
| formatting. |
| (update_allocno_pressure_excess_length): Use pressure classes. |
| (inc_register_pressure, dec_register_pressure): Check for pressure |
| class. |
| (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use |
| pressure class. Use ira_reg_class_nregs instead of |
| ira_reg_class_max_nregs. |
| (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto. |
| (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class. |
| (single_reg_class): Use ira_reg_class_nregs instead of |
| ira_reg_class_max_nregs. |
| (process_bb_node_lives): Use pressure classes. |
| |
| * ira-emit.c: Remove mentioning cover classes from the file. Use |
| ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting. |
| (change_loop): Use pressure classes. |
| (modify_move_list): Call ira_set_allocno_class instead of |
| ira_set_allocno_cover_class. |
| |
| * ira-build.c: Remove mentioning cover classes from the file. Use |
| ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of |
| ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use |
| ALLOCNO_UPDATED_CLASS_COST instead of |
| ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting. |
| (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS. |
| (ira_create_allocno): Remove initialization of |
| ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize |
| ALLOCNO_COLORABLE_P. |
| (ira_set_allocno_cover_class): Rename to ira_set_allocno_class. |
| Update conflict regs for the objects. |
| (create_cap_allocno): Remove assert. Don't propagate |
| ALLOCNO_AVAILABLE_REGS_NUM. |
| (ira_free_allocno_costs): New function. |
| (finish_allocno): Change a part of code into call of |
| ira_free_allocno_costs. |
| (low_pressure_loop_node_p): Use pressure classes. |
| (object_range_compare_func): Don't compare classes. |
| (setup_min_max_conflict_allocno_ids): Ditto. |
| |
| * loop-invariant.c: Remove mentioning cover classes from the file. |
| Use ira_pressure_classes and ira_pressure_classes_num instead of |
| ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting. |
| (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs. |
| Use ira_reg_class_max_nregs instead of ira_reg_class_nregs. |
| Use reg_allocno_class instead of reg_cover_class. |
| (get_inv_cost): Use instead ira_stack_reg_pressure_class of |
| STACK_REG_COVER_CLASS. |
| (get_regno_cover_class): Rename to get_regno_pressure_class. |
| (move_loop_invariants): Initialize and finalize regstat. |
| |
| * ira.c: Remove mentioning cover classes from the file. Add |
| comments about coloring without cover classes. Use ALLOCNO_CLASS |
| instead of ALLOCNO_COVER_CLASS. Fix formatting. |
| (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before |
| setup_class_subset_and_memory_move_costs. |
| (setup_stack_reg_pressure_class, setup_pressure_classes): New. |
| (setup_cover_and_important_classes): Rename to |
| setup_allocno_and_important_classes. |
| (setup_class_translate_array): New. |
| (setup_class_translate): Call it for allocno and pressure classes. |
| (cover_class_order): Rename to allocno_class_order. |
| (comp_reg_classes_func): Use ira_allocno_class_translate instead |
| of ira_class_translate. |
| (reorder_important_classes): Set up ira_important_class_nums. |
| (setup_reg_class_relations): Set up ira_reg_class_superunion. |
| (print_class_cover): Rename to print_classes. Add parameter. |
| (ira_debug_class_cover): Rename to ira_debug_allocno_classes. |
| Print pressure classes too. |
| (find_reg_class_closure): Rename to find_reg_classes. Don't call |
| setup_reg_subclasses. |
| (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class. |
| (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs. |
| (setup_prohibited_class_mode_regs): Use |
| ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs. |
| (clarify_prohibited_class_mode_regs): New function. |
| (ira_init_register_move_cost): Set up ira_max_register_move_cost, |
| ira_max_may_move_in_cost, and ira_max_may_move_out_cost. |
| (ira_init_once): Initialize them. |
| (free_register_move_costs): Process them. |
| (ira_init): Move calls of find_reg_classes and |
| setup_hard_regno_aclass after setup_prohibited_class_mode_regs. |
| Call clarify_prohibited_class_mode_regs. |
| (ira_no_alloc_reg): Remove. |
| (too_high_register_pressure_p): Use pressure classes. |
| |
| * sched-deps.c: Remove mentioning cover classes from the file. |
| Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use |
| ira_pressure_classes and ira_pressure_classes_num instead of |
| ira_reg_class_cover_size and ira_reg_class_cover. |
| (mark_insn_hard_regno_birth, mark_hard_regno_death): Use |
| sched_regno_pressure_class instead of sched_regno_cover_class. |
| (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use |
| ira_reg_class_max_nregs instead of ira_reg_class_nregs. |
| |
| * ira.h: Add 2010 to Copyright. |
| (ira_no_alloc_reg): Remove external. |
| (struct target_ira): Rename x_ira_hard_regno_cover_class, |
| x_ira_reg_class_cover_size, x_ira_reg_class_cover, and |
| x_ira_class_translate to x_ira_hard_regno_allocno_class, |
| x_ira_allocno_classes_num, x_ira_allocno_classes, and |
| x_ira_allocno_class_translate. Add x_ira_pressure_classes_num, |
| x_ira_pressure_classes, x_ira_pressure_class_translate, and |
| x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to |
| x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and |
| x_ira_no_alloc_regs. |
| (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class. |
| (ira_reg_class_cover_size, ira_reg_class_cover): Rename to |
| ira_allocno_classes_num and ira_allocno_classes. |
| (ira_class_translate): Rename to ira_allocno_class_translate. |
| (ira_pressure_classes_num, ira_pressure_classes): New definitions. |
| (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto. |
| (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs. |
| (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New |
| (ira_no_alloc_regs): New. |
| |
| * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover |
| classes from the file. Use ALLOCNO_CLASS instead of |
| ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of |
| ALLOCNO_COVER_CLASS_COST. |
| (regno_cover_class): Rename to regno_aclass. |
| (record_reg_classes): Use ira_reg_class_subunion instead of |
| ira_reg_class_union. |
| (record_address_regs): Check overflow. |
| (scan_one_insn): Ditto. |
| (print_allocno_costs): Print total mem cost fore regional allocation. |
| (print_pseudo_costs): Use REG_N_REFS. |
| (find_costs_and_classes): Use classes intersected with them on the |
| 1st pass. Check overflow. Use ira_reg_class_subunion instead of |
| ira_reg_class_union. Use ira_allocno_class_translate and |
| regno_aclass instead of ira_class_translate and regno_cover_class. |
| Modify code for finding regno_aclass. Setup preferred classes for |
| the next pass. |
| (setup_allocno_cover_class_and_costs): Rename to |
| setup_allocno_class_and_costs. Use regno_aclass instead of |
| regno_cover_class. Use ira_set_allocno_class instead of |
| ira_set_allocno_cover_class. |
| (init_costs, finish_costs): Use regno_aclass instead of |
| regno_cover_class. |
| (ira_costs): Use setup_allocno_class_and_costs instead of |
| setup_allocno_cover_class_and_costs. |
| (ira_tune_allocno_costs_and_cover_classes): Rename to |
| ira_tune_allocno_costs. Check overflow. Skip conflict hard regs |
| by processing objects. Use ira_reg_class_max_nregs instead of |
| ira_reg_class_nregs. |
| |
| * rtl.h (reg_cover_class): Rename to reg_allocno_class. |
| |
| * sched-int.h: Remove mentioning cover classes from the file. |
| (sched_regno_cover_class): Rename to sched_regno_pressure_class. |
| |
| * reginfo.c: Add 2010 to Copyright. Remove mentioning cover |
| classes from the file. |
| (struct reg_pref): Rename coverclass into allocnoclass. |
| (reg_cover_class): Rename to reg_allocno_class. |
| |
| * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies. |
| |
| * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove. |
| |
| * config/arm/arm.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/avr/avr.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/cris/cris.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/frv/frv.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto. |
| |
| * config/i386/i386.c (TARGET_IRA_COVER_CLASSES) |
| (i386_ira_cover_classes): Ditto. |
| |
| * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/mep/mep.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/mips/mips.c (TARGET_IRA_COVER_CLASSES) |
| (mips_ira_cover_classes): Ditto. |
| |
| * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX) |
| (IRA_COVER_CLASSES_VSX): Ditto. |
| |
| * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES) |
| (rs6000_ira_cover_classes): Ditto. |
| |
| * config/rx/rx.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/s390/s390.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/score/score.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/sh/sh.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/spu/spu.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/v850/v850.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/vax/vax.h (IRA_COVER_CLASSES): Ditto. |
| |
| * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto. |
| |
| 2011-03-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48253 |
| * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label, |
| dw_fde_hot_section_end_label, dw_fde_unlikely_section_label, |
| dw_fde_unlikely_section_end_label, cold_in_std_section, |
| dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields. |
| Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section |
| fields. |
| (output_fde): Use dw_fde_second_{begin,end} if second is |
| true, otherwise dw_fde_{begin,end}. |
| (output_call_frame_info): Test dw_fde_second_begin != NULL |
| instead of dw_fde_switched_sections. |
| (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct |
| fields, initialize new fields. Initialize in_std_section |
| unconditionally from the first partition. |
| (dwarf2out_end_epilogue): Don't override dw_fde_end when |
| dw_fde_second_begin is non-NULL. |
| (dwarf2out_switch_text_section): Stop initializing removed |
| dw_fde_struct fields, initialize new fields, initialize |
| also dw_fde_end here. Set dw_fde_switch_cfi even when |
| dwarf2out_do_cfi_asm (). Call var_location_switch_text_section. |
| (struct var_loc_list_def): Add last_before_switch field. |
| (arange_table, arange_table_allocated, arange_table_in_use, |
| ARANGE_TABLE_INCREMENT, add_arange): Removed. |
| (size_of_aranges): Count !in_std_section and !second_in_std_section |
| hunks in fdes, instead of looking at arange_table_in_use. |
| (output_aranges): Add aranges_length argument, don't call |
| size_of_aranges here. Instead of using aranges_table* |
| emit ranges for fdes when !in_std_section resp. |
| !second_in_std_section. |
| (dw_loc_list): Break ranges crossing section switch. |
| (convert_cfa_to_fb_loc_list): Likewise. If switched sections, |
| use dw_fde_second_end instead of dw_fde_end as end of last range. |
| (gen_subprogram_die): Don't call add_arange. Use |
| dw_fde_{begin,end} for first partition and if switched |
| section dw_fde_second_{begin,end} for the second. |
| (var_location_switch_text_section_1, |
| var_location_switch_text_section): New functions. |
| (dwarf2out_begin_function): Initialize cold_text_section even |
| when function_section () isn't text_section. |
| (prune_unused_types): Don't walk arange_table. |
| (dwarf2out_finish): Don't needlessly test |
| flag_reorder_blocks_and_partition when testing cold_text_section_used. |
| If info_section_emitted, call size_of_aranges and if it indicates |
| non-empty .debug_aranges, call output_aranges with the computed |
| size. Stop using removed dw_fde_struct fields, use |
| dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end} |
| for second. |
| |
| PR debug/48203 |
| * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only |
| create ENTRY_VALUE if incoming or address of incoming's MEM |
| is a hard REG. |
| * dwarf2out.c (mem_loc_descriptor): Don't emit |
| DW_OP_GNU_entry_value of DW_OP_fbreg. |
| * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup |
| on ENTRY_VALUE is able to find the canonical parameter VALUE. |
| * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use |
| rtx_equal_p instead of rtx_equal_for_cselib_1 to compare |
| ENTRY_VALUE_EXPs. |
| (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP |
| is a REG_P or MEM_P with REG_P address, compute hash directly |
| instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP. |
| (preserve_only_constants): Don't clear VALUES forwaring |
| ENTRY_VALUE to some other VALUE. |
| |
| 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * builtins.c (expand_builtin_memset_args): Use gen_int_mode |
| instead of GEN_INT. |
| |
| 2011-03-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgexpand.c (expand_gimple_cond): Always set the source location and |
| block before expanding the statement. |
| (expand_gimple_stmt_1): Likewise. Set them here... |
| (expand_gimple_stmt): ...and not here. Tidy. |
| * cfglayout.c (curr_insn_locator): Return 0 if the current location is |
| unknown. |
| |
| 2011-03-28 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * Makefile.in: New rule for cprop.o. |
| * gcse.c: Move constant/copy propagation to cprop.c. |
| (compute_local_properties): Only handle expression tables. |
| (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise. |
| (one_pre_gcse_pass, one_code_hoisting_pass): Likewise. |
| (hash_set, insert_set_in_table, gcse_constant_p, lookup_set, |
| next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set, |
| mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem, |
| compute_cprop_data, find_used_regs, try_replace_reg, |
| find_avail_set, cprop_jump, constprop_register, cprop_insn, |
| local_cprop_find_used_regs, do_local_cprop, local_cprop_pass, |
| fis_get_condition, implicit_set_cond_p, find_implicit_sets, |
| find_bypass_set, reg_killed_on_edge, bypass_block, |
| bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop, |
| execute_rtl_cprop, pass_rtl_cprop): Move to... |
| * cprop.c: ...here. New file, constant/copy propagation for RTL |
| moved from gcse.c to here with minor cleanups in duplicated code. |
| |
| 2011-03-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (flag_opts): Fix a typo in |
| -mavx256-split-unaligned-store. |
| |
| 2011-03-28 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE, |
| LIBCALL_VALUE): Remove macros. |
| * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, |
| TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| (h8300_function_value, h8300_libcall_value, |
| h8300_function_value_regno_p): New functions. |
| |
| 2011-03-28 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro. |
| |
| 2011-03-28 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-threadupdate.c (redirect_edges): Call |
| create_edge_and_update_destination_phis as needed. |
| (create_edge_and_update_destination_phis): Accept new BB argument. |
| All callers updated. |
| (thread_block): Do not update the profile when threading around |
| intermediate blocks. |
| (thread_single_edge): Likewise. |
| (determine_bb_domination_status): If BB is not a successor of the |
| loop header, return NONDOMINATING. |
| (register_jump_thread): Note when we register a jump thread around |
| an intermediate block. |
| * tree-ssa-threadedge.c (thread_around_empty_block): New function. |
| (thread_across_edge): Use it. |
| |
| 2011-03-28 Tristan Gingold <gingold@adacore.com> |
| |
| * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion |
| when for_return is 2. |
| |
| 2011-03-28 Jeff Law <law@redhat.com> |
| |
| * var-tracking.c (canonicalize_values_mark): Delete unused |
| lhs assignment. |
| (canonicalize_values_star, set_variable_part): Likewise. |
| (clobber_variable_part, delete_variable_part): Likewise. |
| |
| 2011-03-28 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * gcse.c (free_gcse_mem): Free reg_set_bitmap. |
| |
| 2011-03-28 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-inline.c (expand_call_inline): Do not check that destination |
| node is analyzed. |
| (optimize_inline_calls): Assert that destination node is analyzed. |
| * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do |
| not call tree_lowering_passes. |
| * cgraph.h (cgraph_analyze_function): Declare. |
| * cgraphunit.c (cgraph_analyze_function): Make public. |
| |
| 2011-03-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/sparc-opts.h: New. |
| * config/sparc/sparc.c (sparc_handle_option, sparc_select, |
| sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove. |
| (sparc_option_override): Store processor_type enumeration rather |
| than string in cpu_default. Remove name and enumeration from |
| cpu_table. Directly default -mcpu then default -mtune from -mcpu |
| without using sparc_select. Use target_flags_explicit instead of |
| fpu_option_set. |
| * config/sparc/sparc.h (enum processor_type): Move to |
| sparc-opts.h. |
| (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove. |
| * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New |
| HeaderInclude entry. |
| (mcpu=, mtune=): Use Var and Enum. |
| (sparc_processor_type): New Enum and EnumValue entries. |
| |
| 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/48245 |
| * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC. |
| |
| 2011-03-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype. |
| * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter. |
| Insert new statements at it in lieu of STMT. |
| (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr. |
| * tree-vect-stmts.c (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| |
| 2011-03-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode. |
| (divtf3): Ditto. |
| (multf3): Ditto. |
| (subtf3): Ditto. |
| |
| 2011-03-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert |
| unaligned 256bit load/store. |
| (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise. |
| (*avx_movdqu<avxmodesuffix>): Likewise. |
| |
| 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/48288 |
| * config/pa/predicates.md (reg_or_ior_operand): New predicate. |
| * config/pa/pa.md (iordi3): Use new predicate in expander. |
| (iorsi3): Likewise. |
| |
| 2011-03-27 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE, |
| FUNCTION_VALUE_REGNO_P): Remove macros. |
| * config/mips/mips-protos.h (mips_function_value): Remove. |
| * config/mips/mips.c (mips_function_value): Rename to... |
| (mips_function_value_1): ... this. Make static. Handle receiving |
| the function type in 'fn_decl_or_type' argument. |
| (mips_function_value, mips_libcall_value, |
| mips_function_value_regno_p): New function. |
| (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, |
| TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| |
| 2011-03-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load |
| and -mavx256-split-unaligned-store. |
| (ix86_option_override_internal): Split 32-byte AVX unaligned |
| load/store by default. |
| (ix86_avx256_split_vector_move_misalign): New. |
| (ix86_expand_vector_move_misalign): Use it. |
| |
| * config/i386/i386.opt: Add -mavx256-split-unaligned-load and |
| -mavx256-split-unaligned-store. |
| |
| * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned |
| 256bit load/store. Generate unaligned store on misaligned memory |
| operand. |
| (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned |
| 256bit load/store. |
| (*avx_movdqu<avxmodesuffix>): Likewise. |
| |
| * doc/invoke.texi: Document -mavx256-split-unaligned-load and |
| -mavx256-split-unaligned-store. |
| |
| 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/38598 |
| * config/mips/mips.md (extendsidi2): Add an "l" alternative. |
| Update commentary. |
| |
| 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and |
| opno arguments with an expand_operand. Use create_input_operand. |
| (mips_prepare_builtin_target): Delete. |
| (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New |
| functions. |
| (mips_expand_builtin_direct): Use create_output_operand and |
| mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg. |
| (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison. |
| (mips_expand_builtin_compare): Use mips_expand_fp_comparison. |
| |
| 2011-03-27 Ira Rosen <ira.rosen@linaro.org> |
| |
| * config/arm/arm.c (arm_autovectorize_vector_sizes): New |
| function. |
| (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define. |
| |
| 2011-03-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * basic-block.h (fixup_abnormal_edges): Adjust prototype. |
| * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover |
| basic blocks and call commit_edge_insertions directly. |
| (fixup_abnormal_edges): Move from here to... |
| * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions |
| on the edges and return whether some have actually been inserted. |
| * reg-stack.c (convert_regs): Fix up abnormal edges before inserting |
| compensation code. |
| |
| 2011-03-26 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/48144 |
| * sel-sched-ir.c (merge_history_vect): Factor out from ... |
| (merge_expr_data): ... here. |
| (av_set_intersect): Rename to av_set_code_motion_filter. |
| Update all callers. Call merge_history_vect when an expression |
| is found in both sets. |
| * sel-sched-ir.h (av_set_code_motion_filter): Add prototype. |
| |
| 2011-03-26 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/predicates.md (word_offset_memref_op): Handle |
| cmodel medium addresses. |
| * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned |
| 64-bit gpr loads and stores. |
| (rs6000_secondary_reload_ppc64): New function. |
| * config/rs6000/rs6000-protos.h: Declare it. |
| * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New. |
| |
| 2011-03-26 Alan Modra <amodra@gmail.com> |
| |
| PR target/47487 |
| * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support |
| GNU Go in traceback table. |
| |
| 2011-03-25 Richard Henderson <rth@redhat.com> |
| |
| * expr.c (emit_block_move_via_movmem): Only use 6 operand variant |
| if there are exactly 6 operands. |
| (set_storage_via_setmem): Similarly. |
| |
| 2011-03-25 Kai Tietz <ktietz@redhat.com> |
| |
| * collect2.c (write_c_file_stat): Handle backslash |
| as right-hand directory separator. |
| (resolve_lib_name): Use IS_DIR_SEPARATOR instead of |
| checking just for slash. |
| * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH |
| instead of checking for trailing slash. |
| * gcc.c (record_temp_file): Use filename_cmp instead |
| of strcmp. |
| (do_spec_1): Likewise. |
| (replace_outfile_spec_function): Likewise. |
| (is_directory): Use filename_ncmp instead of strncmp. |
| (print_multilib_info): Likewise. |
| * gcov.c (find_source): Use filename_cmp instead |
| instead of strcmp. |
| (make_gcov_file_name): Fix order of slash/backslash |
| checks. |
| * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp. |
| (add_standard_paths): Likewise. |
| * mips-tfile.c (saber_stop): Handle backslash. |
| * prefix.c (update_path): Use filename_ncmp instead of |
| strncmp. |
| * profile.c (output_location): Use filename_cmp instead |
| of strcmp. |
| * read-md.c (handle_toplevel_file): Handle backslash. |
| * tlink.c (frob_extension): Likewise. |
| * tree-cfg.c (same_line_p): Use filename_cmp instead of |
| strcmp. |
| * tree-dump.c (dequeue_and_dump): Handle backslash. |
| * tree.c (get_file_function_name): Likewise. |
| * gengtype.c (read_input_list): Likewise. |
| (get_file_realbasename): Likewise. |
| (get_output_file_with_visibility): Use filename_cmp |
| instead of strcmp. |
| |
| 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS |
| case to VFPv1. |
| |
| 2011-03-25 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * fold-const.c (expr_location_or): New function. |
| (fold_truth_not_expr): Call it. |
| |
| 2011-03-25 Jeff Law <law@redhat.com> |
| |
| * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing |
| va_end. |
| * c-family/c-common.c (def_fn_type): Likewise. |
| * ada/gcc-interface/utils.c (def_fn_type): Likewise. |
| * emit-rtl.c (gen_rtvec): Likewise. |
| * lto/lto-lang.c (def_fn_type): Likewise. |
| |
| 2011-03-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants |
| also generate copies. |
| (fini_copy_prop): Handle constant values properly. |
| |
| 2011-03-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare |
| mode size instead of bitsize with DWARF2_ADDR_SIZE. |
| (hash_loc_operands, compare_loc_operands): Handle |
| DW_OP_GNU_entry_value. |
| |
| 2011-03-25 Kai Tietz <ktietz@redhat.com> |
| |
| * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment. |
| (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI. |
| * config/i386/i386.c (ix86_conditional_register_usage): Adjust |
| comment and use macro TARGET_64BIT_MS_ABI instead. |
| (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case |
| and change default behavior for 32-bit MS_ABI. |
| (ix86_reg_parm_stack_space): Check additionally for bit-ness. |
| (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for |
| 32-bit, too. |
| (ix86_cfun_abi): Likewise. |
| (ix86_maybe_switch_abi): Adjust comment. |
| (init_cumulative_args): Check for bit-ness in MS_ABI case. |
| (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI |
| instead of checking for SYSV_ABI. |
| (ix86_nsaved_sseregs): Likewise. |
| (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment |
| to 16 bytes. |
| (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro. |
| * config/i386.h (TARGET_32BIT_MS_ABI): New macro. |
| (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI. |
| (OUTGOING_REG_PARM_STACK_SPACE): Likewise. |
| * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI. |
| |
| 2011-03-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg. |
| (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. |
| (verify_gimple): Remove. |
| * tree-cfg.c (verify_gimple_call): Merge verification |
| from verify_stmts. |
| (verify_gimple_phi): Merge verification from verify_stmts. |
| (verify_gimple_label): New function. |
| (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2. |
| (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq. |
| (verify_stmt): Merge into verify_gimple_in_cfg and callees. |
| (verify_stmts): Rename to verify_gimple_in_cfg. |
| (verify_gimple_in_cfg): New function. |
| * passes.c (execute_function_todo): Call verify_gimple_in_cfg. |
| * tree-ssa.c (verify_ssa): Likewise. |
| * gimplify.c (gimplify_body): Call verify_gimple_in_seq. |
| |
| 2011-03-25 Richard Guenther <rguenther@suse.de> |
| |
| * passes.c (init_optimization_passes): Add FRE pass after |
| early SRA. |
| |
| 2011-03-25 Bernd Schmidt <bernds@codesourcery.com> |
| Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning |
| for Cortex-A8. |
| (arm_movdi_vfp_cortexa8): New pattern. |
| * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon, |
| iordi3_neon, xordi3_neon): Add alternatives to discourage Neon |
| instructions when tuning for Cortex-A8. Set attribute "arch". |
| * config/arm/arm.md: Move include arm-tune.md up a bit. |
| (define_attr "arch"): Add "onlya8" and "nota8" values. |
| (define_attr "arch_enabled"): Handle "onlya8" and "nota8". |
| |
| 2011-03-25 Nathan Froyd <froydnj@codesourcery.com> |
| |
| PR bootstrap/48282 |
| Revert: |
| 2011-03-24 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and |
| FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. |
| (pass_instantiate_virtual_regs): Require PROP_cfglayout. |
| * passes.c (init_optimization_passes): Move |
| pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. |
| |
| 2011-03-25 Kai Tietz <ktietz@redhat.com> |
| |
| * c-typeck.c (comptypes_internal): Replace target |
| hook call of comp_type_attributes by version in tree.c file. |
| * gimple.c (gimple_types_compatible_p_1): Likewise. |
| * tree-ssa.c (useless_type_conversion_p): Likewise. |
| * tree.c (build_type_attribute_qual_variant): Likewise. |
| (attribute_value_equal): New static helper function. |
| (comp_type_attributes): New function. |
| (merge_attributes): Use attribute_value_equal for comparison. |
| (attribute_list_contained): Likewise. |
| * tree.h (comp_type_attributes): New prototype. |
| |
| 2011-03-25 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_gimple_assign_unary): Drop special casing |
| of complex types at -O0. |
| (verify_gimple_assign_binary): Likewise. |
| (verify_gimple_assign_ternary): Likewise. |
| |
| 2011-03-24 Mark Wielaard <mjw@redhat.com> |
| |
| * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8. |
| (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8. |
| |
| 2011-03-24 Mark Wielaard <mjw@redhat.com> |
| |
| PR debug/48041 |
| * dwarf2out.c (output_abbrev_section): Only write table when |
| abbrev_die_table_in_use > 1. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql. |
| (alpha_expand_unaligned_store): Use mskwl, mskll, mskql. |
| (alpha_expand_unaligned_load_words): Use extql. |
| (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql. |
| (emit_insxl): Handle all modes for consistency. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN. |
| (alpha_expand_unaligned_load): Likewise. |
| (alpha_expand_unaligned_store): Likewise. |
| (alpha_expand_unaligned_load_words): Likewise. |
| (alpha_expand_unaligned_store_words): Likewise. |
| (emit_insxl, alpha_split_compare_and_swap_12): Likewise. |
| (alpha_split_lock_test_and_set_12): Likewise. |
| (print_operand, alpha_fold_builtin_extxx): Likewise. |
| (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise. |
| * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise. |
| (builtin_extwh, builtin_extlh, builtin_extql): Likewise. |
| (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove. |
| (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove. |
| (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove. |
| (unaligned_loadqi_be, unaligned_loadhi_be): Remove. |
| (unaligned_storeqi_be, unaligned_storehi_be): Remove. |
| (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN. |
| (extwl, extll, extql): Similarly. |
| (inswh, inslh, insqh): Similarly. |
| (mskbl, mskwl, mskll, mskql): Similarly. |
| (mskwh, msklh, mskqh): Similarly. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.md (attribute isa): Add er, ner. |
| (attribute enabled): Handle them. |
| (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.md (attribute isa): Add vms. |
| (attribute enabled): Handle it. |
| (*movsf): Merge *movsf_{nofix,fix,nofp}. |
| (*movdf): Merge *movdf_{nofix,fix,nofp}. |
| (*movtf): Rename from *movtf_internal for consistency. |
| (*movsi): Merge with *movsi_nt_vms. |
| (*movhi): Merge *movhi_nobwx, *movhi_bwx. |
| (*movqi): Merge *movqi_nobwx, *movqi_bwx. |
| (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix. |
| * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.md (extendqihi2): Implement for BWX only. |
| (extendqisi2, extendhisi2): Likewise. |
| (extendqidi2): Simplify BWX/non-BWX expansions. |
| (extendhidi2): Similarly. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.md (attribute isa): New. |
| (attribute enabled): New. |
| (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}. |
| (zero_extendqisi2, zero_extendqidi2): Similarly. |
| (zero_extendhisi2, zero_extendhidi2): Similarly. |
| * config/alpha/predicates.md (reg_or_bwx_memory_operand): New. |
| |
| 2011-02-24 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/predicates.md (input_operand): Revert last change; |
| update comment to mention 32-bit VMS rather than Windows. |
| |
| 2011-03-24 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and |
| FOR_BB_INSNS_SAFE to iterate through insns. Re-indent. |
| (pass_instantiate_virtual_regs): Require PROP_cfglayout. |
| * passes.c (init_optimization_passes): Move |
| pass_instantiate_virtual_regs after pass_into_cfg_layout_mode. |
| |
| 2011-03-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases. |
| |
| 2011-03-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (ix86_print_operand): Output DFmode const_double |
| correctly. |
| |
| 2011-03-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48204 |
| * simplify-rtx.c (simplify_const_unary_operation): Call |
| real_convert when changing mode class with FLOAT_EXTEND. |
| |
| 2011-03-24 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define. |
| (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. |
| * config/rx/rx.c (rx_option_override): Set align_jumps, |
| align_loops and align_labels if not set by the user. |
| (rx_align_for_label): New function. |
| (rx_max_skip_for_label): New function. |
| (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define. |
| (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define. |
| (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define. |
| (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define. |
| * config/rx/rx-protos.h (rx_align_for_label): Add prototype. |
| |
| 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR rtl-optimization/48263 |
| * optabs.c (expand_binop_directly): Reinstate convert_modes code |
| and original commutative_p handling. Use maybe_gen_insn. |
| |
| 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * reload.c (find_reloads_subreg_address): Add address_reloaded |
| parameter and return true there if the full address has been |
| reloaded. |
| (find_reloads_toplev): Pass address_reloaded flag. |
| (find_reloads_address_1): Don't use address_reloaded parameter. |
| |
| 2011-03-24 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but |
| unused variable "ann". |
| (remove_unused_locals): Likewise. |
| |
| * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless |
| statement. |
| |
| * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL |
| after it is freed. |
| |
| 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS |
| for invalid symbolic addresses. |
| (s390_secondary_reload): Don't use s390_check_symref_alignment for |
| larl operands. |
| |
| 2011-03-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const.c (fold_ternary_loc): Preserve the location (if any) of |
| the argument in calls to fold_truth_not_expr. |
| |
| 2011-03-24 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.c (record_node_allocation_statistics): New function. |
| (make_node_stat, copy_node_stat, build_string): Call it. |
| (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise. |
| (build1_stat, build_omp_clause): Likewise. |
| |
| 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * builtins.c (expand_movstr): Fix endp == 1 adjustment after |
| last commit. |
| |
| 2011-03-24 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48271 |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup |
| blocks that still exist. |
| |
| 2011-03-24 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48270 |
| * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do |
| not free datarefs before ddrs. |
| |
| 2011-03-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (build_ref_for_offset): Strip useless type conversions |
| from the address built for a reference with variable offset. |
| |
| 2011-03-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/48237 |
| * config/i386/i386.md (*movdf_internal_rex64): Do not split |
| alternatives that can be handled with movq or movabsq insn. |
| (*movdf_internal): Disable for !TARGET_64BIT. |
| (*movdf_internal_nointeger): Ditto. |
| * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates. |
| |
| 2011-03-24 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. |
| (FUNCTION_ARG_ADVANCE): Likewise. |
| * tm.texi.in: Change references to them to hook references. |
| * tm.texi: Regenerate. |
| * targhooks.c (default_function_arg): Eliminate check for target macro. |
| (default_function_incoming_arg): Likewise. |
| (default_function_arg_advance): Likewise. |
| * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. |
| (function_arg_advance): Likewise. |
| * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. |
| |
| 2011-03-24 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48269 |
| * tree-object-size.c (addr_object_size): Do not double-account |
| for MEM_REF offsets. |
| |
| 2011-03-24 Diego Novillo <dnovillo@google.com> |
| |
| * lto-opts.c (input_data_block): Move to lto-streamer-in.c. |
| * lto-streamer-in.c (input_string_internal): Add clarifying comments. |
| (lto_input_data_block): Move from lto-opts.c. Make extern. |
| Update all users. |
| (lto_input_string): Rename from input_string. Make extern. |
| Update all users. |
| * lto-streamer-out.c (lto_output_string_with_length): Rename from |
| output_string_with_length. |
| Output 0 to indicate a non-NULL string. Update all callers to |
| not emit 0. |
| (lto_output_string): Rename from output_string. Make extern. |
| Update all users. |
| (lto_output_decl_state_streams): Make extern. |
| (lto_output_decl_state_refs): Make extern. |
| * lto-streamer.h (lto_input_string): Declare. |
| (lto_input_data_block): Declare. |
| (lto_output_string): Declare. |
| (lto_output_string_with_length): Declare. |
| (lto_output_decl_state_streams): Declare. |
| (lto_output_decl_state_refs): Declare. |
| |
| 2011-03-24 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/46562 |
| * tree.c (build_invariant_address): New function. |
| * tree.h (build_invariant_address): Declare. |
| * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around |
| a renamed function moved ... |
| * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here. |
| Take valueization callback parameter. |
| * tree-flow.h (gimple_fold_stmt_to_constant): Declare. |
| * gimple-fold.h: New file. |
| * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1. |
| (ccp_fold, fold_const_aggregate_ref, |
| fold_ctor_reference, fold_nonarray_ctor_reference, |
| fold_array_ctor_reference, fold_string_cst_ctor_reference, |
| get_base_constructor): Move ... |
| * gimple-fold.c: ... here. |
| (gimple_fold_stmt_to_constant_1): New function |
| split out from ccp_fold. Take a valueization callback parameter. |
| Valueize all operands. |
| (gimple_fold_stmt_to_constant): New wrapper function. |
| (fold_const_aggregate_ref_1): New function split out from |
| fold_const_aggregate_ref. Take a valueization callback parameter. |
| (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1. |
| * tree-ssa-sccvn.c (simplify_binary_expression): Simplify |
| invariant POINTER_PLUS_EXPRs to invariant form. |
| (vn_valueize): New function. |
| (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant. |
| * tree-vrp.c (vrp_valueize): New function. |
| (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant |
| to fold statements to constants. |
| * tree-ssa-pre.c (eliminate): Properly guard propagation of |
| function declarations. |
| * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o, |
| tree-ssa-ccp.o): Add gimple-fold.h dependencies. |
| |
| 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/h8300/predicates.md (jump_address_operand): Fix register |
| mode check. |
| |
| 2011-03-24 Ira Rosen <ira.rosen@linaro.org> |
| |
| * doc/invoke.texi (max-stores-to-sink): Document. |
| * params.h (MAX_STORES_TO_SINK): Define. |
| * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0 |
| if either vectorization or if-conversion is disabled. |
| * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from |
| tree-vect-data-refs.c vect_equal_offsets. |
| (dr_equal_offsets_p): New function. |
| (find_data_references_in_bb): Remove static. |
| * tree-data-ref.h (find_data_references_in_bb): Declare. |
| (dr_equal_offsets_p): Likewise. |
| * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c. |
| (vect_drs_dependent_in_basic_block): Update calls to |
| vect_equal_offsets. |
| (vect_check_interleaving): Likewise. |
| * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h. |
| (cond_if_else_store_replacement): Rename to... |
| (cond_if_else_store_replacement_1): ... this. Change arguments and |
| documentation. |
| (cond_if_else_store_replacement): New function. |
| * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies. |
| * params.def (PARAM_MAX_STORES_TO_SINK): Define. |
| |
| 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR target/46934 |
| * config/arm/arm.md (casesi): Use the gen_int_mode() function |
| to subtract lower bound instead of GEN_INT(). |
| |
| 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR other/48179 |
| PR other/48221 |
| PR other/48234 |
| * doc/extend.texi (Alignment): Move section to match order in TOC. |
| * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. |
| (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. |
| |
| 2011-03-23 Jeff Law <law@redhat.com> |
| |
| * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map |
| before removing the edge. |
| |
| * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after |
| it may have been freed by redirect_branch_edge or |
| redirect_edge_succ_nodup. |
| |
| 2011-03-23 Richard Guenther <rguenther@suse.de> |
| |
| * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF. |
| (check_va_list_escapes): Likewise. |
| (check_all_va_list_escapes): Likewise. |
| |
| 2011-03-23 Richard Guenther <rguenther@suse.de> |
| |
| * Makefile.in (IPA_TYPE_ESCAPE_H): Remove. |
| (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o. |
| (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H. |
| (alias.o): Likewise. |
| (ipa-type-escape.o): Remove. |
| (ipa-struct-reorg.o): Likewise. |
| (GTFILES): Remove ipa-struct-reorg.c. |
| * alias.c: Do not include ipa-type-escape.h. |
| * tree-ssa-alias.c: Likewise. |
| * common.opt (fipa-struct-reorg): Preserve for backward compatibility. |
| * opts.c (finish_options): Do not reset flag_ipa_struct_reorg. |
| * passes.c (init_optimization_passes): Remove ipa-struct-reorg |
| and ipa-type-escape passes. |
| * tree-pass.h (pass_ipa_type_escape): Remove. |
| (pass_ipa_struct_reorg): Likewise. |
| * ipa-struct-reorg.h: Remove. |
| * ipa-struct-reorg.c: Likewise. |
| * ipa-type-escape.h: Likewise. |
| * ipa-type-escape.c: Likewise. |
| * doc/invoke.texi (-fipa-struct-reorg): Remove. |
| (--param struct-reorg-cold-struct-ratio): Likewise. |
| * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. |
| * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise. |
| * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise. |
| |
| 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/2084.md: Enable all insn reservations also for z9_ec |
| cpu attribute value. |
| * config/s390/s390-opts.h (enum s390_arch_option): Remove. |
| (enum processor_type): Add PROCESSOR_2094_Z9_EC. |
| * config/s390/s390.c (processor_flags_table): New constant array. |
| (s390_handle_arch_option): Remove. |
| (s390_handle_option): Remove s390_handle_arch_option invocations |
| and OPT_mwarn_framesize_ handling. |
| (s390_option_override): Remove s390_handle_arch_option invocation. |
| (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in |
| warnings. |
| * config/s390/s390.md (cpu attribute): Add z9_ec value. |
| * config/s390/s390.opt (s390_tune, s390_arch) |
| (march=): Replace s390_arch_option enum and values with |
| processor_type. Set variable name to s390_arch. Set |
| initialization value. |
| (mtune=): Replace s390_arch_option with processor_type. Set |
| variable name to s390_tune. Set initialization value. |
| |
| 2011-03-23 Julian Brown <julian@codesourcery.com> |
| |
| * expr.c (expand_expr_real_1): Only use BLKmode for volatile |
| accesses which are not naturally aligned. |
| |
| 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/47553 |
| * config/arm/predicates.md (neon_lane_number): Accept 0..15. |
| |
| 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code |
| parameter from "int" to "enum insn_code". |
| (expand_operand_type): New enum. |
| (expand_operand): New structure. |
| (create_expand_operand): New function. |
| (create_fixed_operand, create_output_operand): Likewise |
| (create_input_operand, create_convert_operand_to): Likewise. |
| (create_convert_operand_from, create_address_operand): Likewise. |
| (create_integer_operand): Likewise. |
| (create_convert_operand_from_type, maybe_legitimize_operands): Declare. |
| (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. |
| (expand_insn, expand_jump_insn): Likewise. |
| * builtins.c (expand_builtin_prefetch): Use the new interfaces. |
| (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise. |
| (expand_movstr, expand_builtin___clear_cache): Likewise. |
| (expand_builtin_lock_release): Likewise. |
| * explow.c (allocate_dynamic_stack_space): Likewise. |
| (probe_stack_range): Likewise. Allow check_stack to FAIL, |
| and use the default handling in that case. |
| * expmed.c (check_predicate_volatile_ok): Delete. |
| (store_bit_field_1, extract_bit_field_1): Use the new interfaces. |
| (emit_cstore): Likewise. |
| * expr.c (emit_block_move_via_movmem): Likewise. |
| (set_storage_via_setmem, expand_assignment): Likewise. |
| (emit_storent_insn, try_casesi): Likewise. |
| (emit_single_push_insn): Likewise. Allow the expansion to fail. |
| * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise. |
| (expand_vec_shift_expr, expand_binop_directly): Likewise. |
| (expand_twoval_unop, expand_twoval_binop): Likewise. |
| (expand_unop_direct, emit_indirect_jump): Likewise. |
| (emit_conditional_move, vector_compare_rtx): Likewise. |
| (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise. |
| (expand_sync_operation, expand_sync_fetch_operation): Likewise. |
| (expand_sync_lock_test_and_set): Likewise. |
| (maybe_emit_unop_insn): Likewise. Change icode to an insn_code. |
| (emit_unop_insn): Likewise. |
| (expand_copysign_absneg): Change icode to an insn_code. |
| (create_convert_operand_from_type): New function. |
| (maybe_legitimize_operand, maybe_legitimize_operands): Likewise. |
| (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise. |
| (expand_insn, expand_jump_insn): Likewise. |
| * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather |
| than const_int_operand for operand 2. |
| |
| 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name |
| if possible. |
| |
| 2011-03-22 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * emit-rtl.c (emit_pattern_before_noloc): New function. |
| (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it. |
| (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise. |
| (emit_pattern_after_noloc): New function. |
| (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it. |
| (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise. |
| |
| 2011-03-22 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE. |
| (__ffsDI2): Likewise. |
| |
| 2011-03-22 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead |
| of !TARGET_ABI_OPEN_VMS. |
| (alpha_trampoline_init, alpha_start_function): Likewise. |
| (alpha_expand_epilogue, alpha_file_start): Likewise. |
| * config/alpha/alpha.md (divsi3, modsi3): Likewise. |
| (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise. |
| (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise. |
| (*divmodsi_internal, *divmoddi_internal_er): Likewise. |
| (*divmoddi_internal_er_1, *divmoddi_internal): Likewise. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/s390/s390-opts.h: New. |
| * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch, |
| s390_arch_flags, s390_warn_framesize, s390_stack_size, |
| s390_stack_guard): Remove. |
| (s390_handle_arch_option): Return void. Take enum |
| s390_arch_option value instead of string and searching array. |
| (s390_handle_option): Don't assert that global structures are in |
| use. Access variables via opts pointer. Use error_at. Don't use |
| sscanf for -mstack-guard= or -mstack-size=. Update call to |
| s390_handle_arch_option. |
| (s390_option_override): Update call to s390_handle_arch_option. |
| (s390_emit_prologue): Use %d format for s390_stack_size in |
| diagnostic. Use %wd for HOST_WIDE_INT. |
| * config/s390/s390.h (enum processor_type): Move to s390-opts.h. |
| (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove. |
| * config/s390/s390.opt (config/s390/s390-opts.h): New |
| HeaderInclude entry. |
| (s390_arch_string, s390_tune, s390_tune_flags, s390_arch, |
| s390_arch_flags, s390_warn_framesize): New Variable entries. |
| (s390_arch_option): New Enum and EnumValue entries. |
| (march=): Use Enum instead of Var. |
| (mstack-guard=, mstack-size=): Use UInteger and Var. |
| (mtune=): Use Enum. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/score/score.c (score_handle_option): Don't assert that |
| global structures are in use. Access target_flags via opts |
| pointer. Use value of -march= option to determine target_flags |
| settings. |
| * config/score/score.opt (march=): Use Enum. |
| (score_arch): New Enum and EnumValue entries. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mep/mep.c (option_mtiny_specified): Remove. |
| (mep_option_override): Move register handling for -mivc2 from |
| mep_handle_option. Use global_options_set.x_mep_tiny_cutoff |
| instead of option_mtiny_specified. |
| (mep_handle_option): Access target_flags via opts pointer. Don't |
| assert that global structures are in use. Defer part of -mivc2 |
| handling and move it to mep_option_override. |
| * config/mep/mep.opt (IVC2): New Mask entry. |
| (mivc2): Use Var and Defer instead of Mask. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/v850/v850-opts.h: New. |
| * config/v850/v850.c (small_memory): Replace with |
| small_memory_physical_max array. Make that array static const. |
| (v850_handle_memory_option): Take integer value of argument. Take |
| gcc_options pointer, option text and location. Return void. |
| Update for changes to small memory structures. |
| (v850_handle_option): Access target_flags via opts pointer. Don't |
| assert that global structures are in use. Update calls to |
| v850_handle_memory_option. |
| (v850_encode_data_area): Update references to small memory settings. |
| * config/v850/v850.h (struct small_memory_info, small_memory): Remove. |
| (enum small_memory_type): Move to v850-opts.h. |
| * config/v850/v850.opt (config/v850/v850-opts.h): New |
| HeaderInclude entry. |
| (small_memory_max): New Variable entry. |
| (msda): Replace by pair of options msda= and msda-. Use UInteger. |
| (mtda, mzda): Likewise. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sh/sh.c (sh_handle_option): Access target_flags via opts |
| pointer. Don't assert that global structures are in use. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags |
| via opts pointer. Don't assert that global structures are in use. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry. |
| (munix=93): Use Var. |
| * config/pa/pa-hpux1010.opt (munix=95): Use Var. |
| * config/pa/pa-hpux1111.opt (munix=98): Use Var. |
| * config/pa/pa-opts.h: New. |
| * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove. |
| (pa_handle_option): Don't assert that global structures are in |
| use. Access target_flags via opts pointer. Don't handle |
| OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or |
| OPT_munix_98 here. |
| (pa_option_override): Handle deferred OPT_mfixed_range_. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mn10300/mn10300-opts.h: New. |
| * config/mn10300/mn10300.c (mn10300_processor, |
| mn10300_tune_string): Remove. |
| (mn10300_handle_option): Don't assert that global structures are |
| in use. Access mn10300_processor via opts pointer. Don't handle |
| OPT_mtune_ here. |
| * config/mn10300/mn10300.h (enum processor_type): Move to |
| mn10300-opts.h. |
| (mn10300_processor): Remove. |
| * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New |
| HeaderInclude entry. |
| (mn10300_processor): New Variable entry. |
| (mtune=): Use Var. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/microblaze/microblaze.c: Don't include opts.h. |
| (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove. |
| * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn. |
| (mno-clearbss): Use Var and Warn. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m32r/m32r-opts.h: New. |
| * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove. |
| (m32r_handle_option): Don't assert that global structures are in |
| use. Access target_flags and m32r_cache_flush_func via opts |
| pointer. Don't handle OPT_mmodel_, OPT_msdata_ or |
| OPT_mno_flush_trap here. |
| * config/m32r/m32r.h (Code Models, Small Data Area): Replace by |
| include of m32r-opts.h. |
| * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New |
| HeaderInclude entry. |
| (m32r_model_selected, m32r_sdata_selected): New Variable entries. |
| (mmodel=): Use Enum and Var. |
| (m32r_model): New Enum and EnumValue entries. |
| (mno-flush-trap): Use Var. |
| (msdata=): Use Enum and Var. |
| (m32r_sdata): New Enum and EnumValue entries. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m32c/m32c.c: Don't include opts.h. |
| (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION, |
| m32c_handle_option): Remove. |
| (m32c_option_override): Check global_options_set.x_target_memregs |
| instead of target_memregs_set. |
| * config/m32c/m32c.h (target_memregs): Remove. |
| * config/m32c/m32c.opt (memregs=): Use UInteger with integer |
| variable. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/iq2000/iq2000-opts.h: New. |
| * config/iq2000/iq2000.c: Don't include opts.h. |
| (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove. |
| * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove. |
| * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New |
| HeaderInclude entry. |
| (iq2000_tune): New Variable entry. |
| (march=): Add comment. Use Enum. |
| (iq2000_arch): New Enum and EnumValue entries. |
| (mcpu=): Use Enum and Var. |
| (iq2000_tune): New Enum and EnumValue entries. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/ia64/ia64-opts.h: New. |
| * config/ia64/ia64.c (ia64_tune): Remove. |
| (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_ |
| here. Use error_at. |
| (ia64_option_override): Handle deferred OPT_mfixed_range_. |
| * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove. |
| * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New |
| HeaderInclude entry. |
| (ia64_tune): New Variable entry. |
| (mfixed-range=): Use Defer and Var. |
| (mtune=): Use Enum and Var. |
| (ia64_tune): New Enum and EnumValue entries. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/frv/frv-opts.h: New. |
| * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to |
| frv-opts.h. |
| (frv_cpu_type): Remove. |
| * config/frv/frv.c: Don't include opts.h. |
| (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove. |
| * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry. |
| (frv_cpu_type): New Variable entry. |
| (frv_cpu): New Enum and EnumValue entries. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/cris/cris.c (cris_handle_option): Access target_flags via |
| opts pointer. Don't assert that global structures are in use. |
| Don't call CRIS_SUBTARGET_HANDLE_OPTION. |
| * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/bfin/bfin-opts.h: New. |
| * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type, |
| bfin_si_revision, bfin_workarounds): Remove. |
| (bfin_cpus): Make static const. |
| (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id |
| not bfin_lib_id_given. |
| (bfin_handle_option): Don't set bfin_lib_id_given. Access |
| bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts |
| pointer. Use error_at. Don't assert that global structures are in use. |
| * config/bfin/bfin.h: Include bfin-opts.h. |
| (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h. |
| (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove. |
| * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry. |
| (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable |
| entries. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/arm.opt (mhard-float, msoft-float): Use Alias. |
| * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float |
| or -msoft-float here. |
| * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not |
| -msoft-float and -mhard-float. |
| (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float. |
| * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not |
| msoft-float. |
| * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and |
| -msoft-float. |
| (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float. |
| * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard, |
| not mhard-float. |
| (LIBGCC_SPEC): Don't handle -msoft-float. |
| * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle |
| -mhard-float. |
| * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not |
| msoft-float. |
| * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle |
| -mfloat-abi=*, not -msoft-float and -mhard-float. |
| * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and |
| -msoft-float. |
| * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): |
| Use mfloat-abi=hard and mfloat-abi=soft in comments, not |
| mhard-float and msoft-float. |
| * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and |
| mfloat-abi=soft in comments, not mhard-float and msoft-float. |
| * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use |
| mfloat-abi=soft and mfloat-abi=hard, not msoft-float and |
| mhard-float. |
| * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use |
| mfloat-abi=hard and mfloat-abi=soft, not mhard-float and |
| msoft-float. |
| * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard, |
| not mhard-float. |
| * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, |
| not msoft-float. |
| |
| 2011-03-22 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (alpha_expand_prologue): Don't test |
| TARGET_ABI_WINDOWS_NT. |
| (alpha_output_function_end_prologue): Likewise. |
| * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise. |
| (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/alpha/alpha.md (call, call_value, tablejump): Likewise. |
| (trap, *movsi_nt_vms): Likewise. |
| (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove. |
| (*tablejump_osf_nt_internal): Remove. |
| * config/alpha/predicates.md (input_operand): Only test Pmode. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/alpha.c (alpha_handle_option): Access target_flags |
| via opts pointer. Use error_at. Don't assert that global |
| structures are in use. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/i386.c (ix86_isa_flags_explicit): Remove. |
| (ix86_handle_option): Access ix86_isa_flags and |
| ix86_isa_flags_explicit via opts pointer. Don't assert that |
| global structures are in use. |
| (ix86_function_specific_save, ix86_function_specific_restore): |
| Update ix86_isa_flags_explicit field name. |
| * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry. |
| (ix86_isa_flags_explicit): Rename TargetSave entry to |
| x_ix86_isa_flags_explicit. |
| |
| 2011-03-22 Richard Henderson <rth@redhat.com> |
| |
| * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK. |
| (alpha_option_override, direct_return): Likewise. |
| (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise. |
| (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise. |
| (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise. |
| (alpha_start_function, alpha_output_function_end_prologue): Likewise. |
| (alpha_expand_epilogue, alpha_end_function): Likewise. |
| (alpha_init_libfuncs): Likewise. |
| (struct machine_function): Remove unicosmk members. |
| (print_operand) ['t']: Remove. |
| (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset, |
| unicosmk_output_module_name, unicosmk_output_common, |
| current_section_align, unicosmk_output_text_section_asm_op, |
| unicosmk_output_data_section_asm_op, unicosmk_init_sections, |
| unicosmk_section_type_flags, unicosmk_unique_section, |
| unicosmk_asm_named_section, unicosmk_insert_attributes, |
| unicosmk_output_align, unicosmk_defer_case_vector, |
| unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors, |
| SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib, |
| unicosmk_output_ssib, unicosmk_add_call_info_word, |
| unicosmk_extern_head, unicosmk_output_default_externs, |
| unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list, |
| unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex, |
| unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove. |
| * config/alpha/alpha-protos.h: Update. |
| * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK. |
| * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove. |
| (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove. |
| (mulsi3): Don't test TARGET_ABI_UNICOSMK. |
| (*mulsi_se, mulvsi3): Likewise. |
| (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise. |
| (*divmodsi_internal, call, call_value, realign): Likewise. |
| (moddi3, umoddi3): Likewise; remove duplicate expander. |
| (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove. |
| (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove. |
| (*movdi_nofix): Remove r/U alternative. |
| (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove. |
| * config/alpha/constraints.md ("U"): Remove. |
| * config/alpha/predicates.md (call_operand"): Don't test |
| TARGET_ABI_UNICOSMK. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * target.def (handle_option): Take gcc_options and |
| cl_decoded_option pointers and location_t. |
| * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation. |
| * doc/tm.texi: Regenerate. |
| * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove. |
| * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare. |
| * lto-opts.c (lto_reissue_options): Generate option structure for |
| targetm.handle_option call. |
| * opts.c (target_handle_option): Update call to |
| targetm.handle_option. Remove assertions about values now passed |
| down to hook. |
| * targhooks.c (default_target_handle_option): New. |
| * targhooks.h (default_target_handle_option): Declare. |
| * config/alpha/alpha.c: Include opts.h. |
| (alpha_handle_option): Update to new hook interface. |
| * config/arm/arm.c: Include opts.h. |
| (arm_handle_option): Update to new hook interface. |
| * config/arm/t-arm (arm.o): Update dependencies. |
| * config/bfin/bfin.c: Include opts.h. |
| (bfin_handle_option): Update to new hook interface. |
| * config/cris/cris.c: Include opts.h. |
| (cris_handle_option): Update to new hook interface. |
| * config/frv/frv.c: Include opts.h. |
| (frv_handle_option): Update to new hook interface. |
| * config/i386/i386.c: Include opts.h. |
| (ix86_handle_option): Update to new hook interface. |
| (ix86_valid_target_attribute_inner_p): Generate option structure |
| for call to ix86_handle_option. |
| * config/i386/t-i386 (i386.o): Update dependencies. |
| * config/ia64/ia64.c: Include opts.h. |
| (ia64_handle_option): Update to new hook interface. |
| * config/ia64/t-ia64 (ia64.o): Update dependencies. |
| * config/iq2000/iq2000.c: Include opts.h. |
| (iq2000_handle_option): Update to new hook interface. |
| * config/m32c/m32c.c: Include opts.h. |
| (m32c_handle_option): Update to new hook interface. |
| * config/m32r/m32r.c: Include opts.h. |
| (m32r_handle_option): Update to new hook interface. |
| * config/m68k/m68k.c: Include opts.h. |
| (m68k_handle_option): Update to new hook interface. |
| * config/mep/mep.c: Include opts.h. |
| (mep_handle_option): Update to new hook interface. |
| * config/microblaze/microblaze.c: Include opts.h. |
| (microblaze_handle_option): Update to new hook interface. |
| * config/mips/mips.c: Include opts.h. |
| (mips_handle_option): Update to new hook interface. |
| * config/mn10300/mn10300.c: Include opts.h. |
| (mn10300_handle_option): Update to new hook interface. |
| * config/pa/pa.c: Include opts.h. |
| (pa_handle_option): Update to new hook interface. |
| * config/pdp11/pdp11.c: Include opts.h. |
| (pdp11_handle_option): Update to new hook interface. |
| * config/rs6000/rs6000.c: Include opts.h. |
| (rs6000_handle_option): Update to new hook interface. |
| * config/rs6000/t-rs6000 (rs6000.o): Update dependencies. |
| * config/rx/rx.c: Include opts.h. |
| (rx_handle_option): Update to new hook interface. |
| * config/s390/s390.c: Include opts.h. |
| (s390_handle_option): Update to new hook interface. |
| * config/score/score.c: Include opts.h. |
| (score_handle_option): Update to new hook interface. |
| * config/sh/sh.c: Include opts.h. |
| (sh_handle_option): Update to new hook interface. |
| * config/sparc/sparc.c: Include opts.h. |
| (sparc_handle_option): Update to new hook interface. |
| * config/v850/v850.c: Include opts.h. |
| (v850_handle_option): Update to new hook interface. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * gcc.c (driver_unknown_option_callback): Only permit and save |
| unknown -Wno- options. |
| (driver_wrong_lang_callback): Save options directly instead of via |
| driver_unknown_option_callback. |
| |
| 2011-03-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * combine.c (simplify_set): Try harder to find the best CC mode when |
| simplifying a nested COMPARE on the RHS. |
| |
| 2011-03-22 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/gnu.h: Remove. |
| * config/arc: Remove directory. |
| * config/arm/netbsd.h: Remove. |
| * config/arm/t-pe: Remove. |
| * config/crx: Remove directory. |
| * config/i386/netbsd.h: Remove. |
| * config/m68hc11: Remove directory. |
| * config/m68k/uclinux-oldabi.h: Remove. |
| * config/mcore/mcore-pe.h: Remove. |
| * config/mcore/t-mcore-pe: Remove. |
| * config/netbsd-aout.h: Remove. |
| * config/rs6000/gnu.h: Remove. |
| * config/sh/sh-symbian.h: Remove. |
| * config/sh/symbian-base.c: Remove. |
| * config/sh/symbian-c.c: Remove. |
| * config/sh/symbian-cxx.c: Remove. |
| * config/sh/symbian-post.h: Remove. |
| * config/sh/symbian-pre.h: Remove. |
| * config/sh/t-symbian: Remove. |
| * config/svr3.h: Remove. |
| * config/vax/netbsd.h: Remove. |
| * config.build: Don't handle i[34567]86-*-pe. |
| * config.gcc: Remove handling of deprecations for most deprecated |
| targets. |
| (m68k-*-uclinuxoldabi*): Add to second deprecated list. |
| (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf, |
| i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*, |
| m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*, |
| powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*, |
| sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*): |
| Remove cases. |
| * config.host: Don't handle i[34567]86-*-pe. |
| * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove. |
| (ASM_SPEC32): Don't handle -mcall-gnu. |
| * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle |
| -mcall-gnu. |
| (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC, |
| STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu. |
| (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC, |
| LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove. |
| (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs. |
| * config/sh/sh-protos.h, config/sh/sh.c: Remove all code |
| conditional on SYMBIAN. |
| * configure.ac: Don't handle powerpc*-*-gnu*. |
| * configure: Regenerate. |
| * doc/extend.texi (interrupt attribute): Don't mention CRX. |
| * doc/install-old.texi (m6811, m6812): Don't mention. |
| * doc/install.texi (arc-*-elf*): Don't document multilib option. |
| (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove. |
| (m68k-uclinuxoldabi): Don't mention. |
| * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options): |
| Remove. |
| (-mcall-gnu): Remove. |
| * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12 |
| families): Remove constraint documentation. |
| |
| 2011-03-22 Marius Strobl <marius@FreeBSD.org> |
| |
| * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with... |
| (FBSD_TARGET_CPU_CPP_BUILTINS): ...this. |
| (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. |
| |
| 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/48226 |
| * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a |
| vector when peeking at the next token for vector, don't expand the |
| keywords. |
| |
| 2011-03-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-protos.h (expand_epilogue): Change prototype |
| * config/avr/avr.h (struct machine_function): Add field sibcall_fails. |
| * config/avr/avr.c (init_cumulative_args) |
| (avr_function_arg_advance): Use it. |
| * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle |
| sibcall epilogues. |
| (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to... |
| (avr_function_ok_for_sibcall): ...this new function. |
| (avr_lookup_function_attribute1): New static Function. |
| (avr_naked_function_p, interrupt_function_p) |
| (signal_function_p, avr_OS_task_function_p) |
| (avr_OS_main_function_p): Use it. |
| * config/avr/avr.md ("sibcall", "sibcall_value") |
| ("sibcall_epilogue"): New expander. |
| ("*call_insn", "*call_value_insn"): New insn. |
| ("call_insn", "call_value_insn"): Remove |
| ("call", "call_value", "epilogue"): Change expander to handle |
| sibling calls. |
| |
| 2011-03-21 Nick Clifton <nickc@redhat.com> |
| |
| * doc/invoke.texi (Overall Options): Move closing brace to end of |
| options list. |
| (Optimization Options): Add missing @gol. |
| (Directory Options): Likewise. |
| (i386 and x86-64 Options): Likewise. |
| (RS6000 and PowerPC Options): Likewise. |
| (i386 and x86-64 Windows Options): Likewise. |
| (V850 Options): Add text missing from descriptions. |
| |
| 2011-03-22 Richard Henderson <rth@redhat.com> |
| |
| * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New. |
| (avr_incoming_return_addr_rtx): New. |
| (emit_push_byte): New. |
| (expand_prologue): Use it. Remove incorrect dwarf annotation for |
| SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf |
| annotation for __prologue_saves__. Fixup dwarf annotation for CFA. |
| (emit_pop_byte): New. |
| (expand_epilogue): Use it. Pop frame pointer by bytes. |
| * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove. |
| (INCOMING_RETURN_ADDR_RTX): New. |
| (INCOMING_FRAME_SP_OFFSET): New. |
| (ARG_POINTER_CFA_OFFSET): New. |
| * config/avr/avr.md (*pushqi): Fix mode of auto-inc. |
| (*pushhi, *pushsi, *pushsf, popqi): Likewise. |
| (pophi): Remove. |
| |
| * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec. |
| |
| 2011-03-22 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison. |
| (FUNCTION_ARG_ADVANCE): Likewise. |
| * tm.texi.in: Change references to them to hook references. |
| * tm.texi: Regenerate. |
| * targhooks.c (default_function_arg): Eliminate check for target |
| macro. |
| (default_function_incoming_arg): Likewise. |
| (default_function_arg_advance): Likewise. |
| * target.def (function_arg, function_incoming_arg): Change to DEFHOOK. |
| (function_arg_advance): Likewise. |
| * target-def.h: Eliminate FUNCTION_INCOMING_ARG check. |
| |
| 2011-03-22 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * tree.c (build_call_1): New function. |
| (build_call_valist, build_call_array_loc, build_call_vec): Call it. |
| |
| 2011-03-22 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48228 |
| * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating |
| for single-arg PHIs. |
| |
| 2011-03-22 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/48143 |
| * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute. |
| (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps, |
| sse2_cvtps2pd): Likewise. |
| |
| 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * recog.c (canonicalize_change_group): Use validate_unshare_change. |
| |
| 2011-03-22 Richard Guenther <rguenther@suse.de> |
| |
| * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not |
| a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary. |
| * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR |
| and REALIGN_LOAD_EXPR. |
| (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC, |
| DOT_PROD_EXPR or REALIGN_LOAD_EXPR. |
| * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and |
| DOT_PROD_EXPR case ... |
| (expand_expr_real_2): ... here. |
| * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR |
| and REALIGN_LOAD_EXPR. |
| * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs. |
| * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_reduction): Likewise. |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust. |
| * tree-vect-stmts.c (vectorizable_load): Likewise. |
| |
| 2011-03-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions. |
| |
| 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_delegitimize_address): Fix offset |
| handling for PLTOFF/GOTOFF. |
| |
| 2011-03-22 Nick Clifton <nickc@redhat.com> |
| |
| * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove |
| trailing backslash from the end of the macro definition. |
| |
| 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF |
| and PLT unspecs. |
| |
| 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * expr.h (prepare_operand): Move to... |
| * optabs.h (prepare_operand): ...here and change the insn code |
| parameter from "int" to "enum insn_code". |
| (insn_operand_matches): Declare. |
| * expr.c (init_expr_target): Use insn_operand_matches. |
| (compress_float_constant): Likewise. |
| * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise. |
| * optabs.c (can_compare_p, prepare_cmp_insn): Likewise. |
| (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise. |
| (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn): |
| Likewise. |
| (gen_cond_trap): Likewise. |
| (prepare_operand): Likewise. Change icode to an insn_code. |
| (insn_operand_matches): New function. |
| * reload.c (find_reloads_address_1): Use insn_operand_matches. |
| * reload1.c (gen_reload): Likewise. |
| * targhooks.c (default_secondary_reload): Likewise. |
| |
| 2011-03-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (unspec): New define_c_enum. |
| (unspecv): Ditto. |
| |
| 2011-03-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR debug/48214 |
| * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop |
| between a call and its CALL_ARG_LOCATION note. |
| |
| 2011-03-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag. |
| |
| 2011-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/42544 |
| PR c/48197 |
| * c-common.c (shorten_compare): If primopN is first sign-extended |
| to opN and then zero-extended to result type, set primopN to opN. |
| |
| 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test |
| for barrier handlers. |
| |
| 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all |
| UNSPEC constants to be in the unspec enumeration, and redefine |
| all UNSPECV constants to be in the unspecv enumeration, so that |
| dumps print which unspec/unspec_volatile this is. |
| * config/rs6000/vector.md (UNSPEC_*): Ditto. |
| * config/rs6000/paired.md (UNSPEC_*): Ditto. |
| * config/rs6000/vsx.md (UNSPEC_*): Ditto. |
| * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto. |
| * config/rs6000/dfp.md (UNSPEC_*): Ditto. |
| |
| * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename |
| UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and |
| UNSPECV_LWSYNC, since these are used as unspec_volatile. |
| * config/rs6000/sync.md (isync, lwsync): Ditto. |
| |
| 2011-03-21 Richard Guenther <rguenther@suse.de> |
| |
| * params.def (lto-min-partition): Fix typo. |
| |
| 2011-03-21 Richard Guenther <rguenther@suse.de> |
| |
| PR c/47939 |
| * c-decl.c (grokdeclarator): Drop to the main variant only |
| for array types. Drop flag_gen_aux_info check. |
| |
| 2011-03-21 Richard Guenther <rguenther@suse.de> |
| |
| PR translation/47911 |
| * params.def (lto-partitions): Fix typo. |
| (lto-min-partition): Fix wording. |
| |
| 2011-03-21 Andreas Tobler <andreast@fgznet.ch> |
| |
| * config/rs6000/t-freebsd: Remove duplication from file. |
| |
| 2011-03-21 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47661 |
| * gimple.c (is_gimple_condexpr): Use tree_could_throw_p. |
| |
| 2011-03-21 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48210 |
| * params.def (lto-partitions): Require at least 1 partition. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gthr-solaris.h: Remove. |
| * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove. |
| * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support. |
| (LIB_SPEC): Likewise. |
| * config/sol2.opt (threads): Remove. |
| * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support. |
| (sparc*-*-solaris2*): Likewise. |
| * configure.ac (enable_threads): Enable solaris support. |
| * configure: Regenerate. |
| * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads. |
| * doc/install.texi (Configuration, --enable-threads=lib): Remove |
| solaris. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc: Obsolete *-*-solaris2.8*. |
| * doc/install.texi (Specific, *-*-solaris2*): Document it. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/48135 |
| * doc/install.texi (Prerequisites, Perl): Remove Glob.pm |
| reference. Solaris 8 perl works. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/48135 |
| * doc/install.texi (Prerequisites): Move jar etc. up. |
| Explain support library version requirements. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR bootstrap/48135 |
| * doc/install.texi (Prerequisites): Move Perl to build |
| requirements. Always necessary on Solaris 2 with Sun ld. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for |
| binutils 2.21. |
| (Specific, i?86-*-solaris2.[89]): Likewise. |
| (Specific, i?86-*-solaris2.10): Likewise. |
| (Specific, mips-sgi-irix6): Likewise. |
| (Specific, *-*-solaris2*): Remove Sun Studio download URL. |
| Update for binutils 2.21. |
| |
| 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_lto_plugin): Fix typo. |
| Allow -fuse-linker-plugin for non-default plugin linker. |
| * configure: Regenerate. |
| |
| 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| PR bootstrap/48167 |
| * gengtype.c (files_rules): Added rule for cp/parser.h. |
| |
| 2011-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/48213 |
| * config/s390/s390.c (s390_delegitimize_address): Don't call |
| lowpart_subreg if orig_x has BLKmode. |
| |
| 2011-03-21 Kai Tietz <ktietz@redhat.com> |
| |
| PR target/12171 |
| * doc/plugins.texi: Adjust documentation for plugin register_callback. |
| * tree.h (attribute_spec): Add new member affects_type_identity. |
| * attribs.c (empty_attribute_table): Adjust attribute_spec |
| initializers. |
| * config/alpha/alpha.c: Likewise. |
| * config/arc/arc.c: Likewise. |
| * config/arm/arm.c: Likewise. |
| * config/avr/avr.c: Likewise. |
| * config/bfin/bfin.c: Likewise. |
| * config/crx/crx.c: Likewise. |
| * config/darwin.h: Likewise. |
| * config/h8300/h8300.c: Likewise. |
| * config/i386/cygming.h: Likewise. |
| * config/i386/i386.c: Likewise. |
| * config/ia64/ia64.c: Likewise. |
| * config/m32c/m32c.c: Likewise. |
| * config/m32r/m32r.c: Likewise. |
| * config/m68hc11/m68hc11.c: Likewise. |
| * config/m68k/m68k.c: Likewise. |
| * config/mcore/mcore.c: Likewise. |
| * config/mep/mep.c: Likewise. |
| * config/microblaze/microblaze.c: Likewise. |
| * config/mips/mips.c: Likewise. |
| * config/rs6000/rs6000.c: Likewise. |
| * config/rx/rx.c: Likewise. |
| * config/sh/sh.c: Likewise. |
| * config/sol2.h: Likewise. |
| * config/sparc/sparc.c: Likewise. |
| * config/spu/spu.c: Likewise. |
| * config/stormy16/stormy16.c: Likewise. |
| * config/v850/v850.c: Likewise. |
| |
| 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Handle |
| (xor (and A B) C) case when B and C are both constants. |
| |
| 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * tree-dfa.c (add_referenced_var): Fix typo in comment. |
| |
| 2011-03-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR bootstrap/48168 |
| * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern. |
| |
| 2011-03-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/48156 |
| * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL, |
| assume df and df_lr are not NULL. |
| |
| 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR debug/48023 |
| * config/arm/arm.c (create_fix_barrier): Do not emit a minipool |
| between a call and its CALL_ARG_LOCATION note. |
| |
| 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR debug/48178 |
| * config/sh/sh.c (find_barrier): Don't emit a constant pool |
| between a call and its corresponding CALL_ARG_LOCATION note. |
| |
| 2011-03-19 Anatoly Sokolov <aesok@post.ru> |
| |
| * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range |
| instead of loop. Use HARD_REGISTER_NUM_P predicate. |
| * haifa-sched.c (setup_ref_regs): Ditto. |
| * caller-save.c (add_used_regs_1): Ditto. |
| * dse.c (look_for_hardregs): Ditto. |
| * df-problems.c (df_simulate_one_insn_forwards): Ditto. |
| * sched-rgn.c (check_live_1): Ditto. |
| |
| 2011-03-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (diagnose_mismatched_decls): Give an error for |
| redefining a typedef with variably modified type. |
| |
| 2011-03-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-decl.c (grokfield): Don't allow typedefs for structures or |
| unions with no tag by default. |
| * doc/extend.texi (Unnamed Fields): Update. |
| |
| 2011-03-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): |
| Rewrite using indirect functions. |
| (lwp_slwpcb): Ditto. |
| * config/i386/sse.md (avx_vextractf128<mode>): Ditto. |
| (avx_vinsertf128<mode>): Ditto. |
| |
| 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF |
| unspecs. |
| |
| 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_chunkify_start): Prevent literal pool |
| splitting between a call and its corresponding CALL_ARG_LOCATION note. |
| |
| 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| PR rtl-optimization/48170 |
| * gcse.c (hoist_code): Remove bogus asserts. |
| |
| 2011-03-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost |
| computation for prologue/epilogue. |
| |
| 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * Makefile.in (check-consistency): Remove. |
| |
| 2011-03-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48176 |
| * dwarf2out.c (dwarf2out_finish): Call output_aranges even when |
| arange_table_in_use is 0, but either text_section_used or |
| cold_text_section_used is true. Don't call it if |
| !info_section_emitted. |
| |
| 2011-03-18 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE, |
| FUNCTION_VALUE_REGNO_P): Remove. |
| * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value): |
| Remove. |
| * config/avr/avr.c (avr_ret_register): Make static inline. |
| (avr_function_value_regno_p): New function. |
| (avr_libcall_value): Make static. Add 'func' argument. |
| (avr_function_value): Make static. Rename 'func' argument to |
| 'fn_decl_or_type', forward it to avr_libcall_value. Call |
| avr_ret_register function instead of RET_REGISTER macro. |
| (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| |
| 2011-03-18 Jason Merrill <jason@redhat.com> |
| |
| PR c++/23372 |
| * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR. |
| |
| 2011-03-18 Richard Guenther <rguenther@suse.de> |
| |
| * doc/install.texi (--enable-gold): Remove. |
| (--with-plugin-ld): Document. |
| * doc/invoke.texi (-fuse-linker-plugin): Clarify. |
| |
| 2011-03-18 Andrew Pinski <pinskia@gmail.com> |
| |
| PR middle-end/47790 |
| * expr.c (optimize_bitfield_assignment_op): Revamp to work |
| again after expansion changes. |
| |
| 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * combine.c (try_combine): Do simplification only call of |
| subst() on i2 even when i1 is present. Update comments. |
| |
| 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF |
| and UNSPEC_PCREL_SYMOFF. |
| |
| 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.md: Use define_c_enum for the unspec constant |
| definitions. |
| |
| 2011-03-18 Richard Henderson <rth@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/48161 |
| * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary |
| instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER. |
| |
| 2011-03-17 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove. |
| * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove. |
| * config/v850/v850.c (v850_output_addr_const_extra): Make static. |
| Change return type to bool. |
| (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. |
| |
| 2011-03-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48163 |
| * var-tracking.c (prepare_call_arguments): If CALL target |
| is a non-SYMBOL_REF CONSTANT_P, just add that into the list as |
| pc instead of looking it up using cselib_lookup and use |
| Pmode for it if x has VOIDmode. |
| * dwarf2out.c (gen_subprogram_die): If also both first and |
| second CONCAT arguments are VOIDmode, use mode of CONCAT itself. |
| |
| PR debug/48163 |
| * function.c (assign_parms): For data.passed_pointer parms |
| use MEM of data.entry_parm instead of data.entry_parm itself |
| as DECL_INCOMING_RTL. |
| * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL |
| also when passed and declared mode is the same, DECL_RTL |
| is a MEM with pseudo as address and DECL_INCOMING_RTL is |
| a MEM too. |
| |
| 2011-03-16 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/37273 |
| * ira-costs.c (scan_one_insn): Detect constants living in memory and |
| handle them like argument loads from stack slots. Do not double |
| count memory for memory constants and argument loads from stack slots. |
| |
| 2011-03-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR debug/48160 |
| * var-tracking.c (prepare_call_arguments): Check SUBREG. |
| |
| 2011-03-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/48171 |
| * config/i386/i386.opt: Add Save to -mavx and -mfma. |
| |
| 2011-03-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/48153 |
| * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL |
| if dwarf_strict. |
| (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict. |
| Clear call_arg_locations and call_arg_loc_last always. |
| |
| PR middle-end/48152 |
| * var-tracking.c (prepare_call_arguments): If argument needs to be |
| passed by reference, adjust argtype and mode. |
| |
| 2011-03-17 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48134 |
| * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated |
| a value make sure to fold the statement. |
| |
| 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR target/43872 |
| * config/arm/arm.c (arm_get_frame_offsets): Adjust early |
| return condition with !cfun->calls_alloca. |
| |
| 2011-03-17 Richard Guenther <rguenther@suse.de> |
| |
| PR bootstrap/48148 |
| * lto-cgraph.c (input_overwrite_node): Clear the abstract |
| origin for decls in other ltrans units. |
| (input_varpool_node): Likewise. |
| |
| 2011-03-17 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48165 |
| * tree-object-size.c (compute_object_offset): Properly return |
| the offset operand of MEM_REFs as sizetype. |
| |
| 2011-03-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/48141 |
| * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New. |
| * dse.c: Include params.h. |
| (active_local_stores_len): New variable. |
| (add_wild_read, dse_step1): Clear it when setting active_local_stores |
| to NULL. |
| (record_store, check_mem_read_rtx): Decrease it when removing |
| from the chain. |
| (scan_insn): Likewise. Increase it when adding to chain, if it |
| reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and |
| set active_local_stores to NULL before the addition. |
| * Makefile.in (dse.o): Depend on $(PARAMS_H). |
| |
| PR rtl-optimization/48141 |
| * dse.c (record_store): If no positions are needed in an insn |
| that cannot be deleted, at least unchain it from active_local_stores. |
| |
| 2011-03-16 Dodji Seketeli <dodji@redhat.com> |
| |
| PR debug/47510 |
| * dwarf2out.c (strip_naming_typedef): Factorize out of ... |
| (lookup_type_die_strip_naming_typedef): ... here. |
| (get_context_die): Use it. |
| (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to |
| the anonymous struct named by the naming typedef. |
| |
| 2011-03-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/48154 |
| * config/i386/i386.c (ix86_builtin_vectorized_function): Check |
| TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins. |
| |
| 2011-03-16 Jeff Law <law@redhat.com> |
| |
| * tree-vrp.c (identify_jump_threads): Slightly simplify type |
| check for operands of conditional. Allow type to be a pointer. |
| |
| 2011-03-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48149 |
| * fold-const.c (fold_binary_loc): Fold |
| COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>. |
| |
| 2011-03-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/26134 |
| * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting |
| complex part accesses to REALPART_EXPR and IMAGPART_EXPR. |
| (non_rewritable_mem_ref_base): Handle complex type component |
| accesses, constrain offsets for vector and complex extracts |
| more properly. |
| |
| 2011-03-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48146 |
| * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual |
| operands avoiding the need for renaming. |
| |
| 2011-03-16 Richard Guenther <rguenther@suse.de> |
| |
| * gimple-fold.c (maybe_fold_reference): Open-code relevant |
| constant folding. Move MEM_REF canonicalization first. |
| Rely on fold_const_aggregate_ref for initializer folding. |
| * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts. |
| |
| 2011-03-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48136 |
| * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure |
| arg0/arg1 or their arguments are always fold converted to matching |
| types. |
| |
| * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED |
| to nargs. |
| |
| 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR lto/46944 |
| * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor): |
| Handle in-tree gold. |
| (ld_vers): Extract binutils version for gold. |
| (gcc_cv_ld_hidden): Handle gold here. |
| (gcc_cv_lto_plugin): Determine level of linker plugin support. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject |
| -fuse-linker-plugin otherwise. |
| (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC. |
| (LINK_COMMAND_SPEC): Use it. |
| (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0. |
| |
| 2011-03-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * emit-rtl.c (try_split): Don't call copy_call_info debug hook. |
| * calls.c: Remove debug.h include. |
| (emit_call_1): Don't call virtual_call_token debug hook. |
| * dwarf2out.c (debug_dcall_section, debug_vcall_section, |
| dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn, |
| vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION, |
| size_of_dcall_table, output_dcall_table, size_of_vcall_table, |
| output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash, |
| vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn, |
| dwarf2out_virtual_call_token, dwarf2out_copy_call_info, |
| dwarf2out_virtual_call): Remove. |
| (dwarf2_debug_hooks): Remove direct_call, virtual_call_token, |
| copy_call_info and virtual_call hooks. |
| (dwarf2out_init): Don't initialize vcall_insn_table, |
| debug_dcall_section and debug_vcall_section. |
| (prune_unused_types): Don't mark nodes from dcall_table. |
| (dwarf2out_finish): Don't output dcall or vcall tables. |
| * final.c (final_scan_insn): Don't call direct_call or |
| virtual_call debug hooks. |
| * debug.h (struct gcc_debug_hooks): Remove direct_call, |
| virtual_call_token, copy_call_info and virtual_call hooks. |
| (debug_nothing_uid): Remove prototype. |
| * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token, |
| copy_call_info and virtual_call hooks. |
| * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. |
| * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. |
| * debug.c (do_nothing_debug_hooks): Likewise. |
| (debug_nothing_uid): Remove. |
| * doc/invoke.texi (-fenable-icf-debug): Remove. |
| * common.opt (-fenable-icf-debug): Likewise. |
| |
| * calls.c (emit_call_1): Set MEM_EXPR on call's MEM. |
| * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on |
| call's MEM. Handle functions returning aggregate through a hidden |
| first pointer. For virtual calls add clobbered pc to call arguments |
| chain. |
| * dwarf2out.c (gen_subprogram_die): Emit |
| DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target |
| can't be emitted. |
| |
| PR debug/45882 |
| * rtl.def (ENTRY_VALUE): Change format from "e" to "0". |
| * rtl.h (ENTRY_VALUE_EXP): Define. |
| * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE. |
| * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise. |
| * print-rtl.c (print_rtx): Likewise. |
| * gengtype.c (adjust_field_rtx_def): Likewise. |
| * var-tracking.c (vt_add_function_parameter): Adjust |
| gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro. |
| * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro. |
| * cfgexpand.c (expand_debug_expr): If a SSA_NAME without |
| partition is a default definition of a PARM_DECL, use ENTRY_VALUE |
| of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set. |
| |
| * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION. |
| Call var_location debug hook even on CALL_INSNs. |
| (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION. |
| * rtl.def (ENTRY_VALUE): New. |
| * dwarf2out.c: Include cfglayout.h. |
| (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands, |
| output_loc_operands_raw): Handle DW_OP_GNU_entry_value. |
| (struct call_arg_loc_node): New type. |
| (call_arg_locations, call_arg_loc_last, block_map, call_site_count, |
| tail_call_site_count): New variables. |
| (dwarf_tag_name): Handle DW_TAG_GNU_call_site and |
| DW_TAG_GNU_call_site_parameter. |
| (dwarf_attr_name): Handle DW_AT_GNU_call_site_value, |
| DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target, |
| DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call, |
| DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites |
| and DW_AT_GNU_all_source_call_sites. |
| (mem_loc_descriptor): Handle ENTRY_VALUE. |
| (add_src_coords_attributes): Don't add enything if |
| DECL_SOURCE_LOCATION is UNKNOWN_LOCATION. |
| (dwarf2out_abstract_function): Save and clear call_arg_location, |
| call_site_count and tail_call_site_count around dwarf2out_decl call. |
| (gen_call_site_die): New function. |
| (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites. |
| (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map. |
| (dwarf2out_function_decl): Clear call_arg_locations, |
| call_arg_loc_last, set call_site_count and tail_call_site_count |
| to -1 and free block_map. |
| (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and |
| CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not |
| followed by any real instructions. |
| (dwarf2out_begin_function): Set call_site_count and |
| tail_call_site_count to 0. |
| (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site |
| is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL |
| attempt to force a DIE for it and worst case remove the attribute. |
| (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs |
| check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of |
| the decl itself. |
| * var-tracking.c: Include tm_p.h. |
| (vt_stack_adjustments): For calls call note_register_arguments. |
| (argument_reg_set): New variable. |
| (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set |
| ensure the VALUE is resolved. |
| (call_arguments): New variable. |
| (prepare_call_arguments): New function. |
| (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it. |
| (struct expand_loc_callback_data): Add ignore_cur_loc field. |
| (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and |
| always use the best expression. |
| (vt_expand_loc): Add ignore_cur_loc argument. |
| (vt_expand_loc_dummy): Clear ignore_cur_loc field. |
| (emit_note_insn_var_location): Adjust vt_expand_loc callers. |
| (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION |
| note for all calls. |
| (vt_add_function_parameter): Use cselib_lookup_from_insn. |
| If dv is a VALUE, enter into hash table also ENTRY_VALUE for the |
| argument. Don't call cselib_preserve_only_values and |
| cselib_reset_table. |
| (note_register_arguments): New function. |
| (vt_initialize): Compute argument_reg_set. Call |
| vt_add_function_parameters before processing basic blocks instead of |
| afterwards. For calls call prepare_call_arguments before calling |
| cselib_process_insn. |
| * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION. |
| * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H). |
| (var-tracking.o): Depend on $(TM_P_H). |
| * cfglayout.h (insn_scope): New prototype. |
| * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION. |
| * cfglayout.c (insn_scope): No longer static. |
| * insn-notes.def (CALL_ARG_LOCATION): New. |
| * calls.c (expand_call, emit_library_call_value_1): Put USEs for |
| MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally. |
| * integrate.c (set_block_origin_self, set_block_abstract_flags): Do |
| nothing for DECL_EXTERNAL BLOCK_VARS. |
| |
| 2011-03-16 Alan Modra <amodra@gmail.com> |
| |
| PR target/45844 |
| * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't |
| create invalid offset address for vsx splat insn. |
| * config/rs6000/predicates.md (splat_input_operand): New. |
| * config/rs6000/vsx.md (vsx_splat_*): Use it. |
| |
| 2011-03-15 Xinliang David Li <davidxl@google.com> |
| |
| PR c/47837 |
| * tree-ssa-uninit.c (pred_chain_length_cmp): New function. |
| (normalize_preds): New function. |
| (is_use_properly_guarded): Normalize def predicates. |
| |
| 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> |
| |
| PR target/46788 |
| * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c' |
| in the output template. |
| |
| 2011-03-15 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47650 |
| * tree-pretty-print.c (dump_function_declaration): Properly |
| dump unprototyped and varargs function types. |
| |
| 2011-03-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/13954 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy |
| and friends. |
| |
| 2011-03-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48037 |
| * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector |
| selects into BIT_FIELD_REFs. |
| (non_rewritable_mem_ref_base): Check if a MEM_REF is a |
| vector select. |
| |
| 2011-03-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48129 |
| * builtins.c (fold_builtin_snprintf): Convert to type of |
| built_in_decls[BUILT_IN_SNPRINTF] retval instead of |
| implicit_built_in_decls[BUILT_IN_SNPRINTF] retval. |
| |
| 2011-03-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/41490 |
| * tree-ssa-dce.c (propagate_necessity): Handle returns without |
| value but with VUSE. |
| * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all |
| return statements. |
| * tree-ssa-sink.c (statement_sink_location): Fix store sinking. |
| * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs. |
| * tree-tailcall.c (find_tail_calls): Ignore returns. |
| |
| 2011-03-15 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48031 |
| * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized |
| or variable-indexed array accesses when in gimple form. |
| |
| 2011-03-15 Richard Guenther <rguenther@suse.de> |
| |
| * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently. |
| |
| 2011-03-15 Alan Modra <amodra@gmail.com> |
| |
| PR target/48032 |
| * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not |
| presume symbol_refs without a symbol_ref_decl are suitably |
| aligned, nor other trees we may see here. Handle anchor symbols. |
| (legitimate_constant_pool_address_p): Comment. Add mode param. |
| Check cmodel=medium addresses. Adjust all calls. |
| (rs6000_emit_move): Don't call offsettable_ok_by_alignment on |
| creating cmodel=medium optimized access to locals. |
| * config/rs6000/constraints.md (R): Pass QImode to |
| legitimate_constant_pool_address_p. |
| * config/rs6000/predicates.md (input_operand): Pass mode to |
| legitimate_constant_pool_address_p. |
| * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p): |
| Update prototype. |
| |
| 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/48053 |
| * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up |
| 64-bit constants being loaded into registers other than GPRs such |
| as loading 0 into a VSX register. |
| |
| 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs. |
| |
| 2011-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/47917 |
| * builtins.c (fold_builtin_snprintf): New function. |
| (fold_builtin_3): Call it for BUILT_IN_SNPRINTF. |
| (fold_builtin_4): Likewise. |
| |
| PR middle-end/38878 |
| * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add |
| STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X |
| and C - X == X also strip nops from +/-/p+ operand. |
| When optimizing -X == C, fold C to arg0's type. |
| |
| PR debug/47946 |
| * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative, |
| emit it as add_AT_int instead of add_AT_unsigned. |
| |
| 2011-03-14 Tom Tromey <tromey@redhat.com> |
| |
| * unwind-dw2.c: Include sys/sdt.h if it exists. |
| (_Unwind_DebugHook): Use STAP_PROBE2. |
| * config.in, configure: Rebuild. |
| * configure.ac: Check for sys/sdt.h. |
| |
| 2011-03-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (ROUND_FLOOR): New constant. |
| (ROUND_CEIL): Ditto. |
| (ROUND_TRUNC): Ditto. |
| (ROUND_MXCSR): Ditto. |
| (ROUND_NO_EXC): Ditto. |
| (rint<mode>2): Use new defines instead of numerical constants. |
| (floor<mode>2): Ditto. |
| (ceil<mode>2): Ditto. |
| (btrunc<mode>2): Ditto. |
| * config/i386/i386-builtin-types.def: Define ROUND function type |
| aliases. |
| * config/i386/i386.c (enum ix86_builtins): Add |
| IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines. |
| (struct builtin_description): Add |
| __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions. |
| (ix86_expand_sse_round): New static function. |
| (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND |
| function types. |
| (ix86_builtin_vectorized_function): Handle |
| BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins. |
| |
| 2011-03-14 Tom Tromey <tromey@redhat.com> |
| |
| * c-parser.c (c_parser_asm_string_literal): Clear |
| warn_overlength_strings. |
| |
| 2011-03-14 Tom Tromey <tromey@redhat.com> |
| |
| * c-parser.c (disable_extension_diagnostics): Save |
| warn_overlength_strings. |
| (restore_extension_diagnostics): Restore warn_overlength_strings. |
| |
| 2011-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Change to 4.7.0. |
| |
| 2011-03-14 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/48098 |
| * tree.c (build_vector_from_val): Adjust assert to requirements |
| and reality. |
| |
| 2011-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/48102 |
| * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter. |
| |
| 2011-03-14 Andreas Tobler <andreast@fgznet.ch> |
| |
| * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in |
| terms of target_flags_explicit. Adjust copyright year. |
| |
| * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits. |
| * config/rs6000/t-freebsd: New file. Add override for |
| LIB2FUNCS_EXTRA. |
| |
| 2011-03-13 Chris Demetriou <cgd@google.com> |
| |
| * doc/invoke.texi (-fdiagnostics-show-option): Replace with... |
| (-fno-diagnostics-show-option): this, to reflect current default. |
| (-Werror=): Update text about -fno-diagnostics-show-option. |
| |
| 2011-03-12 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/48053 |
| * config/rs6000/predicates.md (easy_vector_constant_add_self, |
| easy_vector_constant_msb): Do not handle V2DImode and V2DFmode. |
| * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that |
| mode is not V2DImode or V2DFmode. |
| (vspltis_constant): Do not handle V2DImode and V2DFmode. |
| (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg. |
| * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX |
| registers to 0. |
| (movdi_internal64): Likewise. |
| |
| 2011-03-12 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/47127 |
| * graphite-clast-to-gimple.c (build_cloog_prog): Removed state |
| parameter. |
| (set_cloog_options): Same. |
| (scop_to_clast): Same. |
| (print_clast_stmt): Do not call cloog_state_malloc and |
| cloog_state_free. |
| (print_generated_program): Same. |
| (gloog): Same. |
| * graphite-clast-to-gimple.h (cloog_state): Declared. |
| (scop_to_clast): Adjust declaration. |
| * graphite.c (cloog_state): Defined here. |
| (graphite_initialize): Call cloog_state_malloc. |
| (graphite_finalize): Call cloog_state_free. |
| |
| 2011-03-11 Jason Merrill <jason@redhat.com> |
| |
| * attribs.c (lookup_attribute_spec): Take const_tree. |
| * tree.h: Adjust. |
| |
| 2011-03-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/sparc.c (sparc_option_override): Use |
| PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2". |
| |
| 2011-03-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/48067 |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the |
| multiplication result will be only used once on the target |
| stmt. |
| |
| 2011-03-11 Richard Guenther <rguenther@suse.de> |
| |
| * doc/invoke.texi (max-inline-insns-single): Adjust default value. |
| |
| 2011-03-11 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/48073 |
| * tree.c (find_decls_types_r): Do not walk types only reachable |
| from IDENTIFIER_NODEs. |
| |
| 2011-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48044 |
| * ipa.c (cgraph_remove_unreachable_nodes): Enqueue |
| all vnode->force_output nodes as needed. |
| |
| 2011-03-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/48069 |
| * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not |
| COMPLETE_OR_UNBOUND_ARRAY_TYPE_P. |
| |
| 2011-03-11 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of |
| cgraph_node. |
| |
| 2011-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/48063 |
| * ipa-inline.c (cgraph_decide_inlining): Don't try to |
| inline functions called once if !tree_can_inline_p (node->callers). |
| |
| 2011-03-11 Chen Liqin <liqin.gcc@gmail.com> |
| |
| * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and |
| extra_objs. |
| * config/score/score3.c: Delete. |
| * config/score/score3.h: Delete. |
| * config/score/mul-div.S: Delete. |
| * config/score/sfp-machine.h: Add new file. |
| * config/score/constraints.md: Add new file. |
| * config/score/t-score-softfp: Add new file. |
| * config/score/t-score-elf: Remove score3.o, do not generate multilib. |
| * config/score/score7.c (score7_const_ok_for_letter_p): Delete. |
| (score7_extra_constraint): Delete. |
| (score7_option_override): Remove unused code. |
| * config/score/score.c: Remove score3 and score5 define and code. |
| * config/score/score.h: Remove score3 and score5 define and code. |
| * config/score/score.md: Remove score3 template and unusual insn. |
| * config/score/score.opt: Remove score3 and score5 options. |
| |
| 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT |
| when _HPUX_SOURCE is defined. |
| (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified. |
| |
| 2011-03-10 Jason Merrill <jason@redhat.com> |
| |
| PR c++/48029 |
| * stor-layout.c (layout_type): Don't set structural equality |
| on arrays of incomplete type. |
| * tree.c (type_hash_eq): Handle comparing them properly. |
| |
| 2011-03-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/48043 |
| * config/s390/s390.c (s390_delegitimize_address): Make sure the |
| result mode matches original rtl mode. |
| |
| 2011-03-10 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings. |
| (andsi3, andsi3_flags): Fix timings for three operand alternative. |
| |
| 2011-03-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/47866 |
| * expr.c (store_field): If MEM_SCALAR_P (target), don't use |
| MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx) |
| if target wasn't scalar. |
| * function.c (assign_stack_temp_for_type): Assert that neither |
| MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either |
| MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P |
| macro. |
| * rtl.h (MEM_SET_IN_STRUCT_P): Removed. |
| |
| 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390-protos.h (s390_label_align): New prototype. |
| * config/s390/s390.c (s390_label_align): New function. |
| * config/s390/s390.h (LABEL_ALIGN): New target macro definition. |
| |
| 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47755 |
| * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle |
| V2DI/V2DF constants. Only all 0's or all 1's are easy. |
| (output_vec_const_move): Ditto. |
| |
| 2011-03-08 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro. |
| * config/mips/mips-protos.h (mips_preferred_reload_class): Remove. |
| * config/mips/mips.c (mips_preferred_reload_class): Make static. |
| Change 'rclass' argument and result type to reg_class_t. |
| (TARGET_PREFERRED_RELOAD_CLASS): Define. |
| |
| 2011-03-08 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. |
| * config/avr/avr.c (TARGET_REGISTER_MOVE_COST) |
| (TARGET_MEMORY_MOVE_COST): Define. |
| (avr_register_move_cost, avr_memory_move_cost): New Functions. |
| |
| 2011-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/47881 |
| * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns |
| removed anything. |
| |
| PR tree-optimization/48022 |
| * fold-const.c (fold_comparison): Don't call fold_overflow_warning |
| for EQ/NE_EXPR. |
| |
| 2011-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/47991 |
| * var-tracking.c (find_use_val): Return NULL for |
| cui->sets && cui->store_p BLKmode MEMs. |
| |
| 2011-03-07 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): |
| Remove. |
| * config/stormy16/stormy16-protos.h (xstormy16_print_operand, |
| xstormy16_print_operand_address): Remove. |
| * config/stormy16/stormy16.c (xstormy16_print_operand, |
| xstormy16_print_operand_address): Make static. |
| (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define. |
| |
| 2011-03-07 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/47862 |
| * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define. |
| * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine |
| before definition. |
| |
| 2011-03-07 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR bootstrap/48000 |
| * cfgloopmanip.c (fix_bb_placements): Return immediately |
| if FROM is BASE_LOOP's header. |
| |
| 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com> |
| |
| * gimplify.c (gimplify_function_tree): Fix building calls |
| to __builtin_return_address. |
| |
| 2011-03-07 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define. |
| * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define. |
| * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define. |
| * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and |
| return_mode args. |
| * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes". |
| (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode. |
| (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode. |
| (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE. |
| * config/rs6000/rs6000.c |
| (rs6000_elf_end_indicate_exec_stack): Rename to.. |
| (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack |
| for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from.. |
| (rs6000_file_start): ..here. |
| (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New |
| file scope variables. |
| (call_ABI_of_interest): New function. |
| (init_cumulative_args): Set above vars when function return value |
| is a float, vector, or small struct. |
| (rs6000_function_arg_advance_1): Likewise for function args. |
| (rs6000_va_start): Set rs6000_passes_float if variable arg function |
| references float args. |
| |
| 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * doc/cfg.texi: Remove "See" before @ref. |
| * doc/invoke.texi: Likewise. |
| |
| 2011-03-05 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Document ABI v5. |
| |
| 2011-03-05 Anthony Green <green@moxielogic.com> |
| |
| * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile. |
| |
| 2011-03-05 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR rtl-optimization/47899 |
| * cfgloopmanip.c (fix_bb_placements): Fix first argument |
| to flow_loop_nested_p when moving the loop upward. |
| |
| 2011-03-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/47719 |
| * arm.md (movhi_insn_arch4): Accept any immediate constant. |
| |
| 2011-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47967 |
| * ipa-cp.c (build_const_val): Return NULL instead of creating |
| VIEW_CONVERT_EXPR for mismatching sizes. |
| (ipcp_create_replace_map): Return NULL if build_const_val failed. |
| (ipcp_insert_stage): If ipcp_create_replace_map returns NULL, |
| give up on versioning. |
| |
| 2011-03-05 Alan Modra <amodra@gmail.com> |
| |
| PR target/47986 |
| * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle |
| full cmodel medium/large lo_sum + high addresses. |
| |
| 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_decompose_address): Reject non-literal |
| pool references in UNSPEC_LTREL_OFFSET. |
| |
| 2011-03-04 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/47497 |
| * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias. |
| (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here. |
| * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): |
| Add node pointers. |
| * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias, |
| cgraph_add_thunk): Add node pointers. |
| * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are |
| associated to right node. |
| (input_node): Update use of cgraph_same_body_alias |
| and cgraph_add_thunk. |
| |
| 2011-03-04 Changpeng Fang <changpeng.fang@amd.com> |
| |
| * config/i386/i386.opt (mprefer-avx128): New flag. |
| * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX |
| modes when the flag -mprefer-avx128 is on. |
| |
| 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * dwarf2out.c (compare_loc_operands): Fix address handling. |
| |
| 2011-03-04 Alan Modra <amodra@gmail.com> |
| |
| * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment. |
| |
| 2011-03-04 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47968 |
| * expmed.c (extract_bit_field_1): Prefer vector modes that |
| vec_extract patterns can handle. |
| |
| 2011-03-04 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47975 |
| * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P. |
| |
| 2011-03-04 Richard Henderson <rth@redhat.com> |
| |
| * explow.c (emit_stack_save): Remove 'after' parameter. |
| (emit_stack_restore): Likewise. |
| * expr.h: Update to match. |
| * builtins.c, calls.c, stmt.c: Likewise. |
| * config/alpha/alpha.md, config/avr/avr.md: Likewise. |
| * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise. |
| * function.c (expand_function_end): Insert the emit_stack_save |
| sequence before parm_birth_insn instead of after. |
| |
| 2011-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX. |
| (ssse3_pmaddubsw128): Ditto. |
| (ssse3_pmaddubsw): Ditto. |
| |
| 2011-03-03 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH |
| |
| 2011-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/47963 |
| * gimplify.c (omp_add_variable): Only call omp_notice_variable |
| on TYPE_SIZE_UNIT if it is a DECL. |
| |
| PR debug/47283 |
| * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF |
| first operand is not is_gimple_mem_ref_addr, try to fold it. |
| If the operand still isn't is_gimple_mem_ref_addr, clear |
| MEM_EXPR on op0. |
| |
| 2011-03-03 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47283 |
| * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code |
| match comment. |
| (refs_may_alias_p_1): For release branches return true if |
| we are confused by our input. |
| |
| 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (s390_function_value): Rename to ... |
| (s390_function_and_libcall_value): ... this. |
| (s390_function_value): New function. |
| (s390_libcall_value): New function. |
| (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks. |
| * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove |
| target macro definitions. |
| * config/s390/s390-protos.h (s390_function_value): Remove prototype. |
| |
| 2011-03-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/freebsd64.h (CC1_SPEC): Define. |
| * config/i386/linux64.h (CC1_SPEC): Define. |
| * config/i386/x86-64.h (CC1_SPEC): Don't define. |
| |
| 2011-03-02 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): |
| Remove. |
| * config/stormy16/stormy16.c: Include reload.h. |
| (xstormy16_memory_move_cost): New function. |
| (TARGET_MEMORY_MOVE_COST): Define. |
| |
| 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR rtl-optimization/47925 |
| * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions |
| with side effects. Remove the more-specific check for volatile asms. |
| |
| 2011-03-02 Alan Modra <amodra@gmail.com> |
| |
| PR target/47935 |
| * config/rs6000/predicates.md (lwa_operand): Check cmodel medium |
| toc relative addresses for valid offsets. |
| |
| 2011-03-01 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47890 |
| * tree-vect-loop.c (get_initial_def_for_induction): Set |
| related stmt properly. |
| |
| 2011-03-01 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47924 |
| * lto-streamer.c (lto_record_common_node): Also register |
| the canonical type. |
| |
| 2011-03-01 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/46911 |
| * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): |
| Do not stream DECL_ABSTRACT_ORIGIN. |
| (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, |
| BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. |
| * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): |
| Do not stream DECL_ABSTRACT_ORIGIN. |
| (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION, |
| BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN. |
| |
| 2011-02-28 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE, |
| FUNCTION_VALUE_REGNO_P): Remove. |
| * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove. |
| * config/stormy16/stormy16.c (xstormy16_function_value): Make static. |
| Add 'outgoing' argument. |
| (xstormy16_libcall_value, xstormy16_function_value_regno_p): New |
| function. |
| (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, |
| TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| |
| 2011-02-28 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR debug/28047 |
| * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp. |
| (lookup_filename): Likewise. |
| * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp. |
| |
| 2011-02-28 Bernd Schmidt <bernds@codesourcery.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/47893 |
| * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define. |
| (assign_stack_local_1): Change last argument type to int. |
| * function.c (assign_stack_local_1): Replace reduce_alignment_ok |
| argument with kind. If bit ASLK_RECORD_PAD is not set in it, |
| don't record padding space into frame_space_list nor use those areas. |
| (assign_stack_local): Adjust caller. |
| (assign_stack_temp_for_type): Call assign_stack_local_1 instead |
| of assign_stack_local, pass 0 as last argument. |
| * caller-save.c (setup_save_areas): Adjust assign_stack_local_1 |
| callers. |
| |
| 2011-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/47283 |
| * cfgexpand.c (convert_debug_memory_address): Add AS parameter. |
| Use target address_mode and pointer_mode hooks instead of hardcoded |
| Pmode and ptr_mode. Handle some simple cases of extending if |
| POINTERS_EXTEND_UNSIGNED < 0. |
| (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>: |
| Call convert_debug_memory_address. |
| (expand_debug_expr) <case ADDR_EXPR>: Pass as to |
| convert_debug_memory_address. |
| |
| PR middle-end/46790 |
| * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test. |
| * configure: Regenerated. |
| * config.in: Regenerated. |
| * varasm.c (default_function_section): Return NULL |
| if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name. |
| |
| 2011-02-28 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix |
| the description to match the printed values. |
| |
| 2011-02-28 Richard Guenther <rguenther@suse.de> |
| |
| * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT |
| of the copied scope tree. |
| |
| 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/extend.texi (Function Attributes): Avoid deeply (and |
| wrongly) nested tables. |
| |
| 2011-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/47903 |
| * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR, |
| MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if |
| r isn't op0 nor op1. |
| |
| 2011-02-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md: Remove magic comment for emacs. |
| |
| 2011-02-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/45261 |
| * config/avr/avr.c (avr_option_override): Use error on bad options. |
| (avr_help): New function. |
| (TARGET_HELP): Define. |
| |
| 2011-02-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/42240 |
| * config/avr/avr.c (avr_cannot_modify_jumps_p): New function. |
| (TARGET_CANNOT_MODIFY_JUMPS_P): Define. |
| |
| 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (ARC Options): Use CPU instead of cpu. |
| (ARM Options): Ditto. |
| (i386 and x86-64 Options): Ditto. |
| (RX Options): Ditto. |
| (SPARC Options): Ditto. |
| |
| 2011-02-26 Tijl Coosemans <tijl@coosemans.org> |
| |
| * config.gcc (i386-*-freebsd*): Make i486 the default arch on |
| FreeBSD 6 and later. Generally use cpu generic. |
| |
| 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/cpp.texi: Update copyright years. |
| |
| 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org> |
| |
| PR target/46898 |
| * config/lm32/lm32.md (ashrsi3): Added needed variable. |
| |
| 2011-02-25 Jon Beniston <jon@beniston.com> |
| |
| PR target/46898 |
| * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New. |
| * config/lm32/lm32.md (ashlsi3): Remove unused variable. |
| * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New. |
| (lm32_block_move_inline): Add type cast to remove warning. |
| (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out. |
| (gen_int_relational): Move declarations to start of function. |
| |
| 2011-02-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/45470 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement |
| can throw internally only. |
| * tree-vect-stmts.c (vectorizable_call): Likewise. |
| |
| 2011-02-24 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS, |
| PREFERRED_OUTPUT_RELOAD_CLASS): Remove. |
| * config/stormy16/stormy16-protos.h |
| (xstormy16_preferred_reload_class): Remove. |
| * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make |
| static. Change 'rclass' argument and return type to reg_class_t. |
| (TARGET_PREFERRED_RELOAD_CLASS, |
| TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. |
| |
| 2011-02-24 Richard Guenther <rguenther@suse.de> |
| |
| * lto-streamer-in.c (input_bb): Do not find referenced vars |
| in debug statements. |
| |
| 2011-02-23 Jason Merrill <jason@redhat.com> |
| |
| * common.opt (fabi-version): Document v5 and v6. |
| |
| 2011-02-23 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47849 |
| * tree-if-conv.c (main_tree_if_conversion): Free postdom info. |
| |
| 2011-02-23 Jie Zhang <jie@codesourcery.com> |
| |
| * opts-common.c (decode_cmdline_option): Print empty string |
| argument as "" in decoded->orig_option_with_args_text. |
| * gcc.c (execute): Print empty string argument as "" |
| in the verbose output. |
| (do_spec_1): Keep empty string argument. |
| |
| 2011-02-23 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config.gcc: Declare score-* and crx-* obsolete. |
| |
| 2011-02-23 Jie Zhang <jie@codesourcery.com> |
| |
| PR rtl-optimization/47763 |
| * web.c (web_main): Ignore naked clobber when replacing register. |
| |
| 2011-02-22 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): |
| Remove. |
| |
| 2011-02-22 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR doc/47848 |
| * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes. |
| |
| 2011-02-22 Mike Stump <mikestump@comcast.net> |
| |
| * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin |
| assembler. |
| * configure: Regenerate. |
| |
| 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR rtl-optimization/46002 |
| * ira-color.c (update_copy_costs): Change class intersection |
| test to reg_class_contents[] test of 'hard_regno'. |
| |
| 2011-02-21 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather |
| than Driver option. |
| * config/hpux11.opt (mt): Likewise. |
| * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise. |
| * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise. |
| * config/vax/elf.opt (mno-asm-pic): Likewise. |
| * config/vms/vms.opt (map, mvms-return-codes): Likewise. |
| |
| 2011-02-21 Mike Stump <mikestump@comcast.net> |
| |
| PR target/47822 |
| * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a |
| tree so we can get save the type. |
| * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot |
| for CFString instead of trying to use past the end of the builtins. |
| * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise. |
| * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise. |
| * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise. |
| * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING): |
| Rename to darwin_builtin_cfstring. |
| (darwin_init_cfstring_builtins): Return the built type. |
| |
| 2011-02-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/47840 |
| * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32. |
| (_mm256_insert_epi64): Use _mm_insert_epi64. |
| |
| 2011-02-21 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. |
| * config/stormy16/stormy16-protos.h |
| (xstormy16_mode_dependent_address_p): Remove. |
| * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): |
| Make static. Change return type to bool. Change argument type to |
| const_rtx. Remove dead code. |
| (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. |
| |
| 2011-02-21 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47820 |
| * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): |
| Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. |
| (lto_input_ts_block_tree_pointers): Hook a BLOCK into the |
| TUs context. |
| * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): |
| Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. |
| |
| 2011-02-20 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47822 |
| * tree.c (free_lang_data_in_decl): Clean builtins from |
| the TU decl BLOCK_VARS. |
| |
| 2011-02-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47620 |
| PR debug/47630 |
| * haifa-sched.c (fix_tick_ready): Skip tick computation |
| for debug insns. |
| |
| 2011-02-19 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47647 |
| * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers): |
| Remove lazy BLOCK_VARS streaming. |
| (lto_input_ts_block_tree_pointers): Likewise. |
| * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise. |
| |
| 2011-02-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h. |
| |
| 2011-02-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/biarch32.h, config/i386/mach.h, |
| config/rs6000/aix.opt, config/sh/superh64.h: Remove. |
| |
| 2011-02-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/47800 |
| * config/i386/i386.md (peephole2 for shift and plus): Use |
| operands[1] original mode in the first insn. |
| |
| 2011-02-18 Mike Stump <mikestump@comcast.net> |
| |
| * config/t-darwin (TM_H): Add dependency on darwin-sections.def. |
| |
| 2011-02-18 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/47788 |
| * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits |
| to zero when the function is not inlinable at all. |
| |
| 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts. |
| * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, |
| pthread_mutex_unlock, pthread_once): Reinstate pthread stubs. |
| * config/pa/t-pa-hpux11: Add rules to build pthread stubs. |
| * config/pa/t-pa64: Likewise. |
| * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define. |
| |
| 2011-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/47787 |
| * gcc.c (default_compilers): Clear combinable field for "@cpp-output". |
| |
| 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR target/47792 |
| * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name. |
| |
| 2011-02-18 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, |
| RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P, |
| LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P, |
| GO_IF_LEGITIMATE_ADDRESS): Remove macros. |
| * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define. |
| (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p, |
| m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p, |
| m32r_load_postinc_p, m32r_store_preinc_predec_p, |
| m32r_legitimate_address_p): New functions. |
| * config/m32r/constraints.md (constraint "S"): Don't use |
| STORE_PREINC_PREDEC_P. |
| (constraint "U"): Don't use LOAD_POSTINC_P. |
| |
| 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR rtl-optimization/46178 |
| * ira.c (setup_hard_regno_class): Use ira_class_translate[] to |
| compute ira_hard_regno_cover_class[]. |
| |
| 2011-02-18 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47798 |
| * lto-streamer.h (lto_global_var_decls): Declare. |
| * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register |
| statics for global var processing. |
| |
| 2011-02-18 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47737 |
| * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix |
| edge dominance check. |
| |
| 2011-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/47780 |
| * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to |
| avoid invalid rtx sharing. |
| |
| 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/cpp.texi (Obsolete Features): Add background on the |
| origin of assertions. |
| |
| 2011-02-17 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for |
| objc_abi == 2. |
| * config/darwin.c (output_objc_section_asm_op): Added support for |
| ABI v1 and v2. |
| (is_objc_metadata): New. |
| (darwin_objc2_section): New. |
| (darwin_objc1_section): New. |
| (machopic_select_section): Added support for ABI v1 and v2. |
| (darwin_emit_objc_zeroed): New. |
| (darwin_output_aligned_bss): Detect objc metadata and treat it |
| appropriately. |
| (darwin_asm_output_aligned_decl_common): Same. |
| (darwin_asm_output_aligned_decl_local): Same. |
| * config/darwin-sections.def: Updated for ABI v1 and v2. |
| * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When |
| compiling Objective-C code for the NeXT runtime, default to using |
| ABI version 0 for 32-bit, and version 2 for 64-bit. |
| |
| 2011-02-17 Joseph Myers <joseph@codesourcery.com> |
| |
| * common.opt (optimize_fast): New Variable. |
| * opts.c (default_options_optimization): Use opts->x_optimize_fast |
| instead of local variable ofast. |
| |
| 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * doc/invoke.texi (fobjc-abi-version): Documented. |
| (fobjc-nilcheck): Documented. |
| (fno-nil-receiver): Updated documentation to refer to the NeXT ABI |
| version. |
| |
| 2011-02-17 Joseph Myers <joseph@codesourcery.com> |
| |
| PR driver/47390 |
| * common.opt (export-dynamic): New Driver option. |
| * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}. |
| |
| 2011-02-17 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*. |
| |
| 2011-02-17 Alexandre Oliva <aoliva@redhat.com> |
| Jan Hubicka <jh@suse.cz> |
| |
| PR debug/47106 |
| PR debug/47402 |
| * cfgexpand.c (account_used_vars_for_block): Remove. |
| (estimated_stack_frame_size): Use referenced vars. |
| * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced |
| that were referenced in the original function. Test src_fn |
| rather than cfun. Drop redundant get_var_ann. |
| (setup_one_parameter): Drop redundant get_var_ann. |
| (declare_return_variable): Likewise. |
| (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn. |
| (copy_arguments_for_versioning): Drop redundant get_var_ann. |
| * ipa-inline.c (compute_inline_parameters): Do not compute |
| disregard_inline_limits here. |
| (compute_inlinable_for_current, pass_inlinable): New. |
| (pass_inline_parameters): Require PROP_referenced_vars. |
| * cgraphunit.c (cgraph_process_new_functions): Don't run |
| compute_inline_parameters explicitly unless function is in SSA form. |
| (cgraph_analyze_function): Set .disregard_inline_limits. |
| * tree-sra.c (convert_callers): Compute inliner parameters |
| only for functions already in SSA form. |
| |
| 2011-02-17 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle |
| -mlittle-endian-data. |
| |
| 2011-02-17 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and |
| -mno-fpu, not -fpu and -no-fpu. |
| * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise. |
| * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise. |
| |
| 2011-02-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/43653 |
| * config/i386/i386.c (ix86_secondary_reload): Handle SSE |
| input reload with PLUS RTX. |
| |
| 2011-02-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead |
| of InverseVar(MDMX). |
| |
| 2011-02-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of |
| --m4-340. |
| |
| 2011-02-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mn10300/mn10300.opt (mno-crt0): New. |
| |
| 2011-02-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m68k/uclinux.opt (static-libc): New Driver option. |
| |
| 2011-02-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*. |
| |
| 2011-02-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of |
| %{muser-extend-enabled}. |
| |
| 2011-02-16 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47738 |
| * tree-ssa-loop.c (run_tree_predictive_commoning): Return |
| the TODO from tree_predictive_commoning. |
| |
| 2011-02-15 Jeff Law <law@redhat.com> |
| |
| Revert |
| 2011-01-25 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/37273 |
| * ira-costs.c (scan_one_insn): Detect constants living in memory and |
| handle them like argument loads from stack slots. Do not double |
| count memory for memory constants and argument loads from stack slots. |
| |
| 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47755 |
| * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI |
| mode for vector constants. Remove code that checks for TImode. |
| |
| 2011-02-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47106 |
| PR debug/47402 |
| * cgraph.h (compute_inline_parameters): Return void. |
| * ipa-inline.c (compute_inline_parameters): Adjust. |
| |
| 2011-02-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47106 |
| PR debug/47402 |
| * tree-inline.h (estimated_stack_frame_size): Take cgraph node |
| rather than decl. |
| * cfgexpand.c (estimated_stack_frame_size): Likewise. |
| * ipa-inline.c (compute_inline_parameters): Adjust. |
| |
| 2011-02-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47106 |
| PR debug/47402 |
| * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument. |
| Adjust all users. Pass FN to... |
| * tree-flow-inline.h (first_referenced_var): ... this. Add |
| fn argument. |
| * ipa-struct-reorg.c: Adjust. |
| * tree-dfa.c: Adjust. |
| * tree-into-ssa.c: Adjust. |
| * tree-sra.c: Adjust. |
| * tree-ssa-alias.c: Adjust. |
| * tree-ssa-live.c: Adjust. |
| * tree-ssa.c: Adjust. |
| * tree-ssanames.c: Adjust. |
| * tree-tailcall.c: Adjust. |
| |
| 2011-02-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47106 |
| PR debug/47402 |
| * tree-flow.h (referenced_var_lookup): Add fn parameter. |
| Adjust all callers. |
| * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun. |
| * tree-flow-inline.h: Adjust. |
| * gimple-pretty-print.c: Adjust. |
| * tree-into-ssa.c: Adjust. |
| * tree-ssa.c: Adjust. |
| * cfgexpand.c: Adjust. |
| |
| 2011-02-15 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. |
| (EXTRA_CONSTRAINT): Delete. |
| * config/iq2000/constraints.md: New file. |
| * config/iq2000/iq2000.md: Include it. |
| (define_insn ""): Delete. |
| (movsi_internal2, movhi_internal2, movqi_internal2): Delete |
| unsupported constraint letters from patterns. |
| (call_value, call_value_internal1): Likewise. |
| (call_value_multiple_internal1): Likewise. |
| |
| 2011-02-15 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c: Include tm-constrs.h. |
| (struct liw_data): New data structure describing an LIW candidate |
| instruction. |
| (extract_bundle): Use struct liw_data. Allow small integer |
| operands for some instructions. |
| (check_liw_constraints): Use struct liw_data. Remove swapped |
| parameter. Add comments describing the checks. Fix bug when |
| assigning the source of liw1 to the source of liw2. |
| (liw_candidate): Delete. Code moved into extract_bundle. |
| (mn10300_bundle_liw): Use struct liw_data. Check constraints |
| before swapping. |
| * config/mn10300/predicates.md (liw_operand): New predicate. |
| Allows registers and small integer constants. |
| * config/mn10300/constraints.md (O): New constraint. Accetps |
| integers in the range -8 to +7 inclusive. |
| * config/mn10300/mn10300.md (movesi_internal): Add an alternative |
| for moving a small integer into a register. Give this alternative |
| LIW attributes. |
| (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise. |
| (ashlsi3): Likewise, plus give LIW attributes to the alternatives |
| using the J,K,L and M constraints, |
| (liw): Remove SI mode on second operands to allow for HI and QI |
| mode values. |
| (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the |
| instruction. |
| |
| 2011-02-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47743 |
| * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number |
| for a non-type-compatible VN lookup bail out. |
| |
| 2011-02-15 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/fr30/constraints.md: New file. |
| * config/fr30/fr30.md: Include it. |
| * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. |
| (EXTRA_CONSTRAINT): Delete. |
| |
| 2011-02-15 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/frv/constraints.md: New file. |
| * config/frv/predicates.md: Include it. |
| * config/frv/frv.c (reg_class_from_letter): Delete. |
| (frv_option_override): Don't initialize it. |
| * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete. |
| (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete. |
| (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. |
| (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete. |
| (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. |
| (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete. |
| (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete. |
| (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete. |
| (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete. |
| (REG_CLASS_FROM_CONSTRAINT): Delete. |
| |
| 2011-02-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/47581 |
| * config/i386/i386.c (ix86_compute_frame_size): Don't align offset |
| if frame size is 0 in a leaf function. |
| |
| 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR pch/14940 |
| * config/alpha/host-osf.c: New file. |
| * config/alpha/x-osf: New file. |
| * config.host (alpha*-dec-osf*): Use it. |
| |
| 2011-02-14 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. |
| * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove. |
| * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to... |
| (rx_mode_dependent_address_p): ...this. Make static. Change argument |
| type to const_rtx. |
| (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. |
| |
| 2011-02-14 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/stormy16/constraints.md: New file. |
| * config/stormy16/predicates.md (nonimmediate_nonstack_operand): |
| Use satisfies_constraint_Q and satisfies_constraint_R. |
| * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p): |
| Delete. |
| (xstormy16_legitiamte_address_p): Declare. |
| * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. |
| (EXTRA_CONSTRAINT): Delete. |
| * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): |
| Un-staticize. |
| (xstormy16_extra_constraint_p): Delete. |
| |
| 2011-02-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/46494 |
| * loop-unroll.c (split_edge_and_insert): Adjust comment. |
| * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info. |
| (pass_rtl_loop_done): Add TODO_verify_flow. |
| * fwprop.c (pass_rtl_fwprop): Likewise. |
| * modulo-sched.c (pass_sms): Likewise. |
| * tree-ssa-dom.c (pass_dominator): Likewise. |
| * tree-ssa-loop-ch.c (pass_ch): Likewise. |
| * tree-ssa-loop.c (pass_complete_unrolli): Likewise. |
| (pass_tree_loop_done): Likewise. |
| * tree-ssa-pre.c (execute_pre): Likewise. |
| * tree-ssa-reassoc.c (pass_reassoc): Likewise. |
| * tree-ssa-sink.c (pass_sink_code): Likewise. |
| * tree-vrp.c (pass_vrp): Likewise. |
| |
| 2011-02-14 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/v850/constraints.md: New file. |
| * config/v850/v850.md: Include it. |
| * config/v850/predicates.md (reg_or_0_operand): Use |
| satisfies_constraint_G. |
| (special_symbolref_operand): Use satisfies_constraint_K. |
| * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p. |
| (GO_IF_LEGITIMATE_ADDRESS): Likewise. |
| (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete. |
| (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete. |
| (EXTRA_CONSTRAINT): Delete. |
| (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint. |
| (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise. |
| (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise. |
| |
| 2011-02-14 Anatoly Sokolov <aesok@post.ru> |
| |
| PR target/47696 |
| * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device |
| description. |
| |
| 2011-02-14 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/mcore/constraints.md: New file. |
| * config/mcore/mcore.md: Include it. |
| * config/mcore/mcore.c (reg_class_from_letter): Delete. |
| * config/mcore/mcore.h (reg_class_from_letter): Delete. |
| (REG_CLASS_FROM_LETTER): Delete. |
| (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use |
| insn_const_int_ok_for_constraint. |
| (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise. |
| (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise. |
| (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. |
| (EXTRA_CONSTRAINT): Delete. |
| |
| 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR ada/41929 |
| * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h> |
| (IS_SIGHANDLER): Define. |
| (sparc64_is_sighandler): New function, split off from |
| sparc64_fallback_frame_state. |
| (sparc_is_sighandler): New function, split off from |
| sparc_fallback_frame_state. |
| (sparc64_fallback_frame_state): Merge with ... |
| (sparc_fallback_frame_state): ... this into ... |
| (MD_FALLBACK_FRAME_STATE_FOR): ... this. |
| Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save. |
| Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk |
| stack instead of hardcoded offsets. |
| |
| 2011-02-14 Andriy Gapon <avg@freebsd.org> |
| |
| PR target/45808 |
| * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case. |
| |
| 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * configure: Regenerate. |
| |
| 2011-02-12 Joseph Myers <joseph@codesourcery.com> |
| |
| PR driver/45731 |
| * gcc.c (asm_options): Correct spec matching --target-help. |
| |
| 2011-02-12 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-cfg.c (verify_gimple_call): Return true upon invalid argument |
| to gimple call error. |
| |
| 2011-02-12 Mike Stump <mikestump@comcast.net> |
| |
| * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize |
| comments in backslash regions. |
| |
| 2011-02-12 Mike Stump <mikestump@comcast.net> |
| Jakub Jelinek <jakub@redhat.com> |
| Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/47324 |
| * dwarf2out.c (output_cfa_loc): When required, apply the |
| DWARF2_FRAME_REG_OUT macro to adjust register numbers. |
| (output_loc_sequence): Likewise. |
| (output_loc_operands_raw): Likewise. |
| (output_loc_sequence_raw): Likewise. |
| (output_cfa_loc): Likewise. |
| (output_loc_list): Suppress register number adjustment when |
| calling output_loc_sequence() |
| (output_die): Likewise. |
| |
| 2011-02-12 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): |
| Remove macros. |
| * config/xtensa/xtensa.c (xtensa_register_move_cost, |
| xtensa_memory_move_cost): New functions. |
| (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define. |
| |
| 2011-02-12 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR lto/47225 |
| * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la |
| in the current directory. |
| * configure: Rebuilt. |
| |
| 2011-02-12 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin.c (darwin_override_options): Add a hunk missed |
| from the commit of r168571. Trim comment line lengths and |
| correct indents of the preceding block. |
| |
| 2011-02-12 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * gcc.c (driver_handle_option): Concatenate the argument to -F with |
| the switch. |
| |
| 2011-02-11 Joseph Myers <joseph@codesourcery.com> |
| |
| * common.opt (nostartfiles): New Driver option. |
| |
| 2011-02-11 Xinliang David Li <davidxl@google.com> |
| |
| PR tree-optimization/47707 |
| * tree-chrec.c (convert_affine_scev): Keep type precision. |
| |
| 2011-02-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/47420 |
| * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX. |
| |
| 2011-02-11 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR rtl-optimization/47614 |
| * rtl.h (check_for_inc_dec): Declare. |
| * dse.c (check_for_inc_dec): Externalize... |
| * postreload.c (reload_cse_simplify): ...use it before deleting stmt. |
| (reload_cse_simplify_operands): Don't simplify opnds with side effects. |
| |
| 2011-02-11 Joseph Myers <joseph@codesourcery.com> |
| |
| PR driver/47678 |
| * gcc.c (main): Do not compile inputs if there were errors in |
| option handling. |
| * opts-common.c (read_cmdline_option): Check for wrong language |
| after other error checks. |
| |
| 2011-02-11 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * cgraph.c: Fix comment typos. |
| * cgraph.h: Likewise. |
| * cgraphunit.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-inline.c: Likewise. |
| * ipa-prop.c: Likewise. |
| * ipa-pure-const.c: Likewise. |
| * ipa-ref.c: Likewise. |
| * ipa-reference.c: Likewise. |
| |
| 2011-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/47684 |
| * tree-predcom.c (single_nonlooparound_use): Ignore debug uses. |
| |
| 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR testsuite/47400 |
| * doc/sourcebuild.texi (Require Support): Document |
| dg-require-ascii-locale. |
| |
| 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * doc/lto.texi (Write summary): Fix missing parentheses. |
| |
| 2011-02-10 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/m32c.c (m32c_option_override): Disable |
| -fcombine-stack-adjustments until flag value tracking and compare |
| optimization can be rewritten. |
| |
| 2011-02-10 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to |
| PROCESSOR_POWER7. |
| (PROCESSOR_DEFAULT64): Likewise. |
| |
| 2011-02-10 Richard Henderson <rth@redhat.com> |
| |
| * config/rx/predicates.md (rx_zs_comparison_operator): Revert |
| change from 2011-02-03. |
| * config/rx/rx.c (flags_from_code): Likewise. |
| (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag |
| is valid, n/pz otherwise. |
| (rx_select_cc_mode): Return CCmode if Y is not zero. |
| |
| 2011-02-10 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8. |
| |
| 2011-02-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47677 |
| * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps. |
| |
| 2011-02-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/47665 |
| * combine.c (make_compound_operation): Only change shifts into |
| multiplication for SCALAR_INT_MODE_P. |
| |
| 2011-02-10 Jie Zhang <jie@codesourcery.com> |
| |
| PR testsuite/47622 |
| Revert |
| 2011-02-05 Jie Zhang <jie@codesourcery.com> |
| PR debug/42631 |
| * web.c (entry_register): Don't clobber the number of the |
| first uninitialized reference in used[]. |
| |
| 2011-02-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47664 |
| * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit |
| all edges again. |
| |
| 2011-02-09 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/46481 |
| PR target/47032 |
| * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to |
| PROCESSOR_POWER7. |
| (PROCESSOR_DEFAULT64): Same. |
| (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete. |
| |
| 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define. |
| |
| 2011-02-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/45505 |
| * tree-sra.c (struct access): New flags grp_scalar_read and |
| grp_scalar_write. Changed description of assignment read and write |
| flags. |
| (dump_access): Dump new flags, reorder all of them. |
| (sort_and_splice_var_accesses): Set the new flag accordingly, use them |
| to detect multiple scalar reads. |
| (analyze_access_subtree): Use the new scalar read write flags instead |
| of the old flags. Adjusted comments. |
| |
| 2011-02-08 DJ Delorie <dj@redhat.com> |
| |
| PR target/47548 |
| * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim |
| patterns. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m68k/uclinux.opt: New. |
| * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/cris/elf.opt (sim): New Driver option. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/xtensa/elf.opt: New. |
| * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/vax/elf.opt: New. |
| * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/aix64.opt (posix, pthread): New Driver options. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/gnu-user.opt: New. |
| * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | |
| *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu, |
| *-*-uclinux*): Use gnu-user.opt. |
| |
| 2011-02-08 Thomas Schwinge <thomas@schwinge.name> |
| |
| * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option. |
| * config/i386/gnu.h (CPP_SPEC): Likewise. |
| |
| 2011-02-08 Ian Lance Taylor <iant@google.com> |
| |
| * common.opt (fcx-limited-range): Add SetByCombined flag. |
| (ffinite-math-only, fmath-errno, frounding-math): Likewise. |
| (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise. |
| (fassociative-math, freciprocal-math): Likewise. |
| (funsafe-math-optimizations): Likewise. |
| * opth-gen.awk: Handle SetByCombined. |
| * optc-gen.awk: Likewise. |
| * opts.c (set_fast_math_flags): Don't override flag if set by frontend. |
| (set_unsafe_math_optimizations_flags): Likewise. |
| * doc/options.texi (Option properties): Document SetByCombined. |
| |
| 2011-02-08 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*, |
| i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe, |
| m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*, |
| m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*, |
| sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete. |
| |
| 2011-02-08 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/46834 |
| PR tree-optimization/46994 |
| PR tree-optimization/46995 |
| * graphite-sese-to-poly.c (used_outside_reduction): New. |
| (detect_commutative_reduction): Call used_outside_reduction. |
| (rewrite_commutative_reductions_out_of_ssa_close_phi): Call |
| translate_scalar_reduction_to_array only when at least one |
| loop-phi/close-phi tuple has been detected. |
| |
| 2011-02-08 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47639 |
| * tree-vect-generic.c (expand_vector_operations_1): Update |
| stmts here ... |
| (expand_vector_operations): ... not here. Cleanup EH info |
| and the CFG if required. |
| |
| 2011-02-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47641 |
| * tree-ssa.c (execute_update_addresses_taken): For asm outputs |
| require type compatibility. |
| |
| 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * gimple-low.c (lower_function_body): Don't remove the location of |
| the return statement here. |
| (lower_gimple_return): Do it here instead but only if the return |
| statement is actually used twice. |
| |
| 2011-02-08 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47632 |
| * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove |
| unused up_to_stmt parameter, return whether cfg-cleanup is |
| necessary, remove EH info properly. |
| (forward_propagate_into_gimple_cond): Adjust caller. |
| (forward_propagate_into_cond): Likewise. |
| (forward_propagate_comparison): Likewise. |
| (tree_ssa_forward_propagate_single_use_vars): Make |
| forward_propagate_comparison case similar to the two others. |
| |
| 2011-02-08 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.opt (mliw): New command line option. |
| * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec. |
| (liw_bundling): New automaton. |
| (liw): New attribute. |
| (liw_op): New attribute. |
| (liw_op1, liw_op2, liw_both, liw_either): New reservations. |
| (movsi_internal): Add LIW attributes. |
| (andsi3): Likewise. |
| (iorsi3): Likewise. |
| (xorsi3): Likewise. |
| (addsi3): Separate register and immediate alternatives. |
| Add LIW attributes. |
| (subsi3): Likewise. |
| (cmpsi): Likewise. |
| (aslsi3): Likewise. |
| (lshrsi3): Likewise. |
| (ashrsi3): Likewise. |
| (liw): New pattern. |
| * config/mn10300/mn10300.c (liw_op_names): New |
| (mn10300_print_operand): Handle 'W' operand descriptor. |
| (extract_bundle): New function. |
| (check_liw_constraints): New function. |
| (liw_candidate): New function. |
| (mn10300_bundle_liw): New function. |
| (mn10300_reorg): New function. |
| (TARGET_MACHINE_DEPENDENT_REORG): Define. |
| (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW. |
| * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define |
| __LIW__ or __NO_LIW__. |
| * doc/invoke.texi: Describe the -mliw command line option. |
| |
| 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts. |
| * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock, |
| pthread_mutex_unlock): Remove. |
| * config/pa/t-pa-hpux11: Remove rules to build pthread stubs. |
| * config/pa/t-pa64: Likewise. |
| * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against |
| shared libc if not linking against libpthread. |
| * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. |
| |
| 2011-02-07 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR target/47558 |
| * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first |
| on 10.6 and later to ensure that we always use the unwinder from |
| the system. Only add -no_compact_unwind when tarteting darwin |
| 10.6 or later. |
| |
| 2011-02-07 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/46997 |
| * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN. |
| (vec_interleave_lowv2sf): Ditto. |
| (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check. |
| (vec_extract_oddv2sf): Ditto. |
| |
| 2011-02-07 Mike Stump <mikestump@comcast.net> |
| |
| PR target/42333 |
| Add __ieee_divdc3 entry point. |
| * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3 |
| entry point. |
| (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins. |
| * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise. |
| * config/darwin.c (darwin_rename_builtins): Add. |
| * config/darwin-protos.h (darwin_rename_builtins): Add. |
| |
| 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47636 |
| * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro |
| for the condition. |
| |
| 2011-02-07 Mike Stump <mikestump@comcast.net> |
| |
| * config/darwin.opt (mmacosx-version-min): Update default OS version. |
| |
| 2011-02-07 Denis Chertykov <chertykov@gmail.com> |
| |
| PR target/47534 |
| * config/avr/libgcc.S (exit): Move .endfunc |
| |
| 2011-02-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47615 |
| * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument. |
| * tree-ssa-sccvn.c (default_vn_walk_kind): New global. |
| (run_scc_vn): Initialize it. |
| (visit_reference_op_load): Use it. |
| * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE. |
| |
| 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_init_libfuncs): Install SImode and |
| DImode trapping arithmetic libfuncs. |
| |
| 2011-02-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47621 |
| * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from |
| two duplicates ... |
| (execute_update_addresses_taken): ... here. Make it more |
| conservative in what we accept. |
| |
| 2011-02-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/freebsd.h (ASM_SPEC): Define. |
| * config/sparc/vxworks.h (ASM_SPEC): Define. |
| |
| 2011-02-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}. |
| |
| 2011-02-06 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * doc/invoke.texi: Remove reference to compiler internals from |
| user documentation. |
| |
| * reg-notes.def: Remove REG_VALUE_PROFILE. |
| * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE. |
| |
| 2011-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/47610 |
| * varasm.c (default_section_type_flags): If decl is NULL, |
| and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit. |
| |
| 2011-02-05 Jie Zhang <jie@codesourcery.com> |
| |
| PR debug/42631 |
| * web.c (entry_register): Don't clobber the number of the |
| first uninitialized reference in used[]. |
| |
| 2011-02-04 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/46194 |
| * tree-data-ref.c (analyze_miv_subscript): Remove comment. |
| (build_classic_dist_vector_1): Do not represent classic distance |
| vectors when the access functions are variating in different loops. |
| |
| 2011-02-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/iris6.opt: New. |
| * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt. |
| |
| 2011-02-04 Richard Henderson <rth@redhat.com> |
| Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/46997 |
| * config/ia64/predicates.md (mux1_brcst_element): New. |
| * config/ia64/ia64-protos.h (ia64_unpack_assemble): New. |
| * config/ia64/ia64.c (ia64_unpack_assemble): New. |
| (ia64_unpack_sign): New. |
| (ia64_expand_unpack): Rewrite using new routines. |
| (ia64_expand_widen_sum): Ditto. |
| (ia64_expand_dot_prod_v8qi): Ditto. |
| * config/ia64/vect.md (mulv8qi3): Rewrite to use new |
| routines, add endian check. |
| (pmpy2_even): Rename from pmpy2_r, add endian check. |
| (pmpy2_odd): Rename from pmpy2_l, add endian check. |
| (vec_widen_smult_lo_v4hi): Rewrite using new routines. |
| (vec_widen_smult_hi_v4hi): Ditto. |
| (vec_widen_umult_lo_v4hi): Ditto. |
| (vec_widen_umult_hi_v4hi): Ditto. |
| (mulv2si3): Change endian checks. |
| (sdot_prodv4hi): Rewrite with new calls. |
| (udot_prodv4hi): New. |
| (vec_pack_ssat_v4hi): Add endian check. |
| (vec_pack_usat_v4hi): Ditto. |
| (vec_pack_ssat_v2si): Ditto. |
| (max1_even): Rename from max1_r, add endian check. |
| (max1_odd): Rename from max1_l, add endian check. |
| (*mux1_rev): Format change. |
| (*mux1_mix): Ditto. |
| (*mux1_shuf): Ditto. |
| (*mux1_alt): Ditto. |
| (*mux1_brcst_v8qi): Use new predicate. |
| (vec_extract_evenv8qi): Remove endian check. |
| (vec_extract_oddv8qi): Ditto. |
| (vec_interleave_lowv4hi): Format change. |
| (vec_interleave_highv4hi): Ditto. |
| (mix2_even): Rename from mix2_r, add endian check. |
| (mix2_odd): Rename from mux2_l, add endian check. |
| (*mux2): Fix mask setting for TARGET_BIG_ENDIAN. |
| (vec_extract_evenodd_helper): Format change. |
| (vec_extract_evenv4hi): Remove endian check. |
| (vec_extract_oddv4hi): Remove endian check. |
| (vec_interleave_lowv2si): Format change. |
| (vec_interleave_highv2si): Format change. |
| (vec_initv2si): Remove endian check. |
| (vecinit_v2si): Add endian check. |
| (reduc_splus_v2sf): Add endian check. |
| (reduc_smax_v2sf): Ditto. |
| (reduc_smin_v2sf): Ditto. |
| (vec_initv2sf): Remove endian check. |
| (fpack): Add endian check. |
| (fswap): Add endian check. |
| (vec_interleave_highv2sf): Add endian check. |
| (vec_interleave_lowv2sf): Add endian check. |
| (fmix_lr): Add endian check. |
| (vec_setv2sf): Format change. |
| (*vec_extractv2sf_0_be): Use shift to extract operand. |
| (*vec_extractv2sf_1_be): New. |
| (vec_pack_trunc_v4hi): Add endian check. |
| (vec_pack_trunc_v2si): Format change. |
| |
| 2011-02-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR inline-asm/23200 |
| * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't |
| do bb, locus and block comparison and disallow loads if it is not set. |
| (stmt_is_replaceable_p): New function. |
| (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p |
| callers. |
| * expr.c (expand_expr_real_1) <case SSA_NAME>: If |
| get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use |
| SSA_NAME_DEF_STMT. |
| * tree-flow.h (stmt_is_replaceable_p): New prototype. |
| |
| 2011-02-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/xilinx.opt: New. |
| * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt. |
| |
| 2011-02-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/mips.opt (EB, EL, noasmopt): New Driver options. |
| |
| 2011-02-03 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS, |
| PREFERRED_OUTPUT_RELOAD_CLASS): Remove. |
| * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class, |
| secondary_reload_info, xtensa_secondary_reload): Remove. |
| * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS, |
| TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define. |
| (xtensa_preferred_reload_class): Make static. Change return and |
| 'rclass' argument type to reg_class_t. Remove 'isoutput' argument. |
| Use CONST_DOUBLE_P predicate. |
| (xtensa_preferred_output_reload_class): New function. |
| (xtensa_secondary_reload): Make static. |
| |
| 2011-02-03 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/microblaze/microblaze.opt (Zxl-mode-bootstrap, |
| Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel, |
| Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options. |
| |
| 2011-02-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/31490 |
| * output.h (SECTION_RELRO): Define. |
| (SECTION_MACH_DEP): Adjust. |
| (get_variable_section): New prototype. |
| * varpool.c (varpool_finalize_named_section_flags): New function. |
| (varpool_assemble_pending_decls): Call it. |
| * cgraph.h (varpool_finalize_named_section_flags): New prototype. |
| * cgraphunit.c (cgraph_output_in_order): Call |
| varpool_finalize_named_section_flags. |
| * varasm.c (get_section): Allow section flags conflicts between |
| relro and read-only sections if the section hasn't been declared yet. |
| Set SECTION_OVERRIDE after diagnosing section type conflict. |
| (get_variable_section): No longer static. |
| (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for |
| readonly sections that need relocations. |
| (decl_readonly_section_1): New function. |
| (decl_readonly_section): Use it. |
| |
| Revert: |
| 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com> |
| Steve Ellcey <sje@cup.hp.com> |
| |
| PR middle-end/31490 |
| * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask |
| if section attribute used. |
| |
| 2011-02-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/darwin.h (SECTION_NO_ANCHOR): Remove. |
| * config/darwin.c (SECTION_NO_ANCHOR): Define. |
| (darwin_init_sections): Remove assertion. |
| |
| 2011-02-03 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/predicates.md (rx_zs_comparison_operator): Remove |
| lt and ge. |
| * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode. |
| * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes |
| instead of "n" and "pz". |
| (flags_from_code): LT and GE tests need CC_FLAG_O as well as |
| CC_FLAG_S. |
| |
| 2011-02-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/47312 |
| * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand |
| fma, expand FMA_EXPR as fma{,f,l} call. |
| |
| PR lto/47274 |
| * lto-streamer-out.c (write_symbol): When writing kind and visibility, |
| copy them into a unsigned char variable and pass address of it to |
| lto_output_data_stream. |
| |
| PR target/47564 |
| * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx |
| around backend_init_target and lang_dependent_init_target calls. |
| * cgraphunit.c (cgraph_debug_gimple_stmt): New function. |
| (verify_cgraph_node): Don't call set_cfun here. Use |
| cgraph_debug_gimple_stmt instead of debug_gimple_stmt. |
| Set error_found for incorrectly represented calls to thunks. |
| |
| 2011-02-03 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/43092 |
| PR rtl-optimization/43494 |
| * rtl.h (for_each_inc_dec_fn): New type. |
| (for_each_inc_dec): Declare. |
| * rtlanal.c (struct for_each_inc_dec_ops): New type. |
| (for_each_inc_dec_find_inc_dec): New fn. |
| (for_each_inc_dec_find_mem): New fn. |
| (for_each_inc_dec): New fn. |
| * dse.c (struct insn_size): Remove. |
| (replace_inc_dec, replace_inc_dec_mem): Remove. |
| (emit_inc_dec_insn_before): New fn. |
| (check_for_inc_dec): Use it, along with for_each_inc_dec. |
| (canon_address): Pass mem modes to cselib_lookup. |
| * cselib.h (cselib_lookup): Add memmode argument. Adjust callers. |
| (cselib_lookup_from_insn): Likewise. |
| (cselib_subst_to_values): Likewise. |
| * cselib.c (find_slot_memmode): New var. |
| (cselib_find_slot): New fn. Use it instead of |
| htab_find_slot_with_hash everywhere. |
| (entry_and_rtx_equal_p): Use find_slot_memmode. |
| (autoinc_split): New fn. |
| (rtx_equal_for_cselib_p): Rename and implement in terms of... |
| (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on. |
| Deal with autoinc. Special-case recursion into MEMs. |
| (cselib_hash_rtx): Likewise. |
| (cselib_lookup_mem): Infer pmode from address mode. Distinguish |
| address and MEM modes. |
| (cselib_subst_to_values): Add memmode, pass it on. |
| Deal with autoinc. |
| (cselib_lookup): Add memmode argument, pass it on. |
| (cselib_lookup_from_insn): Add memmode. |
| (cselib_invalidate_rtx): Discard obsolete push_operand handling. |
| (struct cselib_record_autoinc_data): New. |
| (cselib_record_autoinc_cb): New fn. |
| (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM |
| mode to cselib_lookup. Reset autoinced REGs here instead of... |
| (cselib_process_insn): ... here. |
| * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode |
| to cselib_lookup. |
| (add_uses): Likewise, also to cselib_subst_to_values. |
| (add_stores): Likewise. |
| * sched-deps.c (add_insn_mem_dependence): Pass mode to |
| cselib_subst_to_values. |
| (sched_analyze_1, sched_analyze_2): Likewise. Adjusted. |
| * gcse.c (do_local_cprop): Adjusted. |
| * postreload.c (reload_cse_simplify_set): Adjusted. |
| (reload_cse_simplify_operands): Adjusted. |
| * sel-sched-dump (debug_mem_addr_value): Pass mode. |
| |
| 2011-02-03 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR tree-optimization/45122 |
| * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make |
| unsafe assumptions when there's more than one loop exit. |
| |
| 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47272 |
| * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): |
| Document using vector double with the load/store builtins, and |
| that the load/store builtins always use Altivec instructions. |
| |
| * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns |
| to use altivec memory instructions, even on VSX. |
| (vector_altivec_store_<mode>): Ditto. |
| |
| * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New |
| function. |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| V2DF, V2DI support to load/store overloaded builtins. |
| |
| * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add |
| altivec load/store builtins for V2DF/V2DI types. |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't |
| set avoid indexed addresses on power6 if -maltivec. |
| (altivec_expand_ld_builtin): Add V2DF, V2DI support, use |
| vector_altivec_load/vector_altivec_store builtins. |
| (altivec_expand_st_builtin): Ditto. |
| (altivec_expand_builtin): Add VSX memory builtins. |
| (rs6000_init_builtins): Add V2DI types to internal types. |
| (altivec_init_builtins): Add support for V2DF/V2DI altivec |
| load/store builtins. |
| (rs6000_address_for_altivec): Insure memory address is appropriate |
| for Altivec. |
| |
| * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for |
| vec_vsx_ld and vec_vsx_st. |
| (vsx_store_<mode>): Ditto. |
| |
| * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type |
| variables to hold long long types for VSX vector memory builtins. |
| (RS6000_BTI_unsigned_long_long): Ditto. |
| (long_long_integer_type_internal_node): Ditti. |
| (long_long_unsigned_type_internal_node): Ditti. |
| |
| * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC. |
| (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator. |
| (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator. |
| |
| * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin |
| short cuts. |
| (vec_vsx_st): Ditto. |
| |
| 2011-02-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/pa/pa-hpux10.opt: New. |
| * config/hpux11.opt (pthread): New Driver option. |
| * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options. |
| * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt. |
| |
| 2011-02-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/ia64/vms.opt: New. |
| * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt. |
| |
| 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47580 |
| * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use |
| gpc_reg_operand instead of vsx_register_operand to match rs6000.md |
| generator functions. |
| (vsx_floatuns<VSi><mode>2): Ditto. |
| (vsx_fix_trunc<mode><VSi>2): Ditto. |
| (vsx_fixuns_trunc<mode><VSi>2): Ditto. |
| |
| 2011-02-02 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/djgpp.opt (posix): New Driver option. |
| |
| 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*): |
| Move to the unsupported targets list. |
| |
| 2011-02-02 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR rtl-optimization/47525 |
| * df-scan.c: Update copyright years. |
| (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE |
| and non-clobber DF_REF_REG_DEF for calls to const and pure functions. |
| |
| 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sysv4.h (TARGET_VERSION): Remove. |
| (SUBTARGET_RETURN_IN_MEMORY): Remove. |
| (ASM_OUTPUT_ASCII): Remove. |
| * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef. |
| |
| 2011-02-02 Jeff Law <law@redhat.com> |
| |
| PR middle-end/47543 |
| * reload.c (find_reloads_address): Handle reg+d address where both |
| components are invalid by reloading the entire address. |
| |
| 2011-02-02 Sebastian Pop <sebastian.pop@amd.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/40979 |
| PR bootstrap/47044 |
| * passes.c (init_optimization_passes): After LIM call copy_prop |
| and DCE to clean up. |
| * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func. |
| |
| 2011-02-02 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/47576 |
| PR tree-optimization/47555 |
| * doc/invoke.texi (scev-max-expr-complexity): Documented. |
| * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. |
| (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared. |
| * tree-scalar-evolution.c (follow_ssa_edge): Use |
| PARAM_SCEV_MAX_EXPR_COMPLEXITY. |
| |
| 2011-02-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47566 |
| * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs. |
| |
| 2011-02-02 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47106 |
| PR debug/47402 |
| * tree-inline.c (declare_return_variable): Remove unused caller |
| variable. |
| |
| PR debug/47106 |
| PR debug/47402 |
| * tree-flow-inline.h (clear_is_used, is_used_p): New. |
| * cfgexpand.c (account_used_vars_for_block): Use them. |
| * tree-nrv.c (tree_nrv): Likewise. |
| * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. |
| (dump_scope_block): Likewise. |
| (remove_unused_locals): Likewise. |
| |
| PR debug/47106 |
| PR debug/47402 |
| * tree-inline.c (declare_return_variable): Add result decl to |
| local decls only once. |
| * gimple-low.c (record_vars_into): Mark newly-created variables |
| as referenced. |
| |
| 2011-02-02 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47498 |
| PR debug/47501 |
| PR debug/45136 |
| PR debug/45130 |
| * haifa-sched.c (get_ebb_head_tail): Move notes across boundary |
| debug insns. |
| (no_real_insns_p, schedule_block, set_priorities): Drop special |
| treatment of boundary debug insns. |
| * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. |
| * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns. |
| * sched-int.h (DEBUG_INSN_SCHED_P): Remove. |
| (BOUNDARY_DEBUG_INSN_P): Likewise. |
| (SCHEDULE_DEBUG_INSN_P): Likewise. |
| * sched-rgn.c (init_ready_list): Drop special treatment of |
| boundary debug insns. |
| * final.c (rest_of_clean_state): Clear notes' BB. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/openbsd.opt (assert=): New Driver option. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/nto.opt: New. |
| * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/netware.opt: New. |
| * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/interix.opt (posix): New Driver option. |
| |
| 2011-02-01 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition. |
| |
| * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg |
| class for A0/A1. |
| |
| 2011-02-01 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/47561 |
| * toplev.c (process_options): Print the Graphite flags. Add |
| flag_loop_flatten to the list of options requiring Graphite. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/cygming.opt (posix): New Driver option. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/vxworks.opt: New. |
| * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt. |
| |
| 2011-02-01 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/elf.opt: New. |
| * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*, |
| alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt. |
| |
| 2011-02-01 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47559 |
| * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform |
| store-motion on references that can throw. |
| |
| 2011-02-01 Bernd Schmidt <bernds@codesourcery.com> |
| |
| * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB. |
| * tree-pass.h (TDF_CSELIB): New macro. |
| * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1, |
| cselib_lookup): Check for it rather than for TDF_DETAILS. |
| |
| 2011-02-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/47547 |
| * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output |
| is HOST_BIT_BUCKET. |
| |
| * opts.c (finish_options): Don't add x_aux_base_name if it is |
| HOST_BIT_BUCKET. |
| |
| 2011-02-01 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47555 |
| Revert |
| 2010-07-15 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. |
| |
| 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org> |
| |
| PR gcc/46692 |
| * config/lm32/t-lm32: Add multilib for all CPU options. |
| |
| 2011-02-01 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47541 |
| * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make |
| sure to have a field at offset zero. |
| |
| 2011-01-31 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arc/arc.opt (EB, EL): New Driver options. |
| |
| 2011-01-31 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/alpha/osf5.opt: New. |
| * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt. |
| |
| 2011-01-31 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/vms/vms.opt (map, mvms-return-codes): New Driver options. |
| |
| 2011-01-31 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * common.opt (ftree-loop-linear): Use Alias to make it an alias of |
| -floop-interchange. |
| * invoke.texi (-ftree-loop-linear): Make it clear that this flag |
| is an alias of -floop-interchange and that it requires the |
| Graphite infrastructure. |
| * tree-ssa-loop.c (gate_graphite_transforms): Do not set |
| flag_loop_interchange based on the value of flag_tree_loop_linear. |
| |
| 2011-01-31 Jakub Jelinek <jakub@redhat.com> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47538 |
| * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use |
| type instead of r1type, except for comparisons. For right |
| shifts and comparisons punt if there are mismatches in |
| sizetype vs. non-sizetype types. |
| |
| 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document |
| avx_runtime. |
| |
| 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld |
| version number. |
| * configure: Regenerate. |
| |
| 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_static_option): Define. |
| (gcc_cv_ld_dynamic_option): Define. |
| (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive |
| instead. |
| (HAVE_LD_STATIC_DYNAMIC): Update message. |
| (LD_STATIC_OPTION): Define. |
| (LD_DYNAMIC_OPTION): Define. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS && |
| HAVE_LD_STATIC_DYNAMIC]: Use them. |
| |
| 2011-01-31 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered |
| registers inside interrupt handlers if the handler is not a leaf |
| function. |
| |
| 2011-01-31 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for |
| reg_renumber returning an INVALID_REGNUM. |
| |
| 2011-01-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR libgcj/44341 |
| * doc/install.texi: Document host options discarded when cross |
| configuring target libraries. |
| |
| 2011-01-31 Alexandre Oliva <aoliva@redhat.com> |
| |
| Reverted: |
| 2011-01-25 Alexandre Oliva <aoliva@redhat.com> |
| PR debug/45136 |
| PR debug/45130 |
| * haifa-sched.c (get_ebb_head_tail): Move notes across boundary |
| debug insns. |
| (no_real_insns_p, schedule_block, set_priorities): Drop special |
| treatment of boundary debug insns. |
| * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. |
| * sched-ebb.c (schedule_ebbs): Don't skip debug insns. |
| * sched-int.h (DEBUG_INSN_SCHED_P): Remove. |
| (BOUNDARY_DEBUG_INSN_P): Likewise. |
| (SCHEDULE_DEBUG_INSN_P): Likewise. |
| * sched-rgn.c (init_ready_list): Drop special treatment of |
| boundary debug insns. |
| * final.c (rest_of_clean-state): Clear notes' BB. |
| |
| 2011-01-31 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (print_operand): Rearrange addends in |
| toc relative expressions as we do in print_operand_address. |
| |
| 2011-01-30 Kazu Hirata <kazu@codesourcery.com> |
| |
| * doc/extend.texi: Follow spelling conventions. |
| * doc/invoke.texi: Fix a typo. |
| |
| 2011-01-30 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/hpux11.opt: New. |
| * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*, |
| ia64*-*-hpux*): Use hpux11.opt. |
| |
| 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net> |
| |
| * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules |
| to tmake_file. |
| |
| 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (hppa-hp-hpux10): Remove references to HP |
| support sites. |
| |
| 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Binaries): Remove outdated reference for |
| Motorola 68HC11/68HC12 downloads. |
| |
| 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Thread-Local): Adjust reference to Ulrich |
| Drepper's paper. |
| |
| 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| PR bootstrap/47147 |
| * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as |
| used by NetBSD. |
| |
| 2011-01-28 Ahmad Sharif <asharif@google.com> |
| |
| * value-prof.c (check_counter): Corrected error message. |
| |
| 2011-01-29 Jie Zhang <jie@codesourcery.com> |
| |
| * config/arm/arm.c (arm_legitimize_reload_address): New. |
| * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use |
| arm_legitimize_reload_address. |
| * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare. |
| |
| 2011-01-28 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_define): Ignore macros whose definitions include |
| two adjacent operands. |
| |
| 2011-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/42894 |
| * varasm.c (force_const_mem): Store copy of x in desc->constant |
| instead of x itself. |
| * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst |
| itself into REG_EQUAL note. |
| |
| 2011-01-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/freebsd.opt (posix, rdynamic): New Driver options. |
| |
| 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports |
| -Bstatic/-Bdynamic. |
| * configure: Regenerate. |
| |
| 2011-01-27 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile. |
| * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile. |
| |
| 2011-01-27 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove. |
| * config/s390/s390-protos.h (s390_preferred_reload_class): Remove. |
| * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define. |
| (s390_preferred_reload_class): Make static. Change return and |
| 'rclass' argument type to reg_class_t. |
| |
| 2011-01-27 Jan Hubicka <jh@suse.cz> |
| |
| PR middle-end/46949 |
| * cgraphunit.c (process_common_attributes): Fix use of remove_attribute. |
| (process_function_and_variable_attributes): Check defined weakrefs. |
| |
| 2011-01-27 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/47228 |
| * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of |
| build_ref_for_offset. |
| |
| 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu-elf.h (ASM_SPEC): Remove. |
| |
| 2011-01-26 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR rtl-optimization/46856 |
| * postreload.c (reload_combine_recognize_const_pattern): Do not |
| separate cc0 setter and user on cc0 targets. |
| |
| 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| PR c/43082 |
| * c-typeck.c (c_objc_common_truthvalue_conversion): If we are |
| passed a VOID_TYPE expression, immediately emit an error and |
| return error_mark_node. |
| |
| 2011-01-26 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/47464 |
| * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p |
| rather than may_trap_p as needed. |
| |
| 2011-01-26 DJ Delorie <dj@redhat.com> |
| |
| PR rtl-optimization/46878 |
| * combine.c (insn_a_feeds_b): Check for the implicit cc0 |
| setter/user dependency as well. |
| |
| 2011-01-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/44469 |
| * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too |
| after removing trivially dead basic blocks. |
| |
| 2011-01-26 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}. |
| * config/frv/frv.h (LINK_SPEC): Likewise. |
| * config/i386/netware.h (LINK_SPEC): Likewise. |
| * config/m68k/linux.h (ASM_SPEC): Likewise. |
| * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise. |
| * config/rs6000/sysv4.h (LINK_SPEC): Likewise. |
| * config/rs6000/vxworks.h (ASM_SPEC): Likewise. |
| * config/sparc/linux.h (ASM_SPEC): Likewise. |
| * config/sparc/linux64.h (ASM_SPEC): Likewise. |
| * config/sparc/sp-elf.h (ASM_SPEC): Likewise. |
| |
| 2011-01-26 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}. |
| * config/frv/frv.h (ASM_SPEC): Likewise. |
| * config/m68k/linux.h (ASM_SPEC): Likewise. |
| * config/pa/pa-linux.h (ASM_SPEC): Likewise. |
| * config/rs6000/linux64.h (ASM_SPEC): Likewise. |
| * config/rs6000/vxworks.h (ASM_SPEC): Likewise. |
| * config/sparc/linux.h (ASM_SPEC): Likewise. |
| * config/sparc/linux64.h (ASM_SPEC): Likewise. |
| * config/sparc/sp-elf.h (ASM_SPEC): Likewise. |
| |
| 2011-01-26 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}. |
| * config/frv/frv.h (LINK_SPEC): Likewise. |
| * config/rs6000/sysv4.h (LINK_SPEC): Likewise. |
| |
| 2011-01-26 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}. |
| * config/frv/frv.h (ASM_SPEC): Likewise. |
| * config/i386/sol2-10.h (ASM_SPEC): Likewise. |
| * config/m68k/linux.h (ASM_SPEC): Likewise. |
| * config/pa/pa-linux.h (ASM_SPEC): Likewise. |
| * config/rs6000/linux64.h (ASM_SPEC32): Likewise. |
| * config/rs6000/vxworks.h (ASM_SPEC): Likewise. |
| * config/sol2.h (ASM_SPEC): Remove comment about -Yd,. |
| * config/sparc/linux.h (ASM_SPEC): Likewise. |
| * config/sparc/linux64.h (ASM_SPEC): Likewise. |
| * config/sparc/sp-elf.h (ASM_SPEC): Likewise. |
| * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}. |
| |
| 2011-01-26 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/46997 |
| * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN. |
| (*mux2): Ditto. |
| (vec_extract_evenodd_help): Ditto. |
| (vec_extract_evenv4hi): Ditto. |
| (vec_extract_oddv4hi): Ditto. |
| (vec_interleave_lowv2si): Ditto. |
| (vec_interleave_highv2si): Ditto. |
| (vec_extract_evenv2si): Ditto. |
| (vec_extract_oddv2si: Ditto. |
| (vec_pack_trunc_v2si): Ditto. |
| |
| 2011-01-22 Jan Hubicka <jh@suse.cz> |
| |
| PR target/47237 |
| * cgraph.h (cgraph_local_info): New field can_change_signature. |
| * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee |
| signature can change. |
| (ipcp_estimate_growth): Call sequence simplify only if calle signature |
| can change. |
| (ipcp_insert_stage): Only compute args_to_skip if signature can change. |
| (cgraph_function_versioning): We can not change signature of functions |
| that don't allow that. |
| * lto-cgraph.c (lto_output_node): Stream local.can_change_signature. |
| (lto_input_node): Likewise. |
| * ipa-inline.c (compute_inline_parameters): Compute |
| local.can_change_signature. |
| * ipa-split.c (visit_bb): Never split away APPLY_ARGS. |
| * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on |
| functions that can not change signature. |
| * i386.c (ix86_function_regparm, ix86_function_sseregparm, |
| init_cumulative_args): Do not use local calling conventions |
| for functions that can not change signature. |
| |
| 2011-01-22 Jan Hubicka <jh@suse.cz> |
| |
| * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk. |
| |
| 2011-01-26 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47190 |
| * cgraphunit.c (process_common_attributes): New function. |
| (process_function_and_variable_attributes): Use it. |
| |
| 2011-01-26 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47423 |
| * cgraphbuild.c (record_eh_tables): Record reference to personality |
| function. |
| |
| 2011-01-26 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/45454 |
| * sel-sched.c (moveup_expr): Don't let debug insns prevent |
| non-debug insns from moving up. |
| |
| 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com> |
| |
| PR target/40125 |
| * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable |
| t-dlldir{,-x} fragment for build and add it to tmake_file. |
| (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. |
| * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc. |
| * config/i386/t-dlldir: New file. |
| (SHLIB_DLLDIR): Define. |
| * config/i386/t-dlldir-x: New file. |
| (SHLIB_DLLDIR): Define. |
| * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set. |
| (SHLIB_INSTALL): Use it. |
| |
| 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR target/47246 |
| * config/arm/arm.c (thumb2_legitimate_index_p): Change the |
| lower bound of the allowed Thumb-2 coprocessor load/store |
| index range to -256. Add explaining comment. |
| |
| 2011-01-25 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_define): Improve lexing of macro expansion to only |
| accept expressions which match Go spec. |
| |
| 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com> |
| |
| PR c++/43601 |
| * tree.c (handle_dll_attribute): Handle it. |
| * doc/extend.texi (@item dllexport): Mention it. |
| * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it. |
| |
| 2011-01-25 Ian Lance Taylor <iant@google.com> |
| |
| PR tree-optimization/26854 |
| * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl. |
| (decl_jump_unsafe): Move higher in file, with no other change. |
| (bind): Set has_jump_unsafe_decl if appropriate. |
| (update_label_decls): Test has_jump_unsafe_decl to avoid loop. |
| (check_earlier_gotos): Likewise. |
| (c_check_switch_jump_warnings): Likewise. |
| |
| 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com> |
| |
| * doc/invoke.texi (Warning Options): Add missing hyphen. |
| (-fprofile-dir): Minor grammatical fixes. |
| (-fbranch-probabilities): Likewise. |
| |
| 2011-01-25 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/45136 |
| PR debug/45130 |
| * haifa-sched.c (get_ebb_head_tail): Move notes across boundary |
| debug insns. |
| (no_real_insns_p, schedule_block, set_priorities): Drop special |
| treatment of boundary debug insns. |
| * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. |
| * sched-ebb.c (schedule_ebbs): Don't skip debug insns. |
| * sched-int.h (DEBUG_INSN_SCHED_P): Remove. |
| (BOUNDARY_DEBUG_INSN_P): Likewise. |
| (SCHEDULE_DEBUG_INSN_P): Likewise. |
| * sched-rgn.c (init_ready_list): Drop special treatment of |
| boundary debug insns. |
| * final.c (rest_of_clean-state): Clear notes' BB. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * Makefile.in (LAMBDA_H): Removed. |
| (TREE_DATA_REF_H): Remove dependence on LAMBDA_H. |
| (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o, |
| lambda-trans.o, and tree-loop-linear.o. |
| (lto-symtab.o): Remove dependence on LAMBDA_H. |
| (tree-loop-linear.o): Remove rule. |
| (lambda-mat.o): Same. |
| (lambda-trans.o): Same. |
| (lambda-code.o): Same. |
| (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H. |
| (tree-vect-slp.o): Same. |
| * hwint.h (gcd): Moved here. |
| (least_common_multiple): Same. |
| * lambda-code.c: Removed. |
| * lambda-mat.c: Removed. |
| * lambda-trans.c: Removed. |
| * lambda.h: Removed. |
| * tree-loop-linear.c: Removed. |
| * lto-symtab.c: Do not include lambda.h. |
| * omega.c (gcd): Removed. |
| * passes.c (init_optimization_passes): Remove pass_linear_transform. |
| * tree-data-ref.c (print_lambda_vector): Moved here. |
| (lambda_vector_copy): Same. |
| (lambda_matrix_copy): Same. |
| (lambda_matrix_id): Same. |
| (lambda_vector_first_nz): Same. |
| (lambda_matrix_row_add): Same. |
| (lambda_matrix_row_exchange): Same. |
| (lambda_vector_mult_const): Same. |
| (lambda_vector_negate): Same. |
| (lambda_matrix_row_negate): Same. |
| (lambda_vector_equal): Same. |
| (lambda_matrix_right_hermite): Same. |
| * tree-data-ref.h: Do not include lambda.h. |
| (lambda_vector): Moved here. |
| (lambda_matrix): Same. |
| (dependence_level): Same. |
| (lambda_transform_legal_p): Removed declaration. |
| (lambda_collect_parameters): Same. |
| (lambda_compute_access_matrices): Same. |
| (lambda_vector_gcd): Same. |
| (lambda_vector_new): Same. |
| (lambda_vector_clear): Same. |
| (lambda_vector_lexico_pos): Same. |
| (lambda_vector_zerop): Same. |
| (lambda_matrix_new): Same. |
| * tree-flow.h (least_common_multiple): Removed declaration. |
| * tree-parloops.c (lambda_trans_matrix): Moved here. |
| (LTM_MATRIX): Same. |
| (LTM_ROWSIZE): Same. |
| (LTM_COLSIZE): Same. |
| (LTM_DENOMINATOR): Same. |
| (lambda_trans_matrix_new): Same. |
| (lambda_matrix_vector_mult): Same. |
| (lambda_transform_legal_p): Same. |
| * tree-pass.h (pass_linear_transform): Removed declaration. |
| * tree-ssa-loop.c (tree_linear_transform): Removed. |
| (gate_tree_linear_transform): Removed. |
| (pass_linear_transform): Removed. |
| (gate_graphite_transforms): Make flag_tree_loop_linear an alias of |
| flag_loop_interchange. |
| |
| 2011-01-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47265 |
| PR tree-optimization/47443 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false |
| if name still has some uses. |
| |
| 2011-01-25 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/47382 |
| * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed. |
| (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call. |
| |
| 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com> |
| |
| * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to |
| sjlj_except_unwind_info. |
| |
| 2011-01-25 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47426 |
| * tree-ssa-structalias.c (ipa_pta_execute): Make externally |
| visible functions results escape. |
| |
| 2011-01-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/45701 |
| * config/arm/arm.c (any_sibcall_uses_r3): New function. |
| (arm_get_frame_offsets): Use it. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47271 |
| * tree-if-conv.c (bb_postdominates_preds): New. |
| (if_convertible_bb_p): Call bb_postdominates_preds. |
| (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS. |
| (predicate_scalar_phi): Call bb_postdominates_preds. |
| |
| 2011-01-25 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types. |
| * config/rx/rx.c (rx_function_value): Likewise. |
| (rx_promote_function_mode): Likewise. |
| (gen_safe_add): Place an outsized immediate value inside an UNSPEC |
| in order to make it legitimate. |
| * config/rx/rx.md (adddi3_internal): If the second operand is a MEM |
| make sure that the first operand is the same as the result register. |
| (addsi3_unspec): Delete. |
| (subdi3): Do not accept immediate operands. |
| (subdi3_internal): Likewise. |
| |
| 2011-01-25 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/37273 |
| * ira-costs.c (scan_one_insn): Detect constants living in memory and |
| handle them like argument loads from stack slots. Do not double |
| count memory for memory constants and argument loads from stack slots. |
| |
| 2011-01-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47427 |
| PR tree-optimization/47428 |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't |
| coalesce if the new root var would be TREE_READONLY. |
| |
| 2011-01-25 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47414 |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the |
| correct type for TBAA. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New. |
| (close_phi_written_to_memory): Call for_each_index with |
| dr_indices_valid_in_loop. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN |
| when it is initialized. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update |
| call to graphite_find_data_references_in_stmt. |
| * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New. |
| (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update |
| call to graphite_find_data_references_in_stmt. |
| (analyze_drs_in_stmts): Same. |
| * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop |
| in which the scalar analysis of indices is performed. |
| (create_data_ref): Same. Update call to dr_analyze_indices. |
| (find_data_references_in_stmt): Update call to create_data_ref. |
| (graphite_find_data_references_in_stmt): Same. |
| * tree-data-ref.h (graphite_find_data_references_in_stmt): Update |
| declaration. |
| (create_data_ref): Same. |
| * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update |
| call to create_data_ref. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-sese-to-poly.c (build_poly_scop): Move |
| rewrite_commutative_reductions_out_of_ssa before find_scop_parameters. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow |
| VAR_DECL, PARM_DECL, and RESULT_DECL. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (reduction_dr_1): Allow several reductions |
| in a reduction PBB. |
| * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs |
| that have already been marked as PBB_IS_REDUCTION. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-scop-detection.c (same_close_phi_node): New. |
| (remove_duplicate_close_phi): New. |
| (make_close_phi_nodes_unique): New. |
| (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (new_poly_ddr): Call same_pdr_p. |
| * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE |
| of both data references to be the same. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (build_lexicographical_constraint): Remove |
| the gdim parameter. |
| (build_lexicographical_constraint): Adjust call to |
| ppl_powerset_is_empty. |
| (dependence_polyhedron): Same. |
| (graphite_legal_transform_dr): Same. |
| (graphite_carried_dependence_level_k): Same. |
| * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params |
| parameter. |
| * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-sese-to-poly.c |
| (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr. |
| (close_phi_written_to_memory): New. |
| (translate_scalar_reduction_to_array): Call close_phi_written_to_memory |
| and unshare_expr. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * doc/install.texi: Update the expected version number of PPL to 0.11. |
| * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under |
| #if PPL_VERSION_MINOR < 11. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c: Include graphite-cloog-util.h. |
| (new_poly_ddr): Inlined into dependence_polyhedron. |
| (free_poly_ddr): Moved close by new_poly_ddr. |
| (dependence_polyhedron_1): Renamed dependence_polyhedron. |
| Early return NULL when ppl_powerset_is_empty returns true. |
| (dependence_polyhedron): Renamed new_poly_ddr. Call only once |
| poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty. |
| (graphite_legal_transform_dr): Call new_poly_ddr. |
| (graphite_carried_dependence_level_k): Same. |
| (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr. |
| (dot_transformed_deps_stmt_1): Removed. |
| (dot_deps_stmt_1): Call dot_deps_stmt_2. |
| (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr. |
| (dot_deps_1): Call dot_deps_2. |
| * Makefile.in (graphite-dependences.o): Add missing dependence on |
| graphite-cloog-util.h. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty. |
| (build_lexicographical_constraint): Same. |
| (dependence_polyhedron_1): Same. |
| (graphite_legal_transform_dr): Same. |
| (graphite_carried_dependence_level_k): Same. |
| * graphite-ppl.c (ppl_powerset_is_empty): New. |
| * graphite-ppl.h (ppl_powerset_is_empty): Declared. |
| * tree-data-ref.c (dump_data_reference): Print the basic block index. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (build_pairwise_scheduling): Correctly compute |
| the "a followed by b" relation and document it. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (build_lexicographical_constraint): Stop the |
| iteration when the bag of constraints is empty. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop |
| nest and two loop depths as parameters. |
| (lst_try_interchange_loops): Call lst_interchange_profitable_p after |
| lst_perfect_nestify. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-dependences.c (print_pddr): Call |
| ppl_io_fprint_Pointset_Powerset_C_Polyhedron. |
| |
| 2011-01-25 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite-ppl.c (debug_gmp_value): New. |
| * graphite-ppl.h (debug_gmp_value): Declared. |
| |
| 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| * doc/install.texi: Document availability of cloog-0.16. |
| |
| 2011-01-25 Vladimir Kargov <kargov@gmail.com> |
| |
| * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free |
| invalid postdominance info. |
| |
| 2011-01-24 Jan Hubicka <jh@suse.cz> |
| |
| PR c/21659 |
| * doc/extend.texi (weak pragma): Drop claim that it must |
| appear before definition. |
| * varasm.c (merge_weak, declare_weak): Only sanity check |
| that DECL is not output at a time it is declared weak. |
| |
| 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * machmode.def: Fixed comments. |
| |
| 2011-01-24 Kai Tietz <kai.tietz@onevision.com> |
| |
| * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t. |
| |
| 2011-01-24 Paul Koning <ni1d@arrl.net> |
| |
| * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN != |
| WORDS_BIG_ENDIAN. |
| |
| 2011-01-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/46519 |
| * config/i386/i386.c: Include sbitmap.h and fibheap.h. |
| (block_info): Add scanned and prev. |
| (move_or_delete_vzeroupper_2): Return if the basic block |
| has been scanned and the upper 128bit state is unchanged |
| from the last scan. |
| (move_or_delete_vzeroupper_1): Return true if the exit |
| state is changed. |
| (move_or_delete_vzeroupper): Visit basic blocks using the |
| work-list based algorithm based on vt_find_locations in |
| var-tracking.c. |
| |
| * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H). |
| |
| 2011-01-24 Nick Clifton <nickc@redhat.com> |
| |
| * config/v850/v850.opt (mv850es): New option - alias for -mv850e1. |
| * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass |
| -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified |
| then define __v850e1__. |
| * doc/invoke.texi: Document -mv850es. |
| |
| 2011-01-24 Richard Henderson <rth@redhat.com> |
| |
| * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept |
| compound unordered comparisons. |
| * config/rx/rx.c (rx_split_fp_compare): Remove. |
| * config/rx/rx-protos.h: Update. |
| * config/rx/rx.md (gcc_conds, rx_conds): Remove. |
| (cbranchsf4): Don't call rx_split_fp_compare. |
| (*cbranchsf4): Use rx_split_cbranch. |
| (*cmpsf): Don't accept "i" constraint. |
| (*conditional_branch): Only valid after reload. |
| (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare. |
| |
| 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47385 |
| * config/rs6000/altivec.md (vector constant splitters): Add |
| support for creating vector single precision constants if -mvsx is |
| used and we would create the constant using Altivec primitives. |
| |
| 2011-01-23 Bernd Schmidt <bernds@codesourcery.com> |
| Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/47166 |
| * reload1.c (emit_reload_insns): Disable the spill_reg_store |
| mechanism for PRE_MODIFY and POST_MODIFY. |
| (inc_for_reload): For PRE_MODIFY, return the insn that sets the |
| reloadreg. |
| |
| 2011-01-23 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers. |
| |
| 2011-01-22 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/47333 |
| * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto. |
| |
| 2011-01-22 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/43884 |
| PR lto/44334 |
| * predict.c (maybe_hot_frequency_p): Use entry block frequency as base. |
| * doc/invoke.texi (hot-bb-frequency-fraction): Update docs. |
| |
| 2011-01-22 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove. |
| * config/s390/s390.c (s390_register_move_cost, |
| s390_memory_move_cost): New. |
| (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define. |
| |
| 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR middle-end/47401 |
| * except.c (sjlj_assign_call_site_values): Move setting the |
| crtl->uses_eh_lsda flag to ... |
| (sjlj_mark_call_sites): ... here. |
| (sjlj_emit_function_enter): Support NULL dispatch label. |
| (sjlj_build_landing_pads): In a function with no landing pads |
| that still has must-not-throw regions, generate code to register |
| a personality function with empty LSDA. |
| |
| 2011-01-21 Richard Henderson <rth@redhat.com> |
| |
| * config/rx/rx.c (TARGET_FLAGS_REGNUM): New. |
| |
| * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New. |
| |
| * compare-elim.c: New file. |
| * Makefile.in (OBJS-common): Add it. |
| (compare-elim.o): New. |
| * common.opt (fcompare-elim): New. |
| * opts.c (default_options_table): Add OPT_fcompare_elim. |
| * tree-pass.h (pass_compare_elim_after_reload): New. |
| * passes.c (init_optimization_passes): Add it. |
| * recog.h: Protect against re-inclusion. |
| * target.def (TARGET_FLAGS_REGNUM): New POD hook. |
| * doc/invoke.texi (-fcompare-elim): Document it. |
| * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it. |
| * doc/tm.texi: Rebuild. |
| |
| 2011-01-22 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (cstoresf4): Pass comparison operator to |
| rx_split_fp_compare. |
| |
| 2011-01-22 Nick Clifton <nickc@redhat.com> |
| |
| * config/rx/rx.md (UNSPEC_CONST): New. |
| (deallocate_and_return): Wrap the amount popped off the stack in |
| an UNSPEC_CONST in order to stop it being rejected by |
| -mmax-constant-size. |
| (pop_and_return): Add a "(return)" rtx. |
| (call): Drop the immediate operand. |
| (call_internal): Likewise. |
| (call_value): Likewise. |
| (call_value_internal): Likewise. |
| (sibcall_internal): Likewise. |
| (sibcall_value_internal): Likewise. |
| (sibcall): Likewise. Generate an explicit call using |
| sibcall_internal. |
| (sibcall_value): Likewise. |
| (mov<>): FAIL if a constant operand is not legitimate. |
| (addsi3_unpsec): New pattern. |
| |
| * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs. |
| (ok_for_max_constant): New function. |
| (gen_safe_add): New function. |
| (rx_expand_prologue): Use gen_safe_add. |
| (rx_expand_epilogue): Likewise. |
| (rx_is_legitimate_constant): Use ok_for_max_constant. Handle |
| UNSPEC CONSTs. |
| |
| 2011-01-21 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47053 |
| * tree-ssa-dse.c (need_eh_cleanup): New bitmap. |
| (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when |
| statements are deleted. |
| (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP |
| is nonempty, then purge dead edges and cleanup the CFG. |
| |
| 2011-01-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47402 |
| Temporarily revert: |
| 2011-01-21 Alexandre Oliva <aoliva@redhat.com> |
| PR debug/47106 |
| * tree-dfa.c (create_var_ann): Mark variable as used. |
| |
| 2011-01-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/45566 |
| * except.c (convert_to_eh_region_ranges): Emit queued no-region |
| notes from other section in hot/cold partitioning even if |
| last_action is -3. Increment call_site_base. |
| |
| PR rtl-optimization/47366 |
| * fwprop.c (forward_propagate_into): Return bool. If |
| any changes are made, -fnon-call-exceptions is used and |
| REG_EH_REGION note is present, call purge_dead_edges |
| and return true if it purged anything. |
| (fwprop_addr): Adjust callers, call cleanup_cfg (0) if |
| any EH edges were purged. |
| |
| 2011-01-21 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/41619 |
| * caller-save.c (setup_save_areas): Break out code to determine |
| which hard regs are live across calls by examining the reload chains |
| so that it is always used. |
| Eliminate code which checked REG_N_CALLS_CROSSED. |
| |
| 2011-01-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47355 |
| * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if |
| NOP has non-debug uses beyond PHIs in new_bb. |
| |
| 2011-01-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47106 |
| * cfgexpand.c (account_used_vars_for_block): Only account vars |
| that are annotated as used. |
| (estimated_stack_frame_size): Don't set TREE_USED. |
| * tree-dfa.c (create_var_ann): Mark variable as used. |
| |
| 2011-01-21 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47395 |
| * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name. |
| |
| 2011-01-21 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47365 |
| * tree-ssa-sccvn.h (vn_lookup_kind): Declare. |
| (vn_reference_lookup_pieces): Adjust. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-sccvn.c (vn_walk_kind): New static global. |
| (vn_reference_lookup_3): Only look through kills if in |
| VN_WALKREWRITE mode. |
| (vn_reference_lookup_pieces): Adjust. |
| (vn_reference_lookup): Likewise. |
| (visit_reference_op_load): Likewise. |
| (visit_reference_op_store): Likewise. |
| * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode. |
| (compute_avail): Likewise. |
| (eliminate): Likewise. |
| |
| 2011-01-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove |
| DECL_IGNORED_P non-reg vars if they are used. |
| |
| PR tree-optimization/47391 |
| * varpool.c (const_value_known_p): Return false if |
| decl is volatile. |
| |
| 2011-01-21 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR bootstrap/47215 |
| * config/i386/i386.c (ix86_local_alignment): Handle |
| case for va_list_type_node is nil. |
| (ix86_canonical_va_list_type): Likewise. |
| |
| 2011-01-21 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add |
| builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__. |
| |
| 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/arm.md (define_attr type): Rename f_load |
| and f_store to f_fpa_load and f_fpa_store. Update. |
| (write_conflict): Deal with rename fallout. |
| (*push_fp_multi): Likewise. |
| * config/arm/fpa.md (f_load): Use f_fpa_load. |
| (f_store): Use f_fpa_store. |
| (*movsf_fpa): Likewise. |
| (*movdf_fpa): Likewise. |
| (*movxf_fpa): Likewise. |
| (*thumb2_movsf_fpa): Likewise. |
| (*thumb2_movdf_fpa): Likewise. |
| (*thumb2_movxf_fpa): Likewise. |
| * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to |
| f_loadd and f_stored. |
| (*thumb2_movdi_vfp): Likewise. |
| (*thumb2_movsf_vfp): Fix attribute to f_loads. |
| (*thumb2_movsi_vfp): Likewise. |
| * config/arm/cortex-m4-fpu.md (cortex_m4_f_load): |
| Use f_loads instead of f_load. |
| * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load. |
| |
| 2011-01-20 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. |
| * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove. |
| * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define. |
| (xtensa_mode_dependent_address_p): New function. |
| (constantpool_address_p): Make static. Change return type to bool. |
| Change argument type to const_rtx. Use CONST_INT_P predicate. |
| |
| 2011-01-20 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/46583 |
| * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls. |
| |
| 2011-01-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/47283 |
| * cfgexpand.c (expand_debug_expr): Instead of generating |
| (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF |
| etc. handling. |
| |
| 2011-01-20 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47370 |
| * tree-inline.c (remap_gimple_op_r): Recurse manually for |
| the pointer operand of MEM_REFs. |
| |
| 2011-01-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/46130 |
| * ipa-split.c (consider_split): If return_bb contains non-virtual |
| PHIs other than for retval or if split_function would not adjust it, |
| refuse to split. |
| |
| 2011-01-20 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47167 |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): |
| Revert previous change, only avoid enumeral type changes. |
| |
| 2011-01-19 Mike Stump <mikestump@comcast.net> |
| |
| * doc/tm.texi.in (BRANCH_COST): Englishify. |
| * doc/tm.texi (BRANCH_COST): Likewise. |
| |
| 2011-01-19 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/47291 |
| * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen) |
| (gen_scheduled_generic_parms_dies): New functions. |
| (gen_struct_or_union_type_die): Schedule template parameters DIEs |
| generation for the end of CU compilation. |
| (dwarf2out_finish): Generate template parameters DIEs here. |
| |
| 2011-01-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/46240 |
| * tree-into-ssa.c (maybe_register_def): Do not attempt to add |
| debug bind stmt on merge edges. |
| |
| 2011-01-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/47079 |
| PR debug/46724 |
| * function.c (instantiate_expr): Instantiate incoming rtl of |
| implicit arguments, and recurse on VALUE_EXPRs. |
| (instantiate_decls): Instantiate rtl and VALUE_EXPR of result. |
| * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx. |
| |
| 2011-01-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| * c-parser.c (c_parser_for_statement): Initialize |
| collection_expression. |
| |
| 2011-01-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}. |
| |
| 2011-01-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove. |
| (LINK_SHLIB_SPEC): Don't use %(link_path). |
| (SUBTARGET_EXTRA_SPECS): Remove link_path. |
| |
| 2011-01-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional. |
| (NO_SHARED_LIB_SUPPORT): Remove. |
| (LINK_SHLIB_SPEC): Remove one conditional definition. |
| |
| 2011-01-19 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared} |
| %{call_shared}. |
| * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}. |
| * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}. |
| * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared} |
| %{call_shared} and conditionals on these options not being passed. |
| * config/mips/sde.h (LINK_SPEC): Remove %{non_shared} |
| %{call_shared}. |
| |
| 2011-01-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge, |
| simplify. |
| |
| * ipa-split.c: Spelling fixes. |
| |
| 2011-01-19 Richard Henderson <rth@redhat.com> |
| |
| * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand. |
| (*mulsi3): Likewise. |
| |
| * longlong.h [__mn10300__] (count_leading_zeros): New. |
| [__mn10300__] (umul_ppmm, smul_ppmm): New. |
| [__mn10300__] (add_ssaaaa, subddmmss): New. |
| [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New. |
| [__mn10300__] (UMUL_TIME, UDIV_TIME): New. |
| |
| 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case. |
| |
| 2011-01-19 Richard Henderson <rth@redhat.com> |
| |
| * config/mn10300/mn10300.md (addsi3_flags): New. |
| (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New. |
| (subsi3_flags, subc_internal, subdi3): New. |
| (subdi3_internal, *subdi3_degenerate): New. |
| * config/mn10300/predicates.md (reg_or_am33_const_operand): New. |
| |
| * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New. |
| (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn. |
| (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once. |
| * config/mn10300/mn10300-protos.h: Update. |
| * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn. |
| (return_ret): Likewise. Rename from return_internal_regs. |
| (return_internal): Remove. |
| |
| * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove. |
| (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL. |
| (mn10300_legitimate_constant_p): Likewise. |
| (mn10300_can_use_return_insn): Use mn10300_initial_offset. |
| (mn10300_frame_size): New. |
| (mn10300_expand_prologue): Use it. |
| (mn10300_expand_epilogue): Likewise. |
| (mn10300_initial_offset): Likewise. |
| * config/mn10300/mn10300-protos.h: Update. |
| * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove. |
| * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove. |
| (prologue, epilogue, return_internal): Tidy output code. |
| (mn10300_store_multiple_operation, return): Likewise. |
| (int_label, pop_pic_reg, GOTaddr2picreg): Remove. |
| (am33_loadPC, mn10300_loadPC, call_next_insn): Remove. |
| (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove. |
| (load_pic, am33_load_pic): New. |
| (mn10300_load_pic0, mn10300_load_pic1): New. |
| |
| * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes. |
| * config/mn10300/mn10300.c (CC_FLAG_Z): New. |
| (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New. |
| (cc_flags_for_mode, cc_flags_for_code): New. |
| (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the |
| overflow flag is not valid. Validate that the flags we need |
| for the comparison are valid. |
| (mn10300_output_cmp): Remove. |
| (mn10300_output_add): New. |
| (mn10300_select_cc_mode): Use cc_flags_for_code. |
| (mn10300_split_cbranch): New. |
| (mn10300_match_ccmode): New. |
| (mn10300_split_and_operand_count): New. |
| * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments |
| to the function. |
| * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge... |
| (addsi3): ... here. Use mn10300_output_add. |
| (*addsi3_flags): New. |
| (*am33_subsi3, *mn10300_subsi3): Merge... |
| (subsi3): ... here. Use attribute isa. |
| (*subsi3_flags): New. |
| (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC |
| when possible. |
| (*am33_andsi3, *mn10300_andsi3): Merge... |
| (andsi3): ... here. |
| (*andsi3_flags): New. |
| (andsi3 splitters): New. |
| (*am33_iorsi3, *mn10300_iorsi3): Merge... |
| (iorsi3): ... here. |
| (*iorsi3_flags): New. |
| (*am33_xorsi3, *mn10300_xorsi3): Merge... |
| (xorsi3): ... here. |
| (*xorsi3_flags): New. |
| (*am33_cmpsi2, *mn10300_cmplsi2): Merge... |
| (one_cmplsi2): ... here. |
| (*one_cmplsi2_flags): New. |
| (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r" |
| instead of "dax" in constraints. Use mn10300_split_cbranch. |
| (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not |
| use matching constraints to eliminate a self-comparison. |
| (*integer_conditional_branch): Rename from integer_conditional_branch. |
| Use int_mode_flags to match CC_REG. |
| (*cbranchsi4_btst, *btstsi): New. |
| (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use |
| mn10300_split_cbranch. |
| (*am33_cmpsf): Rename from am33_cmpsf. |
| (*float_conditional_branch): Rename from float_conditional_branch. |
| (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge... |
| (zero_extendqisi2): ... here. |
| (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge... |
| (zero_extendhisi2): ... here. |
| (*extendqisi2_am33, *extendqisi2_mn10300): Merge... |
| (extendqisi2): ... here. |
| (*extendhisi2_am33, *extendhisi2_mn10300): Merge... |
| (extendhisi2): ... here. |
| (*am33_ashlsi3, *mn10300_ashlsi3): Merge... |
| (ashlsi3): ... here. |
| (*am33_lshrsi3, *mn10300_lshrsi3): Merge... |
| (lshrsi3): ... here. |
| (*am33_ashrisi3, *mn10300_ashrsi3): Merge... |
| (ashrsi3): ... here. |
| (consecutive add peephole): Remove. |
| * config/mn10300/predicates.md (label_ref_operand): New. |
| (int_mode_flags): New. |
| (CCZN_comparison_operator): New. |
| |
| * config/mn10300/mn10300.md (UNSPEC_EXT): New. |
| (throughput_42_latency_43): New reservation. |
| (mulsidi3, umulsidi3): New expanders. |
| (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose |
| the MDR register to allocation; separately allocate the low and |
| high parts of the DImode result. |
| (umulsidi3_internal): Similarly. |
| (*am33_mulsi3, *mn10300_mulsi3): Merge into ... |
| (*mulsi3): ... here. Clobber MDR as a scratch as necessary. |
| (udivsi3, umodsi3): Remove. |
| (udivmodsi4, divmodsi4): New expanders. |
| (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly. |
| (*divmodsi4): Simiarly. |
| (ext_internal): New. |
| |
| * config/mn10300/constraints.md ("z"): New constraint. |
| * config/mn10300/mn10300.h (MDR_REGNUM): Remove. |
| (FIXED_REGISTERS): Don't fix MDR. |
| (CALL_USED_REGSITERS): Reformat nicely. |
| (REG_ALLOC_ORDER): Add MDR. |
| (enum regclass): Add MDR_REGS. |
| (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match. |
| (IRA_COVER_CLASSES): Add MDR_REGS. |
| (REGNO_REG_CLASS): Handle MDR_REG. |
| * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS. |
| (mn10300_register_move_cost): Likewise. |
| * config/mn10300/mn10300.md (MDR_REG): New. |
| (*movsi_internal): Handle moves to/from MDR_REGS. |
| |
| * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle |
| POST_MODIFY. |
| (mn10300_secondary_reload): Tidy combination reload classes. |
| (mn10300_legitimate_address_p): Allow post-modify and reg+reg |
| addresses for AM33. Allow symbolic offsets for reg+imm. |
| (mn10300_regno_in_class_p): New. |
| (mn10300_legitimize_reload_address): New. |
| * config/mn10300/mn10300.h (enum reg_class): Remove |
| DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS, |
| SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add |
| SP_OR_GENERAL_REGS. |
| (REG_CLASS_NAMES): Update to match. |
| (REG_CLASS_CONTENTS): Likewise. |
| (INDEX_REG_CLASS): Use GENERAL_REGS for AM33. |
| (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33. |
| (REGNO_IN_RANGE_P): Remove. |
| (REGNO_DATA_P): Use mn10300_regno_in_class_p. |
| (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise. |
| (REGNO_STRICT_OK_FOR_BASE_P): Likewise. |
| (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise. |
| (REGNO_STRICT_OK_FOR_INDEX_P): Likewise. |
| (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove. |
| (REGNO_GENERAL_P): New. |
| (HAVE_POST_MODIFY_DISP): New. |
| (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New. |
| (LEGITIMIZE_RELOAD_ADDRESS): New. |
| * config/mn10300/mn10300-protos.h: Update. |
| |
| * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow |
| DATA_REGS for AM33 stack-pointer destination. |
| (mn10300_preferred_output_reload_class): Likewise. |
| (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class |
| into a form appropriate for ... |
| (TARGET_SECONDARY_RELOAD): New. |
| * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove. |
| * config/mn10300/mn10300-protos.h: Update. |
| * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from |
| reload_insi; use the "A" constraint for the scratch; handle AM33 |
| moves of sp to non-address registers. |
| |
| * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into |
| (*movqi_internal): ... here. |
| (*am33_movhi, *mn10300_movhi): Merge into... |
| (*movhi_internal): ... here. |
| (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A" |
| as the source/destination of moves from/to SP. |
| (movsf): Only allow for AM33-2. |
| (*movsf_internal): Use "r" instead of "dax"; use "F" instead of |
| any integer constant constraint. Only allow for AM33-2. Tidy |
| all of the alternative outputs. |
| (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove. |
| (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow |
| for MN103. |
| (udivsi3, umodsi3): New patterns for MN103 only. |
| |
| 2011-01-19 Joern Rennecke <amylaar@spamcop.net> |
| |
| * doc/tm.texi.in: Spell out that a lack of register class unions |
| can lead to ICEs. |
| * doc/tm.texi: Regenerate. |
| |
| 2011-01-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/47337 |
| * dce.c (check_argument_store): New function. |
| (find_call_stack_args): Ignore debug insns. Use check_argument_store. |
| |
| PR tree-optimization/47290 |
| * tree-eh.c (infinite_empty_loop_p): New function. |
| (cleanup_empty_eh): Use it. |
| |
| 2011-01-18 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/46997 |
| * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN. |
| (a64_expand_widen_sum): Ditto. |
| * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN. |
| (vec_extract_evenodd_help): Ditto. |
| (vec_extract_evenv4hi): Ditto. |
| (vec_extract_oddv4hi): Ditto. |
| (vec_extract_evenv2si): Ditto. |
| (vec_extract_oddv2si): Ditto. |
| (vec_extract_evenv2sf): Ditto. |
| (vec_extract_oddv2sf): Ditto. |
| (vec_pack_trunc_v4hi: Ditto. |
| (vec_pack_trunc_v2si): Ditto. |
| (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN. |
| (vec_interleave_highv8qi): Ditto. |
| (mix1_r): Ditto. |
| (vec_extract_oddv8qi): Ditto. |
| (vec_interleave_lowv4hi): Ditto. |
| (vec_interleave_highv4hi): Ditto. |
| (vec_interleave_lowv2si): Ditto. |
| (vec_interleave_highv2si): Ditto. |
| |
| 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * doc/extend.texi: Mention __float128 support on hppa HP-UX. |
| * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1. |
| * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h". |
| (pa_c_mode_for_suffix): New. |
| (TARGET_EXPAND_BUILTIN): Define. |
| (TARGET_C_MODE_FOR_SUFFIX): Define. |
| (pa_builtins): Define. |
| (pa_init_builtins): Register __float128 type and init new support |
| builtins. |
| * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined. |
| * config/pa/quadlib.c (_U_Qfcopysign): New. |
| |
| 2011-01-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/46894 |
| * explow.c (allocate_dynamic_stack_space): Do not assume more than |
| BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET |
| are defined. |
| |
| 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| PR tree-optimization/47179 |
| * config/spu/spu.c (spu_ref_may_alias_errno): New function. |
| (TARGET_REF_MAY_ALIAS_ERRNO): Define. |
| |
| 2011-01-18 Richard Guenther <rguenther@suse.de> |
| |
| PR rtl-optimization/47216 |
| * emit-rtl.c: Include tree-flow.h. |
| (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead |
| of replicating it with different semantics. |
| * Makefile.in (emit-rtl.o): Adjust. |
| |
| 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include. |
| (cortex_a9_dp): Handle neon types correctly. |
| |
| 2011-01-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/47299 |
| * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use |
| subtarget. Use normal multiplication if both operands are constants. |
| * expmed.c (expand_widening_mult): Don't try to optimize constant |
| multiplication if op0 has VOIDmode. Convert op1 constant to mode |
| before using it. |
| |
| 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/lto.texi (LTO): Ensure two spaces after period. Fix |
| spacing after 'e.g.', typos, comma, hyphenation. |
| |
| 2011-01-17 Richard Henderson <rth@redhat.com> |
| |
| * config/rx/predicates.md (rx_constshift_operand): Use match_test. |
| (rx_restricted_mem_operand): New. |
| (rx_shift_operand): Use register_operand. |
| (rx_source_operand, rx_compare_operand): Likewise. |
| * config/rx/rx.md (addsi3_flags): New expander. |
| (adddi3): Rewrite as expander. |
| (adc_internal, *adc_flags, adddi3_internal): New patterns. |
| (subsi3_flags): New expander. |
| (subdi3): Rewrite as expander. |
| (sbb_internal, *sbb_flags, subdi3_internal): New patterns. |
| |
| * config/rx/rx.c (RX_BUILTIN_SAT): Remove. |
| (rx_init_builtins): Remove sat builtin. |
| (rx_expand_builtin): Likewise. |
| * config/rx/rx.md (ssaddsi3): New. |
| (*sat): Rename from sat. Represent the CC_REG input. |
| |
| * config/rx/predicates.md (rshift_operator): New. |
| * config/rx/rx.c (rx_expand_insv): Remove. |
| * config/rx/rx-protos.h: Update. |
| * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift |
| operand to the canonical position. |
| (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly. |
| (*bitclr, *bitclr_in_memory): Similarly. |
| (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New. |
| (insv): Retain the zero_extract in the expansion. |
| |
| * config/rx/rx.md (bswapsi2): Use = not + for output reload. |
| (bswaphi2, bitinvert, revw): Likewise. |
| |
| * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET. |
| (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise. |
| * config/rx/rx.md (pop_and_return): Use VOIDmode for SET. |
| (stack_push, stack_pushm, stack_pop, stack_popm): Likewise. |
| (bitset, bitset_in_memory): Likewise. |
| (bitinvert, bitinvert_in_memory): Likewise. |
| (bitclr, bitclr_in_memory): Likewise. |
| (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise. |
| (rx_strend, rx_cmpstrn): Likewise. |
| (rx_setmem): Likewise. Make the source BLKmode to match the dest. |
| (bitop peep2 patterns): Remove. |
| |
| * config/rx/rx.c (rx_match_ccmode): New. |
| * config/rx/rx-protos.h: Update. |
| * config/rx/rx.md (abssi2): Clobber, don't set flags. |
| (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise. |
| (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise. |
| (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise. |
| (fix_truncsfsi2, floatsisf2): Likewise. |
| (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New. |
| (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New. |
| (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New. |
| (*subsi3_flags, *xorsi3_flags): New. |
| |
| * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns. |
| |
| * config/rx/rx.c (rx_print_operand): Remove workaround for |
| unsplit comparison operations. |
| |
| * config/rx/rx.md (movsicc): Split after reload. |
| (*movsicc): Merge *movsieq and *movsine via match_operator. |
| (*stcc): New pattern. |
| |
| * config/rx/rx.c (rx_float_compare_mode): Remove. |
| * config/rx/rx.h (rx_float_compare_mode): Remove. |
| * config/rx/rx.md (cstoresi4): Split after reload. |
| (*sccc): New pattern. |
| |
| * config/rx/predicates.md (label_ref_operand): New. |
| (rx_z_comparison_operator): New. |
| (rx_zs_comparison_operator): New. |
| (rx_fp_comparison_operator): New. |
| * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes. |
| Validate that the flags are set properly for the comparison. |
| (rx_gen_cond_branch_template): Remove. |
| (rx_cc_modes_compatible): Remove. |
| (mode_from_flags): New. |
| (flags_from_code): Rename from flags_needed_for_conditional. |
| (rx_cc_modes_compatible): Re-write in terms of flags_from_mode. |
| (rx_select_cc_mode): Likewise. |
| (rx_split_fp_compare): New. |
| (rx_split_cbranch): New. |
| * config/rx/rx.md (most_cond, zs_cond): Remove iterators. |
| (*cbranchsi4): Use match_operator and rx_split_cbranch. |
| (*cbranchsf4): Similarly. |
| (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use |
| match_operator and rx_split_cbranch. |
| (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and |
| tstbranchsi4m_ne. Use match_operator and rx_split_cbranch. |
| (*cmpsi): Rename from cmpsi. |
| (*tstsi): Rename from tstsi. |
| (*cmpsf): Rename from cmpsf; use CC_Fmode. |
| (*conditional_branch): Rename from conditional_branch. |
| (*reveresed_conditional_branch): Remove. |
| (b<code>): Remove expander. |
| * config/rx/rx-protos.h: Update. |
| |
| * config/rx/rx.c (rx_compare_redundant): Remove. |
| * config/rx/rx.md (cmpsi): Don't use it. |
| * config/rx/rx-protos.h: Update. |
| |
| * config/rx/rx-modes.def (CC_F): New mode. |
| * config/rx/rx.c (rx_select_cc_mode): New. |
| * config/rx/rx.h (SELECT_CC_MODE): Use it. |
| * config/rx/rx-protos.h: Update. |
| |
| 2011-01-17 Richard Henderson <rth@redhat.com> |
| |
| * except.c (dump_eh_tree): Fix stray ; after for statement. |
| |
| 2011-01-17 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47313 |
| * tree-inline.c (tree_function_versioning): Move DECL_RESULT |
| handling before copying the body. Properly deal with |
| by-reference result in SSA form. |
| |
| 2011-01-17 Ian Lance Taylor <iant@google.com> |
| |
| PR target/47219 |
| * config/sparc/sparc.c (sparc_sr_alias_set): Don't define. |
| (struct_value_alias_set): Don't define. |
| (sparc_option_override): Don't set sparc_sr_alias_set and |
| struct_value_alias_set. |
| (save_or_restore_regs): Use gen_frame_mem rather than calling |
| set_mem_alias_set. |
| (sparc_struct_value_rtx): Likewise. |
| |
| 2011-01-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/47318 |
| * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i. |
| (_mm_maskstore_pd): Likewise. |
| (_mm_maskload_ps): Likewise. |
| (_mm_maskstore_ps): Likewise. |
| (_mm256_maskload_pd): Change mask to __m256i. |
| (_mm256_maskstore_pd): Likewise. |
| (_mm256_maskload_ps): Likewise. |
| (_mm256_maskstore_ps): Likewise. |
| |
| * config/i386/i386-builtin-types.def: Updated. |
| (ix86_expand_special_args_builtin): Likewise. |
| |
| * config/i386/i386.c (bdesc_special_args): Update |
| __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps, |
| __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256, |
| __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps, |
| __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256. |
| |
| * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>): |
| Use <avxpermvecmode> on mask register. |
| (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise. |
| |
| 2011-01-17 Olivier Hainque <hainque@adacore.com> |
| Michael Haubenwallner <michael.haubenwallner@salomon.at> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/46655 |
| * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only |
| if <= USHRT_MAX in 32-bit mode. |
| |
| 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/install.texi (Configuration, Specific): Wrap long |
| lines in examples. Allow line wrapping in long options |
| and URLs where beneficial for PDF output. |
| |
| 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_classify_symbol): Don't return |
| SYMBOL_PC_RELATIVE for nonlocal labels. |
| |
| 2011-01-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo. |
| |
| 2011-01-15 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/47276 |
| * ipa.c (function_and_variable_visibility): Do not try to mark alias |
| declarations as needed. |
| |
| 2011-01-15 Martin Jambor <mjambor@suse.cz> |
| |
| * common.opt (fdevirtualize): New flag. |
| * doc/invoke.texi (Option Summary): Document it. |
| * opts.c (default_options_table): Add devirtualize flag. |
| * ipa-prop.c (detect_type_change): Return immediately if |
| devirtualize flag is not set. |
| (detect_type_change_ssa): Likewise. |
| (compute_known_type_jump_func): Likewise. |
| (ipa_analyze_virtual_call_uses): Likewise. |
| |
| 2011-01-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/45934 |
| PR tree-optimization/46302 |
| * ipa-prop.c (type_change_info): New type. |
| (stmt_may_be_vtbl_ptr_store): New function. |
| (check_stmt_for_type_change): Likewise. |
| (detect_type_change): Likewise. |
| (detect_type_change_ssa): Likewise. |
| (compute_complex_assign_jump_func): Check for dynamic type change. |
| (compute_complex_ancestor_jump_func): Likewise. |
| (compute_known_type_jump_func): Likewise. |
| (compute_scalar_jump_functions): Likewise. |
| (ipa_analyze_virtual_call_uses): Likewise. |
| (ipa_analyze_node): Push and pop cfun, set current_function_decl. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5. |
| * config/i386/i386.opt (msse5): New Alias. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}. |
| * config/sparc/linux64.h (CC1_SPEC): Likewise. |
| * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. |
| * config/sparc/sparc.h (CC1_SPEC): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of |
| -mcpu options. |
| * config/sparc/linux64.h (CC1_SPEC): Likewise. |
| * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. |
| * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise. |
| * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC): |
| Likewise. |
| * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi. |
| |
| 2011-01-14 Mike Stump <mikestump@comcast.net> |
| |
| * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set. |
| * config/fr30/fr30.md: Likweise |
| (movsi_push): Likewise. |
| (movsi_pop): Likewise. |
| (enter_func): Likewise. |
| * config/moxie/moxie.md (movsi_push): Likewise. |
| (movsi_pop): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum} |
| %{no_archive} %{exact_version}. |
| * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}. |
| * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum} |
| %{no_archive} %{exact_version}. |
| * config/mips/openbsd.h (LINK_SPEC): Likewise. |
| * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}. |
| * config/mips/vxworks.h: Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC, |
| ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not |
| -nodefaultlib. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check |
| for mcpu not cpu. |
| * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC, |
| CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu |
| not cpu. |
| (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options. |
| Don't handle -shlib. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/avr/avr.h (CPP_SPEC): Don't handle -posix. |
| (CC1_SPEC): Don't handle -profile. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec. |
| * config/mips/mips.h (CC1_SPEC): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }. |
| * config/mips/mips.h (CC1_SPEC): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional. |
| * config/m32r/linux.h (LINK_SPEC): Likewise. |
| * config/mips/linux.h (LINK_SPEC): Likewise. |
| * config/mips/linux64.h (LINK_SPEC): Likewise. |
| * config/sparc/linux.h (LINK_SPEC): Likewise. |
| * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, |
| LINK_SPEC): Likewise. |
| * config/xtensa/linux.h (LINK_SPEC): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove |
| %{version:-v}. |
| * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}. |
| * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. |
| |
| 2011-01-14 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}. |
| |
| 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always |
| supports -Bstatic/-Bdynamic. |
| * configure: Regenerate. |
| |
| 2011-01-14 Jan Hubicka <jh@suse.cz> |
| Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| PR target/46037 |
| * config/darwin.c (darwin_override_options): Honor flag_gtoggle |
| when checking debug_info_level. Test write_symbols instead of |
| debug_hooks->var_location when setting flag_var_tracking_uninit. |
| |
| 2011-01-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47179 |
| * target.def (ref_may_alias_errno): New target hook. |
| * targhooks.h (default_ref_may_alias_errno): Declare. |
| * targhooks.c: Include tree-ssa-alias.h and tree-flow.h. |
| (default_ref_may_alias_errno): New function. |
| * target.h (struct ao_ref_s): Declare. |
| * tree-ssa-alias.c: Include target.h. |
| (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook. |
| * Makefile.in (tree-ssa-alias.o): Adjust dependencies. |
| (targhooks.o): Likewise. |
| * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document. |
| * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation. |
| |
| 2011-01-14 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER. |
| |
| 2011-01-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47280 |
| * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and |
| return CFG changes. |
| (tree_ssa_forward_propagate_single_use_vars): Deal with |
| CFG changes from associate_plusminus. |
| |
| 2011-01-14 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/47281 |
| Revert |
| 2011-01-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/46076 |
| * tree-ssa.c (useless_type_conversion_p): Conversions from |
| unprototyped to empty argument list function types are useless. |
| |
| 2011-01-14 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47286 |
| * tree-ssa-structalias.c (new_var_info): Register variables are global. |
| |
| 2011-01-14 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/46823 |
| * tree-inline.c (expand_call_inline): Get fndecl from call graph edge. |
| |
| 2011-01-13 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE, |
| LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. |
| * config/xtensa/xtensa.c (xtensa_libcall_value, |
| xtensa_function_value_regno_p): New functions. |
| (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define. |
| |
| 2011-01-13 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR c++/47213 |
| * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY): |
| PE specific hook. |
| * config/i386/i386-protos.h (i386_pe_assemble_visibility): |
| New function prototype. |
| * config/i386/winnt.c (i386_pe_assemble_visibility): |
| Warn only if attribute was specified by user. |
| |
| 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/47251 |
| * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware |
| floating point. |
| (floatunsdidf2_fcfidu): Ditto. |
| |
| 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> |
| |
| * config/s390/s390.c (print_operand_address): Replace 'error' with |
| 'output_operand_lossage'. |
| (print_operand): Likewise. |
| |
| 2011-01-13 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/39077 |
| * doc/invoke.texi (max-gcse-insertion-ratio): Document. |
| * params.h (MAX_GCSE_INSERTION_RATIO): Define. |
| * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define. |
| * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps. |
| * gcse.c (prune_insertions_deletions): New function. |
| (compute_pre_data): Use it. |
| |
| 2011-01-13 Dodji Seketeli <dodji@redhat.com> |
| |
| PR debug/PR46973 |
| * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New |
| static function. |
| (prune_unused_types_mark): Use it. |
| |
| 2011-01-13 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/45352 |
| * sel-sched.c: Update copyright years. |
| (reset_sched_cycles_in_current_ebb): Also recheck the DFA state |
| in the advancing loop when we have issued issue_rate insns. |
| |
| 2011-01-12 Richard Henderson <rth@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New. |
| (TARGET_MD_ASM_CLOBBERS): New. |
| |
| * config/mn10300/mn10300.c (mn10300_delegitimize_address): New. |
| (TARGET_DELEGITIMIZE_ADDRESS): New. |
| |
| * config/mn10300/mn10300.md (UNSPEC_BSCH): New. |
| (clzsi2, *bsch): New patterns. |
| |
| * config/mn10300/mn10300.md (INT): New mode iterator. |
| (*mov<INT>_clr): New pattern, and peep2 to generate it. |
| |
| * config/mn10300/mn10300.c (mn10300_option_override): Force enable |
| flag_split_wide_types. |
| |
| * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove. |
| (mn10300_trampoline_init): Rewrite without a template, an immediate |
| load and a direct branch. |
| * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16. |
| |
| 2011-01-12 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove. |
| * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove. |
| * config/s390/s390.c (s390_output_addr_const_extra): Make static. |
| (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. |
| |
| 2011-01-12 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR debug/47209 |
| * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT |
| of type. |
| |
| 2011-01-12 Jan Hubicka <jh@suse.cz> |
| |
| PR driver/47244 |
| * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used. |
| (PLUGIN_COND_CLOSE): New macro. |
| (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE. |
| |
| 2011-01-12 Richard Guenther <rguenther@suse.de> |
| |
| PR lto/47259 |
| * lto-streamer-out.c (output_gimple_stmt): Do not wrap |
| register variables in a MEM_REF. |
| |
| 2011-01-12 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*, |
| crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*, |
| hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* | |
| i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | |
| i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu, |
| x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu, |
| ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*, |
| m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*, |
| mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*, |
| s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*, |
| sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*, |
| am33_2.0-*-linux*): Use gnu-user.h before linux.h. |
| * config/gnu-user.h: New. Copied from linux.h. |
| (LINUX_TARGET_STARTFILE_SPEC): Rename to |
| GNU_USER_TARGET_STARTFILE_SPEC. |
| (LINUX_TARGET_ENDFILE_SPEC): Rename to |
| GNU_USER_TARGET_ENDFILE_SPEC. |
| (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC. |
| (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC. |
| (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, |
| LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1, |
| CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, |
| UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, |
| BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32, |
| BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER, |
| LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64, |
| TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove. |
| * config/arm/linux-eabi.h (CC1_SPEC): Use |
| GNU_USER_TARGET_CC1_SPEC. |
| (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC. |
| (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC. |
| (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC |
| * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF, |
| LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC, |
| LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC, |
| CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC, |
| LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove. |
| |
| 2011-01-12 Richard Guenther <rguenther@suse.de> |
| |
| PR other/46946 |
| * doc/invoke.texi (ffast-math): Document it is turned on |
| with -Ofast. |
| |
| 2011-01-12 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/47233 |
| * opts.c (common_handle_option): Disable ipa-reference with profile |
| feedback. |
| |
| 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-parser.c (c_parser_objc_at_property_declaration): Improved |
| error message. |
| |
| 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| * c-parser.c (c_lex_one_token): Updated and reindented some |
| comments. No changes in code. |
| |
| 2011-01-11 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_output_var): Don't output the variable if there is |
| already a type with the same name. |
| |
| 2011-01-11 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_format_type): Don't generate float80. |
| |
| 2011-01-11 Richard Henderson <rth@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward |
| declaration. Rewrite for both speed and size. |
| (mn10300_address_cost_1): Remove. |
| (mn10300_register_move_cost): New. |
| (mn10300_memory_move_cost): New. |
| (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle |
| ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare, |
| extensions, shifts, BSWAP, CLZ. |
| (mn10300_wide_const_load_uses_clr): Remove. |
| (TARGET_REGISTER_MOVE_COST): New. |
| (TARGET_MEMORY_MOVE_COST): New. |
| * config/mn10300/mn10300-protos.h: Update. |
| * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove. |
| |
| * config/mn10300/constraints.md ("R", "T"): Remove constraints. |
| * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove. |
| * config/mn10300/mn10300-protos.h: Update. |
| * config/mn10300/mn10300.md (movsi_internal): Don't use "R". |
| (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove. |
| (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove. |
| (*test_int_bitfield, *test_byte_bitfield): Remove. |
| (*bit_test, *subreg_bit_test): Remove. |
| * config/mn10300/predicates.md (const_8bit_operand): Remove. |
| |
| * config/mn10300/constraints.md ("c"): Rename from "A". |
| ("A", "D"): New constraint letters. |
| * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint. |
| (fmssf4, fnmasf4, fnmssf4): Likewise. |
| |
| * config/mn10300/mn10300.md (isa): New attribute. |
| (enabled): New attribute. |
| |
| * config/mn10300/mn10300.md (absdf2, negdf2): Remove. |
| (abssf2, negsf2): Define only for hardware fp. |
| (sqrtsf2): Reformat. |
| (addsf3, subsf3, mulsf3): Merge expander and insn. |
| |
| * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New. |
| (DEBUGGER_AUTO_OFFSET): Remove. |
| (DEBUGGER_ARG_OFFSET): Remove. |
| |
| * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static. |
| Emit register stores with the same offsets as the hardware. |
| (mn10300_store_multiple_operation): Don't check that the register |
| save offsets are monotonic. |
| * config/mn10300/mn10300-protos.h: Update. |
| |
| * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete. |
| |
| * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define |
| in terms of the value on the stack, not the MDR register. |
| |
| 2011-01-11 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/45721 |
| PR lto/45375 |
| * tree.h (symbol_alias_set_t): Move typedef here from varasm.c |
| (symbol_alias_set_destroy, symbol_alias_set_contains, |
| propagate_aliases_backward): Declare. |
| * lto-streamer-out.c (struct sets): New sturcture. |
| (trivally_defined_alias): New function. |
| (output_alias_pair_p): Rewrite. |
| (output_unreferenced_globals): Fix output of alias pairs. |
| (produce_symtab): Likewise. |
| * ipa.c (function_and_variable_visibility): Set weak alias destination |
| as needed in lto. |
| * varasm.c (symbol_alias_set_t): Remove. |
| (symbol_alias_set_destroy): Export. |
| (propagate_aliases_forward, propagate_aliases_backward): New functions |
| based on ... |
| (compute_visible_aliases): ... this one; remove. |
| (trivially_visible_alias): New |
| (trivially_defined_alias): New. |
| (remove_unreachable_alias_pairs): Rewrite. |
| (finish_aliases_1): Reorganize code checking if alias is defined. |
| * passes.c (rest_of_decl_compilation): Do not call assemble_alias when |
| in LTO mode. |
| |
| 2011-01-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/46076 |
| * tree-ssa.c (useless_type_conversion_p): Conversions from |
| unprototyped to empty argument list function types are useless. |
| |
| 2011-01-11 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/45235 |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark |
| volatile MEMs as MEM_READONLY_P. |
| |
| 2011-01-11 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/47239 |
| * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs. |
| |
| 2011-01-11 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47086 |
| * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record |
| IVs from statements that might throw. |
| |
| 2011-01-10 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/45375 |
| * lto-cgraph.c (input_profile_summary): Remove overactive sanity check. |
| |
| 2011-01-10 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/45375 |
| * profile.c (read_profile_edge_counts): Ignore profile inconistency |
| when correcting profile. |
| |
| 2011-01-10 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/46083 |
| * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store |
| DECL_FINI_PRIORITY. |
| * lto-streamer-in.c (unpack_ts_function_decl_value_fields): |
| Restore DECL_FINI_PRIORITY. |
| |
| 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/gimple.texi: Fix quoting of multi-word return values in |
| @deftypefn statements. Ensure presence of return value. Wrap |
| overlong @deftypefn lines. |
| (is_gimple_operand, is_gimple_min_invariant_address): Remove |
| descriptions of removed functions. |
| * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting |
| of multi-word return value in @deftypefn statement. |
| |
| 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/gimple.texi (Temporaries, Operands, Compound Lvalues) |
| (Conditional Expressions, Logical Operators) |
| (Statement and operand traversals): Do not indent smallexample |
| code. Fix duplicate function argument in example. |
| |
| 2011-01-10 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/47141 |
| * ipa-split.c (split_function): Handle case where we are |
| returning a value and the return block has a virtual operand phi. |
| |
| 2011-01-10 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/47234 |
| * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO. |
| (pass_feedback_split_functions): Declare. |
| * passes.c (init_optimization_passes): Add ipa-split as subpass of |
| tree-profile. |
| * ipa-split.c (gate_split_functions): Update comments; disable |
| split-functions for profile_arc_flag and branch_probabilities. |
| (gate_feedback_split_functions): New function. |
| (execute_feedback_split_functions): New function. |
| (pass_feedback_split_functions): New global var. |
| |
| 2011-01-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR lto/46760 |
| * tree-inline.c (tree_can_inline_p): Check e->call_stmt before |
| calling gimple_call_set_cannot_inline. |
| |
| 2011-01-10 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * config/darwin-sections.def: Remove unused section. |
| |
| 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com> |
| |
| PR c++/47218 |
| * cgraphunit.c (assemble_thunk): Call resolve_unique_section. |
| |
| 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| PR objc/47232 |
| * c-parser.c (c_parser_declaration_or_fndef): Improved |
| error message. |
| |
| 2011-01-09 Kai Tietz <kai.tietz@onevision.com> |
| |
| * config/i386/winnt.c (i386_pe_start_function): Make sure |
| to switch back to function's section. |
| |
| 2011-01-09 Iain Sandoe <iains@gcc.gnu.org> |
| |
| PR gcc/46902 |
| PR testsuite/46912 |
| * plugin.c: Move include of dlfcn.h from here... |
| * system.h: ... to here. |
| |
| 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/cpp.texi (C++ Named Operators): Fix markup for header |
| file name. |
| * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid |
| two extra empty pages in PDF output. |
| |
| 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com> |
| |
| PR objc/47078 |
| * c-parser.c (c_parser_objc_type_name): If the type is unknown, |
| for error recovery purposes behave as if it was not specified so |
| that the default type is usd. |
| |
| 2011-01-07 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optmization/46469 |
| * ipa.c (function_and_variable_visibility): Clear needed flags on |
| nodes with external decls; handle weakrefs merging correctly. |
| |
| 2011-01-07 Joseph Myers <joseph@codesourcery.com> |
| |
| * opts.c (finish_options): Set opts->x_flag_opts_finished to true, |
| not false. |
| |
| 2011-01-07 Jan Hubicka <jh@suse.cz> |
| |
| * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults |
| and no longer claim that gold is required for linker plugin. |
| * configure: Regenerate. |
| * gcc.c (PLUGIN_COND): New macro. |
| (LINK_COMMAND_SPEC): Use it. |
| (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set. |
| * config.in (HAVE_LTO_PLUGIN): New. |
| * configure.ac (--with-lto-plugin): New parameter; autodetect |
| HAVE_LTO_PLUGIN. |
| |
| 2011-01-07 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/46367 |
| * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only |
| when we can update original. |
| (cgraph_mark_inline_edge): Sanity check. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check. |
| |
| 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.h (ASM_COMMENT_START): Define. |
| |
| 2011-01-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/42445 |
| * gcc.c (%>S): New. |
| (SWITCH_KEEP_FOR_GCC): Likewise. |
| (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC. |
| (do_spec_1): Handle "%>". |
| |
| * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>". |
| |
| 2011-01-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/47201 |
| * config/i386/i386.c (ix86_delegitimize_address): If |
| simplify_gen_subreg fails, return orig_x. |
| |
| PR bootstrap/47187 |
| * value-prof.c (gimple_stringop_fixed_value): Handle |
| lhs of the call properly. |
| |
| 2011-01-07 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/45375 |
| * lto-opt.c (lto_reissue_options): Set flag_shlib. |
| |
| 2011-01-07 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * target.def (function_switched_text_sections): New hook. |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. |
| * final.c (default_function_switched_text_sections): New. |
| (final_scan_insn): Call function_switched_text_sections when a |
| mid-function section change occurs. |
| * output.h (default_function_switched_text_sections): Declare. |
| * config/darwin-protos.h (darwin_function_switched_text_sections): |
| Likewise. |
| * config/darwin.c (darwin_function_switched_text_sections): New. |
| * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New. |
| |
| 2011-01-07 Iain Sandoe <iains@gcc.gnu.org> |
| |
| * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for |
| DWARF >= 3. Add pubnames for the primary section and a reduced DIE for |
| the secondary code fragment when outputting for DWARF == 2. |
| |
| 2011-01-07 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove. |
| * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra): |
| Remove. |
| * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static. |
| (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. |
| |
| 2011-01-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/46704 |
| * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only |
| when it is not empty. |
| |
| 2011-01-06 Changpeng Fang <changpeng.fang@amd.com> |
| |
| Bobcat Enablement |
| * config.gcc (i[34567]86-*-linux* | ...): Add btver1. |
| (case ${target}): Add btver1. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Let |
| -march=native recognize btver1 processors. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Add |
| btver1 def_and_undef |
| * config/i386/i386.c (struct processor_costs btver1_cost): New |
| btver1 cost table. |
| (m_BTVER1): New definition. |
| (m_AMD_MULTIPLE): Includes m_BTVER1. |
| (initial_ix86_tune_features): Add btver1 tune. |
| (processor_target_table): Add btver1 entry. |
| (static const char *const cpu_names): Add btver1 entry. |
| (software_prefetching_beneficial_p): Add btver1. |
| (ix86_option_override_internal): Add btver1 instruction sets. |
| (ix86_issue_rate): Add btver1. |
| (ix86_adjust_cost): Add btver1. |
| * config/i386/i386.h (TARGET_BTVER1): New definition. |
| (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1. |
| (enum processor_type): Add PROCESSOR_BTVER1. |
| * config/i386/i386.md (define_attr "cpu"): Add btver1. |
| |
| 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/43309 |
| * config/i386/i386.c (legitimize_tls_address) |
| <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS. |
| * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare. |
| (tls_initial_exec_64_sun): New pattern. |
| |
| 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Overall Options): Improve wording and markup |
| of the description of -wrapper. |
| |
| 2011-01-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads, |
| rdynamic, threads): New Driver options. |
| |
| 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR target/38118 |
| * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss |
| if coming from .tdata. |
| * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. |
| |
| 2011-01-06 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/47188 |
| * collect2.c (main): Do not enable LTOmode when plugin is active. |
| |
| 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| PR other/45915 |
| * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd |
| --version output if supported. |
| * configure: Regenerate. |
| |
| 2011-01-06 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/linux-android.opt (tno-android-cc, tno-android-ld): New |
| Driver options. |
| |
| 2011-01-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/47150 |
| * c-convert.c (convert): When converting a complex expression |
| other than COMPLEX_EXPR to a different complex type, ensure |
| c_save_expr is called instead of save_expr, unless in_late_binary_op. |
| * c-typeck.c (convert_for_assignment): Set in_late_binary_op also |
| when converting COMPLEX_TYPE. |
| |
| 2011-01-06 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/47139 |
| * tree-vect-loop.c (vect_is_simple_reduction_1): Check that |
| only the last reduction value is used outside the loop. Update |
| documentation. |
| |
| 2011-01-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rtems.opt: New. |
| * config.gcc (*-*-rtems*): Use rtems.opt. |
| |
| 2011-01-05 Changpeng Fang <changpeng.fang@amd.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Bulldozer |
| processors do not support 3DNow instructions. |
| |
| 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_option_override): Set parameter |
| PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1. |
| |
| 2011-01-05 Jan Hubicka <jh@suse.cz> |
| |
| * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified |
| at the command line. |
| |
| 2011-01-05 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/47162 |
| * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk |
| deltas on streamed outgoing edges. |
| (output_node_opt_summary): Output info for outgoing edges only when |
| the node is in new parameter set. |
| (output_cgraph_opt_summary): New parameter set, passed to the two |
| aforementioned functions. Update its forward declaration and its |
| callee too. |
| |
| 2011-01-05 Tom Tromey <tromey@redhat.com> |
| |
| * c-parser.c (c_parser_omp_atomic): Pass location of assignment |
| operator to c_finish_omp_atomic. |
| * c-typeck.c (lvalue_or_else): Add 'loc' argument. |
| (build_unary_op): Update. |
| (build_modify_expr): Update. |
| (build_asm_expr): Update. |
| |
| 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for |
| newly inserted insns. |
| (pad_bb): Likewise. |
| (spu_emit_branch_hint): Likewise. |
| (insert_hbrp_for_ilb_runout): Likewise. |
| (spu_machine_dependent_reorg): Call df_finish_pass after |
| schedule_insns returns. |
| |
| 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage. |
| |
| 2011-01-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/47005 |
| * tree-sra.c (struct access): Add 'non_addressable' bit. |
| (create_access): Set it for a DECL_NONADDRESSABLE_P field. |
| (decide_one_param_reduction): Return 0 if the parameter is passed by |
| reference and one of the accesses in the group is non_addressable. |
| |
| 2011-01-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/47056 |
| * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers. |
| (mark_load): Likewise. Handle FUNCTION_DECL specially. |
| (mark_store): Likewise. Pass STMT to ipa_record_reference. |
| |
| 2011-01-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the |
| initializer. Skip view conversions from aggregate types. |
| |
| 2011-01-04 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR bootstrap/47055 |
| * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC. |
| |
| 2011-01-04 Philipp Thomas <pth@suse.de> |
| |
| * config/microblaze/microbalse.opt (mxl-float-convert): Fix |
| obvious typo. |
| |
| 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * function.c (thread_prologue_and_epilogue_insns): Do not crash |
| on empty epilogue sequences. |
| |
| 2011-01-04 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now, |
| non-static): New Driver options. |
| |
| 2011-01-04 Jie Zhang <jie@codesourcery.com> |
| |
| PR driver/47137 |
| * gcc.c (default_compilers[]): Set combinable field to 0 |
| for all assembly languages. |
| |
| 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * config/mips/loongson3a.md: New file. |
| * config/mips/mips.md: Include loongson3a.md. |
| * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when |
| TUNE_LOONGSON_3A. |
| |
| 2011-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/47017 |
| * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space |
| instead of convert_memory_address_addr_space on the base expression. |
| |
| 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (spu_option_override): Update error text |
| for bad -march= / -mtune= values. |
| |
| 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking |
| if branch-hint optimization will be performed. |
| |
| 2011-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47148 |
| * ipa-split.c (split_function): Convert arguments to |
| DECL_ARG_TYPE if possible. |
| |
| PR tree-optimization/47155 |
| * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type |
| when computing uns. |
| |
| PR rtl-optimization/47157 |
| * combine.c (try_combine): If undobuf.other_insn becomes |
| (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it |
| and set *new_direct_jump_p too. |
| |
| 2011-01-03 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/47021 |
| * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR. |
| |
| 2011-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.c (process_command): Update copyright notice dates. |
| * gcov.c (print_version): Likewise. |
| * gcov-dump.c (print_version): Likewise. |
| * mips-tfile.c (main): Likewise. |
| * mips-tdump.c (main): Likewise. |
| |
| 2011-01-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/46801 |
| * tree-sra.c (type_internals_preclude_sra_p): Check whether |
| aggregate fields start at byte boundary instead of the bit-field flag. |
| |
| 2011-01-03 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/47137 |
| * gcc.c (main): Revert revision 168407. |
| |
| 2011-01-03 Martin Jambor <mjambor@suse.cz> |
| |
| * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type. |
| |
| 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): When using vector/ |
| vector optab to expand vector/scalar shift, update gimple to vector. |
| |
| 2011-01-03 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to |
| a thunk. |
| |
| 2011-01-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/46984 |
| * cgraph.h (cgraph_indirect_call_info): make field thunk_delta |
| HOST_WIDE_INT. |
| (cgraph_create_indirect_edge): Fixed line length. |
| (cgraph_indirect_call_info): Declare. |
| (cgraph_make_edge_direct) Update declaration. |
| * cgraph.c (cgraph_allocate_init_indirect_info): New function. |
| (cgraph_create_indirect_edge): Use it. |
| (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all |
| callees. |
| * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for |
| the new thunk_delta representation. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to |
| HOST_WIDE_INT. |
| (ipa_write_indirect_edge_info): Remove streaming of thunk_delta. |
| (ipa_read_indirect_edge_info): Likewise. |
| * lto-cgraph.c (output_edge_opt_summary): New function. |
| (output_node_opt_summary): Call it on all outgoing edges. |
| (input_edge_opt_summary): New function. |
| (input_node_opt_summary): Call it on all outgoing edges. |
| |
| 2011-01-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/47137 |
| * gcc.c (main): Don't check have_o when settting combine_inputs. |
| |
| 2011-01-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * regrename.c: Add general comment describing the pass. |
| (struct du_head): Remove 'length' field. |
| (get_element, merge_sort_comparison, merge, sort_du_head): Remove. |
| (regrename_optimize): Do not sort chains. Rework comments, add others. |
| Force renaming to the preferred class (if any) in the first pass and do |
| not consider registers that belong to it in the second pass. |
| (create_new_chain): Do not set 'length' field. |
| (scan_rtx_reg): Likewise. |
| |
| 2011-01-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/47140 |
| * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use |
| TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument |
| to bit_value_binop. |
| |
| PR rtl-optimization/47028 |
| * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after |
| parm_birth_insn instead of at the beginning of first bb. |
| |
| 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com> |
| |
| * doc/generic.texi: Remove duplicated "@subsubsection Statements". |
| Remove the word "see" before "@pxref". |
| * doc/rtl.texi: Remove the word "see" before "@pxref". |
| |
| 2011-01-01 Jan Hubicka <jh@suse.cz> |
| |
| * tree-loop-distribution.c (tree_loop_distribution): Do not use freed |
| memory. |
| |
| 2011-01-01 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR target/38662 |
| * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too. |
| |
| |
| Copyright (C) 2011 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |