X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=0a23c2214f6096f95fa6354f2ee027d4e0f4202f;hp=cd3a907bda6253dedc867d9265519e6c45bb9e47;hb=50247dd938763df581825bd0d2a09fc39fbe8d85;hpb=76f02516d92d7110b13140af39499b789ea392da diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cd3a907bda6..0a23c2214f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,566 @@ +2006-01-20 Dirk Mueller + + PR c++/5520 + * c-parser.c (c_parser_if_body): Use build_empty_stmt() + instead of a special NOP marker. + * c-typeck.c (c_finish_if_stmt): Remove obsoleted special + NOP marker handling. + * c-common.h (empty_body_warning): Add forward declaration. + * c-common.c (empty_body_warning): Add (from c_finish_if_stmt). + Now uses IS_EMPTY_STMT() instead of special NOP markers. + +2005-01-20 Paul Brook + + * Makefile.in (lang_checks): Keep going if mkdir fails. + +2005-01-19 Kenneth Zadeck + + * df-scan.c (df_scan_free_bb_info): Added basic block parameter to + be able to clean out basic block when not necessary. + (df_scan_free): Fixed to properly delete information if df is + unused before calling df_finish. + (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink, + df_insn_create_insn_record, df_bb_refs_record): Fixed formatting + or comment typos. + (df_bb_refs_delete): New function. + (df_refs_delete): Moved per block code to df_bb_refs_delete. + * df-core.c (df_set_blocks): Added code to properly clean out + unused blocks if they are not part of the blocks to consider. + Added additional null check. + (df_compact_blocks): Added basic block parameter to free_bb_fun to + be able to clean out basic block when not necessary + * df.h (df_free_bb_function): Ditto. + (df_bb_refs_delete): New function. + * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info, + df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added + basic block parameter to be able to clean out basic block when not + necessary. + (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test. + (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free): + Fixed to properly delete information if df is unused before + calling df_finish. + +2005-01-19 Kenneth Zadeck + + PR rtl-optimization/25799 + * df-problems.c (df_ru_confluence_n, df_rd_confluence_n): + Corrected confluence operator to remove bits from op2 before oring + with op1 rather than removing bits from op1. + (df_ru_transfer_function): Corrected test on wrong bitmap which + caused infinite loop. Both of these problems were introduced in + the dataflow rewrite. + +2006-01-19 DJ Delorie + + * reload1.c (find_reload_regs): Note the details of reload + failures in the dump file. + (spill_failure): Likewise. + +2006-01-20 Zdenek Dvorak + + * loop-iv.c: Include df.h and hashtab.h. + (enum iv_grd_result): New enum. + (DF_REF_IV, DF_REF_IV_SET): New macros. + (struct biv_entry): New. + (df, bivs): New global variables. + (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no, + assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p): + Removed. + (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr, + iv_analyze_result, iv_analyze_def, biv_hash, biv_eq, + analyzed_for_bivness_p, record_biv): New functions. + (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p, + get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op, + iv_analyze, biv_p, iv_analysis_done): Work with df representation of + UD chains. + (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set + analysed. + (iv_number_of_iterations): Use new interface to iv analysis. + * loop-unroll.c: Do not include varray.h. + (analyze_iv_to_split_insn): Use new interface to iv + analysis. + * loop-unswitch.c (may_unswitch_on): Ditto. + * df.c (df_bitmaps_free): Only work for bbs for that structures are + allocated. + (df_bb_modify): Realloc tables to the new index. + (df_find_use): New function. + * df.h (df_find_use): Declare. + * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be + outmode. + * cfgloop.h (struct rtx_iv): Remove analysed field. + (iv_get_reaching_def): Removed. + (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare. + * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency. + (loop-iv.o): Add df.h and hashtab.h dependency. + * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation. + +2006-01-20 Alan Modra + + * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended + Double TFmode. + (__floatundisf, __floatundidf): Likewise. + * libgcc2.h (IS_IBM_EXTENDED): Define. + +2006-01-19 DJ Delorie + + * config/m32c/m32c.h (REG_ALLOC_ORDER): Define. + +2006-01-19 Paul Brook + + * gcc/config/arm/arm.c (arm_compute_func_type): Treat all functions + as nothrow when unwinding tables are disabled. + +2006-01-19 John David Anglin + + PR testsuite/25171 + * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type + of bit-field" when in system header. + +2006-01-19 DJ Delorie + + * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with + the 16 bit shift limit of the m16c. + +2006-01-19 Andrew Pinski + + PR target/22099 + * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label. + * config/i386/i386.c (output_set_got): Output the label if we have one + for the TARGET_DEEP_BRANCH_PREDICTION case. + +2006-01-19 Jan Hubicka + H.J. Lu + Evandro Menezes + + * invoke.texi (generic): Document + (i686) Update. + * config.gcc: Make x86_64-* and i686-* default to generic tunning. + * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC, + TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros. + (x86_use_incdec, x86_pad_returns): New variables + (TARGET_CPU_DEFAULT_generic): New constant + (TARGET_CPU_DEFAULT_NAMES): Add generic. + (enum processor_type): Add generic32 and generic64. + * i386.md (cpu attribute): Add generic32/generic64 + (movhi splitter): Behave sanely when both partial_reg_dependency and + partial_reg_stall are set. + (K8 splitters): Enable for generic as well. + * predicates.md (incdec_operand): Use TARGET_INCDEC + (aligned_operand): Avoid memory mismatch stalls. + * athlon.md: Enable for generic64, new patterns for 128bit moves. + * ppro.md: Enable for generic32 + * i386.c (generic64_cost, generic32_cost): New. + (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros. + (x86_use_leave): Enable for generic64. (x86_use_sahf, + x86_ext_80387_constants): Enable for generic32. (x86_push_memory, + x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop, + x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule): + Enable for generic. + (x86_use_incdec, x86_pad_returns): New. + (override_options): Add generic32 and generic64, translate "generic" + to generic32/generic64 and "i686" to "generic32", refuse + "generic32"/"generic64" as arch target. + (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon. + (ix86_reorg): Honor PAD_RETURNS. + +2006-01-19 Diego Novillo + + * tree-pretty-print.c (dump_generic_node): Handle + OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR. + * cgraph.c (cgraph_expand_queue): Rename from + cgraph_analyze_queue. Update all users. + * cgraphunit.c (cgraph_assemble_pending_functions): Process + cgraph_expand_queue. + (cgraph_expand_all_functions): Likewise. + (cgraph_finalize_pending_functions): Remove. Update callers. + + * tree.h (OMP_DIRECTIVE_P): Define. + (OMP_PARALLEL_FN): Define. + (OMP_PARALLEL_DATA_ARG): Define. + (OMP_SECTIONS_SECTIONS): Define. + * tree-pass.h (pass_expand_omp): Declare. + * omp-low.c (struct omp_region): Declare. + (struct omp_context): Remove fields 'parallel_type', + 'parallel_start_ix' and 'parallel_start_additional_args'. + Update all users. + (struct omp_for_data): Rename from struct expand_omp_for_data. + (omp_regions): New static variable. + (root_omp_region): New static variable. + (find_omp_clause): Make static. + (is_in_combined_parallel_ctx): Remove. + (is_combined_parallel): New. + (extract_omp_for_data): Move earlier in the file. + (workshare_safe_to_combine_p): New. + (get_ws_args_for): New. + (determine_parallel_type): Move earlier in the file. + (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the + child function. + (omp_copy_decl): Likewise. + (create_omp_child_function): Likewise. + (lookup_omp_region): New. + (dump_omp_region): New. + (debug_omp_region): New. + (debug_all_omp_regions): New. + (new_omp_region): New. + (scan_omp_parallel): If parallel_nesting_level > 1, the + directive is nested within another parallel directive. + Set OMP_PARALLEL_FN. + (scan_omp_for): Do not try to handle combined parallel+for + cases. + Remove FIXME comment. + (scan_omp_nested): Remove. + (scan_omp_1): Do not call scan_omp_nested when + parallel_nesting_level is > 1. + Do not change the DECL_CONTEXT of local variables found. + (lookup_decl_in_outer_ctx): New. + (lower_rec_input_clauses): Rename from expand_rec_input_clauses. + (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses. + (lower_reduction_clauses): Rename from expand_reduction_clauses. + (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses. + If CTX is nested, lookup VAR in the outer context when + building copy assignment. + (lower_send_clauses): Rename from expand_send_clauses. + If CTX is nested, lookup VAR in the outer context when + building copy assignments. + (lower_send_shared_vars): Rename from expand_send_shared_vars. + If CTX is nested, lookup VAR in the outer context when + building copy assignments. + (expand_parallel_call): Rename from build_parallel_call. + Handle combined parallel+workshare cases. + Re-implement to emit code into the CFG. + (list2chain): New. + (expand_omp_parallel): Re-implement to emit code into the CFG. + Call move_sese_region_to_fn to outline the sub-graph + containing the parallel region. + (expand_omp_for_1): Remove. + (expand_omp_for_generic): Re-implement to emit code into the + CFG. + (expand_omp_for_static_nochunk): Likewise. + (expand_omp_for_static_chunk): Likewise. + (expand_omp_for): Likewise. + (expand_omp_sections): Likewise. + (remove_exit_barriers): New. + (expand_omp_synch): New. + (expand_omp): New. + (build_omp_regions_1): New. + (build_omp_regions): New. + (execute_expand_omp): New. + (gate_expand_omp): New. + (pass_expand_omp): Define. + (lower_omp_sections): Rename from expand_omp_sections. + Set OMP_SECTIONS_SECTIONS. + (lower_omp_single_simple): Rename from expand_omp_single_simple. + (lower_omp_single_copy): Rename from expand_omp_single_copy. + (lower_omp_single): Rename from expand_omp_simple. + (lower_omp_master): Rename from expand_omp_master. + (lower_omp_ordered): Rename from expand_omp_ordered. + (lower_omp_critical): Rename from expand_omp_critical. + (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate. + (lower_omp_for): Re-implement. + (lower_omp_parallel): Re-implement. + (lower_regimplify): Rename from expand_regimplify. + (lower_omp_1): Rename from expand_omp_1. + If there are syntax errors in the program, replace every + OpenMP directive with NOP. + Call lower_omp_* instead of expand_omp_*. + (lower_omp): Rename from expand_omp. + + * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR. + * tree-gimple.h (enum omp_parallel_type): Remove. + (gimple_boolify): Declare extern. + (find_omp_clause, determine_parallel_type): Remove. + + * gimple-low.c (lower_omp_directive): New. + (lower_stmt): Call it. + (record_vars_into): Move from ... + (record_vars): ... here. + Call record_vars_into with current_function_decl. + + * gimplify.c (struct gimplify_ctx): Remove fields + combined_pre_p and combined_ctxp. Update users. + (get_formal_tmp_var): Add documentation. + (gimple_boolify): Make extern. + (gimplify_expr_in_ctx): Remove. Update callers. + (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY + will always be a BIND_EXPR. + (gimplify_expr): Handle OMP_RETURN_EXPR. + * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS. + (OMP_PARALLEL): Add 3 operands. + (OMP_SECTIONS): Add 1 operand. + (OMP_RETURN_EXPR): Define. + + * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives. + (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*. + * tree-iterator.c (alloc_stmt_list): Assert that we are not + creating a circular free list. + (free_stmt_list): Assert that we are not freeing stmt_list_cache. + + * tree-flow.h (move_sese_region_to_fn): Declare. + (record_vars_into): Declare. + * tree-cfg.c (make_omp_sections_edges): New. + (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE, + OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR, + OMP_SECTIONS and OMP_SECTION. + (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P. + (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl. + (verify_stmt): Do not handle OMP_DIRECTIVE_P. + (gather_blocks_in_sese_region): New. + (struct move_stmt_d): Declare. + (move_stmt_r): New. + (move_block_to_fn): New. + (move_sese_region_to_fn): New. + + * passes.c (init_optimization_passes): Schedule + pass_expand_omp after pass_init_datastructures. + + * tree-ssa-operands.c (get_expr_operands): Handle + OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR, + OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL. + +2006-01-19 Jeff Law + + * tree-vrp.c (extract_range_from_assert): Refine the result range + if the variable referenced by the ASSERT_EXPR has a range and + either the tentative result range or the previous range is a + VR_ANTI_RANGE. + +2006-01-19 Richard Sandiford + + * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses. + +2006-01-19 Jan Hubicka + + * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error. + +2006-01-19 Paolo Bonzini + + * combine.c (try_combine): Do not worry about MEMs wrapped by USEs. + (expand_compound_operation, expand_field_assignment): Fail if the + bit lengths of an extract operation are out of range. + (make_extraction): Compute wanted_inner_mode based on the position + and length of the extraction. Make it extraction_mode for non-constant + positions, and do not modify offset in that case. When generating a + new MEM, use a mode that can hold the extraction while keeping correct + alignment. Remove code that supported MEMs wrapped by USEs. + (simplify_shift_const_1, force_to_mode) : Remove. + +2006-01-19 Andreas Krebbel + + * config/s390/s390.md ("Y", "y"): New mode attribute. + ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc", + "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly", + "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64", + "*addsi3_imm_cc", "*addsi3_carry1_cc", + "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly", + "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", + "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc", + "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64", + "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc", + "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2", + "addsi3", "subsi3"): Insn patterns removed. + ("*add3_carry1_cc", "*add3_carry1_cconly", + "*add3_carry2_cc", "*add3_carry2_cconly", "*add3_cc", + "*add3_cconly", "*add3_cconly2", "*add3_imm_cc", + "*sub3_borrow_cc", "*sub3_borrow_cconly", + "*sub3_cc", "*sub3_cc2", "*sub3_cconly", + "*sub3_cconly2"): New insn patterns. + ("addsi3", "subsi3"): New expanders. + +2006-01-19 Dorit Nuzman + + * Makefile.in (tree-vect-patterns.o): Add rule for new file. + * tree-vect-analyze.c (vect_determine_vectorization_factor): Use + existing STMT_VINFO_VECTYPE if available. + (vect_mark_relevant): Add special handling for stmts that are + marked as STMT_VINFO_IN_PATTERN_P. + (vect_analyze_loop): Call vect_pattern_recog. + * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. + * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in + stmt_info. + (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros. + (vect_recog_func_ptr): New function-pointer type. + * tree-vect-patterns.c: New file. + (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern): + (vect_recog_dot_prod_pattern, vect_pattern_recog): + (vect_pattern_recog_1): New functions. + (vect_pattern_recog_funcs): New array of function pointers. + + * tree-vectorizer.h (ternary_op): New enum value. + * tree-vect-transform.c (vect_create_epilog_for_reduction): Added + declaration. Revised documentation. Removed redundant dump prints. + Removed redundant argument. Added support for reduction patterns. + (vectorizable_reduction): Added support for reduction patterns. + (vect_transform_stmt): Added support for patterns. + + * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR. + * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize. + * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR. + (expand_widen_pattern_expr): New function. + (init_optabs): Initialize new optabs udot_prod_optab, + sdot_prod_optab. + * optabs.h (OTI_sdot_prod, OTI_udot_prod): New. + (sdot_prod_optab, udot_prod_optab): Define new optabs. + (expand_widen_pattern_expr): New function declaration. + * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New + tree-codes. + * tree-inline.c (estimate_num_insns_1): Added cases for new + tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. + * tree-pretty-print.c (dump_generic_node): Likewise. + (op_prio): Likewise. + (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. + * tree-ssa-operands.c (get_expr_operands): Added case for + DOT_PROD_EXPR. + * tree-vect-patterns.c (widened_name_p): New function. + (vect_recog_dot_prod_pattern): Added function implementation. + * tree-vect-transform.c (get_initial_def_for_reduction): Added + cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR. + * config/rs6000/altivec.md (udot_prod, sdot_prodv8hi): New. + * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New. + + * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR. + * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize. + * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR. + (init_optabs): Initialize new optabs widen_ssum_optab, + widen_usum_optab. + * optabs.h (OTI_widen_ssum, OTI_widen_usum): New. + (widen_ssum_optab, widen_usum_optab): Define new optabs. + * tree-vect-generic.c: (expand_vector_operations_1): Check type of + use instead of type of def. + * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added + function implementation. + * config/rs6000/altivec.md (widen_usum, widen_ssumv16qi, + widen_ssumv8hi): New. + + * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New + patterns. + +2006-01-19 Richard Sandiford + + PR c/25805 + * c-decl.c (add_flexible_array_elts_to_size): New function. + (finish_decl): Use it. + +2006-01-18 Andrew Pinski + + * diagnostic.h: Include options.h. + * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the + dependancies for diagnostic.h. + * Makefile.in (DIAGNOSTIC_H): Add options.h. + +2006-01-16 Daniel Berlin + + * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove. + (ssa_ro_call_cache_valid): Ditto. + * tree-ssa-alias.c (sort_tags_by_id): New function. + (init_transitive_clobber_worklist): Ditto. + (add_to_worklist): Ditto. + (mark_aliases_call_clobbered): Ditto. + (compute_tag_properties): Ditto. + (set_initial_properties): Ditto. + (compute_call_clobbered): Ditto. + (compute_may_aliases): Call compute_call_clobbered and grouping. + (compute_flow_sensitive_aliasing): Remove clobbering related code. + (compute_flow_insensitive_aliasing): Grouping now happens in our + caller. + (setup_pointers_and_addressables): Remove clobbering related code. + (add_may_alias): Ditto. + (replace_may_alias): Ditto. + (get_nmt_for): Ditto. + (create_global_var): + (is_escape_site): Return an escape_type enumeration. + * tree-flow-inline.h (is_call_clobbered): Global var does not + imply call clobbered. + (mark_call_clobbered): Take a reason for marking this. Remove + marking of globalness, and cache invalidation. + (clear_call_clobbered): Remove cache invalidation code. + * tree-dfa.c (dump_variable): If details is on, dump the reason + for escaping. + * tree-outof-ssa.c (create_temp): Copy escape mask from original + variable. + * tree-flow.h (struct ptr_info_def): Add escape mask member. + (struct var_ann_d): Ditto. + (enum escape_type): New. + (mark_call_clobbered): Adjust prototype. + * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars + are never call clobbered. + Record reasons for escaping. + * tree-ssa-structalias.h (is_escape_site): Update prototype. + * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove. + (ssa_ro_call_cache_valid): Ditto. + (clobbered_v_may_defs): Ditto. + (clobbered_vuses): Ditto. + (ro_call_vuses): Ditto. + (clobber_stats): New. + (init_ssa_operands): Zero out clobber stats. + (fini_ssa_operands): Print out clobber stats. + (get_call_expr_operands): Pass callee fndecl to + add_call_read_ops). + (add_call_clobber_ops): Remove use of cache. + Add use of PURE_CONST information. + (add_call_read_ops): Remove use of cache. + Add use of static not_read information. + +2006-01-18 Alexandre Oliva + + Introduce TLS descriptors for i386 and x86_64. + * config/i386/i386.h (TARGET_GNU2_TLS): New macro. + (TARGET_ANY_GNU_TLS): New macro. + (enum tls_dialect): Added TLS_DIALECT_GNU2. + (struct machine_function): Add tls_descriptor_call_expanded_p. + (ix86_tls_descriptor_calls_expande_in_cfun): New macro. + (ix86_current_function_calls_tls_descriptor): Likewise. + * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment. + (override_options): Introduce gnu2 tls dialect. + (ix86_frame_pointer_required): Functions containing TLSCALLs are + not leaves. + (ix86_select_alt_pic_regnum, ix86_compute_frame_layout): + Likewise. + (legitimize_tls_address): Adjust logic for GNU2 TLS. + (ix86_init_machine_status): Initialize new field. + (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS. + (ix86_tls_module_base): New. + * config/i386/i386-protos.h (ix86_tls_module_base): Declare it. + * config/i386/i386.md (UNSPEC_TLSDESC): New constant. + (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS. + (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise. + (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns. + (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise. + (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise. + (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise. + * config/i386/predicates.md (tls_modbase_operand): New. + (tp_or_register_operand): New. + +2006-01-18 Daniel Berlin + + * ipa-reference.c (check_operand): Allow FUNCTION_DECL. + (look_for_address_of): Ditto. + (ipa_init): Walk the function decls. + (static_execute): Don't set readonly on FUNCTION_DECL's. + +2006-01-18 Roger Sayle + + * config/i386/i386.md (shift spliter): Fix a a typo in the splitter + for shifts where the source and destination registers are different. + +2006-01-18 Paul Brook + + Merge from csl-arm-branch. + 2005-03-14 Julian Brown + * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS. + (aeabi_llsl): Likewise. + (ashrdi3): Likewise. + (aeabi_lasr): Likewise. + (lshrdi3): Likewise. + (aeabi_llsr): Likewise. + 2005-03-10 Julian Brown + * config.gcc: Disable shared libgcc for SymbianOS. + * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c. + 2006-01-18 DJ Delorie * c-pragma.c (handle_pragma_diagnostic): New.