OSDN Git Service

PR rtl-optimization/21299
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a430e20..835c93d 100644 (file)
@@ -1,5 +1,455 @@
+2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR rtl-optimization/21299
+       * reload1.c (reload): Purge invalid ASMs in the final pass.
+
+2006-09-19  Steve Ellcey  <sje@cup.hp.com>
+
+       PR  28490
+       * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
+       pointers as legitimate constants.
+
+2006-09-19  Paul Brook  <paul@codesourcery.com>
+
+       PR target/28516
+       * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
+
+2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR tree-optimization/28887
+       * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
+       component parts from the reference.
+       (gather_memory_references_ref): Record the reference without the
+       nonaddressable component parts.
+
+2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR c/25993
+       * c-opts.c (c_common_handle_option): Ignore the -std options
+       if the input language is assembly.
+
+2006-09-17  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-opt/21591
+       * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
+       tag first.
+       (ptr_ptr_may_alias_p): Likewise.
+       (record_record_differ_p): New function.
+       (base_object_differ_p): Call record_record_differ_p.
+
+2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/29059
+       * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
+       away for the expr argument.
+
+2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR tree-opt/27742
+       * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
+       before using it for dumping after vectorizing loops.
+
+2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
+           Jack Howarth  <howarth@bromo.med.uc.edu>
+
+       PR target/29030
+       * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
+       skip on error_mark_node.
+       (rs6000_darwin64_record_arg_recurse): Likewise.
+
+2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
+       * doc/rtl.texi: Remove related documentation.
+
+2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
+       printf.
+
+2006-09-15  Jim Wilson  <wilson@specifix.com>
+
+       * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
+       Handle symbol offsets same as they are handled in ia64_expand_move
+       and move_operand.
+
+2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
+       Add forgotten parameter to the fprintf call.
+
+2006-09-15  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
+
+2006-09-15  Uros Bizjak <uros@kss-loka.si>
+
+       * doc/contrib.texi: Add my entry.
+
+2006-09-15  Nick Clifton  <nickc@redhat.com>
+
+       * doc/md.texi (Processor pipeline description): Fix typo in
+       example of how to use the absence_set directive and reword the
+       description to make it slightly easier to read.
+
+2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
+       * loop-doloop.c (doloop_optimize): Use it to limit costs of
+       expanding the number of iterations.
+       * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
+
+       * cfgrtl.c (emit_insn_at_entry): New function.
+       * rtl.h (emit_insn_at_entry): Declare it.
+       * integrate.c (emit_initial_value_sets): Use it.
+
+       * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
+
+       * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
+       bad.
+       (struct loop_work and related VEC declarations): Delete.
+       (bfin_dump_loops): Print out new member bad.
+       (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
+       (bfin_scan_loop): Don't recurse.
+       (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
+       loops.  No longer need to update outer loops if the current one is
+       found bad.  Move some validitiy checks to bfin_discover_loop.
+       (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
+       but changed not to check for nesting.  Also changed to use the new bad
+       flag.
+       (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
+       time.  Use bitmap based test to discover loop nesting.
+
+2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
+
+       * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
+       one line.
+
+2006-09-14  Richard Guenther  <rguenther@suse.de>
+           Kazu Hirata  <kazu@codesourcery.com>
+
+       PR middle-end/28884.
+       * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
+       (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
+       Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
+       with TARGET_FUNCTION_VALUE.
+
+2006-09-14  Anatoly Sokolov <aesok@post.ru>
+
+       PR target/26504
+       * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
+
+2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
+
+       * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
+       of a RETURN_EXPR
+
+2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR debug/28980
+       * dwarf2out.c (loc_descriptor_from_tree_1): Handle
+       FUNCTION_DECL.
+
+2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * basic_block.h (bb_has_eh_pred): Fix comment.
+
+2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * flow.c (calculate_global_regs_live): Invalidate eh registers
+       on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
+       (propagate_block): Handle eh registers as if they were set at basic
+       block start.
+       * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
+       registers.
+       * global.c (global_conflicts): Make eh registers to conflict with
+       pseudos live at basic block begin.
+       * basic_block.h (bb_has_eh_pred): New function.
+
+2006-09-13  Richard Sandiford  <richard@codesourcery.com>
+
+       PR rtl-optimization/28982
+       * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
+       index of a PRE_MODIFY or POST_MODIFY address.
+       * reload1.c (inc_for_reload): Use find_replacement on the original
+       base and index registers.
+
+2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
+       for -Os. Update __m128 alignment requirement.
+
+2006-09-13  Jan Hubicka  <jh@suse.cz>
+
+       * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
+
+2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR rtl-optimization/28243
+       * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
+       the insn to which the note was originally attached.
+
+2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
+           Roger Sayle  <roger@eyesopen.com>
+
+       * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
+       outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
+       on platforms that don't use dwarf for debug info.
+
+2006-09-12  Jason Merrill  <jason@redhat.com>
+
+       PR middle-end/28493
+       * builtins.c (expand_builtin_setjmp_receiver): Clobber
+       hard_frame_pointer_rtx after using it to update the frame pointer.
+
+2006-09-12  Roger Sayle  <roger@eyesopen.com>
+
+       * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
+       (TARGET_ASM_CLOSE_PAREN): Likewise.
+       * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
+       (TARGET_ASM_CLOSE_PAREN): Likewise.
+
+2006-09-12  Roger Sayle  <roger@eyesopen.com>
+
+       PR target/22223
+       * config/alpha/alpha.c (alpha_start_function): Don't emit stack
+       frame information for frames larger than 512 Kbytes on Tru64 when
+       using the native assembler.
+
+2006-09-12  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/4520
+       PR bootstrap/28784
+       * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
+       and symbols.  Instead use the implementation from cse.c's hash_rtx.
+
+2006-09-12  Jan Hubicka  <jh@suse.cz>
+
+       PR rtl-optimization/28071
+       * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
+       (vect_transform_loop): Likewise.
+       * tree-vectorizer.c (new_loop_vec_info): Likewise.
+       (new_loop_vec_info): Likewise.
+       (destroy_loop_vec_info): Likewise.
+       * tree-dfa.c (create_var_ann): Use GCC_CNEW.
+       (create_stmt_ann): Likewise.
+       (create_tree_ann): Rename to ...
+       (create_tree_common_ann): ... this one; allocate only the common part
+       of annotations.
+       * tree-vn.c (set_value_handle): Use get_tree_common_ann.
+       (get_value_handle): Likewise.
+       * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
+       get_tree_common_ann.
+       * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
+       (vinfo_for_stmt): Use stmt annotations.
+       * tree-flow.h (tree_ann_common_t): New type.
+       (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
+       (tree_ann, get_tree_ann, create_tree_ann): New.
+       * tree-flow-inline.h (get_function_ann): Do more type checking.
+       (stmt_ann): Likewise.
+       (tree_ann): Rename to ...
+       (tree_common_ann): ... this one; return ony common_ann
+       (get_tree_ann): Rename to ...
+       (tree_common_ann): This one; return only common_ann.
+       * tree-vect-patterns.c (vect_pattern_recog_1): Update call
+       of set_stmt_info.
+
+2006-09-11  Geoffrey Keating  <geoffk@apple.com>
+
+       * config.gcc (i[34567]86-*-darwin*): Set with_arch and
+       with_cpu by default.
+
+       * dwarf2out.c (dwarf_file_data): New.
+       (enum dw_val_class): Add dw_val_class_file.
+       (struct dw_val_struct): Add val_file.
+       (file_table): Change to a hash table.
+       (file_table_emitted): Delete.
+       (file_table_last_lookup_index): Delete.
+       (emitcount): Delete.
+       (last_emitted_file): New.
+       (lookup_filename): Change prototype to return a struct dwarf_file_data.
+       (init_file_table): Delete.
+       (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
+       (AT_addr): Add comment.
+       (add_AT_file): New.
+       (AT_file): New.
+       (get_AT_file): New.
+       (print_die): Handle dw_val_class_file.
+       (print_dwarf_line_table): Update for new file table structure.
+       (attr_checksum): Do checksum a filename.
+       (same_dw_val_p, same_attr_p): Do compare a filename.
+       (size_of_die): Handle dw_val_class_file.
+       (value_format): Likewise.
+       (output_die): Likewise.  Also, call maybe_emit_file here.
+       (struct file_info): Constify filenames.  Make file_idx a pointer
+       to a struct dwarf_file_data.
+       (struct dir_info): Constify directory names.  Remove 'used' field.
+       (struct file_name_acquire_data): New.
+       (file_name_acquire): New.
+       (output_file_names): Modify to handle new file data structures.
+       (add_src_coords_attributes): Use add_AT_file.
+       (add_call_src_coords_attributes): Likewise.
+       (dwarf2out_imported_module_or_decl): Likewise.
+       (gen_subprogram_die): Modify for new file data structures.
+       (gen_variable_die): Likewise.
+       (file_table_eq): New.
+       (file_table_hash): New.
+       (file_table_last_lookup): New.
+       (lookup_filename): Rewrite to handle new file data structures.
+       (maybe_emit_file): Rewrite to handle new file data structures.
+       (dwarf2out_source_line): Always call lookup_filename and
+       maybe_emit_file.
+       (dwarf2out_init): Create file_table here.
+       (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
+       (file_table_relative_p): New.
+       (dwarf2out_finish): Change detection of relative filenames
+       to work with new file data structures.  Move output_line_info call
+       after debug_info output.
+
+2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/13685
+       PR target/27537
+       PR target/28621
+       * config/i386/i386.c (override_options): Always default to 16
+       byte stack boundary.
+
+2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR target/28672
+       * var-tracking.c (dump_dataflow_set): Start dumping at
+       register zero.
+       (clobber_variable_part): Kill only the variable part in
+       registers holding it, leaving other variables alone.
+
+2006-09-11  Josh Triplett  <josh@freedesktop.org>
+
+       * doc/extend.texi (Other Builtins): Actually use the macro
+       argument in the documentation example for
+       __builtin_types_compatible_p.
+
+2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR rtl-optimization/28726
+       * sched-deps.c (sched_analyze_reg): New function extracted from...
+       (sched_analyze_1): ...here.  Call it to analyze references to
+       registers.  Treat again writes to a stack register as writing to the
+       register.
+       (sched_analyze_2): ...and here.  Call it to analyze references to
+       registers.  Treat again reads of a stack register as reading the
+       register.
+
+2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
+           David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/27287
+       * config/rs6000/spe.md (frob_df_di): Remove %H.
+       (frob_di_df): Remove %H.  Change evmergelo to mr.
+       (frob_di_df_2): Remove %H.  Change evldd to two loads.
+
+2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
+
+       * doc/cpp.texi: Fix names of charset options.
+
+2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/29009
+       * config/i386/i386.c (override_options): Use 128-bit
+       stack boundary always for 64bits.
+
+2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR rtl-optimization/28636
+       * combine.c (force_to_mode): Test for side-effects before
+       substituting by zero.
+       (simplify_shift_const): Likewise for zero or other constants.
+
+2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR middle-end/26983
+       * builtins.c (expand_builtin_setjmp): Force next_lab to be
+       preserved.
+
+2006-09-10  Richard Sandiford  <richard@codesourcery.com>
+
+       PR target/29006
+       * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
+       * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
+       returned by mode_for_size, rather than the mode of src itself,
+       to choose between 32-bit and 64-bit patterns.
+       (mips_mem_fits_mode_p): New function.
+       * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
+       that the size of the source matches the size of the destination.
+       (mov_<store>l, mov_<store>r): Likewise.
+
+2006-09-10  Eric Christopher  <echristo@apple.com>
+
+       * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
+       for literal16.
+
+2006-09-09  Eric Christopher  <echristo@apple.com>
+
+       PR target/28995
+       * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
+       for literal16.
+
+2006-09-09  Roger Sayle  <roger@eyesopen.com>
+           Nicolas Setton <setton@adacore.com>
+
+       * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
+
+2006-09-10  Andreas Schwab  <schwab@suse.de>
+
+       * config/m68k/m68k.md (bungt_rev): New pattern.
+
+2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
+           Dale Johannesen  <dalej@apple.com>
+
+       PR target/26778
+       * regclass.c (struct reg_pref): Update documentation.
+       (regclass): Set prefclass to NO_REGS if memory is the best option.
+       (record_reg_classes): Cope with a prefclass set to NO_REGS.
+
+2006-09-08  Eric Christopher  <echristo@apple.com>
+
+       * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
+       * config/t-slibgcc-darwin: Support x86_64 multilib.
+       * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
+       Return 1 for x86_64-darwin.
+       * config/i386/t-darwin: Add m64 multilib.
+       (LIB2_SIDITI_CONV_FUNCS): Use.
+       (LIB2FUNCS_EXTRA): Ditto.
+       * config/i386/darwin.h: Support x86_64.
+       * config/i386/i386.c (override_options): Turn on flag_pic
+       for x86_64-darwin. Disable flag_omit_pointer.
+       (get_pc_thunk_name): Assert !TARGET_64BIT.
+       (legitimate_address_p): Disable machopic addressing for
+       x86_64.
+       (legitimize_pic_address): Ditto.
+       (ix86_expand_move): Ditto.
+       (ix86_expand_call): Ditto.
+       (machopic_output_stub): Ditto.
+       * config/darwin.c (machopic_select_section): Support literal16.
+       (machopic_select_rtx_section): Ditto.
+       * config/darwin-sections.def: Ditto.
+       * config/darwin-64.c: New.
+
+2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/28504
+       * c-tree.h (struct c_arg_info): Add pending_sizes.
+       * c-parser.c (c_parser_parms_declarator,
+       c_parser_parms_list_declarator): Initialize pending_sizes.
+       * c-decl.c (get_parm_info): Initialize pending_sizes.
+       (get_parm_info): Set pending_sizes.
+       (grokdeclarator): Call put_pending_sizes for parameters for
+       function definition only.
+
 2006-09-07  Jason Merrill  <jason@redhat.com>
 
+       PR middle-end/27724
+       * varasm.c (output_constant): Only strip actual no-op conversions.
+
        PR target/13685
        * config/i386/i386.c (override_options): Use 128-bit
        stack boundary if -msse.