OSDN Git Service

PR target/27627
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7bd222e..d94f8d6 100644 (file)
@@ -1,3 +1,270 @@
+2006-06-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/27627
+       * pa/pa-modes.def: Use mips_single_format, mips_double_format and
+       mips_quad_format formats instead of ieee_single_format,
+       ieee_double_format and ieee_quad_format formats, respectively.
+
+2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR tree-optimization/27639
+       PR tree-optimization/26719
+       * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
+       call to scev_probably_wraps_p.
+       * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
+       used_in_pointer_arithmetic_p, convert_step): Removed.
+       (nowrap_type_p): New function.
+       (scev_probably_wraps_p): Rewritten.
+       * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
+       chrec_convert if chrec_convert_aggressive might have been used.
+       * tree-chrec.c (convert_affine_scev, chrec_convert_1,
+       scev_direction): New functions.
+       (chrec_convert): Changed to a wrapper over chrec_convert_1.
+       * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
+       instead of convert_step.
+       * tree-flow.h (scev_probably_wraps_p): Declaration changed.
+       (convert_step): Declaration removed.
+       (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
+
+2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * df-core.c: Added to header comments.
+       * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
+       df_ur_bb_info, df_urec_bb_info): Added comments.
+       * df-problems (df_ref_bitmap, ru, rd, lr, ur, 
+       urec, ri problems): Fixed header comments.
+       (df_ru_transfer_function): Fixed in-out set dyslexia when copying 
+       code from df_rd_transfer_function.
+       
+2006-05-23  Richard Sandiford  <richard@codesourcery.com>
+
+       * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
+       (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
+       MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
+
+2006-05-23  Joseph Myers  <joseph@codesourcery.com>
+
+       * expr.c (undefined_operand_subword_p): New.
+       (emit_move_multi_word): Do not generate move from undefined bits
+       of a paradoxical subreg.
+
+2006-05-23  Richard Sandiford  <richard@codesourcery.com>
+
+       PR rtl-optimization/27736
+       * combine.c (replaced_rhs_value): New variable.
+       (combine_instructions): Set it.
+       (distribute_notes): When distributing a note in replaced_rhs_insn,
+       check whether the value was used in replaced_rhs_value.
+
+2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR c++/26757
+       * tree-ssa-loop-im.c (determine_invariantness_stmt): Use 
+       add_referenced_var instead of add_referenced_tmp_var.
+       * tree-complex.c (create_one_component_var): Use add_referenced_var.
+       * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
+       add_referenced_var.
+       * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
+       tree_optimize_tail_calls_1): Use add_referenced_var.
+       * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
+       * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
+       Use add_referenced_var.
+       * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
+       * gimplify.c (force_gimple_operand): Use add_referenced_var.
+       * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
+       Use add_referenced_var.
+       * tree-dfa.c (struct walk_state): Remove.
+       (find_referenced_vars): Remove walk state and vars_found hash table.
+       (make_rename_temp): Use add_referenced_var.
+       (find_vars_r): Pass less parameters to add_referenced_var.
+       (referenced_var_p): New.  Is var in referenced_var hash table.
+       (referenced_var_insert): Assert var isn't already in hash table.
+       (add_referenced_var): Don't need walk_state parameter.  Add var if it
+       isn't already in the hash table.
+       (add_referenced_tmp_var): Remove.
+       (find_new_referenced_vars_1): Use add_referenced_var.
+       * tree-ssa-pre.c (create_expression_by_pieces, 
+       insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
+       Use add_referenced_var.
+       * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
+       * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
+       lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use 
+       add_referenced_var.
+       * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
+       vect_create_data_ref_ptr, vect_create_destination_var,
+       vect_init_vector, vect_build_loop_niters, 
+       vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
+       vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
+       Use add_referenced_var.
+       * tree-outof-ssa.c (create_temp): Use add_referenced_var.
+       * tree-flow.h (add_referenced_tmp_var): Remove prototype
+       (add_referenced_var): Add prototype.
+       * tree-ssa-structalias.c (get_constraint_for, 
+       intra_create_variable_infos): Use add_referenced_var.
+
+2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
+
+       * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
+       big-endian paradoxical subregs.
+       * var-tracking.c (struct micro_operation_def): Document that,
+       for modify micro operations, insn is the subsequent instruction.
+       (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
+       (var_reg_set, var_mem_set): ... new functions.
+       (add_stores): Record subsequent insn.
+       (compute_bb_dataflow): Use new functions for MO_USE.
+       (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
+       notes after the insn, and modify notes before the insn known
+       to be the subsequent one.
+       (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
+
+2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR target/27696
+       * config/i386/i386.c (ix86_expand_builtin): Use
+       gen_sse3_monitor64 for TARGET_64BIT.
+
+2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR rtl-optimization/26375
+       PR rtl-optimization/26855
+       * df-problems (df_ru_bb_local_compute_process_def): Removed update
+       to gen set.
+       (df_ru_bb_local_compute): Reversed statements and removed bogus
+       comment explaining why they should be in wrong order.
+       (df_ru_dump, df_rd_dump): Enhanced debug info.     
+       * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
+       debug info.       
+       * ddg.c (add_deps_for_def): Converted use of reaching defs to
+       reaching uses and fixed space problem.
+
+2006-05-23  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (decide_is_function_needed): Also nested functions
+       and functions declared inline can be optimized out at -O0.
+
+2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/install.texi (Configuration): Remove reference to CrossGCC
+       FAQ which was hijacked.
+       (Building): Ditto.
+
+2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR target/27266
+       * config/i386/i386.c (ix86_expand_branch): Jump to simple if
+       ix86_compare_emitted is non-NULL.
+
+2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/27451
+       * stmt.c (expand_asm_operands): Skip asm statement with erroneous
+       clobbers.
+
+2006-05-22  Richard Sandiford  <richard@codesourcery.com>
+
+       PR rtl-optimization/25514
+       * combine.c (replaced_rhs_insn): New variable.
+       (combine_instructions): Set replaced_rhs_insn when trying to replace
+       a SET_SRC with a REG_EQUAL note.
+       (distribute_notes): Use replaced_rhs_insn when determining the live
+       range of a REG_DEAD register.
+
+2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+            Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
+       attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
+       attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, 
+       atmega164p, atmega324p, atmega644p, atmega644, atmega329, 
+       atmega3290, atmega649, atmega6490, atmega406, atmega640, 
+       atmega1280, atmega1281, at90can32, at90can64, at90usb646, 
+       at90usb647, at90usb1286 and at90usb1287 devices.  
+       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+       * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2006-05-22  Richard Sandiford  <richard@codesourcery.com>
+
+       * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
+
+2006-05-22  Richard Guenther  <rguenther@suse.de>
+
+       Revert
+       2006-01-31  Richard Guenther  <rguenther@suse.de>
+       Paolo Bonzini  <bonzini@gnu.org>
+
+       * doc/install.texi (--disable-libgcc-math): Document.
+
+2006-05-22  Richard Guenther  <rguenther@suse.de>
+
+       Revert
+       2006-01-31  Richard Guenther  <rguenther@suse.de>
+
+       * doc/invoke.texi (-msselibm): Document.
+       * target.h (expand_library_builtin): New target hook.
+       * builtins.c (expand_builtin): Use expand_library_builtin.
+       (default_expand_library_builtin): New function.
+       * gcc.c (LINK_GCC_MATH_SPEC): Define.
+       (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
+       (link_gcc_math_spec): Declare.
+       (static_specs): Add link_gcc_math_spec.
+       * expr.h (default_expand_library_builtin): Declare.
+       * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
+       (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
+       * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
+       * config/i386/i386.opt (msselibm): New target option.
+       * config/i386/i386.c (ix86_builtin_function_variants): New array.
+       (ix86_init_sse_abi_builtins): New function.
+       (ix86_expand_library_builtin): Likewise.
+       (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
+       (override_options): Handle error conditions wrt -msselibm.
+       (ix86_builtins): Add function codes for SSE2 ABI builtins.
+       (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
+       * doc/extend.texi (__builtin_sse2_*): Document new target specific
+       builtins.
+
+2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c/27420
+       * c-common.c (self_promoting_args_p): Skip erroneous args.
+
+       PR c/26818
+       * c-decl.c (finish_struct): Skip erroneous fields.
+
+2006-05-22  Nick Clifton  <nickc@redhat.com>
+
+       * config/cris/cris.opt (march): Remove VarExists attribute.
+       (max-stackframe=): Likewise.
+
+2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       * doc/rtl.texi: Fix a typo.
+       * see.c: Fix comment typos.
+
+       * tree-ssa-structalias.h (alias_info): Remove num_references.
+
+2006-05-21  Mike Stump  <mrs@apple.com>
+
+       * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
+       (BAD2): Add.
+       (darwin_pragma_options): Use BAD instead.
+       (darwin_pragma_unused): Likewise.
+       (darwin_pragma_ms_struct): Likewise.
+
+2006-05-21  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
+
+2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
+
+       PR rtl-optimization/27671
+       * simplify-rtx.c (simplify_relational_operation_1): Fix
+       simplifications of (eq/ne (xor x y) y) and
+       (eq/ne (xor x y) x).
+
+       PR tree-optimization/26622.
+       * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
+       on arg1.
+
 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
 
        * tree-cfg.c: Prune whitespace.
 
        * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
 
+2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
+            Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR rtl-optimization/26855
+
+       * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
+       multiword refs.
+       (df_scan_alloc): Added code to properly handle multiword hard
+       registers and add all_blocks parameter.
+       (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
+       code to properly handle multiword hard registers.
+       (df_rescan_blocks): Added code to remove deleted blocks from
+       bitmap.
+       (df_ref_create_structure, df_ref_record): Added code to properly
+       handle subregs.
+       (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
+       and set DF_REF_PARTIAL.
+       (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
+       (df_uses_record): Added DF_REF_PARTIAL for subreg. 
+       (df_scan_add_problem): Added flags parameter.
+       (df_ref_create_structure): Changed switching structure.
+       (df_bb_refs_record): Fixed case where duplicate artificial refs
+       were created.  Changed location of flags.
+       (df_record_entry_block_defs): Added code to make stack pointer
+       live in entry block.  Refined cases where frame pointer is needed.
+       Changed location of flags.
+       (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
+       (df_set_state): Removed function.
+       (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
+       df_insn_create_insn_record, df_insn_refs_delete, 
+       df_ref_create_structure): Formatting changes.  
+       * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
+       df_delete_basic_block): New function.
+       (df_init): Changed location of flags.
+       (df_add_problem): Added flags parameter and the way flags are
+       processed.
+       (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
+       debug_df_chain): Improved debugging output.
+       (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
+       (df_refs_chain_dump): Removed df parameter.
+       (df_iterative_dataflow): Added consistency check.
+       (df_prune_to_subcfg): Made public.
+       (df_analyze_problem): Added blocks_to_init parameter and made
+       public.
+       (df_ref_record, df_bb_refs_record, df_mark_reg, 
+        df_record_exit_block_uses): Whitespace changes.
+       (df_dump): Whitespace changes.
+       * df.h: Some reordering to remove forward references.
+       (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
+       DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
+       (df_ref_flags.DF_REF_CLOBBER): Deleted field.
+       (dataflow.flags): New field.
+       (df.flag): Deleted field.
+       (df_alloc_function): Added additional bitmap parameter.
+       (df_dependent_problem_function): New type.
+       (df_problem.changeable_flags): New field.
+       (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
+       DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
+       (df_mw_hardreg): New struct.
+       (DF_INSN_UID_MWS): New macro.
+       (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
+       parameter.
+       (df_add_problem, df_ru_add_problem, df_rd_add_problem,
+       df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
+       df_ri_add_problem, df_scan_add_problem): Added flags parameter.
+       (df_set_state): Removed function.
+       (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
+       * df-problems.c (df_chain_dump): Removed df parameter.
+       (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
+       df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
+       parameter.
+       (df_ru_alloc, df_rd_alloc): Now resets all blocks.
+       (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
+       df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
+       Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
+       DF_REF_MUST_CLOBBER cases.
+       (df_ru_bb_local_compute_process_def,
+       df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
+       df_lr_bb_local_compute, df_ur_bb_local_compute,
+       df_chain_create_bb): Made subreg aware.
+       (df_ru_bb_local_compute, df_rd_bb_local_compute,
+       df_lr_bb_local_compute, df_lr_bb_local_compute,
+       df_chain_create_bb): Cleanup to use proper macros.
+       (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
+       code to fixup bitvectors.
+       (df_ri_alloc): Cleared lifetime.
+       (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
+       df_create_unused_note): New function.
+       (df_ri_bb_compute, df_ri_compute): Added code to create/update
+       REG_DEAD and REG_UNUSED notes as well as register information.
+       (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
+       df_chains_dump): Fixed crash if problem was never run.
+       (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
+       df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
+       df_ri_add_problem): Processes flags in uniform manner.
+       (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
+       df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
+       df_rd_dump, df_urec_free_bb_info): Formatting changes.
+       (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
+       df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
+       df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
+       df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
+       df_ur_dump, df_urec_free_bb_info, df_urec_dump,
+       df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
+       * modulo-sched.c (sms_schedule): Added flag parameter to calls.
+       * see.c (see_initialize_data): Ditto.
+       * final.c (rest_of_clean_state) Added regstack_completed.
+       * rtl.h (regstack_completed): Ditto.
+       * reg-stack.c (regstack_completed): Ditto.
+
 2006-05-19  Mike Stump  <mrs@apple.com>
 
        * c-tree.h (default_conversion): Remove.